课程设计报告(员工培训管理系统)

上传人:aa****6 文档编号:38380725 上传时间:2018-05-01 格式:DOC 页数:51 大小:303.50KB
返回 下载 相关 举报
课程设计报告(员工培训管理系统)_第1页
第1页 / 共51页
课程设计报告(员工培训管理系统)_第2页
第2页 / 共51页
课程设计报告(员工培训管理系统)_第3页
第3页 / 共51页
课程设计报告(员工培训管理系统)_第4页
第4页 / 共51页
课程设计报告(员工培训管理系统)_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《课程设计报告(员工培训管理系统)》由会员分享,可在线阅读,更多相关《课程设计报告(员工培训管理系统)(51页珍藏版)》请在金锄头文库上搜索。

1、 数据库课程设计报告数据库课程设计报告二二九级计三班九级计三班学学 号:号:XX 姓姓 名:贺名:贺 双双 凤凤 指导老师:刘指导老师:刘 毅毅 志志 时时 间:间:2012.02.202012.03.021 系统需求分析1.1 系统功能分析员工培训系统需要实现的主要功能包括: 企业总体培训课程的设置和安排。 允许员工根据自己的情况选择合适的课程和上课时间。 对选课结果进行统计报表。允许员工对最后选课结果的查询。 培训考核成绩的输入和查询。 员工培训效果的综合报表。 员工个人信息的修改。1.2 系统功能模块设计(划分)本系统涉及到员工和培训管理部门之间的交流, 因此需要根据用户的不同分成两大功

2、能模块。这两 个模块的功能和使用的权限完全不同。本系统功能 模块如图 1 所示。1.3 与其它系统的关系员工培训系统可以为员工素质技能的评价提供可靠的依 据,是职务评定的一个参考信息源。系统本身需要用到人事 管理系统中的员工基本信息和部门信息等辅助资料,这些数 据可以通过数据库直接读取。1.4 数据流程图员工培训管理系统的数据流程如图 2 所示。2 数据库设计数据库设计2.1 数据库需求分析根据系统数据流程图,我们可以列出以下系统所需的数 据项和数据结构: 课程设置:编号、名称、简介、所用教材、上课地 点、人数、上课时间 选课结果:记录编号、员工、课程、考核成绩、评价、考核日期。 所需的外部数

3、据支持: 人员信息:员工号、密码、权限、姓名、部门、当前状态等。 部门设置:部门编号、名称等。2.2 数据库概念结构设计图 3 是本系统所需数据的 E-R 模型图。员工培训管理系统培训中心员工选课结果 管理培训成绩 管理课程设置 管理统计报表用户信息 修改考核成绩 查询选择培训 课程图图 1、员工培训管理系统功能模块图、员工培训管理系统功能模块图培训中心员工信息汇总 组织安排培训课程 设置选择培训 课程培训计划培训考核培训考核 成绩评估结果培训评估审查调整图图 2、培训管理数据流程图、培训管理数据流程图2.3 数据库逻辑结构设计根据 E-R 图和数据库需求分析,培训管理系统需 要创建 2 个主

4、要的数据表:课程设置表和培训安排表。 对应这两个表中的个别代码字段,又需要创建 2 个代码 表:课程状态代码表和考核评价代码表。这 4 个数据表 的结构如表 1 至表 4 所示。员工信息和部门信息作为外 部数据支持可以使用人事管理系统中建立的数据表,如 表 5 和表 6 所示。表1 course课程设置表 字段名数据类型是否可空说明 csid课程编号 name课程名 teacher任课教师(外部关键字 person) intro课程简介 book所用教材 classroom上课地点 number课程上限人数 classtime开课时间 state状态(外部关键字 course_state) e

5、xam_date表2 training_plan培训安排表 字段名数据类型是否可空说明 tpid编号 person员工(外部关键字 person) course课程 score成绩 appraisement评价(外部关键字 appraisement)表3 course_state课程状态代码表 字段名数据类型是否可空说明 cscode状态代码 description描述表4 apprisement考核评价代码表 字段名数据类型是否可空说明 code评价代码 description描述表5 person员工个人信息表 字段名数据类型是否可空说明 id员工号(主关键字) passwd密码 auth

6、ority用户权限 name姓名 sex性别 birthday生日员员工工 PK员员工工号号密密码码 权权限限 姓姓名名 职职务务 部部门门 当当前前状状态态 FK1部部门门编编号号培培训训 PKID成成绩绩 评评价价 考考核核日日期期 FK1员员工工号号 FK2编编号号课课程程 PK编编号号名名称称 简简介介 教教材材 上上课课地地点点 上上限限人人数数 上上课课时时间间 课课程程状状态态部部门门 PK部部门门编编号号部部门门名名称称图图 3、培训管理、培训管理 E-R 图图department所在部门 job职务 edu_level受教育程度 speciaty专业技能 address家庭住

7、址 tel联系电话 email电子信箱 state当前状态( T-员工, F-非员工) remark备注表6 department部门信息表 字段名数据类型是否可空说明 depid部门编号 name部门名称 manager部门经理 intro简介2.4 数据库的建立2.4.1 数据库的建立 2.4.2 初始数据的输入 本系统中,初始数据包括课程状态代码和评价代码,如表 7 至表 8 所示。表7 课程状态代码 代码说明 0选课中 1进行中 2已结束表8 考核评价代码 代码说明 0未考核 1不及格 2及格 3良好 4优秀(以下各部分请设计者完成)。3 各功能模块的设计与实现3.1 功能说明本管理系

8、统主要分为两大部分:培训管理应用程序和学员选课应用程序。培训管理应 用程序主要用于培训中心的管理人员对培训课程和培训情况进行维护。此应用程序主要包 括四项功能:课程设置、选课结果查询修改、成绩输入、培训成绩统计报表。另外,系统 需要有登录窗口(用于权限认证)和导航窗口(用于连接各项功能)。学员选课应用程序包括个 人信息修改、选课和成绩查询三项功能。 (一)培训管理管理应用程序功能说明 (二)学员选课应用程序功能说明3.2 用户界面设计完成数据库创建和功能说明以后,我们可以进行下一步工作,既设计用户界面。 1、培训管理应用程序登录窗体的创建 2、培训管理应用程序主窗体的创建3、课程设置窗体的创建

9、 4、选课结果查询窗体的创建 5、学员名单报表窗体的创建 6、考核评定结果窗体的创建 7、培训统计窗体的创建 8、培训成绩报表窗体的创建 9、学员选课客户端界面的创建3.3 各功能模块的实现1、培训管理应用程序数据模块的创建 2、培训管理应用程序登录程序的实现 3、课程设置模块的实现 4、选课结果查询的实现 5、学员名单报表的实现 6、考核评定结果的实现 7、培训统计的实现 8、培训成绩报表的实现 9、学员选课客户端应用程序的创建4 系统实现本实验由三个人共同完成,我负责“选择培训课程模块”和“课程设置模块” 。阮柳春同学负责“登陆模块” 、 “用户信息修改模块” 、和“培训成绩管理模块” 。

10、王相同学负责“考核成绩查询模块”和“选课结果管理模块”4.1 选课培训课程模块4.1.1 具体功能分析1)能查询课程表2)能选择课程3)能删除选择的课程4.1.2 实现方法通过两个 ado 控件与数据库进行连接,两个 datagrid 控件分别显示课程表和登陆用户已选择的课程。3 个 button 按钮对应查询课程表、选择课程和删除课程。4.1.2 遇到的主要问题及相关解决方法1)因为在数据库中建立 course 表的时候用的是英文,故在查询的时候表显示的也是英文,这给用户带来了极大的不便,使系统的友好性降低,为了解决这个问题,我使用了 sql 重命名语句,对用户已选择的课程表,使用了语句:s

11、elect 课程号=training_plan.cid,成绩=score,考核评价=apprisement.description from training_plan,apprisement where training_plan.personid=“+personid+“and apprisement.appcode=training_plan.appcode;在 course 表中使用了语句:select 课程号=cid,课程名=cname,老师编号=personid,课程简介=intro,所用教材=book,上课地点=classroom,课程上限人数=number,开课时间=class

12、time,状态=cscode,考试时间=exam_date;这个问题同样在选择查询字段的时候也出现了,combo 控件备选查询字段要用到中文,而数据库中的字段名是英文,所以要进行中英文的转换。刚开始用 switch 语句,由于 switch 语句不支持 csting 型,改用 ifelse语句。2)选课函数的编码要考虑多种情况。第一,如果登录用户已选择这门课,则不能再选。第二,课程已经开始或结束则不能选。第三,该课上限人数已到,则选课失败。3)退选课程函数要考虑课程是否已经开始或结束,如果已经开始或结束,则不能退选。4.1.3 本模块的部分界面截图4.2 设置课程模块4.2.1 具体功能分析1

13、)能查询课程表2)能删除某门课程3)能更新某门课程4)能添加某门课程4.2.3 实现方法通过一个 ado 控件与数据库进行连接,一个 datagrid 控件显示课程表信息。10 个 edit 控件对应课程表的 10 个字段。4 个 button 按钮对应“查询” 、 “更新” 、 “删除”和“添加” 。 在测试的时候,老师给我提出了有用的建议,要我增加一个“清零”按钮,故在后来增加 了一个“清零”按钮。4.2.4 遇到的主要问题及相关解决方法1)在写查询函数的时候,发现这次与以前要实现的功能有所差异。以前都是对单 个字段进行查询,很容易编码。现在要对单个或多个字段进行查询,比如要查询同时满足

14、上课地点为 10,课程号为 1,老师编号为 5 的单元组,这样实现起来就难度加大了。因为 查询的字段具有不可预知性。为了解决这个问题,我引入了一个标记变量 ok,成功解决了这 个问题。值得一提的是当查询字段全部为空的时候,点击“查询”按钮,课程表应该显示 全部的课程信息。不然的话,只能在初次进入该模块时,能看到全部课程信息。当完成某 个操作的时候,就无法看到全部课程的信息了。在测试的时候,老师建议我对某些字段 (如课程名)加入模糊查询功能,我觉得这个建议非常好,很方便,实现起来也不是很复 杂,引入通配符*即可。2)更新一定要通过课程编号,不然无法得到要更新的元组,如果没有输入课程编 号,应该给

15、出错误提示。课程表的状态字段,只能是 0.,1,2 三个数字中的一个,如果不是, 要给出错误提示。 (其实这里通过 combo 控件实现起来更方便)3)刚开始写删除函数的时候,只考虑到了不存在该课程时,不能删除,给出提示。 后来发现了一个很隐蔽的问题,就是如果有学生选了这门课,则不能随便删除。如一定要 删除,必须先对培训计划表 training_plan 表进行处理。4)添加函数要考虑几个问题。第一,检测该课程是否已在 course 表存在,如存 在,则不能添加。第二,检测输入的任课老师是否存在,如果在 person 表中没有该任课老 师,则给出错误提示。第三,状态字段的内容是否是 0,1,2

16、 三个数字中的一个,如不是,给 出错误提示。第四,要考虑哪些字段可以为空,哪些字段不能为空,不为空的地方,如输 入为空,要给出相关提示。4.2.3 本模块的部分界面截图5心得体会第一,由于是第一次进行数据库开发,并且 vc 使用了 MFC,且工作量不小。所以前 两天我们遇到了不少的麻烦。基于此,我们并没有忙于进行项目开发,而是找寻相关书籍 资料认真了解数据库详细开发流程,参照课程设计指导书的前两章,先做单模块的功能开 发,实现“插入” , “删除” , “查询” , “添加” ,并且读懂提供的代码。从这里,我知道了一 个拿到一个项目,并且是陌生的,以前没有做过类似的,一定不要急于动手,事先要做好 需求分析,逻辑设计,概念设计,否则只会事倍功半。第二,要学会团队合作。相比以前做的课程设计,这个项目无论从难度上,还是工作 量上都大很多。故这时,团队合作就显得非常重要了。一个人是无法在短时间内完成这样 一个项目的。在分工的时候,一定要明确各自的任务,定义好相关的接口。第三,要对工程文件及时进行正确清楚有层次

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号