


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、湖南科技大学计算机科学与工程学院数据库课程设计报告二九级计三班学 号:09050103姓 名:贺 双 凤指导老师:刘 毅 志1 系统需求分析系统功能分析员工培训系统需要实现的主要功能包括:l 企业总体培训课程的设置和安排。l 允许员工根据自己的情况选择适宜的课程和上课时间。l 对选课结果进行统计报表。允许员工对最后选课结果的查询。l 培训考核成绩的输入和查询。l 员工培训效果的综合报表。l 员工个人信息的修改。图1、员工培训管理系统功能模块图系统功能模块设计划分本系统涉及到员工和培训管理部门之间的交流,因此需要根据用户的不同分成两大功能模块。这两个模块的功能和使用的权限完全不同。本系统功能模块
2、如图1所示。与其它系统的关系图2、培训管理数据流程图员工培训系统可以为员工素质技能的评价提供可靠的依据,是职务评定的一个参考信息源。系统本身需要用到人事管理系统中的员工根本信息和部门信息等辅助资料,这些数据可以通过数据库直接读取。数据流程图员工培训管理系统的数据流程如图2所示。2 数据库设计数据库需求分析根据系统数据流程图,我们可以列出以下系统所需的数据项和数据结构:l 课程设置:编号、名称、简介、所用教材、上课地点、人数、上课时间l 选课结果:记录编号、员工、课程、考核成绩、评价、考核日期。所需的外部数据支持:l 人员信息:员工号、密码、权限、姓名、部门、当前状态等。l 部门设置:部门编号、
3、名称等。数据库概念结构设计图3是本系统所需数据的模型图。图3、培训管理图数据库逻辑结构设计根据图和数据库需求分析,培训管理系统需要创立2个主要的数据表:课程设置表和培训安排表。对应这两个表中的个别代码字段,又需要创立2个代码表:课程状态代码表和考核评价代码表。这4个数据表的结构如表1至表4所示。员工信息和部门信息作为外部数据支持可以使用人事管理系统中建立的数据表,如表5和表6所示。表1 课程设置表字段名数据类型是否可空说明课程编号课程名任课教师外部关键字课程简介所用教材上课地点课程上限人数开课时间状态外部关键字表2 培训安排表字段名数据类型是否可空说明编号员工外部关键字课程成绩评价外部关键字表
4、3 课程状态代码表字段名数据类型是否可空说明状态代码描述表4 考核评价代码表字段名数据类型是否可空说明评价代码描述表5 员工个人信息表字段名数据类型是否可空说明员工号主关键字密码用户权限姓名性别生日所在部门职务受教育程度专业技能家庭住址x电子信箱当前状态员工,非员工备注表6 部门信息表字段名数据类型是否可空说明部门编号部门名称部门经理简介数据库的建立数据库的建立初始数据的输入本系统中,初始数据包括课程状态代码和评价代码,如表7至表8所示。表7 课程状态代码代码说明0选课中1进行中2已结束表8 考核评价代码代码说明0未考核1不及格2及格3良好4优秀以下各局部请设计者完成。3 各功能模块的设计与实
5、现功能说明本管理系统主要分为两大局部:培训管理应用程序和学员选课应用程序。培训管理应用程序主要用于培训中心的管理人员对培训课程和培训情况进行维护。此应用程序主要包括四项功能:课程设置、选课结果查询修改、成绩输入、培训成绩统计报表。另外,系统需要有登录窗口(用于权限认证)和导航窗口(用于连接各项功能)。学员选课应用程序包括个人信息修改、选课和成绩查询三项功能。一培训管理管理应用程序功能说明二学员选课应用程序功能说明用户界面设计完成数据库创立和功能说明以后,我们可以进行下一步工作,既设计用户界面。1、培训管理应用程序登录窗体的创立2、培训管理应用程序主窗体的创立3、课程设置窗体的创立4、选课结果查
6、询窗体的创立5、学员名单报表窗体的创立6、考核评定结果窗体的创立7、培训统计窗体的创立8、培训成绩报表窗体的创立9、学员选课客户端界面的创立各功能模块的实现1、培训管理应用程序数据模块的创立2、培训管理应用程序登录程序的实现3、课程设置模块的实现4、选课结果查询的实现5、学员名单报表的实现6、考核评定结果的实现7、培训统计的实现8、培训成绩报表的实现9、学员选课客户端应用程序的创立4 系统实现本实验由三个人共同完成,我负责“选择培训课程模块和“课程设置模块。阮柳春同学负责“登陆模块、“用户信息修改模块、和“培训成绩管理模块。王相同学负责“考核成绩查询模块和“选课结果管理模块具体功能分析1能查询
7、课程表2能选择课程3能删除选择的课程实现方法通过两个控件与数据库进行连接,两个控件分别显示课程表和登陆用户已选择的课程。3个按钮对应查询课程表、选择课程和删除课程。遇到的主要问题及相关解决方法1因为在数据库中建立表的时候用的是英文,故在查询的时候表显示的也是英文,这给用户带来了极大的不便,使系统的友好性降低,为了解决这个问题,我使用了重命名语句,对用户已选择的课程表,使用了语句: 课程号,成绩,考核评价 '""' ;在表中使用了语句: 课程号,课程名,老师编号,课程简介,所用教材,上课地点,课程上限人数,开课时间,状态,考试时间;这个问题同样在选择查询字段的
8、时候也出现了,控件备选查询字段要用到中文,而数据库中的字段名是英文,所以要进行中英文的转换。刚开始用语句,由于语句不支持型,改用语句。2选课函数的编码要考虑多种情况。第一,如果登录用户已选择这门课,那么不能再选。第二,课程已经开始或结束那么不能选。第三,该课上限人数已到,那么选课失败。3退选课程函数要考虑课程是否已经开始或结束,如果已经开始或结束,那么不能退选。本模块的局部界面截图设置课程模块具体功能分析1能查询课程表2能删除某门课程3能更新某门课程4能添加某门课程实现方法通过一个控件与数据库进行连接,一个控件显示课程表信息。10个控件对应课程表的10个字段。4个按钮对应“查询、“更新、“删除
9、和“添加。在测试的时候,老师给我提出了有用的建议,要我增加一个“清零按钮,故在后来增加了一个“清零按钮。遇到的主要问题及相关解决方法1在写查询函数的时候,发现这次与以前要实现的功能有所差异。以前都是对单个字段进行查询,很容易编码。现在要对单个或多个字段进行查询,比方要查询同时满足上课地点为10,课程号为1,老师编号为5的单元组,这样实现起来就难度加大了。因为查询的字段具有不可预知性。为了解决这个问题,我引入了一个标记变量,成功解决了这个问题。值得一提的是当查询字段全部为空的时候,点击“查询按钮,课程表应该显示全部的课程信息。不然的话,只能在初次进入该模块时,能看到全部课程信息。当完成某个操作的
10、时候,就无法看到全部课程的信息了。在测试的时候,老师建议我对某些字段如课程名参加模糊查询功能,我觉得这个建议非常好,很方便,实现起来也不是很复杂,引入通配符*即可。2更新一定要通过课程编号,不然无法得到要更新的元组,如果没有输入课程编号,应该给出错误提示。课程表的状态字段,只能是0.,1,2三个数字中的一个,如果不是,要给出错误提示。其实这里通过控件实现起来更方便3刚开始写删除函数的时候,只考虑到了不存在该课程时,不能删除,给出提示。后来发现了一个很隐蔽的问题,就是如果有学生选了这门课,那么不能随便删除。如一定要删除,必须先对培训方案表表进行处理。4添加函数要考虑几个问题。第一,检测该课程是否
11、已在表存在,如存在,那么不能添加。第二,检测输入的任课老师是否存在,如果在表中没有该任课老师,那么给出错误提示。第三,状态字段的内容是否是0,1,2三个数字中的一个,如不是,给出错误提示。第四,要考虑哪些字段可以为空,哪些字段不能为空,不为空的地方,如输入为空,要给出相关提示。本模块的局部界面截图5心得体会第一,由于是第一次进行数据库开发,并且使用了,且工作量不小。所以前两天我们遇到了不少的麻烦。基于此,我们并没有忙于进行工程开发,而是找寻相关书籍资料认真了解数据库详细开发流程,参照课程设计指导书的前两章,先做单模块的功能开发,实现“插入,“删除,“查询,“添加,并且读懂提供的代码。从这里,我
12、知道了一个拿到一个工程,并且是陌生的,以前没有做过类似的,一定不要急于动手,事先要做好需求分析,逻辑设计,概念设计,否那么只会事倍功半。第二,要学会团队合作。相比以前做的课程设计,这个工程无论从难度上,还是工作量上都大很多。故这时,团队合作就显得非常重要了。一个人是无法在短时间内完成这样一个工程的。在分工的时候,一定要明确各自的任务,定义好相关的接口。第三,要对工程文件及时进行正确清楚有层次的备份,最好是每次修复的,都有相关的日志文件进行记录。由于没有大型工程开发的经验,我们虽然对工程文件进行了备份,但是没有层次,工程命名也没有按工程开发的进度命名,没有日志文件,加上分工合作,常常是这个在这个
13、工程进行了修复,另一个在竟然是在令一个版本进行修复。搞得很乱。开发前期,我们在这点上吃了不少苦果。幸好及时意识到了错误,果断进行了改正。以后,进公司了,工程会大很多,动那么几十万行代码,从事开发的团队成员也很多,这时候,对工程文件进行正确清楚有层次的备份,对修复进行记录就变得很重要了。6源代码由于整个工程的源代码比拟多,所以在此只附上我写的两个模块的源代码。 : "" "员工培训管理系统" "" "" = ; ( * /*/): (, ); = ;()1 = ("");2 = ("&q
14、uot;);3 = (""); () 1(); 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 = " 课程号,课程名,老师编号,课程简介,所用教材,上课地点,课程上限人数,开课时间,状态,考试时间 " 1(1);(1"课程号")2="" (1&qu
15、ot;课程名") 2=""(1"任课老师")2=""(1"课程简介")2=""(1"所用教材")2=""(1"上课地点")2=""(1"课程上限人数")2=""(1"开课时间")2=""(1"状态")2=""(1"考核日期")2=""(1"
16、") = " 课程号,课程名,老师编号,课程简介,所用教材,上课地点,课程上限人数,开课时间,状态,考试时间 "1(); 1();();("查询字段有误,请确认"); ; 2+" = " "'"1"'" 1(); 1();(); 1() : 1(""); 1(""); 1(""); 1(""); 1(""); 1(""); 1(""
17、); 1(""); 2() : * = (2); >();( (,"确定选这门课吗?","提示") )("");(); ;();在操作中建议语句中要常用()来捕获错误信息因为它有时会经常出现一些想不到的错误 (""); ();>(,"",""); (> ) ("成功连接数据库"); ( e)();(); 0; ; ; = " * " ;(""); 0; = >();();
18、;( > ) = >(""); = >(""); 1 = ()(); 2 = ()();( (21)0(2)0 )1;(2" "1+" "2+" ");( (21)0 ) ;>();( )("已选修了该课程!");>();>(); ; ; = " * " = >();();0;( > ) = ()()>("");(2) = ()()>("");>();
19、();( "0" )("课程已经开始或结束,不能选课");>();>(); ; = " * " = >();();0;( > ) 2 = ()()>(""); 1 = ()();( (12)0 )()()>("");1;>();();( > )("该课已满人!");>();>(); ; ; = " ('" = + + "','" = + 2 + "'," = + "'-1'," + "'0')"();>();2(" * "); 2();();>();>(); ("成功选课"); () : ;( (,"确定要删除这门课吗?","提示") )("");(); ; ;();在操作中建议语句中要常用()来捕获错误信息因为它有时会经常出现一些想不到的错误 (""); ();>(,&quo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 班级知识竞赛的组织方式计划
- 保健加盟合同样本
- 2025实木家具定制合同范本
- 债务重组协议合同标准文本
- 兼职做饭合同标准文本
- 2025年工程建设项目招标代理合同协议书范本
- 仓库安全合同样本
- 个人拆迁合同样本
- 年度目标与工作计划的对接
- 与灯饰合作合同样本
- 消力池深、长计算
- 虎斑乌贼养殖技术论文
- 围术期多模式镇痛课件
- (完整版)血压监测记录表
- 小区门楼改造方案范本
- 日处理-30吨鲜奶的脱脂乳粉厂设计
- 河南2020年河南省农村信用社(农商银行)员工招聘考试参考题库含答案详解
- 工程项目邀请招标招标文件
- 光谷之星中国建筑科技馆建筑设计方案文本
- 一氧化氮吸入治疗法演示文稿
- C语言程序设计循环结构程序设计课件
评论
0/150
提交评论