工资管理系统设计报告doc.docx
《工资管理系统设计报告doc.docx》由会员分享,可在线阅读,更多相关《工资管理系统设计报告doc.docx(40页珍藏版)》请在冰点文库上搜索。
工资管理系统设计报告doc
员工工资管理系统
一、摘要
某某单位现有1000名员工,下设6个科室,由于人员繁多,因此员工的工资发放问题越来越成为单位一个很大的麻烦,以往在人工管理的阶段不时出现工资发放错误的问题,为了解决这个问题,提高工资发放的效率,同时减少不必要的人工开支,方面员工工资的管理,决定开发员工工资管理系统。
二、系统分析
2.1编写目的
为进一步明确开发目的,明确软件需求、安排项目规划与进度、组织软件开发与测试,保证系统开发的正确性与可行性,特撰写此文档,为系统提供了详细的说明以及开发环境和步骤,可供系统开发人员、系统维护人员以及使用者阅读。
员工工资管理系统为公司的工资发放提供了方便、快捷的通道,同时,此软件支持经常保持修改,易运行,易查询等优点
本文档供项目经理、设计人员、开发人员参考。
2.2项目背景
本项目由某某单位委托,由管理学院学生自主开发和维护,主管部门为济南大学信息学院老师。
该软件系统与其他:
本软件系统是建立在公司工资管理基础之上,与员工工资密切密切相关。
2.3定义
VF:
MicrosoftVisualFoxpro数据库开发系统。
dbf:
VF系统中数据表的后缀名。
Mnx:
VF系统中菜单的后缀名。
Frx:
VF系统中报表的后缀名。
2.4参考资料
项目经核准的计划任务书、合同或上级机关的批文
项目开发计划本系统为简单的工资管理系统,开发周期比较短,只有一周的时间,因此,详细的计划对于本系统开发来说具有重大的意义。
首先创建关于员工基本信息、员工工资信息两个dbf数据表,大约需要一到两天的时间,然后建立各个查询界面,建立与数据表之间的连接,并不断调试程序以及改正,确保系统可以正常无误的运行,此阶段大约需要三至四天的时间来完成,最后一个阶段的工作为润色以及把整个大的查询通过菜单封装成一整个可执行的系统。
c参考资料:
郑阿奇主编
王洪元王一莉梁敬东杨长春编著
出版社:
电子工业出版社
2.5目标
在公司中,由于员工数目众多,因此,员工工资管理便有一定的难度,所以开发此员工工资管理系统以便于公司对员工的工资发放及查询。
因此本系统的设计目标就是要使得公司对员工工资的发放及查询得到效率的改善以及高速度的查询及修改,对工资系统的维护,修改以及查询都有很大的方便性。
2.6运行环境
操作系统:
MicrosoftWindows2000,MicrosoftWindows2000XP
支持环境:
IIS5.0
数据库:
SQLServer2000
2.7条件与限制
在数据的录入、修改和维护过程中也应该注意下列问题:
数据录入和处理的准确性和实时性
数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。
数据的输入来源是手工输入。
手工输入要通过系统界面上的安排系统具有容错性,并且对操作人员要进行系统的培训。
在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。
数据的一致性与完整性
由于系统的数据是共享的,在不同的科室中,员工工资信息是共享数据,所以如何保证这些数据的一致性,是系统必须解决的问题。
要解决这一问题,要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。
对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,系统应该拒绝该数据。
数据的共享与独立性
整个员工工资信息管理系统的数据是共享的。
然而,从系统开发的角度上看,共享会给设计和调试带来困难。
因此,应该提供灵活的配置,使各个分系统能够独立运行,而通过人工干预的手段进行系统数据的交换。
这样,也能提供系统的强壮性。
2.8.数据描述
2.9态数据
输入数据:
在查询中输入数据有“职工号”,“姓名”,“性别”;
在修改数据中,输入数据包括关于员工的所有数据,包括姓名,性别,出生年月,部门,职位,政治面貌,照片等。
输出数据:
员工基本信息表,包括职工号姓名,性出生年月,部门,职位,政治面貌,照片等;
员工工资信息表,包括职工号,姓名,性别,部门,职位,工资等;
2.10据库介绍
数据库名称:
员工工资信息管理系统
类型:
VF系统
2.11功能划分
本工资息管理系统共有信息查询,信息管理和报表输出三大部分。
其中信息查询分为员工基本信息查询,员工工资查询;信息管理分为员工基本信息修改、员工工资表的修改;报表输出包括输出员工基本信息表,员工工资表。
2.12功能描述
本系统及查询,修改数据于一体。
其中在信息查询中,员工信息查询可以按顺序查询和姓名查询两种方式,顺序查询是按面查询,而按姓名查询是按点查询;员工工资查询又分为顺序查询、姓名查询和性别查询。
在数据管理中,点击数据管理,出现一份窗口,选择所要修改的信息表,在出现的原数据表中删除错误的数据,将正确的数据写入,然后按“Ctrl+w”键保存;
在报表一项,选择所要输出的信息表,此表中的所有信息将全部显示在电脑屏幕上。
2.13数据精确度
职工号:
。
由五位数组成,其中前两位表示科室,后两位表示每科室的员工号。
2.14时间特性
系统的响应速度
员工信息管理系统在日常处理中的响应速度为秒级,达到实时要求,以及时
反馈信息。
在进行统计分析时,根据所需数据量的不同而从秒级到分钟级,
原则是保证操作人员不会因为速度问题而影响工作效率。
2.15适应性
系统处理的准确性和及时性
系统处理的准确性和及时性是系统的必要性能。
在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足公司对信息处理的需求。
由于员工信息查询功能对于整个系统的功能和性能完成举足轻重。
作为系统的很多数据来源,而员工基本信息的准确性和实时性就起到了关键性的作用,其准确性很大程度上决定了员工信息系统的成败。
在系统开发过程中,必须采用一定的方法保证系统的准确性。
系统的开放性和系统的可扩充性
员工工资管理系统在开发过程中,应该充分考虑以后的可扩充性。
例如员工科室的变动,用户查询的需求也会不断的更新和完善。
所有这些,都要求系统提供足够的手段进行功能的调整和扩充。
而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。
通过软件的修补、替换完成系统的升级和更新换代。
系统的易用性和易维护性
员工工资管理系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。
这就要求系统能够提供良好的用户接口,易用的人机交互界面。
要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。
员工工资管理系统中涉及到的数据是公司的相当重要的信息,系统要提供方便的手段供系统维护人员进行数据的备份,日常的安全管理,系统意外崩溃时数据的恢复等工作。
系统的标准性
系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。
所有这些都要符合主流国际、国家和行业标准。
例如在开发中使用的操作系统、网络系统、开发工具都必须符合通用标准。
如规范的数据库操纵界面、作为业界标准的TCP/IP网络协议及ISO9002标准所要求的质量规范等;同时,在自主开发本系统时,要进行良好的设计工作,制订行之有效的软件工程规范,保证代码的易读性、可操作性和可移植性。
5.系统的先进性
目前计算系统的技术发展相当快,做为员工工资信息管理系统工程,应该保证系统在下个世纪仍旧是先进的,在系统的生命周期尽量做到系统的先进,充分完成企业信息处理的要求而不至于落后。
这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成。
另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的产品。
2.16硬件接口
硬件要求:
PentiumIII450以上,258MRAM,14GHD
2.17软件接口
系统软件:
WindowNTServer
数据库管理系统:
SQLServer2000
2.17故障处理
员工信息管理系统在开发过程中,应该充分考虑以后的可扩充性。
例如员工部门改变,用户查询的需求也会不断的更新和完善。
所有这些,都要求系统提供足够的手段进行功能的调整和扩充。
而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。
通过软件的修补、替换完成系统的升级和更新换代。
2.19其它需求
1、系统的易用性和易维护性
工资信息管理系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。
这就要求系统能够提供良好的用户接口,易用的人机交互界面。
要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。
工资信息管理系统中涉及到的数据是企业的相当重要的信息,系统要提供方便的手段供系统维护人员进行数据的备份,日常的安全管理,系统意外崩溃时数据的恢复等工作。
系统的标准性
系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。
所有这些都要符合主流国际、国家和行业标准。
例如在开发中使用的操作系统、网络系统、开发工具都必须符合通用标准。
如规范的数据库操纵界面、作为业界标准的TCP/IP网络协议及ISO9002标准所要求的质量规范等;同时,在自主开发本系统时,要进行良好的设计工作,制订行之有效的软件工程规范,保证代码的易读性、可操作性和可移植性。
3、系统的先进性
目前计算系统的技术发展相当快,做为员工信息管理系统工程,应该保证系统在下个世纪仍旧是先进的,在系统的生命周期尽量做到系统的先进,充分完成企业信息处理的要求而不至于落后。
这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成。
另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的产品。
三、系统设计
3.1用户界面
用户登陆界面:
在登录界面中用户登陆包括管理员登陆和普通用户登陆,关于具体的操作权限在后面将详细阐述。
菜单界面:
菜单界面包括三个主菜单:
系统、工资信息设置和工资信息管理。
在系统菜单下有三个二级菜单:
添加用户、密码修改和退出系统;
在工资信息设置中包括工资基本设置、其他设置和公式设置;
在工资信息管理中,包括出勤统计、工资统计和工资查询。
添加用户:
在添加用界面户中,输入新用户名称、用户密码以及确认密码即可将新用户注册成功。
所添加用户为普通用户。
修改密码:
在修改密码界面中将旧密码输入再将新密码输入两次就可以将密码改变。
设置基本工资:
在基本工资设置界面中,可以存在两个选择框,选中员工编号可以输入员工编号后将每个员工的基本工资挨个输入或者改变;
若选中员工职务,则可以在文本框中选中所要修改的职务批量进行员工工资的修改。
修改其他工资:
除了基本工资以外的其他工资设置包括奖金、津贴、福利、扣发和其他。
点击所要设置的项目然后在金额一框中填入所要修改的金额,点击确定完成修改。
需要注意的是在选择其他项目时要填写备注。
计算公式设置:
计算公式:
公司工资的计算公式由管理员来设定。
正常加班时间、特殊加班时间、出差时间、矿工次数、迟到早退次数在工资中所占的比例或数目可以根据实际情况来设定。
统计出勤记录:
输入月份点击确定就可以调出员工的出勤记录。
比如输入“6”:
则会显示员工的出勤结果。
工资查询:
在选中框中可以先输入员工的编号,有员工基本工资列表、员工其他项目列表、员工工资统计列表;两个按钮“查询单人”“查询所有”,可以按照要求查询单人还是所有员工的情况。
3.2组织结构图
公司结构的组织结构图:
工资管理系统的组织流程图:
在本工资管理系统中,主要分为两大模块,一是工资管理,另一个是工资查询。
在工资管理中,又分三个步骤:
计算、删除退休人员、修改数据。
在查询工资子模块中,有按姓名查询、按编号查询和按职位查询。
3.3数据流程图
理子模块中的数据流程图:
3.4系统流程图
在工资管理系统中,由管理员输入各个员工的合法信息,经过系统的自动计算,获得各个员工的工资以及实际工资,工资的信息由管理员保存到网络数据库中,而公司人员就可以根据网络数据库中的数据来查询员工的工资。
3.5ER图
3.6数据字典
数据项:
名字:
aid
别名:
编号
描述:
描述职工在公司中的号码,是职工公司中区别其他职工的唯一标识。
定义:
职工号由五位数组成,其中前两位表示科室,后两位表示每科的员工号。
位置:
alterationinfo
名字:
aolddept
别名:
部门
描述:
描述职工的所在的部门或区域
定义:
财务、经理、后勤、销售、技术、车间
位置:
alterationinfo
名字:
anewposition
别名:
职位
描述:
员工在公司中的职务
定义:
经理、员工、副经理
位置:
alterationinfo
名字:
attendance
别名:
到场
描述:
描述员工实际工作中按时工作的次数
定义:
位置:
Attendancestatistics
名字:
absent
别名:
旷工
描述:
描述员工旷工的次数
定义:
位置:
Attendancestatistics
名字:
latearly
别名:
迟到早退
描述:
描述员工迟到或早退的次数
定义:
位置:
Attendancestatistics
名字:
basicsalary
别名:
基本工资
描述:
员工每小时所挣到的收入
定义:
8元/小时
位置:
Salarystatistics
名字:
bonus
别名:
津贴
描述:
员工基本工资以外由政府的补助
定义:
位置:
Salarystatistics
名字:
welfare
别名:
福利
描述:
员工除了基本工资以外由单位发送的补贴
定义:
位置:
Salarystatistics
名字:
sbirthday
别名:
员工生日
描述:
员工的出书年月日
定义:
格式为“****年**月**日”
位置:
Stuffinfo
名字:
sdegree
别名:
学历
描述:
员工的学历
定义:
初中、高中、大学本科、中专、大专、研究生
位置:
Stuffinfo
名字:
splace
别名:
出生地
描述:
员工籍贯
定义:
格式“**省**市”
位置:
Stuffinfo
名字:
saddress
别名:
住址
描述:
员工现在的家庭住址
定义:
格式“**省**市**县**号”
位置:
Stuffinfo
数据结构:
名字:
stuff
别名:
职工
描述:
是公司中的最基本的组成单位,每一个职工都在不同的部门,有不同的编号。
定义:
姓名+性别+出生年月+部门+职位+政治面貌+照片
位置:
职工信息表
名字:
salary
别名:
工资
描述:
员工的实发工资
定义:
基本工资+津贴+奖金+福利+扣发+其他
位置:
salarystatistics
数据流:
名字:
查询信息流
简述:
描述员工工资信息的查询情况。
数据流的来源:
员工工资信息表
数据流的去向:
网络数据库
数据流的组成:
职工号+姓名+性别+部门+职位+工资
数据流的流通量:
10次/天
高峰期流通量:
100次/天
名字:
修改基本工资
简述:
管理员对员工的基本工资进行的修改
数据流的来源:
工资表
数据流的去向:
工资表
数据流的组成:
基本工资、员工号
数据流的流通量:
10/天
高峰期流通量:
20/天
名字:
修改其他工资
简述:
对福利、补贴等的修改
数据流的来源:
其他工资表
数据流的去向:
其他工资表
数据流的组成:
员工编号、奖金、补贴、福利、扣发、其他
数据流的流通量:
10/天
高峰期流通量:
20/天
3.7逻辑设计
Alterationinfo(ad,aid,aname,aolddept,anewdept,anewpisition);
Attendanceinfo(id,astuffid,astuffname,adate,aflag,aintime,aouttime,alate,aearly);
Attendancestatistics(id,stuffed,recordmonth,attendance,latearly,absent,overtimecom,overtimespy,errand);
Errandinfo(eid,estuffinfo,eerranddays,epurpdse);
Formularsetting(overtimecom,overtimeesp,errand,absent,le);
Leaveinfo(lid,lstuffid,lill,lprivate);
Overtimeinfo(oid,ostuffid,ospeciality,ocoomom);
Salaryother(id,stuffed,yearmonth,type,name,money,remark);
Salarysetting(id,stuffed,salary,sposition);
Salarystatistics(id,stuffed,stuffname,yearmonth,basicsalary,bonus,welfare,allowance,abatement,lesub,absentsub,errand,others,tatal);
Stuffinfo(sid,sname,sgender,splace,sage,sbirthday,sdegree,sspecial,saddress,scode,stel);
Timesetting(begintime,endtime);
Userinfo(userid,userpwd);
四、调试及总结
这次的课程设计历史两个星期近半个月的时间,终于将这份工资管理系统完成,在这次的设计过程之付出了很多时间,看了很多资料,设计过程之中错误一直不断,可以时时刻刻我都被这样那样的错误困扰着,经过不断的询问同学以及查找课本和资料,终于将这些问题一一解决。
以下是程序运行中的一些错误及解决方案:
(1)
在查询员工的语句中有时会出现这种提示错误,原因:
在VB系统中嵌入SQL语句的时候语法使用错误或者标点符号使用不当,相应的解决方案为仔细观察周围的程序及实现的功能正确改正语法或者标点符号问题。
这种错误在程序设计中出现的频率是最高的,解决起来有时容易,有时比较困难,特别是当程序段比较复杂的时候,这种错误系统不会指出错误在第几行,会给寻找以及改正错误带来很大的麻烦。
但是虽然这种错误找起来有时很麻烦,但是却锻炼了我的细心以及耐心程度,为后来的编程打下了基础,后来几天编写的代码在程序过程中这种错误明显减少。
(2)
列名无效错误
这种错误在程序设计中犯的也很多,拿这张截图来看:
列名‘sposition’无效。
对于这个错误来说原因是列‘sposition’是在Salarysetting数据表中,而调用SQL语言的时候却写成了:
Selectsposition
FromSalaryother;
而Salaryother数据表中是没有列sposition的,因此才导致了这样的错误。
而改正这个错误就比较容易了,将相应的数据表改正即可。
在程序设计过程中这种列名错误除了弄错数据表以外还有一些别的错误,比如将列名拼错等也会出现类似的错误。
(3)
调用员工工资统计列表的数据时无论是查询单人还是查询所有数据,所有数据都不显示,经过多次查看代码也没有找到相应的问题,最后找到后台数据库才发现相应的Salarystatistics数据表根本没有录入数据。
系统的错误还有很多,大部分都是重复的,另外,知道数据库完成,数据库还存在着这样一些问题:
(1)、数据冗余度太大。
在这次的数据库系统当中,创建了了好几个数据表,其中,统计各种工资的数据表就有三个,分别是:
基本工资(Salarysetting)、其他工资(Salaryother)以及总工资表(Salarystatistics),在总工资表中就已经包含了各种工资,修改各种工资直接调用总工资表中的数据即可,所以没有必要设置三个数据表。
(2)、数据之间没有建立起相应的联系
比如在基本工资表中设置了基本工资之后,而在总工资的表中基本工资却没有改变,这种设计结构打破了数据表之间的逻辑结构及联系,这样的数据表不符合1NF。
(3)添加用户
再添加用户的时候只能添加普通用户而不能添加管理员,这也是本系统的一个缺陷,之前并没有考虑到。
总之,这次的程序设计虽然有许多的错误,但是它却让我学到了很多的知识,获益匪浅,在以后的数据库开发当中我也能吸取这次的一下教训,总结一些经验,争取开发出更好的系统。
五、附录(代码)
添加用户:
PrivateSubcmdcancel_Click()
UnloadMe
ExitSub
EndSub
PrivateSubcmdok_Click()
DimsqlAsString
DimrsAsADODB.Recordset
IfTrim(username.Text)=""Then
MsgBox"请输入用户名称",vbOKOnly+vbExclamation,"提示"
ExitSub
username.SetFocus
Else
sql="select*fromuserinfowhereuserid='"&username&"'"
Setre=getrs(sql,"salary")
Ifre.EOF=FalseThen
MsgBox"这个用户已经存在,请重新输入用户名",vbOKOnly+vbExclamation,"提示"
username.SetFocus
username.Text=""
password.Text=""
confirmpwd.Text=""
ExitSub
Else
IfTrim(password.Text)<>Trim(confirmpwd.Text)Then
MsgBox"两次输入密码不一致,请重新输入密码",vbOKOnly+vbExclamation,"提示"
password.Text=""
confirmpwd.Text=""
password.SetFocus
ExitSub
ElseIfTrim(password.Text)=""Then
MsgBox"密码不能为空",vbOKOnly+vbExclamation,"提示"
password.Text=""
confirmpwd=""
password.SetFocus
Else
sql="insertintouserinfo(userid,userpwd)values('"&username
sql=sql&"','"&password&"')"
Calltransactsql(sql,"salary")
MsgBox"添加成功