员工管理系统数据库课设.docx
- 文档编号:9832275
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:71
- 大小:579.53KB
员工管理系统数据库课设.docx
《员工管理系统数据库课设.docx》由会员分享,可在线阅读,更多相关《员工管理系统数据库课设.docx(71页珍藏版)》请在冰豆网上搜索。
员工管理系统数据库课设
数据库系统原理及其应用教程
课程设计报告
题目名称
员工管理系统
班级
学号
姓名
指导教师
编写时间
2009年12月29日
第1章概述……………………………………………………3
第2章需求分析
系统功能分析……………………………………………3
系统结构图………………………………………………3
数据流图…………………………………………………4
数据字典…………………………………………………4
第3章培训需求信息概念结构设计…………………………6
第4章数据库逻辑结构设计…………………………………9
第5章源代码及查询截图
源代码…………………………………………………13
查询截图…………………………………………39
第六章总结及体会…………………………………………48
第七章参考文献……………………………………………49
一.概述
企业通过一个好的员工培训管理系统,能使企业的培训工作系统化、规范化、自动化,从而提高企业员工的素质和工作能力,使企业保持强大的竞争力。
培训管理系统需要维护员工信息、管理培训资源和教材,设计培训计划,安排培训课程,对课程进行评价。
此外还要考虑内部培训和外出培训的问题,最后,系统还需安排系统用户管理、权限管理。
二.需求分析
1.系统功能分析
根据系统功能的要求,员工培训系统可以分为以下几点:
●包括员工基本信息、职称、岗位、已经培训过的课程和成绩、培训计划等。
●员工各种信息的查询、修改、包括员工的基本信息、职称、岗位、已经培训过的课程和成绩、培训计划等。
●培训课程信息的输入,包括课时、课程种类等。
●培训课程信息的查询、修改。
●企业所有管理员工培训需求的管理。
●企业培训计划的制定、修改。
●培训课程的评价。
●培训管理系统的使用帮助。
●教师信息的管理、教师评价。
●培训资源管理。
●培训教材管理。
●员工外出培训管理。
●系统用户管理、权限管理。
2.系统结构图
3.数据流图
4.数据字典
通过对企业员工培训管理的内容和数据流程的分析,设计的数据项和数据结构如下:
●员工基本状况。
起数据项有员工号、员工姓名、性别、所在部门、身份证号、生日、籍贯、国籍、名族、婚姻状况、健康状况、参加工作时间、员工状态、家庭住址和联系电话等。
●员工成绩状况。
其数据项有员工号、课程名称、时间、地点、授课教师、成绩、评价和是否通过等。
●课程信息。
其数据项有课程号、课程类别、课程名、课程学时、等效课程、预修课程、开课部门和初训/复训等。
●企业工作岗位信息。
其数据项有工作岗位代号、工作岗位名称、工作岗位权利范围等。
●企业部门信息。
其数据项有部门代号、部门名称、部门经理、部门副经理等。
●培训需求信息。
其数据项有所需培训的课程和要求培训的员工等。
●企业培训计划信息。
其数据项有培训的课程、培训开始时间、结束时间、培训教员、上课时间和上课地点等。
●个人培训计划信心。
其数据项有培训员工、培训课程、培训开始时间、培训结束时间等。
●课程评价信息。
其数据项有课程名、评价内容和评价时间等。
●教员信息。
其数据项有教员好、教员姓名、教员学历、开始教课时间和教员评价等。
●培训资源管理信息。
其数据项有各个教室、教学设备的配备情况、各种教学教具借用情况、培训中心固定资产管理、各种培训费用和培训资源需求管理等。
●培训教材管理。
其数据项有教材适合的课程、作者、教材状态、教材数量和价钱等
三.培训需求信息概念结构设计
此系统根据上面的设计规划出的实体有:
员工实体、部门实体、岗位实体、教员实体、教学资源实体、教材实体、课程实体。
以下为各个实体具体的描述E-R图:
1.员工实体E-R图:
2.部门实体E-R图:
3.岗位实体E-R图
4.课程实体E-R图:
5.教员实体E-R图:
6.培训资源实体E-R图:
7.教材实体E-R图:
8.实体和实体之间的关系E-R图:
四.数据库逻辑结构设计
1.创建课程表(COURSE)
列名
数据类型
可否为空
说明
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
VARCHAR2(3)
NULL
学时
COURSE_BOOK
VARCHAR2(10)
NULL
教材
COURSE_EQU
VARCHAR2(3)
NULL
等效课程
COURSE_BEFORE
VARCHAR2(3)
NULL
预修教程
COURSE_MARK
VARCHAR2
(1)
NULL
初训/复训标志(取值0/1)
DEPT_ID
VARCHAR2(3)
NULL
开课部门代号
2.教员信息表(TEACHER)
列名
数据类型
可否为空
说明
TEACHER_ID
NUMBER(6)
NOTNULL
教员号(主键)
TEACHER_NAME
VARCHAR2(10)
NULL
教员姓名
TEACHER_XL
VARCHAR2(10)
NULL
教员学历
TEACHER_DATE_START
DATE
NULL
开始教的时间
TEACHER_EVALUATION
VARCHAR2(40)
NULL
教员评价
3.员工基本状况表PERSONNEL
列名
数据类型
可否为空
说明
EMP_NO
NUMBER(6)
NOTNULL
员工号(主键)
EMP_NAME
VARCHAR2(10)
NULL
员工姓名
DEPT_ID
NUMBER(3)
NULL
所在部门号(外部键),指向部门信息表DEPT_ID
EMP_XL
VARCHAR2(10))
NULL
学历
EMP_GENDER
VARCHAR2
(2)
NULL
性别
EMP_BIRTHDAY
DATE
NULL
生日
EMP_HOMETOWN
VARCHAR2(8)
NULL
籍贯
EMP_COUNTRY
VARCHAR2(10)
NULL
国家
EMP_NATION
VARCHAR2(10)
NULL
名族
EMP_ID
NUMBER(20)
NULL
身份证号
EMP_MARRIAGE
VARCHAR2(10)
NULL
婚姻情况
EMP_HEALTH
VARCHAR2(20)
NULL
健康情况
EMP_STARTWORK
DATE
NULL
参加工作时间
EMP_STATE
VARCHAR2(10)
NULL
员工状态
EMP_STATE_DATE
DATE
NULL
状态时间
EMP_HOMEADDRESS
VARCHAR2(10)
NULL
家庭住址
EMP_TELENO
NUMBER(10)
NULL
联系电话
EMP_EMAIL
VARCHAR2(20)
NULL
联系E-mail地址
JOB_ID
NUMBER(3)
NULL
工作岗位代号(外部键),指向工作岗位情况表JOB_ID
4.部门信息表DEPT
列名
数据类型
可否为空
说明
DEPT_ID
NUMBER(6)
NOTNULL
部门代号(主键)
DEPT_NAME
VARCHAR2(10)
NULL
部门名称
DEPT_MANAGER
NUMBER(6)
NULL
部门经理号(外部键),指向员工基本状况表EMP_NO
DEPT_VICEMANAGER
NUMBER(6)
NULL
部门副经理代号(外部键),指向员工基本状况表的EMP_NO
5.员工成绩表SCORE
列名
数据类型
可否为空
说明
EMP_NO
NUMBER(6)
NOTNULL
员工号(外部键),指向员工基本状况表EMP_NO
COURSE_ID
NUMBER(3)
NULL
课程号(外部键),指向课程表COURSE
S_DATE
DATE
NULL
上课时间
S_PLACE
VARCHAR2(10)
NULL
上课地点
TEACHER_ID
NUMBER(6)
NULL
教师号(外部键),指向教师表TEACHER
SCORE_1
NUMBER(3)
NULL
成绩1
SCORE_2
NUMBER(3)
NULL
成绩2
SCORE_NOTES
VARCHAR2(10)
NULL
教师评语
PASS
NUMBER(6)
NULL
通过否(0,1表示)
6.工作岗位表JOB
列名
数据类型
可否为空
说明
JOB_ID
NUMBER(3)
NOTNULL
工作岗位代号(主键)
JOB_NAME
VARCHAR2(10)
NULL
工作岗位名称
JOB_POWER
VARCHAR2(20)
NULL
岗位权利范围
7.培训需求表COURSE_NEED
列名
数据类型
可否为空
说明
COURSE_ID
NUMBER(3)
NOTNULL
课程号(外部键),指向课程表COURSE_NO
COURSE_NEED
NUMBER(6)
NULL
课程需要者(外部键),指向员工基本状况表
8.企业培训计划表COURSE_AVAILABLE
列名
数据类型
可否为空
说明
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_PERSONNUMER
NUMBER
(2)
NULL
上课的人数
COURSE_PLACE
VARCHAR2(10)
NULL
上课的地点
9.个人培训计划表PERSONNEL_PLAN
列名
数据类型
可否为空
说明
EMP_NO
NUMBER(6)
NOTNULL
员工号(主键),员工号(外部键),指向员工基本状况的EMP_NO
COURSE_ID
NUMBER(3)
NOTNULL
课程号(外部键),指向课程表COURSE_NO
COURSE_DATE_BEGIN
DATE
NULL
课程开始时间
COURSE_DATE_OVER
DATE
NULL
课程结束时间
10.课程评价表COURSE_EVALUATION
列名
数据类型
可否为空
说明
COURSE_ID
NUMBER(3)
NOTNULL
课程号(外部键),指向课程表COURSE_NO
EVALUATION_DATE
DATE
NULL
评价时间
EVALUATION
VARCHAR2(40)
NULL
评价内容
11.培训资源信息表TM_RESOURCE
列名
数据类型
可否为空
说明
RESOURCE_ID
NUMBER(3)
NOTNULL
资源代号(主键)
RESOURCE_NAME
VARCHAR2(10)
NULL
资源名称
RESOURCE_MARK
NUMBER
(1)
NULL
资源状况标记
RESOURCE_PRICE
NUMBER(5,2)
NULL
资源价钱
RESOURCE_QUANTITY
NUMBER
(2)
NULL
资源数量
RESOURCE_REM
VARCHAR2(40)
NULL
备注
12.教材信息表BOOK
列名
数据类型
可否为空
说明
BOOK_ID
NUMBER(3)
NOTNULL
教材编号(主键)
BOOK_NAME
VARCHAR2(20)
NULL
教材名称
BOOK_AUTHOR
VARCHAR2(10)
NULL
作者
BOOK_STATE
DATE
NULL
教材状态标记
BOOK_COURSE_ID
NUMBER
(1)
NULL
相应课程编号(外部键),指向课程表中的COURSE_ID
BOOK_QUANTITY
NUMBER(3)
NULL
教材数量
BOOK_PRICE
NUMBER(5,2)
NULL
教材价钱
13.管理TMS系统的用户口令表USER_PSWD
列名
数据类型
可否为空
说明
TMS_USER
VARCHAR2(20)
NOTNULL
用户名(主键)
TMS_PSWD
VARCHAR2(10)
NOTNULL
口令
五.源代码及查询截图(包括程序流程图,数据库链接方法);
1.数据库的内容显示
为了使用户在打开某项管理的时候能直接看到对应的数据库表的内容,在程序中使用了CListCtrl类,每次初始化对话框的时候首先执行一次数据库查询操作,将查到的所有结果都显示在对话框的CListCtrl控件中,方便用户的操作管理。
CListCtrl类的主要成员函数使用方法说明如下:
IntInsertColumn(intnCol,constLVCOLUMN*pColumn);
其功能是在ListControl对象中新增列,其中nCol表示新增列的序号,pColumn代表列名。
BOOLSetColumnWidth(intnCol,intcx);
其功能是设定列的宽度,其中nCol表示列序号,cx表示列宽度。
IntInsertItem(intnItem,LPCTSTRlpszItem);
其功能是增加表项,nItem表示表项的序号,lpszItem表示表项第一个位置的内容。
BOOLSetItemText(intnItem,intnSubItem,LPTSTRlpszText);
其功能是设置表项特定位置的内容,nItem表示表项序号,nSubItem表示列位置,lpszText表示需设置的内容。
2.数据库对象的处理
由于此应用程序时给予对话框开发的,而VisualC++的特点是没新增加一个对话框资源,就为该对话框创建一个新的类,而面向对象的特点是用传统编程方法中的全局变量已不多用。
为了能够在每个对话框类中都能实现对数据库的访问,在设计程序时,采用的方法是在每一个对话框类中都增加一个成员变量m_database,用于连接到数据库,是用的方法是,每次单击按钮出现一个对话框时,在单击事件代码中完成以下操作:
●关闭本对话框与数据库的连接m_database.Close()。
●新建一个对话框类的对象CDialogNewm_new。
●为新对话框传见到数据库的连接m_new.m_database.Open(_T(“train”))。
这样新的对话框就可以直接是用刀数据库train对象的连接了,如果要提高应用程序
的模块性,也可以吧所有对数据库的操作封装到一个底层的类,然后由上层的控制类来调用这些操作,这是另一种开发的模式。
3.记录集的处理
由于使用的是MFCODBC方式访问数据库,因此可以使用师表到记录集的映射。
为了变成便捷,可以为数据库中的每一个表映射一个记录集类(从CRecordSet类继承)。
本应用程序的映射关系如下:
数据源的表与记录集类的对应关系
表格
对应记录集
PERSONNEL
CPersonSet
SCORE
CScoreSet
JOB
CJobSet
COURSE
CCourseSet
DEPT
CDeptSet
COURES_NEED
CPersonNeedSet
COURSE_AVAILABLE
CTrainPlanSet
PERSONNEL_PLAN
CPersonPlanSet
COURSE_EVALUATION
CAppriseSet
TEACHER
CTeacherSet
TM_RESOURCE
CResourceSet
BOOK
CBookSet
USER_PSWD
CLoginSet
这些记录集已经自动对应表的列绑定好,方便了以后对记录集的使用。
4.实现数据库逻辑结构的SQL语句
虽然使用了Access数据库系统,但是SQL语句也是可以用的,相对应的语句如下:
a)创建员工基本情况表格的SQL语句:
CREATTABLE"train".PRESONNEL
(
EMP_NONUMBER(6,0)NOTNULL,
EMP_NAMEVARCHAR2(10)NULL,
DEPT_IDNUMBER(3,0)NULL,
EMP_XLVARCHAR2(10)NULL,
EMP_GENDERVARCHAR2(10)NULL,
EMP_BIRTHDAYDATENULL,
EMP_HOMETOWNVARCHAR2(8)NULL,
EMP_NATIONVARCHAR2(10)NULL,
EMP_IDNUMBER(20,0)NULL,
EMP_MARRIAGEVARCHAR2
(2)NULL,
EMP_HEALTHVARCHAR2(20)NULL,
EMP_STARTWORKDATENULL,
EMP_STATEVARCHAR2(10)NULL,
EMP_STATE_DATEDATENULL,
EMP_HOMEADDRESSVARCHAR2(10)NULL,
EMP_TELENONUMBER(10,0)NULL,
EMP_EMAILVARCHAR2(20)NULL,
JOB_IDNUMBER(3,0)NULL,
CONSTRAINTPERSONNEL_EMP_NO_PKPRIMARYKEY(EMP_NO),
CONSTRAINTPERSONNEL_DEPT_ID_FKFOREIGNKEY(DEPT_ID)
REFERENCES"train"."DEPT"(DEPT_ID),
CONSTRAINTPERSONNEL_JOB_ID_FKFOREIGNKEY(JOB_ID)
REFERENCES"train"."JOB"(JOB_ID)
)
TABLESPACE"USER_DATA";
b)创建员工成绩表的SQL语句:
CREATETABLE"train".SCORE
(
EMP_NONUMBER(6)NOTNULL,
COURSE_IDNUMBER(3)NULL,
S_DATEDATENULL,
S_PLACEVARCHAR2(10)NULL,
TEACHER_IDNUMBER(6)NULL,
SCORE_1NUMBER(3)NULL,
SCORE_2NUMBER(3)NULL,
SCORE_NOTESVARCHAR2(10)NULL,
PASSNUMBER
(1)NULL,
CONSTRAINTSCORE_EMP_NO_PFPRIMARYKEY(EMP_NO),
CONSTRAINTSCORE_COURSE_ID_FKFOREIGNKEY(COURE_ID)
REFERENCES"train"."COURESE"(COURSE_ID),
CONSTRAINTSCORE_TEACHER_ID_FKFOREIGNKEY(TEACHER_ID)
REFERENCES"train"."TEACHER"(TEACHER_ID)
)
TABLESPACE"USER_DATA";
c)创建课程表的SQL语句:
CREATETABLE"train".COURSE
(
COURSE_IDNUMBER(3)NULL,
SUBJECTVARCHAR2(10)NULL,
COURSE_CNAMEVARCHAR2(20)NULL,
COURSE_ENAMERVARCHAR2(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_PKPRIMARYKEY(COURSE_ID)
)
TABLESPACE"USER_DATA";
d)创建4.工作岗位状况表的SQL语句:
CREATETABLE"train".JOB
(
JOB_IDNUMBER(3)NOTNULL,
JOB_NAMEVARCHAR2(10)NULL,
JOB_POWERVARCHAR2(20)NULL,
CONSTRAINTJOB_JOB_ID_PKPRIMARYKEY(JOB_ID)
)
TABLESPACE"USER_DATA";
e)创建部门信息表的SQL语句:
CREATETABLE"train".DEPT
(
DEPT_IDNUMBER(3)NOTNULL,
DEPT_NAMERVARCHAR2(10)NULL,
DEPT_MANAGERNUMBER(6)NULL,
DEPT_VICEMANAGERNUMBER(6)NULL,
CONSTRAINTDEPT_DEPT_ID_PKPRIMARYKEY(DEPT_ID),
CONSTRAINTDEPT_MANAGER_FKFOREIGNKEY(DEPT_MANAGER)
REFERENCES"train"."PERSONNEL"(EMP_NO),
CONSTRAINTDEPT_VICEMANAGER_FKFOREIGNKEY
(DEPT_VICEMANAGER)
REFERENCES"train"."PERSONNEL"(EMP_N0)
)
TABLESPACE"USER_DATA";
f)创建培训需求表的SQL语句:
CREATETABLE"train".COURSE_NEED
(
COURSE_IDNUMBER(3)NOTNULL,
COURSE_NEED
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 员工 管理 系统 数据库