数据库人力资源课程设计.docx
《数据库人力资源课程设计.docx》由会员分享,可在线阅读,更多相关《数据库人力资源课程设计.docx(18页珍藏版)》请在冰豆网上搜索。
数据库人力资源课程设计
人力资源数据库设计
1设计题目
人力资源数据库设计
2需求分析
随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企人事信息的管理势在必行。
人事管理是现代企业管理工作不可缺少的一部分,是适应现企业管理尺度的要求、推动企业劳动人事管理走向科学化、规范化的必要条件。
只有人事管理规范了,才能在其他方面更好的发展。
为了适应现代企业或公司经营发展的需要,人事管理也从以前的手工管理逐渐被规范化的管理信息系统所代替。
众所周知,当今社会为信息社会,世界已进入在计算机信息管理领域中激烈竞争的年代,因此,加强人事管理在单纯依靠以手工管理的方法,不仅需要耗用大量的人力、物力、财力,而且工作效率低,漏洞和错误众多,难以达到预期的目标,为了提高企业工作效率、保证企业人事管理质量、快速而且准确地为企业制定好的经营方针与决策,在有限的时间内完成工作任务及达到预期的目的,因此,人力资源管理系统成为了一个企业必不可少的管理系统,建立人力资源数据库将是企业管理更加容易。
3可行性分析
3.1技术可行性
开发一个小型人力资源管理系统,涉及到的技术问题不是很多,主要用到的技术就是数据库和一门可视化开发的编程语言。
在这方面,数据库主要是用来存放数据,就目前主流的数据库来看,可以考虑采用MicrosoftSQLServer数据库系统,在前台开发编程方面,采用Vc++中的MFC来进行友好界面的设计。
3.2经济可行性
作为课程设计的一个课题,对系统的要求不是很高,只需要实现一些相对比较简单的操作,不需要直接拿出来交给某个公司使用,因此,其开发的费用比较低,完全可以进行研究设计。
3.3操作可行性
该系统在操作上很简单,使用者完全可以没有专业的计算机知识。
启动系统后进入选择界面,选择想要进行的操作。
用户可以对信息进行浏览、删除、修改、添加等操作,方便、快捷。
4概要设计
4.1系统结构图
图1
4.2程序流程图:
图2添加信息程序流程图
图3删除信息程序流程图
图4查询信息程序流程图
4.3数据库设计
4.3.1数据库设计过程
目前设计数据库主要采用的是以逻辑数据库设计和物理数据库设计为核心的规范设计方法。
其中逻辑数据库是根据用户要求和特定数据库管理系统的具体特点,以数据库设计理论为依据,设计数据库的全局逻辑结构和每个用户的局部逻辑结构。
物理数据库设计是在逻辑结构确定之后,设计数据库的存储结构及其他实现细节。
各种规范设计方法在设计步骤上存在差别,各有不同。
一般分为以下六个阶段:
(1)需求分析阶段:
进行数据库设计首先必须准确了解与分析用户需要(包括数据与处理)。
需求分析是整个设计过程的基础,需求分析是否充分与准确,决定整个数据库构建的速度与质量。
(2)概念结构设计阶段:
概念设计是整个数据库设计的关键,他通过对用户需求进行综合,归纳与抽象,形成一个独立于具体DBMS的概念模型。
(3)逻辑结构设计阶段:
逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。
(4)数据库物理设计阶段:
数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
(5)数据库实施阶段:
在数据库实施阶段,设计人员运用DBMS提供的数据语言及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据录入,并进行试运行。
(6)数据库运行和维护阶段:
数据库系统经过试运行后,即可投入正式运行。
在数据库运行过程中必须不断地对其进行评价、调整与修改。
4.3.2人力资源数据库设计
新建一个数据库:
创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。
创建一个数据库结构的过程被认为是数据模型设计。
本系统采用SQLServer2008数据库为数据库开发工具,建立一个数据库人力资源管理,其中包括多个表,并为之定义了相应的关系以适应本系统所需的功能。
下面介绍各表。
(一)系统各主要表的主要功能及设计方法
(1)部门信息表:
部门表主要用于保存部门信息。
由于系统需要对部门进行添加、删除、修改、查询等操作,所以必须要有一个表,用于存储各个部门的名称、其上级主管部门,部门描述等信息,给这个表取名为:
部门信息。
其中部门编号设置为主键,不允许为为空,其他字段都可以为空。
具体设计如下:
表1部门信息表
字段名
数据类型
长度
允许空
部门编号
Varchar
10
部门名称
Varchar
10
√
部门经理
Varchar
10
√
部门人数
Int
10
√
联系电话
Varchar
20
√
(2)职位信息表:
用于存储公司各部门的职位信息
由于公司需要对各部门中的职位分配进行总的规划及管理,需要建立各部门信息表,用于存储当前公司各部门都有什么职位及在职人员名单。
信息类别基本相同。
取名为职位信息表。
部门编号设置为主键,不允许为空,其他字段可以为空。
具体设计如下:
表2职位信息表
列名
数据类型
长度
允许空
职位编号
Varchar
10
职位名称
Varchar
10
√
职位级别
Varchar
10
√
工资
Money
10
√
(3)员工信息表:
员工信息表主要用于保存员工的基本信息。
由于系统需要对员工进行管理,其中包括对员工的添加、删除、修改员工的基本信息,查询员工情况,所以需要有一个员工信息表表名为:
员工信息表,编号设置为主键,不允许为空,其他字段都可以为空。
具体设计如下:
表3员工信息表
列名
数据类型
长度
允许空
员工编号
Varchar
10
员工姓名
Varchar
10
√
性别
Varchar
10
√
年龄
Int
10
√
专业
Varchar
10
√
学历
Varchar
10
√
联系电话
Varchar
20
√
所属部门
Varchar
10
√
职位
Varchar
10
√
曾工作单位
Varchar
10
√
工作时间
Varchar
10
√
成绩
Varchar
10
√
4.4数据库概念模型设计
在需求分析的基础上设计出能够满足用户需求的各种实体以及它们之间的关系。
下面例举出各实体的实体图及实体关系E-R图:
1员工:
编号、姓名、性别、年龄……
图5员工实体图
2职位:
职位编号,职位名称,职位级别,工资
图6职位实体图
3部门:
部门编号,部门名称,部门经理,部门人数,联系电话
图7部门实体图
4人力资源数据库实体E-R图
图8实体E-R图
5详细设计
5.1主界面设计
主界面是应用程序的主体,也是应用程序的门面,它设计的好坏将直接影响用户的第一感觉,如果界面设计得很糟糕,则不论应用程序的其他部分设计得多么细致,用户都不能或不愿意使用它。
所以,在设计界面时应保持界面的简洁性和明确性。
人力资源管理系统的界面便遵循了这一原则,其运行结果如图所示。
图9主界面
5.2添加信息管理设计
该模块主要是进行员工信息的添加和部门信息的添加,进入如下界面后选择需要添加的信息,进入下一个界面,然后根据界面提示输入员工信息或者部门信息按
确定键完成添加工作。
图10添加信息界面
实现信息添加的代码如下:
1.添加员工信息:
vSQL.Format("INSERTINTO员工信息(员工编号,员工姓名,性别,年龄,学历,专业,联系电话,所属部门,职位,曾工作单位,工作时间,成绩)VALUES('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')",id,name,sex,age,major,eduback,tele,dept,position,unit,time,result);
2.添加部门信息:
vSQL.Format("INSERTINTO部门信息(部门编号,部门名称,部门经理,部门人数,联系电话)VALUES('%s','%s','%s','%d','%s')",Deptid,Deptname,Deptmanager,atoi(Deptnumber),Depttele);
5.3删除信息管理设计
该模块主要是进行员工信息的删除和部门信息的删除,进入如下界面后选择需要删除的信息,进入下一个界面,然后根据界面提示输入员工编号或者部门编号完成删除工作。
图11删除信息界面
实现删除信息代码如下:
1.删除员工信息:
vSQL.Format("DeleteFrom员工信息Where员工编号='%s'",id);
2.删除部门信息:
vSQL.Format("DeleteFrom部门信息Where部门编号='%s'",Deptid);
5.4查询信息管理设计
该模块用于查询员工信息和部门信息,计入如下界面后选择需要进行的操作,输入相关信息进行查询操作,对应的查询结果将会显示出来。
图12查询信息界面
实现查询信息代码如下:
1.查询员工信息:
vSQL.Format("Select*From员工信息Where员工编号='%s'",id);
//m_AdoConn.ExecuteSQL(_bstr_t(vSQL));
m_AdoConn.GetRecordSet(_bstr_t(vSQL));
id=(LPCTSTR)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("员工编号");
name=(LPCTSTR)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("员工姓名");
sex=(LPCTSTR)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("性别");
age=(LPCTSTR)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("年龄");
major=(LPCTSTR)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("专业");
eduback=(LPCTSTR)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("学历");
tele=(LPCTSTR)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("联系电话");
dept=(LPCTSTR)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("所属部门");
position=(LPCTSTR)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("职位");
unit=(LPCTSTR)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("曾工作单位");
time=(LPCTSTR)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("工作时间");
result=(LPCTSTR)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("成绩");
id.TrimRight();
name.TrimRight();
sex.TrimRight();
age.TrimRight();
major.TrimRight();
eduback.TrimRight();
tele.TrimRight();
dept.TrimRight();
position.TrimRight();
unit.TrimRight();
time.TrimRight();
result.TrimRight();
CStringmsg;
msg.Format("员工编号:
%s,员工姓名:
%s,性别:
%s,年龄:
%s,专业:
%s,学历:
%s,联系电话:
%s,所属部门:
%s,职位:
%s,曾工作单位:
%s,工作时间:
%s,成绩:
%s",id,name,sex,age,major,eduback,tele,dept,position,unit,time,result);
2.查询部门信息:
voidCDeptMessage:
:
sql_select()
{
ADOConnm_AdoConn;
m_AdoConn.OnInitADOConn();
vSQL.Format("Select*From部门信息Where部门编号='%s'",Deptid);
//m_AdoConn.ExecuteSQL(_bstr_t(vSQL));
m_AdoConn.GetRecordSet(_bstr_t(vSQL));
Deptid=(LPCTSTR)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("部门编号");
Deptname=(LPCTSTR)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("部门名称");
Deptmanager=(LPCTSTR)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("部门经理");
Deptnumber=(LPCTSTR)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("部门人数");
Depttele=(LPCTSTR)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("联系电话");
Deptid.TrimRight();
Deptname.TrimRight();
Deptmanager.TrimRight();
Deptnumber.TrimRight();
Depttele.TrimRight();
CStringmsg;
msg.Format("部门编号:
%s,部门名称:
%s,部门经理:
%s,部门人数:
%d,联系电话:
%s",Deptid,Deptname,Deptmanager,atoi(Deptnumber),Depttele);
AfxMessageBox(msg);
m_AdoConn.ExitConnect();//断开与数据库的连接
}
5.5数据库详细设计
员工信息表包括员工编号,员工姓名,性别,年龄,专业,学历,联系电话,所属部门,职位,曾工作单位,工作时间,成绩,其中员工编号为主码,具体设计如下图:
图13员工信息表
部门信息表包括部门编号,部门名称,部门经理,部门人数,联系电话,其中部门编号为主码,具体设计如下:
图14部门信息表
职位信息表包括职位编号,职位名称,职位级别和工资,其中职位编号为主码,具体设计如下:
图15职位信息表
6物理实现
6.1实现添加信息操作
向数据库中添加一个员工的信息,信息如下:
员工编号:
0005,员工姓名:
张三,性别:
男,年龄:
22,专业:
计算机,学历:
大学本科,联系电话:
027334883,所属部门:
0001,职位:
0004,曾工作单位:
无,工作时间:
无,成绩:
无。
操作界面如下图:
图16添加员工信息
确认后数据库中保存添加的信息,结果如下:
图17添加员工信息结果
向数据库中添加一个部门,信息如下:
部门编号:
0007,部门名称:
外联部,部门经理:
0825,部门人数:
12,联系电话:
027445657。
.
图18添加部门信息
数据库中添加内容如下:
图19添加部门信息结果
6.2实现删除信息操作
删除数据库中员工编号为0005的员工信息,操作如下:
图20删除员工信息
按确定键后成功删除员工信息。
删除部门信息,按如下操作删除部门编号为0007的部门的所有相关信息:
图21删除部门信息
按确定键后,操作完成,成功删除信息。
6.3实现信息的查询
查询某员工的相关信息,可以通过以下操作进行,例如查询员工编号为0818的员工的基本信息:
图22查询员工信息
按确定键后,显示结果如下:
图23查询员工信息结果
查询部门信息,可通过类似于查询员工信息的操作进行,如查询部门编号为0001的部门的相关信息,查询结果如下:
图24查询部门信息结果
7小结与体会
本次的课程设计到现在已经结束了,通过这次的课程设计,我学到了多东西,也发现了自己很多的不足。
这个过程当中,是我们运用学习成果,检验学习成果,运用学习成果的过程,把课堂上学到的系统化的知识,尝试性的应用于实际设计工作中。
从理论的高度对设计工作的现代化提出一些有针对性的建议和设想。
检验学习成果,看一看课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。
对我们这个专业的学生来说,实际能力的培养至关重要,而这种实际能力的培养单靠课堂教学是远远不够的,必须从课堂走向实践。
这次的课程设计给我们提供了一个很好的机会。
在这次的课程设计中,我发现我的知识还是不够扎实,有一些想法都不能够很好的去实现,知识的衔接不够紧密,所学的知识还不够丰富,不足以完成一个课程设计,还必须自学一些相关的知识,因此对自学能力的要求也比较高,通过这次的课程设计更加坚定了我学好科学知识的决心,没有扎实的科学知识,要完成一项设计是非常难的,我们应该把握好现在的美好时光,努力学好我们的专业课。
8参考文献
1.数据库系统简明教程高等教育出版社2004年版主编王珊
2.VisualC++6.0数据库开发实例人民邮电出版社同志工作是编著
3.王晟.VisualBasic数据库开发经典案例分析.第1版.清华大学出版社
4.赛奎春.SQLServer数据库开发实例解析.第1版.机械工业出版社
5.张水平.SQLServer数据库应用技术.第1版.西北工业大学出版社