工资管理系统综合课程设计.docx
《工资管理系统综合课程设计.docx》由会员分享,可在线阅读,更多相关《工资管理系统综合课程设计.docx(48页珍藏版)》请在冰豆网上搜索。
![工资管理系统综合课程设计.docx](https://file1.bdocx.com/fileroot1/2023-4/16/8699eabf-cb1f-4be8-aa71-98c356d33cd6/8699eabf-cb1f-4be8-aa71-98c356d33cd61.gif)
工资管理系统综合课程设计
综合课程设计报告
题目名称:
企业工资信息管理系统
学院:
信息工程学院
专业:
计算机科学与技术
班级:
姓名:
学号:
指导教师:
完成日期:
一、绪论
1引言
1.1设计目的
加深对软件工程这门课程的理解,锻炼逻辑思维,训练学生的创新思维,培养分析问题、解决问题能力。
通过调试程序积累高度经验。
根据课堂讲授内容,学生做相应的自主练习,消化课堂所讲解的内容。
1.2题目背景
借助现代信息技术和管理理论,建立企业管理信息系统是当今社会的重要趋势。
党和政府根据知识经济时代的特点,对国民经济建设提出了“用信息化带动工业化”的指导思想。
对企业而言,全面开发和应用计算机管理信息系统就是近期不能回避的问题。
在企业管理中,人力资源是企业最宝贵的资源,也是企业的“生命线”,因此人事管理是企业的计算机管理信息系统重要组成部分。
而工资管理又是人力资源管理的重中之重。
实行电子化的工资管理,可以让人力资源管理人员从繁重琐碎的案头工作解脱出来,去完成更重要的工作。
工资管理信息系统的实现可以减轻比较繁琐的手工工资管理。
现在应用在大中型企业的管理信息系统中,几乎都包括了工资管理模块。
有些环境中是由作为大型ERP软件中的一个模块引进的,有些是作为企业的财务系统的一部分。
这些根据规范的西方的管理制度设计的工资管理软件,在很多时候还不能完全解决中国特色的中小企业的问题,本文介绍的课程设计的研究工作就是要为这些具有中国特色的中小企业解决他们在工资管理方面的问题。
2任务描述
2.1目标
目标系统应该达到以下要求:
1、时间经济性。
优化逻辑设计与物理设计,使系统运行效率高,反映速度快。
2、可靠性。
能连续准确的处理业务,有较强的容错能力。
3、可理解性。
用户容易理解和使用该系统。
4、可维护性和适应性。
系统应易于修改、易于扩充、易于维护,能够适应业务不断发展变化的需要。
5、可用性。
目标系统功能齐全,能够完全满足业务需求。
6、安全保密性。
保证系统的物理安全、数据存储和存取的安全与保密、数据传输的安全与保密,做好使用人员的授权管理。
2.2运行环境
win7操作系统,40M内存,visualstudio2010,SQLServer2005,.netframework4.0
3功能要求
(1)、完成对员工表的维护,包括删除、增添、修改员工信息。
(2)、可以对对员工信息按部门进行浏览。
(3)、完成对部门表的维护,包括增添、修改、停止部门。
(4)、可以对部门信息进行浏览。
(5)、可以完成对员工工资的发放。
(6)、可以完成对税率和起征金的管理。
(7)、设计超级管理员和部门管理员两种角色,超级管理员具有最高权限,负责发放工资。
部门管理员只能完成对自己本部门员工的管理和工资的查看。
(8)、只可以对上一个月工资进行发放,其余月份工资禁止修改。
(9)、记录操作员的操作记录
二、需求分析
1需求调查
1.1组织机构调查
工资管理信息系统对企业加强工资管理有着极其重要的作用,就一般的大型企业来说,它的设计内容非常复杂而且繁多,比如拥有工资计算功能,工资统计功能,报表输出功能,而且设计的模块也很多,比如工资管理模块,工资统计模块,报表设计模块,打印输出模块,模糊查询模块等等。
由于本软件主要是为一家刚刚成立的公司定制开发的,总体人员比较少,有正式员工20人,人员结构比较简单,学历比较高,基本上都拥有大专以上学历,部门划分也很清晰,而且人员的流动性不高,所以该公司目前对工资管理的要求并不高。
能够完成基本的员工信息管理,部门信息管理和工资管理即可。
1.2业务需求调查
业务需求总体包括:
部门管理、工资管理和员工信息管理。
总体业务流程图如下图1所示:
1、部门管理
部门管理是部门基本信息的录入,包括各部门的添加、已有部门信息的修改、和是否停用。
业务流程图如下图2所示:
2、员工信息管理
员工信息管理是员工基本信息的录入,包括新员工信息的增加、详细信息的查询、员工信息的修改、员工的删除。
业务流程图如下图3所示:
3、工资管理
工资管理是员工工资的发放,包括对各部门员工工资的发放,查找各月份各部门工资、对税率和起征点的管理。
业务流程图如下图4所示:
2功能需求
2.1功能划分和功能描述
工资管理系统由员工信息查询,员工人事变更,员工工资管理,部门信息管理组成。
系统的主要功能描述如下:
(1)员工信息管理
对公司里的员工进行统一编号;将每一位员工的信息保存在员工档案记录中。
对新聘用的员工,将其信息加入到员工档案记录中;对于解聘的员工,将其信息从员工档案记录中删除。
当员工信息发生变动时,修改员工档案记录中相应的属性。
(2)部门管理
对公司里的部门进行统一编号;将每一个部门信息保存在部门档案记录中。
对新设立的部门,将其信息加入到部门档案记录中;当部门信息发生变动时,修改部门记录中相应的属性。
(3)工资管理
对每一位员工的工资进行发放;将每一个员工的已发工资存储在工资档案记录中。
查询已经发放的员工工资;对于税率和起征金进行管理。
2.2数据流程图
系统主要数据流程图如下图5:
3数据描述
3.1数据描述
1、员工情况
定义:
员工情况=员工编号+性别id+出生日期+入职时间+婚姻状况id+政治面貌id+民族+籍贯+学历id+专业+毕业院校+联系地址+电话号码+部门id+职位+合同签订日+合同到期日+备注信息+是否锁定
数据流量:
根据公司的员工具体录用情况来确定。
说明:
要对每一位被聘用的员工进行唯一的编号。
2、部门情况
定义:
部门情况=部门编号+部门名称+是否停用
数据流量:
根据公司的部门具体情况来确定。
说明:
部门编号是主码。
3、用户身份
定义:
用户身份=[非法用户|超级管理员|部门管理员]
数据流量:
根据公司的具体情况来确定。
说明:
不同的用户身份对应不同的操作权限,对应着不同的安全级别。
4、管理员情况
定义:
管理员情况=自增Id+账号+密码+用户角色id+部门id+是否删除+真实姓名+是否锁定
数据流量:
根据公司的具体情况来确定。
说明:
要对每一位管理员建立唯一的账号。
5、管理员日志情况
定义:
管理员日志情况=日志编号+管理员id+创建日期+动作描述。
数据流量:
对操作员的每一次修改和创建动作进行记录,以便以后查询。
说明:
日志编号是主码。
6、工资查询
定义:
工资查询=工资表主表编号+工资年份+工资月份+部门id+工资表从表id+员工id+基本工资+资金+罚款+其他
数据流量:
根据公司的具体情况来确定。
说明:
根据员工号和发薪日期可以唯一确定一个工资记录。
3.2数据库描述
将工资管理系统的E-R图转换为关系数据库的数据模型,其关系模式为:
(1)员工档案(自增id+员工编号+性别id+出生日期+入职时间+婚姻状况id+政治面貌id+民族+籍贯+学历id+专业+毕业院校+联系地址+电话号码+部门id+职位+合同签订日+合同到期日+备注信息+是否锁定),其中自增id为主码,性别id、婚姻状况id、政治面貌id、学历id、部门id为外键。
(2)管理员记录(自增Id+账号+密码+用户角色id+部门id+是否删除+真实姓名+是否锁定),其中自增id为主码,用户角色id、部门id为外键。
(3)管理员日志记录(日志编号+管理员id+创建日期+动作描述),其中日志编号为主码,管理员id为外键。
(4)部门记录(部门编号+部门名称+是否停用),其中部门编号为主码。
(5)工资表主表(工资表主表编号+工资年份+工资月份+部门id),其中工资表主表编号为主码,部门id为外键。
(6)工资表从表(工资表从表id+工资表主表id+员工id+基本工资+资金+罚款+其他),其中工资表从表id是主键,工资表主表id、员工id是外键。
各部分的E-R图,如下图所示:
员工实体图如下图6:
部门实体图如下图7:
管理员实体图如图8所示:
管理员日志实体图如图9所示:
工资表主表实体图如图10所示:
工资表从表实体图如图11所示:
工资税率信息实体图如图12所示:
工资管理系统涉及的实体包括:
部门实体、员工实体、管理员实体、工资表实体等。
所以工资管理系统的全局E-R图如图13所示:
3.3数据字典
3.3.1数据结构描述
名称:
职工(Employee)
含义说明:
职工信息
组成结构:
自增id+员工编号+性别id+出生日期+入职时间+婚姻状况id+政治面貌id+民族+籍贯+学历id+专业+毕业院校+联系地址+电话号码+部门id+职位+合同签订日+合同到期日+备注信息+是否锁定
名称:
部门(Department)
含义说明:
部门信息
组成结构:
部门编号+部门名称+是否停用
名称:
管理员(Manager)
含义说明:
管理员信息
组成结构:
自增Id+账号+密码+用户角色id+部门id+是否删除+真实姓名+是否锁定
名称:
管理员日志(ManagerLog)
含义说明:
管理员日志信息
组成结构:
日志编号+管理员id+创建日期+动作描述
名称:
工资主表(SalarySheet)
含义说明:
工资主表信息
组成结构:
工资表主表编号+工资年份+工资月份+部门id
名称:
工资从表(SalarySheetItem)
含义说明:
工资从表信息
组成结构:
工资表从表id+工资表主表id+员工id+基本工资+资金+罚款+其他
名称:
税率表(SalaryTax)
含义说明:
税率表信息
组成结构:
税率表id+最小工资+最大工资+税率+速算扣除数
3.3.2数据流的描述
数据流名称:
员工信息添加
数据流来源:
公司管理者
数据流去向:
员工信息
数据流组成:
自增id+员工编号+性别id+出生日期+入职时间+婚姻状况id+政治面貌id+民族+籍贯+学历id+专业+毕业院校+联系地址+电话号码+部门id+职位+合同签订日+合同到期日+备注信息+是否锁定
数据流名称:
员工信息修改
数据流来源:
员工信息
数据流来源:
员工信息
数据流组成:
自增id+员工编号+性别id+出生日期+入职时间+婚姻状况id+政治面貌id+民族+籍贯+学历id+专业+毕业院校+联系地址+电话号码+部门id+职位+合同签订日+合同到期日+备注信息+是否锁定
数据流名称:
员工信息删除简述:
员工离职
数据流来源:
员工信息
数据流去向:
员工信息
数据流组成:
自增id+员工编号+性别id+出生日期+入职时间+婚姻状况id+政治面貌id+民族+籍贯+学历id+专业+毕业院校+联系地址+电话号码+部门id+职位+合同签订日+合同到期日+备注信息+是否锁定
数据流名称:
部门信息添加简述:
新增一个部门
数据流来源:
管理者
数据流去向:
部门信息表
数据流组成:
部门编号+部门名称+是否停用
数据流名称:
部门信息修改
数据流来源:
部门信息表
数据流去向:
部门信息表
数据流组成:
部门编号+部门名称+是否停用
数据流名称:
部门删除简述:
部门被停用
数据流来源:
部门信息表
数据流去向:
部门信息表
数据流组成:
部门编号+部门名称+是否停用
数据流名称:
工资发放
数据流来源:
会计人员
数据流去向:
工资表
数据流组成:
工资表主表+工资表从表
数据流名称:
工资查看
数据流来源:
工资表
数据流去向:
工资表
数据流组成:
工资表主表+工资表从表
数据流名称:
税率调整和起征金调整
数据流来源:
政府
数据流去向:
税率表
数据流组成:
税率表id+最小工资+最大工资+税率+速算扣除数
4运行需求
4.1用户界面
屏幕格式:
采用B/S模式,界面由visualstudio设计实现,完全基于windows兼容的桌面的平台;
菜单格式:
工具栏与菜单并用方式,简洁、明了。
4.2基本要求
1)体系结构:
B/S
2)操作系统:
Windows系列
3)数据库管理系统:
SQLServer2005
4)开发工具:
VisualStudio2010
5)硬件环境:
最低配置:
CPU:
Pentium3800以上或其它兼容规格,内存:
256M以上,硬盘:
100MB以上空间
推荐配置:
CPU:
Pentium2G,内存:
2G以上,硬盘:
100MB以上空间。
6)软件环境:
windows7、SQLServer2005、.NETFramework4.0
三、总体设计
1总体结构和模块设计
1.1功能结构
本系统分为职工管理子系统,部门管理子系统,工资管理子系统,控制面板子系统。
总体功能结构图如图13所示:
1.2模块设计
1、职工管理子系统包括新职工的添加,职工详细信息的查看,职工信息的修改,职工离职后对职工进行删除,批量删除,按部门查看部门员工。
2、部门管理子系统包括新部门的添加,部门信息的修改,部门的停止运行。
3、工资管理子系统包括对上个月员工工资的发放,对以往员工工资的查询,按条件查询员工的工资,和对税率和起征金的调整。
4、控制面板子系统包括对管理员添加,管理员信息的修改,管理员权限的调整,管理员的删除以及对管理员操作日志的查看。
1.3总体结构设计
模块间调用关系的层次结构图如下图14所示:
2数据库设计
2.1设计二维表及表间关系。
(1)部门信息表,部门信息表主要有部门id、部门名称、是否停用等字段。
部门信息表如表1所示:
表1部门信息表
列名
数据类型
长度
允许空
功能描述
Id
int
主键
部门编号
Name
nvarchar
50
否
部门名称
IsDeleted
tinyint
是
是否停用
(2)员工信息表,员工信息表主要有员工Id、员工编号、员工姓名、性别Id、生日、入职日期、婚姻状况Id、政治面貌Id、民族等字段。
员工信息表如表2所示:
表2员工信息表
列名
数据类型
长度
允许空
功能描述
Id
int
主键
自增Id
Number
nvarchar
50
否
员工编号
GenderId
int
否
性别Id
BirthDay
datetime
是
出生日期
InData
datetime
否
入职时间
MarriageId
int
否
婚姻状况Id
PolicitalStatusId
int
否
政治面貌Id
Nationality
nvarchar
50
否
民族
NativeAddr
nvarchar
250
否
籍贯
DegreeId
int
否
学历Id
Major
nvarchar
50
是
专业
School
nvarchar
50
否
毕业院校
Address
nvarchar
250
否
联系地址
TelNum
nvarchar
50
否
电话号码
DepartmentId
int
否
部门Id
Position
nvarchar
50
否
职位
ContractStartDay
datetime
否
合同签订日
ContractEndDay
datetime
否
合同到期日
Remarks
nvarchar
50
是
备注信息
IsLock
tinyint
否
是否锁定
(3)管理员信息表,管理员信息表主要有管理员Id、账号、密码、管理员角色、部门Id等字段。
管理员信息表如表3所示:
表3管理员信息表
列名
数据类型
长度
允许空
功能描述
Id
int
主键
自增Id
UserName
nvarchar
50
否
账号
PassWord
nvarchar
50
否
密码
UserRoleId
int
是
用户角色Id
DepartmentId
int
是
部门Id
IsDeleted
tinyint
是
是否删除
RealName
nvarchar
50
是
真实姓名
IsLocked
tinyint
是
是否锁定
(4)管理员日志信息表,管理员日志信息表主要有日志Id、管理员Id、创建日期、动作描述等字段。
管理员日志信息表如表4所示:
表4管理员日志表
列名
数据类型
长度
允许空
功能描述
Id
int
主键
日志编号
ManagerId
int
50
否
管理员Id
MakeDate
datetime
否
创建日期
ActionDesc
nvarchar
MAX
否
动作描述
(5)工资表主表,工资表主表主要有工资表主表Id、年、月、部门Id等字段。
工资表主表信息表如表5所示:
表5工资表主表信息表
列名
数据类型
长度
允许空
功能描述
Id
int
主键
工资表主表编号
Year
int
否
工资年份
Month
int
否
工资月份
DepartmentId
int
否
部门Id
(6)工资表从表,工资表从表主要有工资表从表Id、工资表主表Id、员工Id、基本工资、资金、罚款等字段。
工资表从表信息表如表6所示:
表6工资表从表信息表
列名
数据类型
长度
允许空
功能描述
Id
int
主键
工资表从表编号
SheetId
int
否
工资表主表Id
EmployeeId
int
否
员工Id
BaseSalary
money
是
基本工资
Bonus
money
是
资金
Fine
money
是
罚款
Other
money
是
其他
(7)工资税率信息表,工资税率信息表主要有税率Id、最小应纳税额、最大应纳税额等字段。
工资税率信息表如表7所示:
表7工资税率信息表
列名
数据类型
长度
允许空
功能描述
Id
int
主键
税率编号
MinSalary
money
否
最小应纳税额
MaxSalary
money
是
最大应纳税额
TaxRat
float
否
税率
QuickDeduction
money
否
速算扣除数
(8)IdName表,IdName信息表主要有Id编号、名称、类别等字段。
主要用来存放有多个选择值的字段。
IdName信息表如表8所示:
表8IdName信息表
列名
数据类型
长度
允许空
功能描述
Id
int
主键
自增编号
Name
nvarchar
50
否
名称
Category
nvarchar
50
否
类别
2.2物理设计
对应逻辑设计的数据库名ESMSDB,设计数据库的物理文件及相关属性如下:
主数据文件:
SALSYSDB.mdf。
初始空间:
1MB,若超出空间按10%自动增长。
存放路径:
C:
\Users\wangsida\Desktop\ESMS\DataBase。
最大文件大小:
不受限。
隶属文件组:
PRIMARY。
日志文件:
SALSYSDB_log.ldf。
初始空间:
1MB,若超出空间按10%自动增长。
存放路径:
C:
\Users\wangsida\Desktop\ESMS\DataBase。
最大文件大小:
不受限。
3外部接口设计
3.1用户界面
采用图形用户界面(GUI),包含用户名、密码。
3.2软件接口
软件运行于windows7平台上。
与数据库接口,传递员工信息,工资信息,部门信息,日志信息。
4出错处理设计
4.1出错输出信息
1、用户登录验证用户名和密码
出错输出信息:
用户名或密码有误
2、增添员工信息时验证员工编号
出错输出信息:
员工编号不允许重复
3、增添管理员时验证账号和密码
出错输出信息:
账号不能为空,两次输入密码必须一致
4、长期不操作验证登陆时间
出错输出信息:
登陆时间超时
4.2出错处理对策
1、联机事务处理(OLAP)是建立在TCT/IP协议上,有多阶段事务处理响应控制,保证事务处理前后台一致。
3、重要数据的校验检查。
4、各个子系统的操作监控,异常情况报告并提供日志等跟踪记录。
5、提供友好的用户界面和帮助信息及配合严格的检查,减少用户出错机会。
四、详细设计
1代码设计
1.1三层体系架构
1、表示层(USL):
主要表示WEB方式,也可以表示成WINFORM方式。
如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。
2、业务逻辑层(BLL):
主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理。
如果说数据层是积木,那逻辑层就是对这些积木的搭建。
3、数据访问层(DAL):
主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务.
1.2具体区分
1、表示层:
主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。
2、业务逻辑层:
主要负责对数据层的操作,也就是说把一些数据层的操作进行组合。
3、数据访问层:
主要看你的数据层里面有没有包含逻辑处理,实际上他的各个函数主要完成各个对数据文件的操作,而不必管其他操作。
1.3总结
三层结构是一种严格分层方法,即数据访问层(DAL)只能被业务逻辑层(BLL)访问,业务逻辑层只能被表示层(USL)访问,用户通过表示层将请求传送给业务逻辑层,业务逻辑层完成相关业务规则和逻辑,并通过数据访问层访问数据库获得数据,然后按照相反的顺序依次返回将数据显示在表示层。
有的三层结构还加了Factory、Model等其他层,实际都是在这三层基础上的一种扩展和应用.
一个简单的三层结构程序一般包括DALBLLWEBModel几个项目,它们的相互引用关系如下
1)WEB引用BLL,Model
2)BLL引用DAL,Model
3)DAL引用Model
4)Model无引用
2程序设计
2.1模块设计
1、主登录界面模块
功能:
提供登录工资管理系统的登录界面
输入项目:
用户名和密码
输出项目:
工资管理系统主界面
2、职工信息查询模块
功能:
提供职工信息的界面
输入项目:
部门名称
输出项目:
职工信息
3、添加新职工模块
功能:
将新进入的员工信息录入到数据库中
输入项目:
员工信息
输出项目:
员工信息表
4、职工删除模块
功能:
职工离职后将职工信息从数据库中清除
输出项目:
员工信息表
5、部门信息查询模块
功能:
查询已有的