员工培训管理系统
2)能删除某门课程
3)能更新某门课程
4)能添加某门课程
4.2.3实现方法
通过一个控件与数据库进行连接,一个控件显示课程表信息。10个控件对应课程表的10个字段。4个按钮对应“查询”、“更新”、“删除”和“添加”。在测试的时候,老师给我提出了有用的建议,要我增加一个“清零”按钮,故在后来增加了一个“清零”按钮。
4.2.4遇到的主要问题及相关解决方法
1)在写查询函数的时候,发现这次与以前要实现的功能有所差异。以前都是对单个字段进行查询,很容易编码。现在要对单个或多个字段进行查询,比如要查询同时满足上课地点为10,课程号为1,老师编号为5的单元组,这样实现起来就难度加大了。因为查询的字段具有不可预知性。为了解决这个问题,我引入了一个标记变量,成功解决了这个问题。值得一提的是当查询字段全部为空的时候,点击“查询”按钮,课程表应该显示全部的课程信息。不然的话,只能在初次进入该模块时,能看到全部课程信息。当完成某个操作的时候,就无法看到全部课程的信息了。在测试的时候,老师建议我对某些字段(如课程名)加入模糊查询功能,我觉得这个建议非常好,很方便,实现起来也不是很复杂,引入通配符*即可。
(1"状态")
2="";
(1"考核日
期")
2="";
(1"")
{
= "课程号,课程名,老师编号,课程简介,所用教材,上
课地点,课程上限人数,开课时间,状态,考试时间
";
1();
1();
();
;
}
{
("查询字段有误,请确认");
;
}
2+" = ";
"'"1"'";
1();
1();
();
}
1()
{
:
1("");
1();
1();
1();
}
(* )
{
();
{{()
(, 1, 1);
(, 1, 1);
(, 1, 1);
(, 2, 2);
(, 3, 3);
(, 2, 2);
}}
}
(, )
{{()
(, )
(1, 1)
(1, 1)
(2, 2)
(3, )
}}
()
()
{
:
}
1()
{
:
();
1, 2 = "课程号,课程名,老师编号
4系统实现
本实验由三个人共同完成,我负责“选择培训课程模块”和“课程设置模块”。阮柳春同学负责“登陆模块”、“用户信息修改模块”、和“培训成绩管理模块”。王相同学负责“考核成绩查询模块”和“选课结果管理模块”
4.1选课培训课程模块
4.1.1具体功能分析
1)能查询课程表
2)能选择课程
3)能删除选择的课程
>();
}
( ){
("已选修了该课程!");
>();
>();
;
}
;
= " * ";
= >(());
();
0;
( > )
{
= ()()>("");
(2)
{
= ()()>("");
;
}
>();
}
();
( "0" ){
("课程已经开始或结束,不能选课");
>();
>();
;
}
= " * ";
= >(());
2)更新一定要通过课程编号,不然无法得到要更新的元组,如果没有输入课程编号,应该给出错误提示。课程表的状态字段,只能是0.,1,2三个数字中的一个,如果不是,要给出错误提示。(其实这里通过控件实现起来更方便)
3)刚开始写删除函数的时候,只考虑到了不存在该课程时,不能删除,给出提示。后来发现了一个很隐蔽的问题,就是如果有学生选了这门课,则不能随便删除。如一定要删除,必须先对培训计划表表进行处理。
2)选课函数的编码要考虑多种情况。第一,如果登录用户已选择这门课,则不能再选。第二,课程已经开始或结束则不能选。第三,该课上限人数已到,则选课失败。
3)退选课程函数要考虑课程是否已经开始或结束,如果已经开始或结束,则不能退选。
4.1.3本模块的部分界面截图
4.2设置课程模块
4.2.1具体功能分析
1)能查询课程表
表1课程设置表
字段名
数据类型
是否可空
说明
课程编号
课程名
任课教师(外部关键字)
课程简介
所用教材
上课地点
课程上限人数
开课时间
状态(外部关键字)
表2培训安排表
字段名
数据类型
是否可空
说明
编号
员工(外部关键字)
课程
成绩
评价(外部关键字)
表3课程状态代码表
字段名
数据类型
是否可空
说明
状态代码
描述
表4考核评价代码表
1("");
1("");
1("");
1("");
1("");
1("");
1("");
}
2()
{
:
* =
(2);
>();
( (,"确定选这门课吗?","提示") ){
("");
();
;
();
在操作中建议语句中要常用…()来捕获错误信息
因为它有时会经常出现一些想不到的错误
{
("");
();
>(,"","");
对选课结果进行统计报表。允许员工对最后选课结果的查询。
培训考核成绩的输入和查询。
员工培训效果的综合报表。
员工个人信息的修改。
图1、员工培训管理系统功能模块图
1.2系统功能模块设计(划分)
本系统涉及到员工和培训管理部门之间的交流,因此需要根据用户的不同分成两大功能模块。这两个模块的功能和使用的权限完全不同。本系统功能模块如图1所示。
(> ) ("成功连接数据
库");
}
( e)
{
();
(());
;
}
0;
;
;
= " * ";
;
("");
0;
= >(());
();
;
( > )
{
= >("");
= >("");
1 = ()();
2 = ()();
( (21)0(2)0 ){
1;
;
}
(2" "1+" "2+" ");
( (21)0 ) ;
,课程简介,所用教材,上课地点,课程上限人数,开课时间
,状态,考试时间";
1(1);
(1"课程号")
2="";
(1"课程名")
2="";
(1"任课老师")
2="";
(1"课程简介")
2="";
(1"所用教材")
2="";
(1"上课地点")
2="";
(1"课程上限人数")
2="";
(1"开课时间")
2="";
1.3与其它系统的关系
图2、培训管理数据流程图
员工培训系统可以为员工素质技能的评价提供可靠的依据,是职务评定的一个参考信息源。系统本身需要用到人事管理系统中的员工基本信息和部门信息等辅助资料,这些数据可以通过数据库直接读取。
1.4数据流程图
员工培训管理系统的数据流程如图2所示。
2数据库设计
2.1数据库需求分析
4.2.3本模块的部分界面截图
5.心得体会
第一,由于是第一次进行数据库开发,并且使用了,且工作量不小。所以前两天我们遇到了不少的麻烦。基于此,我们并没有忙于进行项目开发,而是找寻相关书籍资料认真了解数据库详细开发流程,参照课程设计指导书的前两章,先做单模块的功能开发,实现“插入”,“删除”,“查询”,“添加”,并且读懂提供的代码。从这里,我知道了一个拿到一个项目,并且是陌生的,以前没有做过类似的,一定不要急于动手,事先要做好需求分析,逻辑设计,概念设计,否则只会事倍功半。
第二,要学会团队合作。相比以前做的课程设计,这个项目无论从难度上,还是工作量上都大很多。故这时,团队合作就显得非常重要了。一个人是无法在短时间内完成这样一个项目的。在分工的时候,一定要明确各自的任务,定义好相关的接口。
第三,要对工程文件及时进行正确清楚有层次的备份,最好是每次修复的,都有相关的日志文件进行记录。由于没有大型项目开发的经验,我们虽然对工程文件进行了备份,但是没有层次,工程命名也没有按项目开发的进度命名,没有日志文件,加上分工合作,常常是这个在这个工程进行了修复,另一个在竟然是在令一个版本进行修复。搞得很乱。开发前期,我们在这点上吃了不少苦果。幸好及时意识到了错误,果断进行了改正。以后,进公司了,项目会大很多,动则几十万行代码,从事开发的团队成员也很多,这时候,对工程文件进行正确清楚有层次的备份,对修复进行记录就变得很重要了。