课程设计企业工资管理系统设计报告.docx
- 文档编号:24125999
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:36
- 大小:635.80KB
课程设计企业工资管理系统设计报告.docx
《课程设计企业工资管理系统设计报告.docx》由会员分享,可在线阅读,更多相关《课程设计企业工资管理系统设计报告.docx(36页珍藏版)》请在冰豆网上搜索。
课程设计企业工资管理系统设计报告
计算机信息管理专业课程设计报告
《企业工资管理系统设计与实现》
专业:
计算机信息管理专业
年级:
09春计算机信息管理
姓名:
学号:
指导老师:
二〇一一年十月
一、概述……………………………………………………2
1.1数据库管理系统简介……………………………………………3
1.2开发工具简介………………………………………………………3
二、企业工资管理系统设计分析……………………………4
2.1应用需求分析……………………………………………………4
2.2系统功能模块划分………………………………………………5
2.3系统数据库设计………………………………………………5
三、企业工资管理系统应用程序设计…………………………9
3.1“登录”模块详细设计……………………………………………9
3.2“主窗体”模块详细设计…………………………………………9
3.3各项子模块详细设计……………………………………………10
3.4各项子模块编写要点………………………………………………24
四、总结……………………………………………………………36参考书目………………………………………………………………36
附录:
源程序………………………………………………………38
一、概述
企业的工资管理是公司管理的一个重要内容。
随着企业人员数量增加,企业的工资管理工作也变得越来越复杂。
工资管理既涉及到企业劳动人事的管理,同时也是企业财务管理的重要组成部分。
工资管理需要和人事管理相联系,同时连接工时考勤和医疗保险等等,来生成企业每个职工的基本工资、津贴、医疗保险、保险费、实际发放工资等。
资金是企业生存的主要元素,资金的流动影响到企业的整体运作,企业员工的工资是企业资金管理的一个重要的组成部分。
早期的工资统计和发放都是使用人工方式处理纸质材料,不仅花费财务人员大量的时间且不易保存,往往由于个人的因素抄写不慎或计算疏忽,出现工资发放错误的现象。
早期工资管理多采取纸质材料和具有较强的时间限制。
基于以上原因,企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。
企业工资管理系统是典型的信息管理系统(MIS),前台程序开发工具采用微软的VB6,后台数据库采用Access数据库。
VB6是一种面向对象的开发工具,具有组件丰富、语言简单、功能强大的优点。
Access数据库具有与VB6无缝连接、操作简单、易于使用的优点。
运行结果证明,本企业工资管理系统极大提高了工作效率,节省了人力和物力,最终满足企业财务管理、员工工资发放的需要,同时也成为现代化企业管理的标志
1.1数据库管理系统
数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。
DBMS是数据库系统的核心组成部分。
对数据库的一切操作,包括定义、更新及各种控制,都是通过DBMS进行的。
DBMS总是基于某种数据模型,可以把DBMS看成是某种数据模型在计算机系统上的具体实现。
根据数据模型的不同,DBMS可以分成层次型、网状型、关系型、面向对象型等。
MSAccess2000就是一种关系型数据库管理系统。
关系模型主要是用二维表格结构表达实体集,用外键表示实体间联系。
关系模型是由若干个关系模式组成的集合。
关系模式相当于前面提到的记录类型,每个关系实际上是一张二维表格。
关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单用户易懂,编程时并不涉及存储结构,访问技术等细节。
SQL语言是关系型数据库的标准化语言,已得到了广泛的应用。
1.2、开发工具介绍
微软公司的VisualBasic6.0是Windows应用程序开发工具,是目前最为广泛的、易学易用的面向对象的开发工具。
VisualBasic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。
因此,本系统使用MSVisualBasic6.0开发。
二、企业工资管理系统设计分析
2.1应用需求分析
需求分析的过程可以说是一个对具体问题的反复理解和抽象的过程。
理解就是对现实问题的理解,要弄清楚究竟需要解决什么问题。
抽象就是除去问题的表面,提取问题的本质,建立问题的逻辑模型,以便于以后阶段的系统的设计实现。
需求分析阶段是软件产品生存命期中的一个重要阶段,其根本任务是确定用户对软件系统的需求。
所谓需求是指用户对软件的功能和性能的要求,就是用户希望软件能什么事情,完成什么样的功能,达到什么性能。
通常需求分为两种类型:
一种是功能性需求,一种是非功能性需求,这一点也需要有一种清楚的认识。
功能性需求是指需要计算机系统解决的问题,也就是对数据的处理要求,这是一类最主要的需求。
非功能性需求是指实际使用环境所要求的需求,往往是一些限制要求,例如:
性能要求,可靠性要求,安全保密要求等。
软件需求包含三个层次—业务需求、用户需求和功能需求,还包括非功能需求。
业务需求:
反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。
用户需求:
描述了用户使用产品必须要完成的任务和具备的功能,这在使用实例文档或方案脚本说明中予以说明。
功能需求:
定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足其业务需求。
2.2系统功能模块划分
开发这个系统的目的就是帮助企业的财务主管部门提高工作效率,实现企业工资信息管理的系统化、规范化和自动化。
能够和认识管理系统、考勤管理系统相结合,真正实现企业高效、科学、现代化的员工管理。
系统最终实现的主要功能如下。
·企业工资信息设置部分:
包括设置员工的基本工资和其他项目的金额,如奖金等。
并且负责设置员工工资的计算公式。
·企业工资信息管理部分:
包括统计出勤、计算工资、查询工资和导出工资表。
·系统部分:
包括添加用户和修改密码。
2.3系统数据库设计
数据库是信息管理系统的后台,存储着所有的信息,在信息管理系统中有着很重要的地位。
数据库设计的好与坏,直接影响到这个系统的运行效率。
良好的数据库设计,可以提高数据信息的存储效率,确保数据信息的完整性和一致性。
针对企业工资信息管理系统的需求,通过对员工工资计算过程的内容分析,为本系统设计如下的数据项和数据结构:
·基本工资信息:
包括员工编号和基本工资(元/小时)。
·其他项目信息:
包括员工编号、奖金、津贴、福利、扣发等。
·计算公式信息:
包括加班费的百分比、出差工资、旷工、迟到早退扣发等。
·出勤统计信息:
包括员工编号、姓名、统计日期、出勤天数、迟到早退次数、加班天数、加班天数等。
·工资统计信息:
包括员工编号、姓名、统计日期、基本工资、奖金、津贴、福利,加班费、出差费、扣发、总额等。
启动Access2000,创建新的数据库,命名为Salary.mdb和Person.mdb,保存在要存放这个系统所有工程文件的文件夹中。
在使用的时,要把应用程序和这两个数据库保存在同一个文件夹中。
员工出勤统计信息表:
字段
类型
长度
是否空
说明
Id
自动编号
长整型
不能空
记录编号
Stuffed
文本
50
不能空
员工编号
Stuffname
文本
50
不能空
员工姓名
Recordmonth
日期/时间
不能空
统计时间
Attendance
数字
长整型
不能空
出勤天数
Lateearly
数字
长整型
不能空
迟到早退次数
Absent
数字
长整型
不能空
旷工次数
Overtimecom
数字
长整型
不能空
正常加班次数
Overtimespe
数字
长整型
不能空
特殊加班次数
Errand
数字
长整型
不能空
出差次数
员工工资计算公式信息表:
字段
类型
长度
是否空
说明
Overtimecom
数字
长整型
不能空
正常加班工资百分
Overtimespe
数字
长整型
不能空
特殊加班工资百分
Errand
数字
长整型
不能空
出差工资
Absent
数字
长整型
不能空
旷工工资
Le
数字
长整型
不能空
迟到早退
员工其他项目设置:
字段
类型
长度
是否空
说明
Id
自动编号
长整型
不能空
记录编号
Stuffed
文本
50
不能空
员工编号
Yearmonth
日期/时间
不能空
年月
Type
数字
长整型
不能空
类型
Name
文本
50
能空
类型
Money
货币
货币
不能空
名称
Remark
备注
能空
备注
字段
类型
长度
是否空
说明
Id
自动编号
长整型
不能空
记录编号
Stuffed
文本
50
不能空
员工编号
Sposition
文本
50
不能空
员工职务
Salary
货币
货币
不能空
基本工资
员工工资统计信息表:
字段
类型
长度
是否空
说明
id
自动编号
长整型
不能空
记录编号
stuffid
文本
50
不能空
员工编号
stuffname
文本
50
不能空
员工姓名
yearmonth
日期/时间
不能空
时间
basicsalary
货币
货币
基本工资
bonus
货币
货币
奖金
welfare
货币
货币
福利
allowance
货币
货币
津贴
abatement
货币
货币
扣发
lesub
货币
货币
迟到早退扣发
absentsub
货币
货币
旷工扣发
overtime
货币
货币
加班费
errand
货币
货币
出差费
others
货币
货币
其他金额
total
货币
货币
总额
员工信息表:
字段
类型
长度
是否空
说明
sid
文本
50
能空
员工编号
sname
文本
50
能空
员工姓名
sgender
文本
50
能空
性别
splace
文本
50
能空
籍贯
sage
数字
长整型
不能空
年龄
sbirthday
日期/时间
不能空
生日
sdegree
文本
50
能空
学历
sspecial
文本
50
能空
专业
saddress
文本
50
能空
住址
scode
文本
50
能空
邮编
stel
文本
50
能空
电话
semail
文本
50
能空
sworkTime
日期/时间
不能空
参加工作时间
sintime
日期/时间
不能空
进入公司时间
sdept
文本
50
能空
部门
spaytime
日期/时间
不能空
起薪时间
sposition
文本
50
能空
职务
sremark
文本
50
能空
备注
用户信息表:
字段
类型
长度
是否空
说明
userid
文本
50
不能空
用户名称
userpwd
文本
50
不能空
用户密码
三、企业工资管理系统应用程序设计
3.1“登录模块”详细设计
登录模块的详细设计主要是用户登录的一个界面,判断登录的用户是管理员还是普通用户,进入后将面对的是主界面,从而进行相关的操作。
登录的界面主要由用户名和密码的信息,还有一些标题设置,确定和取消的按钮组成。
通过标题可以知道此系统的大概内容,由此,登录界面的设计完成。
3.2“主窗体”模块详细设计
在这个项目中,选择使用多文档界面。
使用这个窗体的好处是可以使程序更加有条理。
对于一个多任务的应用程序,使用多文档窗体还可以减少占用的系统资源。
主窗体设计的界面是用菜单编辑器做的,主要由系统、工资信息设置、工资信息管理和关于这四个大模块组成。
主窗体是进行相关操作的主界面。
在这几个里,管理员有所有的权利进行各种操作。
3.3各项子模块详细设计
选择“系统”—>“添加用户”菜单,在添加用户的窗体里,输入新的用户名称和密码后,单击“确定”按钮,系统将会添加新的用户。
sql="insertintouserinfo(userid,userpwd)values('"&username
sql=sql&"','"&password&"')"
Calltransactsql(sql,"salary")
MsgBox"添加成功",vbOKOnly+vbExclamation,"
添加结果"
username.Text=""
password.Text=""
confirmpwd.Text=""
username.SetFocus
选择“系统”—>“修改密码”菜单,在修改密码的窗体里,输入旧密码和2次输入新密码后,单击“确定”按钮,系统将会更改当前用户的密码。
userpassword=newpwd
sql="updateuserinfosetuserpwd='"&newpwd&"'whereuserid='"&strusername&"'"
Calltransactsql(sql,"salary")
MsgBox"密码已经修改",vbOKOnly+vbExclamation,"修改结果"
选择“工资信息设置”—>“基本工资设置”菜单设置员工的基本工资,可以根据员工的编号,或者根据员工职务设置基本工资,设置的基本工资为每个小时的工资。
Setrs=getrs(sql,"salary")
Ifrs.EOF=FalseThen
sql="deletefromsalarysettingwherestuffid='"&Mstuffid.Text&"'"
Calltransactsql(sql,"salary")
EndIf
rs.Close
id=Mstuffid.Text
Calladdrecord
MsgBox"已经设置基本工资",vbOKOnly+vbExclamation,"添加结果"
Callinit
sql="select*fromsalarysetting"
Callfrmresult.basictopic
Callfrmresult.showbasic(sql)
frmresult.Show
frmresult.ZOrder0
Me.ZOrder0
选择“工资信息设置”—>“其他项目设置”菜单,在其他项目设置的窗体中,设置员工当月的奖金、津贴、福利等项目。
sql="select*fromsalaryother"
Ifichangeflag=1Then
Calladd
MsgBox"已经添加记录",vbOKOnly+vbExclamation,"提示"
Callfrmresult.othertopic
Callfrmresult.showother(sql)
frmresult.Show
UnloadMe
Else
IfMe.optionbonus.Value=TrueThen
itype=1
ElseIfMe.optionallowance.Value=TrueThen
itype=2
ElseIfMe.optionwelfare.Value=TrueThen
itype=3
ElseIfMe.optionabatement.Value=TrueThen
itype=4
ElseIfMe.optionothers.Value=TrueThen
itype=5
resumdate=recordtime
sql="deletefromsalaryotherwherestuffid='"&Mid.Text
sql=sql&"'andYearMonth=#"&recordtime&"#and"
sql=sql&"Type="&itype
Calltransactsql(sql,"Salary")
Calladd
Callfrmsumsalary.resumsalary(resumdate)
sql="select*fromsalaryother"
Callfrmresult.othertopic
Callfrmresult.showother(sql)
frmresult.Show
UnloadMe
EndIf
选择“工资信息设置”—>“工资计算公式设置”菜单,在这个计算公式窗体中设置员工实际发放工资的计算公式。
IfMe.textovertimecom=""AndIsNumeric(Me.textovertimecom)=TrueThen
MsgBox"请输入正常加班工资百分比",vbOKOnly+vbExclamation,"提示"
Me.textovertimecom=""
Me.textovertimecom.SetFocus
ElseIfMe.textovertimespe=""AndIsNumeric(Me.textovertimespe)=FalseThen
MsgBox"请输入特殊加班工资百分比",vbOKOnly+vbExclamation,"提示"
Me.textovertimespe=""
Me.textovertimespe.SetFocus
ElseIfMe.texterrand=""AndIsNumeric(Me.texterrand)=FalseThen
MsgBox"请输入出差工资",vbOKOnly+vbExclamation,"提示"
Me.texterrand=""
Me.texterrand.SetFocus
ElseIfMe.textabsent=""AndIsNumeric(Me.textabsent)=FalseThen
MsgBox"请输入旷工扣发工资",vbOKOnly+vbExclamation,"提示"
Me.textabsent=""
Me.textabsent.SetFocus
ElseIfMe.textle=""AndIsNumeric(Me.textle)=FalseThen
MsgBox"请输入迟到早退扣发工资",vbOKOnly+vbExclamation,"提示"
Me.textle=""
Me.textle.SetFocus
Else
Callsetvalue
Callinit
EndIf
选择“工资信息管理”—>“出勤统计”菜单,在统计出勤记录窗体中选择需要统计记录的月份。
firstday=Year(Date)&"-"&Mmonth.Text&"-1"
days=DateDiff("d",Year(Date)&"-"&Mmonth.Text&"-1",_
Year(Date)&"-"&Mmonth.Text+1&"-1")
lastday=Year(Date)&"-"&Mmonth.Text&"-"&days
sql="select*fromattendancestatisticswhererecordmonthbetween#"
sql=sql&firstday&"#and#"&lastday&"#"
Setrsrecord=getrs(sql,"salary")
Ifrsrecord.EOF=FalseThen
MsgBox"已经统计",vbOKOnly+vbExclamation,"提示"
frmaresult.Show
frmaresult.ZOrder0
rsrecord.Close
UnloadMe
ExitSub
EndIf
sql="select*fromattendanceinfowhereadatebetween#"
sql=sql&firstday&"#and#"&lastday&"#"
Setrsrecord=getrs(sql,"person")
Ifrsrecord.EOF=FalseThen
sql="selectsid,snamefromstuffinfoorderbysid"
Setrsperson=getrs(sql,"person")
选择月份后单击“确定”按钮,如果系统已经统计过该月份的记录,那么会出现如下图所示的统计结果信息列表。
如果系统没有统计过,那么系统就会开始统计记录,然后显示如图所示的统计结果信息列表。
Ifstrusername<>"admin"Then
sql="selectsidfromstuffinfowheresname='"&strusername&"'"
Setrs=getrs(sql,"salary")
sd=rs(0)
sql="select*fromattendancestatisticswherestuffid='"&sd&"'"
Me.Adodc1.ConnectionString="provider=microsoft.jet.oledb.4.0;Datasource="&App.Path&"\salary.mdb"
Me.Adodc1.RecordSource=sql
Me.Adodc1.Refresh
SetMe.DataGrid1.DataSource=Me.Adodc1.Recordset
Me.DataGrid1.Refresh
Else
sql="select*fromattendancestatistics"
Me.Adodc1.ConnectionString="provider=microsoft.jet.oledb.4.0;Datasource="&App.Path&"\salary.mdb"
Me.Adodc1.RecordSource=sql
Me.Adodc1.Refres
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 企业 工资管理 系统 设计 报告