企业员工培训管理系统的设计.docx
《企业员工培训管理系统的设计.docx》由会员分享,可在线阅读,更多相关《企业员工培训管理系统的设计.docx(15页珍藏版)》请在冰豆网上搜索。
企业员工培训管理系统的设计
企业员工培训管理系统的设计
1设计背景
本系统为企业员工培训信息管理系统,通过该系统,使企业员工培训管理工作系统化、规范化、自动化,从而达到提高企业培训管理效率的目的。
采用的开发工具是MicrosoftVisualC++6.0。
企业员工培训管理系统能够对企业员工基础信息、员工档案浏览、员工资料查询、员工资料统计、日常记事、通讯录、数据库备份和还原及清空等进行管理。
及时了解各个培训环节中信息的变更。
管理人员必须以管理员身份登录,保证了系统的安全性。
系统的总体任务是使企业员工培训管理人员可以轻松快捷地完成对员工培训管理的任务。
有利于提高管理效率。
2系统设计
2.1系统设计思想
尽量采用公司现有的软硬件环境,结合先进的管理系统开发方案,从而达到充分利用公司现有资源,提高系统开发水平和应用效果的目的。
系统采用C/S(Client/Server)体系结构,客户机Client负责提供表达逻辑、显示用户界面信息,访问数据库服务器;服务器server用于提供数据服务。
系统采用模块化程序设计,便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充,维护。
同时,系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。
2.2系统功能分析
在系统开发总体任务的基础上对系统功能进行详细的分析,在本系统的设计中需要完成的功能主要有以下内容。
员工各种信息的输入、查询、修改,包括员工基本信息、职称、岗位、已经培训过的课程和成绩、培训计划等。
课程信息的输入、查询、修改,包括课时、课程种类等;课程培训的评价
企业所有员工培训需求的管理。
企业培训计划的制定,修改。
培训管理系统的使用帮助。
教师信息的管理,教师评价。
培训资源管理,培训教材管理。
系统用户管理、权限管理。
2.3系统功能模块设计
培训管理系统
3数据库设计
3.1数据库需求分析
通过对企业员工培训管理的内容和数据流程分析,设计的数据项和数据结构如下:
a)员工的基本状况。
包括的数据项有员工号、员工姓名、性别、所在部门、身份证号、生日、籍贯、国籍、民族、婚姻状况、健康状况、工龄、状态、家庭住址、联系方式等等。
b)员工成绩状况。
包括的数据项有应该号、课程名称、上课时间/地点、授课教师、成绩、评价和是否通过。
c)课程信息。
包括的数据项有课程号、课程类别、课程名、课程学时,等效课程、预修课程、开课部门等。
d)企业工作岗位信息。
包括的数据项有部门代号、部门名称、部门经理等。
e)培训需求信息。
包括的数据项有培训的课程、培训开放时间、结束时间、培训教员、上课时间和地点等。
f)个人培训计划信息。
包括的数据项有培训员工、培训课程、培训的开始时间/结束时间等、
g)课程评价信息。
包括的数据项有课程名、评价内容和评价时间等。
h)教员信息。
包括的数据项有教员号、教员姓名/学历、开始教课时间和教员评价等。
i)培训资源管理。
包括的数据项有各个教员、教学设备的配备情况、各种教学教具借用情况培训中心固定资产各种培训费用和支出等等。
j)培训教材管理。
包括的数据项有教材适合的课程、作者、教材状态、教材数量和价格。
完成了上面的数据项、数据结构后,下面进行数据库设计。
3.2数据库的概念结构设计。
根据上文的设计规划,可以得出实体有员工实体、部门实体、岗位实体、教员实体、教学资源实体、教材实体、课程实体。
下面给出各个实体的描述E-R图。
图2员工实体E-R图
图3课程实体E-R图
图4岗位实体E-R图
图5教员实体E-R图
图6培训资源实体E-R图
图7实体之间的关系E-R图
3.3数据库的逻辑结构实现
上面论述了实体及实体之间的关系,在此基础上,形成数据库中表格以及各表格之间的关系。
列名
数据类型
能否为空
说明
COURSE_ID
NUMBER(3)
NOTNULL
课程号
SUBJECT
VARCHAR2(10)
NULL
课程类别
COURSE_CNAME
VARCHAR2(20)
NULL
课程中文名称
COURSE_ENAME
VARCHAR2(10)
NULL
课程英文名称
COURSE_DESC
VARCHAR2(40)
NULL
课程描述
COURSE_DURATION
NUMBER(3)
NULL
学时
COURSE_BOOK
VARCHAR2(10)
NULL
教材
COURSE_EQU
NUMBER(3)
NULL
等效课程
COURSE_BEFORE
NUMBER(3)
NULL
预修课程
COURSE_MARK
NUMBER
(1)
NULL
初训标志
DEPT_ID
NUMBER(3)
NULL
开课部门代号
表1课程表COURSE
数据类型
能否为空
说明
TEACHER_ID
NUMBER(6)
NOTNULL
教员号
TEACHER_NAME
VARCHAR2(10)
NULL
教员姓名
TEACHER_XL
VARCHAR2(10)
NULL
教员学历
TEACHER_DATE_START
DATE
NULL
执教时间
TEACHER_EVALUSION
VARCHAR2(40)
NULL
评价
表2教员信息表TEACHER
数据类型
能否为空
说明
EMP_NO
NUMBER(6)
NOTNULL
员工号
EMP_NAME
VARCHAR2(10)
NULL
姓名
DEPT_ID
NUMBER(3)
NULL
所在部门号
EMP_XL
VARCHAR2(10)
NULL
学历
EMP_GENDER
VARCHAR2
(2)
NULL
性别
EMP_BIRTHDAY
DATE
NULL
生日
EMP_HOMETOWN
VARCHAR2(8)
NULL
籍贯
EMP_ID
NUMBER(20)
NULL
身份证号
EMP_STARTWORK
DATE
NULL
开始工作时间
EMP_ADDRESS
VARCHAR2(10)
NULL
家庭住址
EMP_TEL
NUMBER(10)
NULL
电话
EMP_EMAIL
VARCHAR2(20)
NULL
Email
表3员工基本信息表PERSONNEL
数据类型
能否为空
说明
DEPT_ID
NUMBER(6)
NOTNULL
部门代号
DEPT_NAME
VARCHAR2(10)
NULL
部门名称
DEPT_MANAGER
VARCHAR2(10)
NULL
经理代号
DEPT_FUNCTION
VARCHAR2(80)
NULL
部门职能
表4部门信息表DEPT
列名
数据类型
能否为空
说明
EMP_NUM
NUMBER(6)
NOTNULL
员工号
COURSE_ID
NUMBER(3)
NULL
课程类号码
TEACHER_ID
NUMBER(6)
NULL
教员号
SCORE_1
NUMBER(3)
NULL
分数1
SCORE_2
NUMBER(3)
NULL
分数2
SCORE_NOTE
VARCHAR2(10)
NULL
教师评语
表5员工成绩表SCORE
列名
数据类型
能否为空
说明
BOOK_ID
NUMBER(3)
NOTNULL
教材编号
BOOK_NAME
VARCHAR2(20)
NULL
教材名称
BOOK_AUTHOR
VARCHAR2(10)
NULL
作者
BOOK_STATE
NUMBER
(1)
NULL
教材状态标志
SBOOK_COURSE_ID
NUMBER(3)
NULL
相应课程标号
BOOK_QUANTITY
NUMBER(3)
NULL
数量
BOOK_PRICE
NUMBER(5,2)
NULL
价格
表6教材信息表BOOK
列名
数据类型
能否为空
说明
TMS_USER
VARCHAR2(20)
NOTNULL
用户名
TMS_PSWD
VARCHAR2(20)
NOTNULL
口令
表7管理系统的用户口令表USER_PSWD
列名
数据类型
能否为空
说明
JOB_ID
NUMBER(3)
NOTNULL
岗位代号
JOB_NAME
VARCHAR2(10)
NULL
岗位名称
JOB_POWER
VARCHAR2(20)
NULL
权力范围
表8工作岗位JOB
列名
数据类型
能否为空
说明
COURSE_ID
NUMBER(3)
NOTNULL
课程号(外部键)指向课程表的COURSE_NO
COURSE_NEED
NUMBER(6)
NULL
课程需要者(外部键)
表9培训需求表COURSE_NEED
数据类型
能否为空
说明
COURSE_ID
NUMBER(3)
NOTNULL
课程号(外部键)指向课程表的COURSE_NO
COURSE_DATE_BEGIN
DATE
NULL
课程开始时间
COURSE_DATE_OVER
DATE
NULL
课程结束时间
TEACHER_ID
NUMBER(6)
NULL
教师号,外部键,指向教师表中的TEACHER_ID
COURSE_NUMBER
NUMBER
(2)
NULL
上课人数
COURSE_PLACE
VARCHAR2(10)
NULL
上课地点
表10企业培训计划表COURSE_AVALABLE
3.4数据库结构实现
虽然本次设计采用Access数据库,但是SQL更具有通用性。
下面给出创建这些表格的SQL语句。
3.4.1员工基本状况表格PERSONNEL
CREATETABLE“train”.PERSONNEL
(
EMP_NONUMBER(6)NOTNULL,
EMP_NAMEVARCHAR2(10)NULL,
DEPT_IDNUMBER(3),NULL
EMP_XLVARCHAR2(10),NULL
EMP_GENDERVARCHAR2
(2),NULL
EMP_BIRTHDAYDATE,NULL
EMP_HOMETOWNVARCHAR2(8)NULL
EMP_IDNUMBER(20)NULL,
EMP_STARTWORKDATENULL,
EMP_ADDRESSVARCHAR2(10)NULL,
EMP_TELNUMBER(10)NULL,
EMP_EMAILVARCHAR2(20)NULL,
CONSRAINTPERSONNEL_TEM_NO_PKPRIMARRUYKEY(EMP_NUM),
CONSRAINTPERSONNEL_DEPT_ID_FKFORFOREIEGKEY(EMP_ID),
REFERENCES“TRAIN”.”DEPT_ID”
CONSRAINTPERSONNEL_DEPT_ID_FKPKFORFOREIEGKEY(JOB_ID),
REFERENCES“train”.”JOB”(JOB_ID)
)
TABLESPACE”USER_DATA”;
3.4.2创建员工成绩表格SCORE
CREATETABLE”train”.SCORE
(
EMP_NUMBER(6)NOTNULL,
COURSE_IDNUMBER(3)NULL,
TEACHER_IDNUMBER(6)NULL,
SCORE_1NUMBER(3)NULL,
SCORE_2NUMBER(3)NULL,
SCORE_NOTEVARCHAR2(10)NULL,
CONSTRAINTSCORE_EMP_NO_PKPRIMARYKEY(EMP_NO),
CONSTRAINTSCORE_COURSE_ID_FKFOREIGNKRY(COURSE_ID)
REFERENCES“train”.”COURSE”(COURSE_ID),
CONSTRAINTSCORE_TEACHER_ID_FKFOREIGNKEY(TEATCHER_ID)
REFERENCES“train”.”TEATCHER”(TEATCHER_ID)
)
3.4.3创建课程表格COURSE
CREATETABLE”train”.COURSE
(
EMP_NUMNUMBER(6)NOTNULL,
COURSE_IDNUMBER(3)NOTNULL,
SUBJECTVARCHAR2(10)NULL,
COURSE_CNAMEVARCHAR2(20)NULL,
COURSE_ENAMEVARCHAR2(10)NULL,
COURSE_DESCVARCHAR2(40)NULL,
COURSE_DURATIONNUMBER(3)NULL,
COURSE_BOOKVARCHAR2(10)NULL,
COURSE_EQUNUMBER(3)NULL,
COURSE_BEFORENUMBER(3)NULL,
COURSE_MARKNUMBER
(1)NULL,
DEPT_IDNUMBER(3)NULL,
CONSTRAINTCOURSE_COURSE_ID_PK_PRIMARYKEY(COURSE_ID)
)
3.4.4创建部门信息表DEPT
CREATETABLE”train”.DEPT
(
DEPT_IDNUMBER(6)NOTNULL,
DEPT_NAMEVARCHAR2(10)NULL,
DEPT_MANAGERVARCHAR2(10)NULL,
DEPT_FUNCTIONVARCHAR2(80)NULL,
CONSTRAINTDEPT_EMP_NO_PKPRIMARYKEY(DEPT_ID),
CONSTRAINTDEPT_COURSE_ID_FKFOREIGNKRY(DEPT_MANAGER)
REFERENCES“train”.”COURSE”(DEPT_NO),
CONSTRAINTDEPT_TEACHER_ID_FKFOREIGNKEY(DEPT_VICEMANAGER)
REFERENCES“train”.”PERSONEL”(EMP_NO)
)
TABLESPACE”USER_DATA”;
3.4.5创建教材信息表BOOK
CREATETABLE”train”.BOOK
(
BOOK_IDNUMBER(3)NOTNULL,
BOOK_NAMEVARCHAR2(20)NULL,
BOOK_AUTHORVARCHAR2(10)NULL,
BOOK_STATENUMBER
(1)NULL,
BOOK_COURSE_IDNUMBER(3)NULL,
BOOK_QUANTITYNUMBER(3)NULL,
BOOK_PRICENUMBER(5,2)NULL,
CONSTRAINTBOOK_BOOK_ID_PKPRIMARYKEY(BOOK_ID),
CONSTRAINTBOOK_BOOK_ID_FKFOREIGNKEY(BOOK_COURSEID)
REFERENCES“train”.”BOOK”(TEATCHER_ID)
)
3.4.6创建企业培训计划表
CREATETABLE”train”.COURSE_AVALABLE
(
COURSE_IDNUMBER(3)NOTNULL,
COURSE_DATE_BEGINDATENULL,
COURSE_DATE_OVERDATENULL,
TEACHER_IDNUMBER(6)NULL,
COURSE_NUMBERNUMBER
(2)NULL,
COURSE_PLACEVARCHAR2(10)NULL,
CONSTRAINTCOURSE_AVALABLE_COURSE_ID_PKPRIMARYKEY(COURSE_ID),
(COURSE_ID)REFERENCES“train”.”COURSE”(COURSE_ID)
CONSTRAINTCOURSE_AVALABLE_COURSE_ID_PKPRIMARYKEY(TEACHER_ID),
(TEACHER_ID)REFERENCES“train”.”TEACHER”(TEACHER_ID)
)
TABLESPACE”USER_DATA”;
4创建应用程序
4.1本员工培训管理系统采用MFCODBC开发。
该应用程序是基于对话框的。
由于VC++6.0的特点是每新增加一个对话框资源,就为该对话框创建一个新的类。
在每个对话框类中,都增加一个成员变量m_database,用于连接到数据库。
图8各对话框类的实现
4.2记录集的处理
使用视表到记录集的映射,为了编程简便,为数据库中的每一个表映射一个记录集类。
程序的映射关系如下表。
表格
对应记录集
PERSONNEL
CPersonSet
SCORE
CScoreSet
JOB
CJobSet
COURSE
CCourseSet
DEPT
CDeptSet
COURSE_NEED
CPersonNeedSet
PERSONNEL_PLAN
CPersonPlanSet
COURSE_EVALUATION
CAppriseSet
TEACHER
CTeacherSet
TM-RESOURCE
CResourseSet
BOOK
CBook
USER_PSWD
CLoginSet
4.3数据库内容显示
为了使用户在打开某项管理的时候能直接看到对应数据库表格的内容,在程序中使用了CListCtrl类,每次初始化对话框的时候首先执行一次数据库查询操作,将查到的所有结果都显示在对话框的CListCtrl控件中,方便用户的操作管理。
5系统应用程序设计
5.1此应用程序采用基于对话框的开发,程序的主对话框是登录窗口。
图9登录窗口
5.2建立程序管理窗口
图10程序管理窗口
图11学员信息管理模块界面
5.3其他的模块,如员工信息管理模块、培训课程管理模块的设计等与之类似。
这样,就可以建立一个实用的培训管理系统。