信息管理系统课设人力资源管理系统.docx
《信息管理系统课设人力资源管理系统.docx》由会员分享,可在线阅读,更多相关《信息管理系统课设人力资源管理系统.docx(24页珍藏版)》请在冰豆网上搜索。
信息管理系统课设人力资源管理系统
辽宁工业大学
《管理信息系统设计专题》报告
题目:
人力资源管理系统
院(系):
软件学院
专业班级:
软件技术081班
学号:
081404027
学生姓名:
南芳苑
指导教师:
翟宝峰
教师职称:
副教授
起止时间:
2010.06.28-2010.07.09
设计任务及评语
院(系):
软件学院教研室:
软件教研室
学号
081404027
学生姓名
南芳苑
专业班级
软件技术081班
设计题目
人力资源管理系统
设计任务
要求根据管理信息系统及数据库设计原理,按照系统设计的步骤和规范,完成各阶段的设计内容。
需求分析具体实际,数据流图、数据字典、关系模型要规范。
在sqlserver2000上实现数据库的模型建立(数据库、表的建立、完整性约束的实现、关系图、必要的存储过程及触发器的编程),并用VB实现简单的应用程序。
设计过程中,要严格遵守设计的时间安排,听从指导教师的指导。
正确地完成上述内容,规范完整地撰写出设计报告。
指导教师评语及成绩
成绩:
指导教师签字:
年月日
目录
第1章设计目的与要求1
1.1设计目的1
1.2设计环境1
1.3主要参考资料1
1.4设计内容及要求1
第2章设计内容2
2.1数据库设计2
2.1.1需求分析2
2.1.2概念设计6
2.1.3逻辑设计7
2.1.4物理设计8
2.1.5数据库实现10
2.2程序设计13
2.2.1概要设计13
2.2.2程序实现14
第3章设计总结16
参考文献17
第1章设计目的与要求
1.1设计目的
本次课程设计的主要目的是:
(1)、掌握运用管理系统及数据库原理知识进行系统分析和设计的方法;
(2)掌握关系数据库的设计方法;(3)掌握SQLServer2000技术应用;(4)掌握简单的数据库应用程序编写方法;(5)理解C/S模式结构。
1.2设计环境
系统开发平台:
VisualBasic6.0。
数据库管理平台:
SQLServer2000。
运行平台:
WindowsXP/Windows2000。
1.3主要参考资料
1.《管理信息系统》黄梯云高等教育出版社
2.《数据库系统概论》萨师煊高等教育出版社
3.《SQLServer2000数据库应用系统开发技术》朱如龙编,机械工业出版社。
4.《SQLServer2000数据库应用系统开发技术实验指导》朱如龙编,机械工业出版社
1.4设计内容及要求
一、内容
1.要求根据管理信息系统及数据库设计原理,按照数据库系统设计的步骤和规范,完成各阶段的设计内容。
2.需求分析具体实际,数据流图、数据字典、关系模型要正确规范
3.在sqlserver2000上实现设计的数据库模型。
4.对应用程序进行概要设计。
5.用VB实现简单的应用程序编写。
二、要求
设计过程中,要严格遵守课程设计的时间安排,听从指导教师的指导。
正确地完成上述内容,规范完整地撰写出课程设计报告。
第2章设计内容
2.1数据库设计
2.1.1需求分析
需求分析是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。
人力资源管理系统使得管理者快速高效地完成企业日常事务中的人事工作,降低了人力资源管理成本,使管理者能集中精力在企业战略目标,通过软件及时收集与整理分析大量的人力资源管理数据,以提高组织目标实现的可能性。
人力资源管理系统的业务流程图具体实现目标如图2.1:
图2.1人力资源管理系统的业务流程图
人力资源管理系统用户通过输入部门、人事调动、员工惩罚等基本信息,由系统自行生成相应的统计数据及各类统计报表以供用户查询、打印,另外用户还可以对这些基本信息进行定期的更新和删除,人力资源管理系统的数据流程图具体实现目标如图2.2:
图2.2人力资源管理系统的数据流程图
数据字典是一种用户可以访问的记录数据库和应用程序元数据的目录。
主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典。
被动数据字典是指修改时必须手工更新其内容的数据字典,数据字典是由数据项、数据结构、数据流、数据存储和处理过程组成的。
数据结构的定义
1.部门的数据结构:
数据结构名称:
部门
含义说明:
数据库中用来存储部门的信息
数据结构组成:
部门编号+部门名称+部门主管+部门地址+部门电话+编码级
2.人事调动的数据结构
数据结构名称:
人事调动
含义说明:
数据库中用来调动人事信息的
数据结构组成:
员工编号+员工姓名+原职称+现职称+原部门+现部门
3.员工惩罚的数据结构
数据结构名称:
员工惩罚
含义说明:
数据库中用来表示员工犯错的惩罚任溶
数据结构组成:
员工编号+员工姓名+惩罚项目+惩罚金额+日期+备注
数据流的定义
1.部门信息的数据流
数据流名称:
部门信息
简要说明:
对职员所在的工作岗位进行标记
数据流来源:
无
数据流去向:
P6
数据结构:
部门编号+部门名称+部门主管+部门地址+部门电话+编码级次
2.人事调动的的数据流
数据流名称:
人事调动
简要说明:
对职员进行工作岗位的调动
数据流来源:
D2
数据流去向:
总经理
数据结构:
员工编号+员工姓名+原职称+现职称+原部门+现部门
3.员工惩罚的数据流
数据流名称:
员工惩罚
简要说明:
对职员所发的错误进行相应的处罚
数据流来源:
公司
数据流去向:
P8
数据结构:
员工编号+员工姓名+惩罚项目+惩罚金额+日期+备注
数据项的定义如表2.1所示:
表2.1数据项的定义
数据项名称
数据项含义说明
别名
数据类型
长度
是否为空
部门编号
为每个部门设置一个代号
无
Varchar
12
否
本级编号
为每个级设置一个代号
无
Varchar
2
否
部门名称
部门的称呼
无
Varchar
20
否
部门全称
部门的官方说法
无
Varchar
200
否
部门主管
主管部门的人
无
Varchar
10
是
部门地址
部门在什么地方
无
Varchar
50
是
部门电话
部门的电话号码
无
Varchar
30
是
编码级次
编码的等级
无
Int
4
否
员工编号
为每个职员设置一个代号
无
Varchar
5
是
员工姓名
职员的称呼号
无
Varchar
10
是
原部门
原来部门的称呼
无
Varchar
200
是
现部门
现在部门的称呼
无
Varchar
200
是
原职务
原来的职务称呼
无
Varchar
20
是
现职务
现在职务的称呼
无
Varchar
20
是
登记人
做记录的人
无
Varchar
30
是
调动时
调动职务的时间
无
Datetime
8
是
惩罚金额
惩罚的具体金额
无
Varchar
8
是
日期
惩罚的时间
无
Datetime
8
是
备注
其他
无
Text
16
是
2.1.2概念设计
概念结构设计的任务是在需求分析阶段产生的需求说明书的基础上,按照特定的方法吧它们抽象为一个不依赖与任何具体及其的数据模型,即概念模型。
描述概念模型的有力工具是E-R图。
E-R模型是一个面向问题的概念模型,即用简单的图形方式描述现实世界中的数据,人力资源管理系统整体E—R图如图2.3所示:
图2.3人力资源管理系统E—R图
部门包括部门编号、部门名称、部门主管、部门地址、部门电话、编码级次等,如图2.4所示:
图2.4部门E—R图
人事调动包括员工编号、员工姓名、原职称、现职称、原部门、现部门等,如图2.5所示:
图2.5人事调动E—R图
员工惩罚包括员工编号、员工姓名、惩罚项目、惩罚金额、日期、备注等,如图2.6所示:
图2.6员工惩罚E—R图
在E-R模型中,信息由实体型,实体属性和实体间的联系概念单元来表示。
本课设企业营销管理系统数据库中大致包括20张表,其中包括了部门管理,工作类型管理,职务类型管理,文化程度管理,考核项目管理等功能模块.
2.1.3逻辑设计
逻辑设计就是把概念设计得到的概念数据库模式变为逻辑数据模式,它依赖于DBMS。
数据库的逻辑设计(包括各种表和表间关系)是优化关系数据库的核心。
设计好逻辑数据库,可以为优化数据库和应用程序性能打下基础。
逻辑数据库设计不好,会损害整个系统的性能。
关系模型如上所示:
每个关系模型的第一个数据项为该关系的主键。
部门(部门编号,部门名称,部门主管,部门地址,部门电话,编码级次)
人事调动(员工编号,员工姓名,原职称,现职称,原部门,现部门)
员工惩罚(员工编号,员工姓名,惩罚项目,惩罚金额,日期,备注)
描述概念模型的有力工具是E-R图。
E-R模型是一个面向问题的概念模型,即用简单的图形方式描述现实世界中的数据。
在E-R模型中,信息由实体型,实体属性和实体间的联系概念单元来表示。
在人事信息中包括民族,员工拥有民族;员工犯错后,企业惩罚员工;部门进行考核,考核后拥有考核成绩,经过考核后,公司聘用员工;公司通知考核成绩,考核成绩决定工资,公司支付工资,公司通知人事调动,人事调动改变成绩,人事信息中包括人事调动
2.1.4物理设计
数据库物理设计阶段的任务是根据具体计算机系统的特点,为给定的数据库模型确定合理的存储结构和存取方法。
数据库中的属性中有数据库文件日志文件。
1.数据库文件
文件名db_manpowerinfo_Data
位置:
D:
\data\db_manpowerinfo_Data
分配的空间(MB):
3
文件属性:
文件自动增长:
文件增长按百分比:
10
最大文件大小:
文件增长不受限
2.日志文件
文件名db_manpowerinfo_Data
位置:
D:
\data\db_manpowerinfo_Data
分配的空间(MB):
1
文件属性:
文件自动增长:
文件增长按百分比:
10
最大文件大小:
文件增长不受限
物理结构设计阶段实现的是数据库系统的内模式,它的质量直接决定了整个系统的性能。
数据库中有主键和索引。
1.主键
数据库有28张表,其中有主键的表26张其中部门表、人事调动表和员工惩罚表的主键如下所示:
部门表主键是部门编号、人事调动表的主键是员工编号、员工惩罚表的主键是员工编号。
2.索引
数据库中数据库有28张表,每张表都有索引。
其中部门表、人事调动表和员工
惩表的索引如下所示:
1)部门表
表名:
部门
选定的索引:
PK_部门
类型:
主键
索引名:
PK_部门
部门索引表的列名有部门编号、部门名称、部门主管、部门地址、部门电话和编码级次,其顺序都为升序。
2)人事调动表
表名:
人事调动表
选定的索引:
PK_人事调动表
类型:
主键
索引名:
PK_人事调动表
人事调动索引表的列名有员工编号、员工姓名、原职称、现职称、原部门和现部门,其中顺序全为升序。
3)员工惩罚表
表名:
员工惩罚表
选定的索引:
PK_员工惩罚表
类型:
主键
索引名:
PK_员工惩罚表
员工惩罚索引表的列名有员工编号、员工姓名、惩罚项目、惩罚金额、日期和备注其中顺序全为升序。
3.主键表和外键表
部门表是职称表的外键表,职称表是部门表的主键表;人事调动表是人事表的恩爱见表,人事表是人事调动表的主键表;员工惩罚表是工资表的外键表,工资表示员工惩罚表的主键表。
2.1.5数据库实现
数据库在一个管理信息系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。
本系统数据库采用SQLServer2000数据库,系统数据库名称为db_manpowerinfo_Data。
数据库db_manpowerinfo_Data中包含许多张表。
如图2.7所示:
图2.7人力资源关系图
1.存储过程
(1)创建一个名db_manpowerinfo查询部门的存储过程
CREATEPROCEDUREYUDINGAS
SELECTDepartmentIdFROMDepartment
GO
(2)创建一个名db_manpowerinfo查询人事调动的存储过程
CREATEPROCEDUREGUKEAS
SELECTStaffIdFROMTransferofpersonnel
GO
(3)创建一个名db_manpowerinfo查询员工惩罚的存储过程
CREATEPROCEDUREGUKEAS
SELECTStaffIdFROMPunishment
GO
2.触发器
触发器可以查询其他表,而且可以包含复杂的SQL语句。
它们主要用于强制服从复杂的业务规则或要求。
.
创建触发器代码如下:
CREATETRIGGERtrigger_name
ON{table|view}
[WITHENCRYPTION]
{
{{FOR|AFTER|INSTEADOF}{[INSERT][DELETE][UPDATE]}
[WITHAPPEND]
[NOTFORREPLICATION]
AS
[{IFUPDATE(column)
[{AND|OR}UPDATE(column)]
[...n]
|IF(COLUMNS_UPDATED()updated_bitmask)
column_bitmask[...n]
}]
sql_statement[...n]
}
}
为db_manpowerinfo表建立触发器部门是db_manpowerinfo中的用户定义消息,有关创建用户定义消息的更多信息,代码如下:
USEdb_manpowerinfo
GO
IFEXISTS(SELECTDepartmentIdFROMDepartment)
WHEREname='db_manpowerinfo'ANDtype='TR')
DROPTRIGGERdb_manpowerinfo
GO
CREATETRIGGERdb_manpowerinfo
ONtitles
FORINSERT,UPDATE
ASRAISERROR(department)
END
GO
创建一个触发器,当插入或更新员工称时,该触发器检查指定员工由此决定人事调动的范围内,必须引用db_manpowerinfo表。
代码如下:
USEdb_manpowerinfo
GO
IFEXISTS(SELECTStaffIdFROMTransferofpersonnel)
WHEREname='db_manpowerinfo'ANDtype='TR')
DROPTRIGGERdb_manpowerinfo
GO
CREATETRIGGERdb_manpowerinfo
ONPunishment
FORINSERT,UPDATE
AS
ROLLBACKTRANSACTION
END
GO
为db_manpowerinfo表建立触发器员工惩罚是db_manpowerinfo中的用户定义消息,有关创建用户定义消息的更多信息,代码如下:
USEdb_manpowerinfo
GO
IFEXISTS(SELECTStaffIdFROMPunishment)
WHEREname='db_manpowerinfo'ANDtype='TR')
DROPTRIGGERdb_manpowerinfo
GO
CREATETRIGGERdb_manpowerinfo
ONtitles
FORINSERT,UPDATE
ASRAISERROR(Punishment)
END
GO
触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。
2.2程序设计
2.2.1概要设计
概要设计根据以上对人力管理和人力资源管理系统系统的分析,除此之外还包括信息系统必须具备的通用功能,例如系统管理,权限设置,数据备份与恢复等。
其中每个功能都由若干相关联的子功能模块组成,如图2.8所示:
图2.8人力资源管理系统图
基本资料包括部门管理、工作类型管理、民族管理,其中部门管理包括部门编号、部门名称、部门主管、部门地址、部门电话、编码级次等
工资设置包括奖励项目设置和惩罚项目项目,惩罚项目设置包括惩罚项目和员工惩罚,其中员工惩罚包括员工编号、员工姓名、惩罚项目、惩罚金额、日期、备注等
人事管理包括人事信息管理和新员工登记,人事信息中包括人事和人事调动,其中人事调动包括员工编号、员工姓名、原职称、现职称、原部门、现部门等
2.2.2程序实现
打开界面,输入用户名密码,进入主窗体,选择基本资料管理窗体,进入部门管理窗体。
部门管理包括部门编号、部门名称、部门主管、部门地址、部门电话、编码级次如图2.9所示:
图2.9部门管理
代码如下:
Dimrs1AsNewADODB.Recordset
DimiAsInteger
DimblnTJ,blnAddAsBoolean
DimbmjcAsInteger
DimbmbhAsString
PubliclngOLAsLong
PublicSubtree_change()'定义添加树状列表的函数
TreeView1.Nodes.Clear
DimmNodeAsNode
rs1.Open"select*from部门表orderby部门编号,编码级次",Cnn,adOpenKeyset,adLockOptimistic
Ifrs1.RecordCount>0Then
rs1.MoveFirst
DoWhilers1.EOF=False
SelectCasers1.Fields("编码级次")
Case1
SetmNode=TreeView1.Nodes.Add()
mNode.text="("&rs1.Fields("本级编号")&")"&rs1.Fields("部门名称")
mNode.Key=rs1.Fields("部门全称")
Case2
SetmNode1=TreeView1.Nodes.Add(mNode.index,tvwChild)
mNode1.text="("&rs1.Fields("本级编号")&")"&rs1.Fields("部门名称")
mNode1.Key=rs1.Fields("部门全称")
Case3
SetmNode2=TreeView1.Nodes.Add(mNode1.index,tvwChild)
mNode2.text="("&rs1.Fields("本级编号")&")"&rs1.Fields("部门名称")
mNode2.Key=rs1.Fields("部门全称")
Case4
SetmNode3=TreeView1.Nodes.Add(mNode2.index,tvwChild)
mNode3.text="("&rs1.Fields("本级编号")&")"&rs1.Fields("部门名称")
mNode3.Key=rs1.Fields("部门全称")
Case5
SetmNode4=TreeView1.Nodes.Add(mNode3.index,tvwChild)
mNode4.text="("&rs1.Fields("本级编号")&")"&rs1.Fields("部门名称")
mNode4.Key=rs1.Fields("部门全称")
EndSelect
rs1.MoveNext
Loop
EndIf
rs1.Close
Text1
(2).SetFocus
Case"modify"
blnAdd=False
tlbStateFalse
lngOL=Len("("&Text1
(1)&")"&Text1
(2))
Text1
(2).SetFocus
Case"del"
IfTreeView1.SelectedItem.Children>0Then
MsgBox"此部门存在下级部门,不允许删除!
"
ExitSub
EndIf
Cnn.Execute("deletefrom部门表where部门全称='"+TreeView1.SelectedItem.Key+"'")
tree_change
Case"expand"
Fori=1ToTreeView1.Nodes.Count
TreeView1.Nodes(i).Expanded=True
Nexti
Case"nexpand"
Fori=1ToTreeView1.Nodes.Count
TreeView1.Nodes(i).Expanded=False
Nexti
Case"exit"
UnloadMe
EndSelect
EndSub
第3章设计总结
经过努力,基本完成了课程设计——人力资源管理系统。
在本次设计中,为了完成设计,系统的学习了SQLServer2000基础知识包括数据库,接着有进一步学习了vb设计界面
在人力资源管理系统投入正式运行,意味着数据库的设计与开发阶段的基本结束,运行与维护阶段的开始。
数据库的运行和维护是个长期的工作,是数据库设计工作地延续和提高。
在本次设计中,我完成了系统的各种功能,例如部门信息的查询、添加、删除和修改;工资信息的查询、添加、和修改;职员信息的查询、添加、删除和修改;以及修改密码和重新登录功能。
通过使用该系统可以规范对公司员工的管理,提高工作效率。
在数据库设计的过程中遇到不少的难题,但最终基本得以解决,但是页面设计不够完美,对于未完成的工作还很多,如添加数据库表以实现更加强大的功能,我们在作系统分析时的考虑不够全面,导致有很多应有的功能都不在计划之内。
虽然我们后来发现了这个问题,但是由于计划以及确定,所以我们就没有办法来修改它以完善我们的项目,学习SQLServer200需要按数据库管理开发的流程组织,将在以后的工作与学习中不断努力改进!
在人力资源管理系统投入正式运行,意味着