工资管理系统课程设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录
1 引言 (1)
2 系统调查与可行性研究 (2)
2.1 初步调查 (2)
2.2 可行性研究 (2)
3 系统分析 (3)
3.1 业务流程分析 (3)
3.2 数据流程分析 (5)
3.3 数据字典 (5)
4 系统设计 (9)
4.1 功能结构设计 (9)
4.2 数据库设计 (18)
4.3 代码设计 (19)
4.4 输入输出设计 (23)
4.5 系统配置设计 (26)
参考文献 (26)
附录 (26)
1引言
随着计算机技术的飞速发展,计算机在各种单位机构管理中应用的普及,管理信息系统的开发在强调管理、强调信息的现代社会中也显得越来越重要。

因此,利用计算机支持单位高效率地完成工资管理的日常事务,是适应现代各种单位机构制度要求、推动各种单位机构工资管理走向科学化、规化的必要条件。

在当今的信息社会,随着信息的不断增长和企业对信息的要求,信息管理技术随之出现。

企业工资管理信息系统是一个现代化的企业在竞争中立于不败之地的必要部分,它能够为查询工资信息提供充足的信息和快捷的查询手段。

一直以来使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难,而且容易丢失。

自20世纪50年代将计算机引入数据处理以来,历经管理信息系统发展的各个阶段。

一方面是信息技术应用的迅猛发展,另一方面,许多管理信息系统在耗费了大量的人力、物力、财力之后夭折了,或者根本没有实现原系统的开发目标,而把计算机用作了打字机。

这是长期以来困惑人们的一大问题。

现在人们日益深刻认识到,把信息技术应用与应用环境分离是办不到的。

管理信息系统根本不仅是技术系统,而且是社会系统。

工资业务是每一个企业都不能缺少的一项工作,使用计算机对企业工资信息进行管理,具有手工管理所无法比拟的优点。

例如:检索迅速、查找方便、可靠性高、存储量大、性好、寿命长、成本低等。

这些优点能够极提高企业工资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

因此,开发一个代替手工操作的新型的计算机管理的信息系统对公司来说刻不容缓,这也是本课题的由来。

本论文就是以Visual FoxPro为前台等软件作为开发工具,以各种单位机构为对象,开发一个从某种程度上能满足中小型机构对工资信息管理的要求的“工资管理系统”。

本系统主要包括人事管理、工资管理、系统管理几大模块。

使用该系统,可以方便地进行设置工资计算标准、计算工资、工资查询、打印工资清单等业务,方便企业高层领导对该企业工资管理的现状有个比较全面的认识,也方便他们的管理,从而大大减少了工作量,提高了工作效率。

本课题是辅助企业管理的系统,拟采用的开发平台为Windows 平台,系统所采用的开发工具为Visual FoxPro。

2系统调查与可行性研究
在系统的开发前期对系统进行可行性分析是十分必要的一个环节,这对于保证资源的合理使用,避免浪费是十分必要的,也是项目一旦开始以后能顺利进行的必要保证。

信息系统的建设是一项投资大,时间长的复杂工程,可行性研究更为必要,也更复杂,更困难。

“可行性”是指在当前情况下,企业研制这个信息系统是否有必要,是否具备必要的条件。

可行性的含义不仅包括可能性,还包括必要性,合理性。

2.1 初步调查
随着科技日新月异的发展,网络的更加成熟,以及企业规模的扩大,越来越多的企业对自己员工的情况也开始使用计算机进行自动化的管理,因此,开发一个操作方便、功能适合的管理系统,提高管理效率。

经过调查我了解到公司的组织机构图如图2.1所示:
图2.1公司组织机构图
2.2可行性研究
随着我国国民经济建设的蓬勃发展和具有中国特色的社会主义市场经济体制的迅速完善,各个企业和机构都在使用科学、高效的信息管理系统,不断改善服务质量,提
高工作效率。

企业部财务管理是该企业运用现代化信息技术创造更多的经济利益的主要因素之一。

工资管理作为企业部的一种财务管理也是如此。

技术上的可行性:
系统能正常运行的最低要求:在硬件方面要求计算机CPU主频在400MHZ以上,存在32M 以上。

软件方面操作系统采用WINDOWS98和Visual FoxPro,较简单。

经济上的可行性:
公司一般具备硬件和软件资源,因此设备费用不是很高。

此系统不大,所以不论是企业自行开发还是委托开发商开发,费用都不会很高,可见经济上不会存在大的问题。

管理上的可行性:
系统操作起来难度不大,用户界面也很友好,操作人员无需掌握太多的计算机知识,只要稍加培训后,都可胜任工作,因此系统的运行和维护工作不会有什么障碍。

系统提供容错能力,能识别操作员的明显的误操作,并对错误操作输入进行报警处理,对误操作进行恢复处理。

综上所述,系统的开发的目标明确,技术可行,在经济和管理方面也无碍,此系统完全可行
3 系统分析
3.1业务流程分析
工资管理系统业务流程分析
( 1 )财务部根据人事部的职员信息表及相关的工资计算标准表录入每个员工的基础工资数据,当月如果职员信息有变动,工资相关项目计计算公式也要作相应调整。

例如当员工提职、提薪、晋级时,基本工资、职务工资、职称工资及各种固定补贴需由财务部根据国家有关规定进行修改。

( 2 )在企业部,不同的企业有不同的奖惩措施,财务部对员工的业绩、考勤等方面都会进行考核,跟据其他部门提交上来的考勤等信息,由财务部结合工资计算标准计算每个员工当月工资的变动部分,如病事假扣款、房租水电费、医药费等代扣款。

并编制变动工资表。

( 3 )根据基本工资表、变动工资表计算汇总,生成工资计算表。

( 4 )由于现在大部分企业都采用银行代发工资,故需要进行有关处理,将员工的实发工资以银行代发文件的形式传递给银行,由银行转入职工的工资卡。

( 5 )由工资计算表进行工资分摊、扣税、计提福利费等处理,编制工资费用分配表、个人所得税申报表、职工福利费计提表。

并填制相应记账凭证,进行账务处理。

3.2数据流程分析
工资管理系统的数据流程图,如图:
3.3 主要数据字典
1) 数据项的定义
数据项名称类型及宽度简述取值围数据项
编号
I1 考勤日期Char ( 10) 标示其他部门提交的职工考勤信息的年月
I2 工资日期Char10) 标示职工工资的年月
I3 职工编码Char10) 唯一用来标示职工的编码
I4 部门名称Char(20) 使用此系统单位部子部分
I5 基本工资decimal(7,2) 各部门的员工固定工资,即部门岗位工资。

2)数据存储的描述
4 系统设计
4.1功能结构设计
工资业务是每一个企业都不能缺少的一项工作,工资管理子系统是负责对工资表的操作,可以查询职员工资记录,生成月份工资,增加职员工资记录,修改职员工资记录,删除不需要的工资记录。

工资管理子系统主要连接数据库中的工资表,职工信息表,部门信息表,做到数据的传递作用。

工资管理子系统由工资查询模块、工资录入模块、工资修改模块组成,在工资查询模块中,主要完成对职员工资记录的查询,可以按照职工工号,职工,部门等进行查询。

界面友好,简单易懂。

工资录入模块完成职工工资的增加,但应收项目中,职务工资、岗位工资,工资津贴,综合补贴,补贴,养老补贴,补贴为工资自动生成,不允许人为修改,应扣项目中,
工会费、养老费、教卫费、医保金、公积金、失业金也为公式生成项目,也不允许人为修改,体现了学校财务管理的规性和正规性。

工资修改模块中同样存在这样的问题,上述公式生成项也是不允许修改的,其他不固定项目根据不同职员可以进行修改。

查询子系统的功能如图4-2所示:
图4-2 工资管理子系统的功能图
工资项目管理子系统由补贴模块、补贴模块、房贴模块、工会费模块、公积金比例模块、工人职务岗位津贴工资管理模块、岗位津贴模块,工资津贴院部比例模块,工资津贴应用/延陵比例模块、技术工人岗位技术等级工资管理模块、教卫费模块、临收1模块、临收2模块、临扣1模块、临扣2模块、临扣3模块、普通工人岗位等级工资管理模块、失业金比例模块、医保费模块、医疗补贴模块、养老金比例模块、综合补贴模块、专业技术人员岗位津贴工资管理模块、专业技术职务等级工资管理模块、职员职务等级工资模块组成。

以补贴模块为例,该模块负责对补贴的增加修改,有补贴增加,补贴修改两个子模块。

补贴增加模块中完成最新补贴标准的录入,使其标记位为1,设置为最新标准。

以便公式套用。

补贴修改模块中完成对补贴标准的修改,并保存以备作为档案查看。

工资项目管理子系统的简单功能如图4-3所示:
图4-3 工资项目管理子系统的功能图
4.1.1 工资录入
工资的录入也称工资生成,它是工资发放系统中的最为重要的模块,也可以说是工资系统的核心所在。

工资系统的生成,计算公式等都包含其中。

所涉及的数据也是最为复杂的,要在财务室人员输入职工号后立即输出相应的工资项目组成的数据,涉及到多表的查询判断。

以下是输入职工号后的数据生成步骤:
(1)由zgh查询表rsjbxx(人事基本信息表),得到职工,职称级别,档次,
个人编制,来院工作时间,性别,类别标记,职务级别,职务档次,
个人身份,出生年月。

(2)由职称级别,档次查询职称表得到相应工资标准,由职务级别,档次
得到相应工资标准,两者取最大值得到职务工资。

(3)由个人编制查询工资津贴院部/应用/延陵比例表得到比例值,再乘以
职务工资得到工资津贴。

(4)算出工龄和学龄之和,对应职工岗位津贴表求出职位津贴。

(5)取出综合补贴值。

(6)由性别,判断有无补贴,取出其目前标准。

(7)由个人身份和个人编制得出其有无养老补贴。

(8)由工作时间得出其有无房贴。

(9)由类别标记算出补贴。

(10)取职务工资和工资津贴之和乘以目前工会费比例标准得到工会费。

(11)由个人编制得出养老金比例,算出养老金。

(12)从jwf表中调出教卫费标准。

(13)有月份得到有无医保费。

(14)和养老金原理相同得到公积金、失业金。

(15)输入水电费、房租、临收1、临收2、临扣1、临扣2、临扣3。

录入程序中使用了一个datawindow控件,输入工资信息。

容包括:编号(id)、职工号(zgh)、标准工资(bzgz)、工资津贴(gzjt)、岗位津贴(gwjt)、综合补贴(zhbt)、补贴(bt)、养老补贴(ylbt)、房贴(ft)、补贴(dhbt)、临收1(ls1)、临收2(ls2)、工会费(ghf)、养老费(ylj)、教卫费(jwf)、医保金(ybf)、公积金(gjj)、失业金(syj)、水电费(sdf)、房租(fz)、临扣1(lk1)、临扣2(lk2)、临扣3(lk3)。

工资录入的程序流程如图4-4所示:
图4-4 工资录入程序流程图
4.1.2 工资项目管理
在查询工资项目后若要对项目进行修改,则调用此模块。

根据用户点击数据窗体的
不同记录条来连接不同窗体,对不同的工资项目进行修改。

用户选择需要查看的工资项目记录后,系统查询数据库中xmb表,若查询出错则显示出错信息,否则判断id号,显示相应的工资项目窗体。

工资项目管理程序流程如图4-5所示:
图4-5 工资项目管理程序流程图
4.1.3 工资查询
该模块负责工资的查询,可选择或输入职工号,,部门,输出相应的职工工资信息。

用户进入工资查询界面后,由用户选择查询条件,可以选择职工号,输
入职工,选择职工所在部门,确定后,系统根据查询条件进行数据库访问。

若按职工号查询,则判断职工号是否出错,出错则显示出错信息。

若按职工进行查询,则先要访问人事信息表,得到符合条件的职工号,对此过程进行判断,是否出错,出错显示出错信息。

同样,若按职工部门进行查询,则也要访问人事信息表,得到符合条件的职工号,对此过程进行判断,是否出错,出错则显示出错信息。

然后根据职工号查询工资表,无错误则显示符合查询条件的职员工资信息。

工资查询程序流程如图4-6所示:
图4-6 工资查询程序流程图4.2.4 补贴标准增加
该模块负责补贴新标准的增加,并将新记录添加到数据库中。

补贴标准增加程序流程如图4-7所示:
图4-7 补贴标准增加程序流程图
4.2 数据库设计
4.2.1 E-R图
E-R图如图所示:
E-R图4.2.2系统数据表结构
根据工资管理的一般工作过程和用户需求的研究分析,工资观众里系统数据库系统中主要包括公司管理员管理登录表、部门情况表、员工表、工资发放表,各个数据库表的结构如下:
该系统由下述五数据表组成:
员工信息表:Personnel.dbf
基础工资设置表:course.dbf
岗位工资设置表:rank.dbf
工龄工资设置表:gongling.dbf
管理员注册表:adminer.dbf
4.3 代码设计
具体代码如下:
(1)“增加记录”按钮控件源代码:
Thisform.pageframe1.page1.fy1.enabled=.F.
mand2.enabled=.F.
mand3.enabled=.F.
mand4.enabled=.T.
If mand1.caption=’增加新记录’
Thisform.pageframe1.page1.txtpid.enabled=.T.
Thisform.pageframe1.page1.txtpname.enabled=.T.
Thisform.pageframe1.page1.txtpsex.enabled=.T.
Thisform.pageframe1.page1.txtpjob.enabled=.T.
Thisform.pageframe1.page1.txtpindate.enabled=.T.
Thisform.pageframe1.page1.txtprank.enabled=.T.
Append blank
mand1.caption=’增加确认’
Thisform.pageframe1.page1.refresh
Thisform.pageframe1.page1.txtpid.setfocus
Else
Getid=alltrim(Thisform.pageframe1.page1.txtpid.value)
Getname= alltrim(Thisform.pageframe1.page1.txtpname.value)
Getsex= alltrim(Thisform.pageframe1.page1.txtpsex.value)
Getjob= alltrim(Thisform.pageframe1.page1.txtpjob.value)
Getrank= alltrim(Thisform.pageframe1.page1.txtprank.value)
Getindate= alltrim(Thisform.pageframe1.page1.txtpindate.value)
If empty(getid) or empty(getname) or empty(getsex) or empty(getjob) or empty(getindate) or empty(getrank)
msg(“资料不足”,48,”错误”)
else
mand1.caption=’增加记录’
Tableupdate(.t)
Thisform.pageframe1.page1.txtpid.enabled=.F.
Thisform.pageframe1.page1.txtpname.enabled=.F.
Thisform.pageframe1.page1.txtpsex.enabled=.F.
Thisform.pageframe1.page1.txtpjob.enabled=.F.
Thisform.pageframe1.page1.txtpindate.enabled=.F.
Thisform.pageframe1.page1.txtprank.enabled=.F.
Thisform.pageframe1.page1.fy1.enabled=.T.
mand2.enabled=.T.
mand3.enabled=.T.
mand4.enabled=.F.
End if
End if
(2)“修改记录“按钮控件源代码:
Thisform.pageframe1.page1.fy1.enabled=.F.
mand1.enabled=.F.
mand3.enabled=.F.
mand4.enabled=.T.
If mand2.caption=’修改记录’ Thisform.pageframe1.page1.txtpid.enabled=.T.
Thisform.pageframe1.page1.txtpname.enabled=.T.
Thisform.pageframe1.page1.txtpsex.enabled=.T.
Thisform.pageframe1.page1.txtpjob.enabled=.T.
Thisform.pageframe1.page1.txtpindate.enabled=.T. Thisform.pageframe1.page1.txtprank.enabled=.T.
Append blank
mand2.caption=’修改确认’Thisform.pageframe1.page1.refresh
Thisform.pageframe1.page1.txtpid.setfocus
Else
m and2.caption=’修改记录’Tableupdate(.t)
Thisform.pageframe1.page1.txtpid.enabled=.F.
Thisform.pageframe1.page1.txtpname.enabled=.F.
Thisform.pageframe1.page1.txtpsex.enabled=.F.
Thisform.pageframe1.page1.txtpjob.enabled=.F.
Thisform.pageframe1.page1.txtpindate.enabled=.F. Thisform.pageframe1.page1.txtprank.enabled=.F.
Thisform.pageframe1.page1.fy1.enabled=.T.
mand1.enabled=.T.
mand3.enabled=.T.
mand4.enabled=.F.
End if
(3)“查询”按钮控件源代码:
Getpid=alltrim(Thisform.pageframe1.page2.text1.value) Getpname= alltrim(Thisform.pageframe1.page2.text2.value) Flag1=thisform.pageframe1.page2.check1.value
Flag2=thisform.pageframe1.page2.check2.value
If flag1=0 and flag2=0
Messagebox(“请输入查询条件”,48,”错误”)
End if
If flag1=0 and flag2=0
Set order to pid
Seek getpid
If found()
Messagebox(“查到记录”,48,”注意”)
Select * from personnel where pid=gepid into sursor ling
Thisform.pageframe1.page3.enabled=.T.
Thisform.pageframe1.page3.refresh
Else
Messagebox(“没有这条记录”,48,”注意”)
End if
Endif
If flag1=0 and flag2=1
Set order to pname
Seek getpname
If found()
Messagebox(“查到记录”,48,”注意”)
Select * from personnel where pname=gepname into sursor ling
Thisform.pageframe1.page3.enabled=.T.
Thisform.pageframe1.page3.refresh
Else
Messagebox(“没有这条记录”,48,”注意”)
End if
End if
If flag1=1 and flag2=1
Set order to pid
Seek getpid
If personnel.pname=getpname
Messagebox(“查到记录”,48,”注意”)
Select * from personnel where pid=getpid and pname=gepname into sursor ling Thisform.pageframe1.page3.enabled=.T.
Thisform.pageframe1.page3.refresh
Else
Messagebox(“没有这条记录”,48,”注意”)
End if
End if
(4)“修改”按钮控件源代码:
Thisform.gtdrank.colum1.text1.enabled=.T.
Thisform.gtdrank.colum2.text1.enabled=.T.
Thisform.gtdrank.colum1.text1.setfocus
(5)“修改确认”按钮控件源代码:
Thisform.gtdrank.colum1.text1.enabled=.F.
Thisform.gtdrank.colum2.text1.enabled=.F.
(6)“添加”按钮控件源代码:
Append blank
Go bottom
Thisform.gtdrank.colum1.text1.enabled=.T.
Thisform.gtdrank.colum2.text1.enabled=.T.
Thisform.gtdrank.colum1.text1.setfocus
(7)“删除”按钮控件源代码:
Thisform.gtdrank.recordsource=’’
Use rank exclusive
Delete from rank where rname=getid
Pack
Thisform.gtdrank.recordsource=’rank’
Thisform.gtdrank.refresh
(8)“退出”按钮控件源代码:
Thisform.release
Do form form\dataformat
4.4输入输出设计
1. 主模块
输入:操作系统传递至的各种消息以及用户的输入数据
输出:用户界面显示
2. 工资信息模块
输入:用户的输入
输出:相应的界面
3. 工资套项目信息模块
输入:用户的输入
输出:相应的界面
4. 工资查询模块
输入:工号、、月份、工资套
输出:职工工资信息
5. 工资信息修改模块
输入:用户口令
输出:相应的界面
6. 工资增加模块
输入:工资信息相关容
输出:增加允许/禁止对话框
7. 工资修改模块
输入:工资信息相关容
输出:修改允许/禁止对话框
8. 工资套项目信息管理模块
输入:用户的输入
输出:相应的界面
9. 专业技术职务等级工资管理模块
输入:与数据库操作子对话框有关的用户输入及系统消息
输出:相应的界面
10. 职员职务等级工资管理模块
输入:与数据库操作子对话框有关的用户输入及系统消息
输出:相应的界面
11. 技术工人岗位技术等级工资管理模块
输入:与数据库操作子对话框有关的用户输入及系统消息
输出:相应的界面
12. 普通工人岗位工资管理模块
输入:与数据库操作子对话框有关的用户输入及系统消息
输出:相应的界面
13. 工资津贴应用/延陵比例管理模块
输入:与数据库操作子对话框有关的用户输入及系统消息
输出:相应的界面
14. 工人职务岗位津贴管理模块
输入:与数据库操作子对话框有关的用户输入及系统消息
输出:相应的界面
15. 行政管理人员岗位津贴管理模块
输入:与数据库操作子对话框有关的用户输入及系统消息
输出:相应的界面
16. 专业技术人员岗位津贴管理模块
输入:与数据库操作子对话框有关的用户输入及系统消息
输出:相应的界面
17. 工资津贴院部比例管理模块
输入:与数据库操作子对话框有关的用户输入及系统消息
输出:相应的界面
18. 岗位津贴管理模块
输入:与数据库操作子对话框有关的用户输入及系统消息
输出:相应的界面
19. 综合补贴管理模块
输入:与数据库操作子对话框有关的用户输入及系统消息
输出:相应的界面
20. 补贴管理模块
输入:与数据库操作子对话框有关的用户输入及系统消息
输出:相应的界面
21. 房贴管理模块
输入:与数据库操作子对话框有关的用户输入及系统消息
输出:相应的界面
22. 补贴管理模块
输入:与数据库操作子对话框有关的用户输入及系统消息
输出:相应的界面
23. 工会费管理模块
输入:与数据库操作子对话框有关的用户输入及系统消息
输出:相应的界面
24. 养老金管理模块
输入:与数据库操作子对话框有关的用户输入及系统消息
输出:相应的界面
25. 公积金管理模块
输入:与数据库操作子对话框有关的用户输入及系统消息
输出:相应的界面
26. 失业金管理模块
输入:与数据库操作子对话框有关的用户输入及系统消息
输出:相应的界面
27. 教卫费管理模块
输入:与数据库操作子对话框有关的用户输入及系统消息
输出:相应的界面
28. 医保费管理模块
输入:与数据库操作子对话框有关的用户输入及系统消息
输出:相应的界面
4.5系统配置设计
Visual FoxPro系统软件,Windows操作系统,个人计算机。

5 结论
问题发现正确,系统具有可操作性。

参考文献
[1] Timothy Buchanan: Visual Basic加数据库 [M].2004;85~100:工业
[2] 海藩:软件工程导论,清华大学1992年版
[3] Bob Reselman,Richard Peasley,Wayne Pruchniak.: Visual Basic 6.0使用指南[M].电子工业2002;5~65
[4] Lance Mortensen Rick Sawtell: MCSE:SQL Server 2000 Administration,电子工业,2001年版
[5] Roger Jennings:Visual Basic 6数据库开发人员指南,机械工业1999年版
[6] 卢毅主编:Visual Basic 6.0数据库设计实例导航,科学2001年版
[7] 钢主编:Visual Basic 6.0程序设计,中国民航2000年版
[8] 光阳、劲: SQL SERVER 2000与XML整合应用,清华大学2001年版
[9] 林雷郭安源晓东:Visual Basic教育信息化系统开发实例导航[M].2003;172~222 人民邮电
[10] Ullmanl,J.D,Principles of Database and knowledge-Base Systems,VolumeⅡ,Computer Science Press,New York,1989
[11] A.F.Cardenas: Database Management System, GRANADA London Toronto Sydney New York, 1985
[12] Stonebraker M, et al: The Design of XPRS. Processing of VLDB, 1998
[13] R.A.Frost:Query Processing in Parallel Relational Database system.IEEE Computer Society Press, 199。

相关文档
最新文档