数据库课程设计报告(员工培训管理系统)Word下载.doc
《数据库课程设计报告(员工培训管理系统)Word下载.doc》由会员分享,可在线阅读,更多相关《数据库课程设计报告(员工培训管理系统)Word下载.doc(27页珍藏版)》请在冰豆网上搜索。
1.4数据流程图
员工培训管理系统的数据流程如图2所示。
2数据库设计
2.1数据库需求分析
根据系统数据流程图,我们可以列出以下系统所需的数据项和数据结构:
l课程设置:
编号、名称、简介、所用教材、上课地点、人数、上课时间
l选课结果:
记录编号、员工、课程、考核成绩、评价、考核日期。
所需的外部数据支持:
l人员信息:
员工号、密码、权限、姓名、部门、当前状态等。
l部门设置:
部门编号、名称等。
2.2数据库概念结构设计
图3是本系统所需数据的E-R模型图。
图3、培训管理E-R图
2.3数据库逻辑结构设计
根据E-R图和数据库需求分析,培训管理系统需要创建2个主要的数据表:
课程设置表和培训安排表。
对应这两个表中的个别代码字段,又需要创建2个代码表:
课程状态代码表和考核评价代码表。
这4个数据表的结构如表1至表4所示。
员工信息和部门信息作为外部数据支持可以使用人事管理系统中建立的数据表,如表5和表6所示。
表1COURSE课程设置表
字段名
数据类型
是否可空
说明
ID
课程编号
NAME
课程名
TEACHER
任课教师(外部关键字PERSON)
INTRO
课程简介
BOOK
所用教材
CLASSROOM
上课地点
NUMBER
课程上限人数
CLASSTIME
开课时间
STATE
状态(外部关键字COURSE_STATE)
表2TRAINING_PLAN培训安排表
编号
PERSON
员工(外部关键字PERSON)
COURSE
课程
SCORE
成绩
APPRAISEMENT
评价(外部关键字APPRAISEMENT)
EXAM_DATA
考核日期
表3COURSE_STATE课程状态代码表
CODE
状态代码
DESCRIPTION
描述
表4APPRISEMENT考核评价代码表
评价代码
表5PERSON员工个人信息表
员工号(主关键字)
PASSWD
密码
AUTHORITY
用户权限
姓名
SEX
性别
BIRTHDAY
生日
DEPARTMENT
所在部门
JOB
职务
EDU_LEBEL
受教育程度
SPECIATY
专业技能
ADDRESS
家庭住址
TEL
联系电话
EMAIL
电子信箱
当前状态(T-员工,F-非员工)
REMARK
备注
表6DEPARTMENT部门信息表
部门编号
部门名称
MANAGER
部门经理
简介
2.4数据库的建立
2.4.1数据库的建立
2.4.2初始数据的输入
本系统中,初始数据包括课程状态代码和评价代码,如表7至表8所示。
表7课程状态代码
代码
选课中
1
进行中
2
已结束
表8考核评价代码
未考核
不及格
及格
3
良好
4
优秀
(以下各部分请设计者完成)。
3各功能模块的设计与实现
3.1功能说明
本管理系统主要分为两大部分:
培训管理应用程序和学员选课应用程序。
培训管理应用程序主要用于培训中心的管理人员对培训课程和培训情况进行维护。
此应用程序主要包括四项功能:
课程设置、选课结果查询修改、成绩输入、培训成绩统计报表。
另外,系统需要有登录窗口(用于权限认证)和导航窗口(用于连接各项功能)。
学员选课应用程序包括个人信息修改、选课和成绩查询三项功能。
(一)培训管理管理应用程序功能说明
(二)学员选课应用程序功能说明
3.2用户界面设计
完成数据库创建和功能说明以后,我们可以进行下一步工作,既设计用户界面。
1、培训管理应用程序登录窗体的创建
2、培训管理应用程序主窗体的创建
3、课程设置窗体的创建
4、选课结果查询窗体的创建
5、学员名单报表窗体的创建
6、考核评定结果窗体的创建
7、培训统计窗体的创建
8、培训成绩报表窗体的创建
9、学员选课客户端界面的创建
3.3各功能模块的实现
1、培训管理应用程序数据模块的创建
2、培训管理应用程序登录程序的实现
3、课程设置模块的实现
4、选课结果查询的实现
5、学员名单报表的实现
6、考核评定结果的实现
7、培训统计的实现
8、培训成绩报表的实现
9、学员选课客户端应用程序的创建
4系统实现
基本方法:
通过一个ado控件与数据库进行连接,一个datagrid控件显示表信息。
1edit控件对应表的字段。
button按钮对应“查询”、“更新”、“删除”和“添加”。
4.1登陆界面:
//登陆按钮功能
/*
1.首先连接数据库
2.通过sql语句获得PERSON表的信息,得到与输入账号名相对应的账号密码(sql.Format("
select*frompersonwhereP_ID='
%s'
andP_PASSWD='
"
this->
m_id,this->
m_password);
)
3.判断输入的密码与从数据库中得到的密码是否相一致
4.得到与输入账号名相对应的账号权限
5.判断用户的身份,选择进入不同的功能界面
*/
voidCEmploymentDlg:
:
OnButton1()
{this->
UpdateData(true);
//连接数据库
UpdateData(TRUE);
_ConnectionPtrm_pConnection;
:
CoInitialize(NULL);
try{
m_pConnection.CreateInstance("
ADODB.Connection"
);
_bstr_tstrConn="
Provider=SQLOLEDB.1;
IntegratedSecurity=SSPI;
PersistSecurityInfo=False;
InitialCatalog=Employeetrainingmanagementsystem;
DataSource=520-002"
;
m_pConnection->
Open(strConn,"
"
adModeUnknown);
}
catch(_com_errore)
{
:
CoUninitialize();
AfxMessageBox(e.ErrorMessage());
return;
//定义sql查询
CStringsql;
variant_tRecordsAffected;
_RecordsetPtrm_pRecordset;
sql.Format("
//执行SQL查询
m_pRecordset=m_pConnection->
Execute((_bstr_t)sql,&
RecordsAffected,adCmdText);
//如果找到
if(!
m_pRecordset->
adoEOF)
RecordsAffected=m_pRecordset->
GetCollect("
p_authority"
CStringauthority=(LPCSTR)_bstr_t(RecordsAffected);
//inti=(int)RecordsAffected.iVal;
if(authority=="
employee"
){
this->
ShowWindow(SW_HIDE);
id=this->
m_id;
employerdlg;
dlg.DoModal();
ShowWindow(SW_SHOW);
}else{
teacherdlg;
}
elseMessageBox("
用户名或密码有误"
}
//退出按钮功能,直接调用exit(0)退出整个程序
OnButton2()
{exit(0);
1.这个界面主要是有三个按钮,用来选择进入不同的功能区
voidemployer:
{
this->
//当前界面隐藏
employer_chiocedlg;
//需要添加该C***Dlg.h头文件,否则编译通不过
dlg.DoModal();
employer_scoredlg;
OnButton3()
employer_informationdlg;