工资管理系统.docx
- 文档编号:10997377
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:28
- 大小:368.76KB
工资管理系统.docx
《工资管理系统.docx》由会员分享,可在线阅读,更多相关《工资管理系统.docx(28页珍藏版)》请在冰点文库上搜索。
工资管理系统
毕业论文
论文题目:
工资管理系统
姓名:
黄晓光
学号:
140304411010003
学习中心:
北京学习中心
专业:
计算机科学与技术
指导教师:
杨海蓉
二〇一六年二月
毕业论文承诺书
提示:
根据北京语言大学网络教育学院论文写作的规定,如发现论文有抄袭、网上下载、请人代写等情况,毕业论文一律不及格。
毕业论文不及格者,可申请重写一次,并按重修缴纳费用。
本人承诺:
本人已经了解北京语言大学的毕业论文写作的有关规定;本人的论文是在指导教师指导下独立完成的研究成果。
整篇论文除了文中已注明出处或引用的内容外,绝没有侵犯他人知识产权。
对本论文所涉及的研究工作做出贡献的个人和集体,均已在文中以明确方式注明。
同时取消学士学位申请资格。
签名:
____黄晓光_____日期:
_____2016年2月12日_____
摘要
国企施工单位目前使用传统人工方式做工资统计和发放,工作量大、出错机率高、保密性低、数据查询困难,不能满足企业发展的需要。
为解决以上问题,特开发了一套高效的工资管理系统,使用计算机完成工资信息的存储、计算、查询和统计,来实现工资管理的系统化、规范化和自动化。
本文详细介绍了从可行性分析到总体设计、详细设计及实现、系统测试等几个环节,介绍了以Java编写操作界面,用SQLServer2000数据库存储工资数据,编写工资管理系统的过程。
运行结果证明,工资管理系统可以极大地提高工作效率,节省人力和物力,最终满足企业财务管理、员工工资发放的需要,同时也成为现代化企业管理的标志。
但由于时间紧加之本人技术有限,系统在许多方面做得还不够完善,如:
在查询功能上还不够灵活,未能提供一个由用户自己灵活生成查询条件的界面;没有导入功能,不能让用户将已有的员工信息直接导入等,这些问题还需在今后的工作和学习中进一步完善。
关键词:
工资管理JavaSQLServer2000数据库
目录
1.引言1
2.可行性分析1
2.1经济可行性分析2
2.2技术可行性分析2
2.3操作可行性分析2
3.系统总体结构设计3
3.1系统目标3
3.2系统功能结构与分析3
3.3系统各功能模块设计4
3.3.1数据维护模块5
3.3.2设置模块6
3.3.3数据录入模块6
3.3.4查询统计模块7
3.3.5打印输出模块8
4.数据库设计8
4.1数据库需求分析8
4.2数据库概念结构设计10
4.3数据库逻辑结构设计10
5.详细设计与实现12
5.1系统用户登录实现13
5.2企业工资管理系统实现13
5.3系统各功能的实现14
5.3.1设置模块14
5.3.2信息录入模块17
5.3.3数据查询模块19
5.3.4打印输出模块19
5.3.5数据还原、备份与收缩21
6.系统开发环境、测试与维护21
6.1系统开发环境21
6.2系统测试22
6.3系统运行与维护24
7.结论25
参考文献27
工资管理系统
1.引言
国企施工单位年工资总额受上级管理部门控制,下属施工地点多,各部门人员按需调动频繁,外聘劳务人员流动性大,工资管理系统对于一个国企施工单位来说是不可缺少的部分。
它的内容对于单位的决策者和管理者来说都至关重要。
所以企业工资管理软件应该能够为用户提供充足的信息和快捷的查询方法。
但一直以来人们使用传统人工的方式管理文件信息,这种管理方式存在着许多缺点。
如:
效率低、保密性差、易出错。
另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,已进入人类社会的各个领域,并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对企业工资信息进行管理,具有着手工管理所无法比拟的优点。
例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高企业工资信息管理的效率。
开发本软件的目的就是帮助企业的财务主管部门提高工作效率,实现企业工资信息管理的系统化、规范化和自动化。
本系统包括修改员工信息、员工的基本工资金额、设置其他项目的金额(奖金、福利、津贴、扣发等)、设置工资计算公式,自动计算税金、打印工资单等。
使单位实现工资管理的自动化,无疑将给企业管理部门带来很大方便。
2.可行性分析
考虑到项目技术、资源等因素,在实际开发该计算机系统时,常常要为资源不足和技术难以完成而苦恼,因而需要慎重地尽可能早的估计研制课题的可行性。
可行性研究包括:
经济可行性、技术可行性、操作可行性等。
2.1经济可行性分析
主要是对项目的经济效益进行评价。
一方面是支出的费用,其中包括设备购置费,软件开发费,管理和维护费,人员工资和培训费等。
另一方面是取得的收益中可以用钱来衡量的那部分(收益的另一部分难以用钱来衡量)。
公司现有计算机硬、软件均能满足软件开发、运行需要,基于企业的现有计算机及配套设备,建设本系统,能有效提高办公效率,为企业提供方便。
由于企业工资管理系统是一个比较小型的系统,是由企业内部少数几个人进行开发的,所以从人力、物力、财力方面来说都是可行的。
2.2技术可行性分析
技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,软硬件配置能否满足开发者需要等。
工资管理具有重复性、规律性、时间性特点,这些特点完全符合计算机的特性,能够发挥计算机处理数据速度快,准确率高的优势。
现代计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。
由于对企业物资管理软件这一类的企业软件进行开发已有一定的时期,有很多成功的实例,技术基础也已经非常雄厚,因而技术上的准备不成问题。
2.3操作可行性分析
操作可行性主要是指用户使用的舒适性,因此界面设计时要充分考虑财务人员的操作习惯,使得操作简单便捷,数据录入迅速、规范、可靠,统计准确,制表灵活,适应力强,容易扩充。
具有易用性、灵活性、开放性与可视性等,这些基本都可以实现。
3.系统总体结构设计
本部分主要介绍系统要实现的功能,搭好设计的总体框架,使我们对要开发的系统有一个系统、全面、确切的认识。
3.1系统目标
本系统要能完成企业工资管理的日常工作,如:
人员、部门信息的修改及工资数据的录入和工资单打印等工作。
考虑到做一次开发投入的精力较多,要尽可能延长系统的使用寿命,因此,需要有灵活的设置功能,允许用户对所有与工资相关的项进行重新设置、修改,如:
工资项、税率、计算公式等。
并要求系统能根据用户的设置,重新安排好一些输入界面的布局和调整计算方法,最终生成正确的员工个人工资台帐,打印出工正确的工资单。
为防止人为干扰,采用用户登陆代码安全机制,保证系统资源不受人为因素的干扰。
为缩短系统开发时间,系统在开发过程中,各模块间使用Java提供的接口技术,所有用户操作界面和数据操作模块均面向接口编程。
操作界面开发与数据操作模块可同时进行编写,操作界面需要调用数据操作模块的相关功能时,只需将接口作为参数传入,不必等接口被实现,也不必关心数据操作模块实现的细节;数据操作模块只需要实现接口定义的功能,无需了解操作界面。
3.2系统功能结构与分析
工资管理系统是帮助企业管理职工工资的系统,本系统是由数据维护、信息录入、工资查询、基础信息设置和打印输出等几个功能模块组成。
根据以上的功能结构,将工资管理系统的数据操作分为五部分:
1、基础信息设置部分:
在录入工资前要设定的一些信息,包括税率、个税计算公式、工资包含项、工资中需自动计算的各项的公式等。
这部分如果设计不好将直接影响系统使用寿命,如:
税率及其计算公式如果设置得不够灵活,在国家改变税收政策时,系统将不能再使用。
因此,这部分的界面和数据库相关表的设计必须够灵活,允许对相关项(包括:
工资项、税率等)进行添加、删除、修改。
2、信息录入部分:
这部分包括录入工资前需要录入的信息(如:
员工信息、部门信息等),之后才能做每个月工资明细的输入。
信息录入部分与基础信息设置部分联系比较紧密,要求基础信息有关项改变时,一些与之相关的基础信息设置部分也要随之改变(如:
工资项变动时,月工资录入界面中包含的项也要随之改变)。
3、工资查询部分:
这部分主要是显示工资数据的查询、统计,并提供打印和导出功能,方便财务人员进行后续操作。
例如查询某个员工的个人工资、部门工资汇总信息、统计本单位某年工资的信息等。
4、打印输出部分:
打印输出部分主要是完成个人工资单和部门汇总工资的打印及预览。
打印前提供预览,可方便财务人员对打印格式进行调整等。
5、数据维护部分:
此部分主要是对数据库中的信息进行维护。
随着使用年限的增长,数据库中必然会产生大量无用信息(如:
已离职人员的信息、超过规定保留年限的工资记录等),这些信息不但占用存储空间,还会影响系统运行速度,因此,必须提供数据维护的功能,删除无用信息,提高系统运行效率。
3.3系统各功能模块设计
根据以上分析的功能,其中一些数据处理功能,由于与相关的设置功能和信息录入功能联系比较紧密,因此可以放在一起,数据维护功能与其它部分联系不大,单独构成一个模块。
最终总结出系统结构图如下:
工资转账单
图3.1工资管理系统结构图
3.3.1数据维护模块
系统在使用的过程中,由于使用不善,避免不了会出现一些问题,从而导致系统数据丢失、损坏,这对企业是很不利的,另外,系统的长期使用不可避免的会产生一些无用信息,因此,在日常的使用过程中,我们需要对系统数据进行维护,以保证即使出错也不会有问题。
“数据备份与还原”就是在日常使用中,操作员要经常对系统中的数据进行备份,这样在有需要的时候,只要还原数据库就可以了,不至发生数据损坏,甚至丢失的严重后果。
退出
退出
退出
退出
退出
退出
退出
退出
数据库收缩针对的主要是,当软件使用年限较长时产生的大量无用信息(如:
解聘、退休、调离人员的相关信息等),这些无用的信息如果很多,不但会占用存储空间,还会影响查询速度,因此,必要时需要软件识别并删除无用信息,收缩数据库。
3.3.2设置模块
随着社会发展,现有工资项可能不能满足要求,税率可能会变化,计算公式可能需要更改。
设置模块的实现,可以极大地增加软件的灵活性,延长软件的使用寿命。
当现有的工资项不能满足要求时,设置工资项功能的实现,可以让财务人员,灵活的添加或删除工资项。
系统需要保证财务人员的这些操作不会影响对已有信息的查询,因此,对工资记录中已有的工资项,在财务人员做删除动作时,只是被隐藏起来,使财务人员看不到,并非真的从数据表中删除。
允许财务人员对工资项的打印顺序进行调整,防止在打印工资单时,新添加的工资项出现在最后一项(实发工资)的后面。
当国家对税率进行调整时,财务人员可以通过税率设置功能改变个税提取方法,为不影响已生成的工资记录,要求数据库设计时,保留一定的冗余,记录下每次计算出的个税值。
现有工资计算方法不能满足要求时,财务人员可通过公式编辑器重新添加、编辑、删除计算公式。
3.3.3数据录入模块
该模块主要用于员工信息、部门信息的及时更新和员工工资的录入。
这部分虽然与设置模块一样都是做各种信息的录入,但设置模块中的信息做一次录入后基本不改动,本模块的信息则需要经常变动,因此,为方便财务人员操作,这部分被拿出来作为一个单独的模块。
该模块包括对员工、部门信息的修改、增加与删除。
由于施工企业人员调动、职位改动频繁,当某个员工岗位改变或更换部门时,都需要对员工的信息进行修改,有新员工加入或者有员工离职时,都要对员工信息进行增加或删除。
其中“员工信息删除”就是删除某个已经离职员工的信息,确保财务人员在做工资录入和其他操作时不会看到大量无用人员的信息,但系统需要保证员工信息的删除不会影响对已有数据的查询和汇总产生影响,即对已有工资记录的员工,删除操作只是将其隐藏不显示,这样才能保证在对以往信息作查询时不会出错。
为方便财务人员操作,提高工作效率,在做工资录入时,那些不经常变动的工资项(如:
岗位工资、岗效、工龄工资等)应能自动添加,应发工资、税金、实发工资等需要计算的工资项,要能根据财务人员的录入情况实时自动计算并填写。
3.3.4查询统计模块
该模块负责工资的查询与统计。
不但要能显示正确的查询结果,还要能将查询结果导出成EXCEL表,方便财务人员根据需要进行编辑,并提供直接打印功能,为财务工作提供便利。
为提高系统的可读性和可维护性,所有查询结果的导出都使用同一个类实现。
由于施工企业员工人数多,外聘员工流动性强,用户不可能记住每个员工的名字。
工资查询界面以目录树形式展示员工的姓名,方便用户选择。
用户进入个人工资查询界面后,从目录树选择部门—>职工姓名,再选择要查询的时间段,确定后,系统根据查询条件对数据库进行访问,若有符合条件的记录则正确显示出来。
部门汇总查询界面提供企业所有部门的下拉列表,由用户从中选取要查询的部门,再选择要查询的时间,确定后,系统根据查询条件对数据库进行访问。
若有符合条件的记录,则在显示区显示该部门所有员工的工资明细,并在最后加入部门工资汇总信息。
为防止输入的信息有误,两个查询界面,操作人员只能选取查询条件(包括日期),不能做任何输入。
3.3.5打印输出模块
用户在信息录入模块对所有员工的工资信息(包括岗位工资,工龄,保险金等)进行输入以后,软件根据用户事先设定好的公式生成需计算的工资项,合成每个员工的最后工资。
在这个模块中,系统根据用户选择的日期,打印相应的工资单,为防止财务人员选错日期,打印出无用的工资单,造成纸张浪费,模块提供打印预览功能。
为减少代码量,提高系统的可读性和可维护性,模块中的预览部分使用Java的接口和多态技术,定义一个打印接口,所有实现了该接口的不同打印类,都能在同一个预览界面中正确显示。
4.数据库设计
在数据库应用系统的开发过程中,数据库的结构设计是其中非常重要的一个环节。
数据库结构的好坏将直接对应用系统的效率以及实现的效果产生影响。
好的数据库结构设计,会在尽量满足第三范式的同时,保留一定的数据冗余,即减少数据库的存储量,又兼顾操作效率。
建立数据表时,通过主、外键的设定,保证较高的数据的完整性和一致性。
能在数据库内完成的数据操作,尽可能使用SQLServer数据库管理系统提供的T-SQL语言编写触发器和存储过程实现,使系统具有较快的响应速度,简化基于此数据库的应用程序的实现。
4.1数据库需求分析
数据库需求分析是数据库结构设计的第一阶段,是非常重要的一个阶段。
这个阶段主要是确定基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为以后进一步设计打下基础。
在仔细调查企业工资管理过程的基础上,我们得到本系统的数据流程图如下:
核算税金
图4.1数据流程图
通过对企业工资管理的内容和数据流程分析,针对企业工资管理系统,我们设计的数据项和数据结构如下:
●税率信息
包括的数据项有税率级数、税率起始额、税率终止额、适用税率、速算扣除数。
●工资包含项目信息
包括的数据项有工资项号、工资项名称、打印工资条时的顺序、是否为固定项、是否隐藏、打印宽度、是否为需要计算项。
●计算公式
包括的数据项有工资需计算项号、参与计算工资项号、计算时机、参与形式。
●部门信息
包括的数据项有部门号、部门名、打印工资条时的顺序。
●员工信息
包括的数据项有员工号、员工姓名、身份证号、工资卡号、部门号、打印工资条时的顺序、是否显示。
●工资记录
包括的数据项有工资项号、员工号、本项工资额、录入年、月。
●其他信息
包括的数据项有数据保留年限、登陆代码、企业名称。
4.2数据库概念结构设计
这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。
实体跟实体之间的E-R图为:
工资项
图4.2实体E-R图
4.3数据库逻辑结构设计
根据数据库的需求分析,建立如下几个数据表
表4.1税率表
为减少数据表数目,个税起征额也加入到税率表,规定其Grade项为0。
表4.2工资项目表
在本表建立Update触发器,当本表SID列更新时,同步更新计算公式表的SID列。
表4.3计算公式表
本表的ComputeItemID列作为工资项目标SID列的外键,级联更新。
表4.4部门信息表
本表添加Delete触发器,在删除已有部门时,要将员工信息表中该部门下的员工设为未分配部门。
表4.5员工信息表
本表中PID列为部门信息表PID列外键,做级联更新。
表4.6工资记录表
本表EID列和SID列分别是员工信息表EID列和工资项目表SID列外键,做级联更新
表4.7其他信息表
5.详细设计与实现
本系统采用多文档窗体程序,每一功能对应一个子窗体。
5.1系统用户登陆实现
图5-1是整个工资管理软件的登陆界面,主要用于对用户身份进行鉴别。
软件自动提取系统日期、公司名称,并填入相应文本框,允许对其进行修改。
用户点击登陆按钮时,系统对用户提供的信息进行鉴别。
首先,日期不能小于已录入工资信息的日期,从而保证用户只能录入新的工资信息或修改当月工资信息,不能对过去的工资信息进行修改。
其次,鉴别用户身份,如果合法,则将用户导向主界面,并将公司名称与数据库中的的进行比较,如果不同,则更新数据库中的名称。
图5.1系统用户登录界面
5.2企业工资管理软件的实现
图5.2显示了企业工资管理软件的主界面。
主界面上有五个菜单,分别指向5个主要功能模块,即数据维护,设置,信息录入,查询统计,打印输出这五个功能。
图5.2系统主界面
5.3系统各个功能的实现
5.3.1设置模块
1、公式编辑:
点击“公式编辑”之后,用户可以根据自己的需求,编辑工资中需要计算的各工资项的计算方法。
本界面在显示前先检查工资项是否已录入,如果没有,则提醒用户先录入工资项再使用公式编辑功能。
当工资项改变时,可随时给需要计算的工资项设定计算公式。
但需要注意的是,不能发生循环套用,造成循环调用,耗尽内存,因此,在用户编辑完成后,需对公式进行验证,任意两公式间和公式自己不能有循环调用现象。
为保证用户输入的公式顺序正确(即每两个工资项或工资项与数值之间都必须是运算符),需要在用户做了某个选择后及时改变各数字、操作符按钮和两个计算项列表的可编辑状态。
图5.4公式编辑器
2、工资项编辑
点击“工资项设置”后,可根据当前需要添加、删除工资项。
对已有工资记录的工资项,删除动作实际只是将当前项隐藏不可见,防止查询以前工资记录时出错;对没有工资记录的工资项可直接删除。
图5.5工资项编辑
3、税率设置
在进入系统的主界面中,点击“税率设置”,可对税率进行设置。
使得国家对现有税率改革时,系统仍可使用。
由于Java提供的缺省TableModel类无法满足在最后一列显示删除按钮的要求,必须继承Java提供的AbstractTableModel类,编写自己的TableModel类。
图5.6税率编辑
4、个税计算公式编辑
当工资项改变或个税计算方法改变时,可通过此界面进行编辑。
本界面在显示前先检查工资项是否已录入,如果没有,则提醒用户先录入工资项再使用个税计算公式编辑功能。
与公式编辑一样,要靠改变运算符按钮和可参与计算项列表的可编辑状态,保证两个计算项之间必须有运算符。
图5.7税金计算公式编辑
5.3.2信息录入模块
1、员工信息编辑:
当员工有变动时,可在本界面进行编辑。
由于企业员工人数多,为防止重复录入现象的发生,左侧提供员工姓名目录树,可以方便查看现有员工。
在做员工删除动作时,对已有工资记录的员工,只作隐藏处理,防止查询已有工资记录时出错;对没有工资记录的员工,可直接删除。
图5.8员工信息编辑
2、工资录入:
财务人员每月在此界面完成工资录入工作。
财务人员在左侧选取员工后,员工的姓名和所在部门会自动添加到右侧的文本框中,此时即可在右侧表格中对该员工当月工资进行编辑(对以往工资不能编辑)。
由于工资项是可改变的,所以右侧编辑区不能使用固定的编辑界面,而采用了表格。
当工资项的数目改变时,表格在加载时的数目也会不同。
为方便计算,在界面加载时就将公式加载进来,并注册每个工资项在表格中的位置,当某项工资数值改变时,与其相关的需计算的工资项(如:
税金、应发、实发等),就能被迅速定位,及时改变其中数值。
表格中使用的编辑单元,是自定义的数字编辑框,它继承了Java提供的JTextField类,保证用户只能输入正确格式的数字,格式不正确的数字和其它文本不能输入,从而免去了繁琐的验证工作。
为方便财务人员操作,提高工作效率,将工资项中不经常变动的固定项排在一起,每月都会改动的活动项排在一起。
如果是本月第一次录入工资,则只提取固定项值填入表中,并将光标定位在第一个变化项,等待输入。
如果不是本月第一次录入,则加载本月所有工资项数值,光标定位在第一个工资项,等待修改。
图5.9工资录入
5.3.3数据查询模块
1、个人工资查询:
个人工资查询界面提供了对个人工资的查询功能,并加入了导出和打印功能,方便财务人员的后续操作。
由于公司员工多,准确记住每个人的名字有困难,因此,在左侧提供了员工姓名目录树,方便操作。
图5.10个人工资查询
2、部门公子汇总:
部门汇总查询界面提供了按部门查询工资的功能,并在最后提供工资汇总数据。
同样,为方便财务人员后续操作,也提供了导出和打印功能。
图5.11部门汇总查询
5.3.4打印输出模块
在工资单打印模块中,可打印财务人员指定日期的工资单或部门汇总工资,并提供预览功能。
图5.12工资单打印
图5.13打印预览
5.3.5数据还原、备份与收缩
在主界面中,点击数据维护。
点击“数据备份”,就可以把数据库备份在一个自己选择的目录下。
点击“备份恢复”就可以把之前备份好的数据库恢复。
点击“数据库收缩”,只是在程序中调用事先在SQLServer中编写好的一个存储过程,来完成无用信息删除和收缩数据库的功能。
图5.14数据备份、还原
6.系统开发环境、测试与维护
6.1系统开发环境:
系统开发环境包括硬件平台和软件平台两种。
硬件平台是指开发与运行所需要的硬件环境,主要包括计算机机型及硬件配置。
由于本系统是一个小型管理系统,因此对计算机硬件的要求不高,比较经济,公司现有微机都可顺利运行。
软件平台是指系统开发与运行的软件环境。
本系统在开发时选用了稳定性较强的WindowsXP中文专业版操作系统和Java作为开发语言,同时选用了SQLServer2000数据库,由于这些软件产品都是非常成熟的产品,因此,开发出的应用系统稳定性较高。
Java是一种跨平台、面向对象的编程语言,与平台无关的特性使Java程序可以方便地移植到不同的机器上,保证了工资系统不受硬件更新的影响。
Java在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生,并提供自动垃圾收集来进行内存管理,这些保证了工资系统具有较高的可靠性。
Java通过接口来支持多重继承,比严格的类继承具有更灵活的方式和扩展性,使得工资系统能够使用一个预览类,来完成对多个打印输出的预览。
JBuilder2006是一款很好的Java开发工具,它提供了可视化设计工具,把界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。
只需要按设计要求的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工资管理 系统