毕业设计论文工资管理系统论文精品.docx
《毕业设计论文工资管理系统论文精品.docx》由会员分享,可在线阅读,更多相关《毕业设计论文工资管理系统论文精品.docx(63页珍藏版)》请在冰点文库上搜索。
毕业设计论文工资管理系统论文精品
成人教育毕业论文
(计算机信息管理专业)
人事工资管理系统
班级
姓名姚睿杰
专业计算机信息管理
指导老师
徐州工程学院成人教育学院
二〇一二年三月
摘要
随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事工资的管理势在必行。
本系统结合某中型公司实际的人事、财务制度,经过实际的需求分析,采用功能强大的DDLPHI5做为开发工具、Paradox7做为数据库开发出来的单机版人事管工资理系统。
整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成人事、工资管理的全过程,包括新进员工加入时人事档案的建立、老员工的转出、职位等的变动引起职工信息的修改、员工信息查询、统计等人事管理工作以及新进员工工资的新增、老员工工资修改、出盘、工资短信等工资管理工作。
经过实际使用证明,本文所设计的人事工资管理系统可以满足某中型公司人事、工资管理方面的需要。
论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。
重点的说明了系统设计的重点、设计思想、难点技术和解决方案。
关键词:
数据库,Paradox7,Delph5,出盘,工资短信、人事工资管理
第一章绪论
1.1课题来源
随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事工资的管理势在必行。
对于大中型企业来说,利用计算机支持企业高效率完成劳动人事管理的日常事务,是适应现代企业制度要求、推动企业劳动人事管理走向科学化、规范化的必要条件;而工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,一般不允许出错,如果实行手工操作,每月发放工资须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理,同时计算机具有着手工管理所无法比拟的优点.例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高人事工资资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
不同的企业具有不同的人事、工资管理制度,这就决定了不同的企业需要不同的人事工资管理系统。
某中型公司以前的所有资料都是用Foxbase来进行管理的,面对目前的实际状况,迫切需要开发一个新系统来适应这一些工作。
1.2开发工具的选择
现在,市场上可以选购的应用开发产品很多,流行的也有数十种。
目前在我国市场上最为流行、使用最多、最为先进的可用作企业级开发工具的产品有:
Microsoft公司的VisualBasic
Microsoft公司的VisualC
Borland公司的Delphi
Powersoft公司的PowerBulider
Java等等
在目前市场上这些众多的程序开发工具中,有些强调程语言的弹性与执行效率;有些则偏重于可视化程序开发工具所带来的便利性与效率的得高,各有各的优点和特色,也满足了不同用户的需求。
然而,语言的弹性和工具的便利性是密不可分的,只有便利的工具,却没有弹性的语言作支持,许多特殊化的处理动作必需要耗费数倍的工夫来处理,使得原来所标榜的效率提高的优点失去了作用;相反,如果只强调程语言的弹性,却没有便利的工具作配合,会使一些即使非常简单的界面处理动作,也会严重地浪费程序设计师的宝贵时间。
作为数据库系统的开发,Delphi是一个非常理想选择。
Delphi因简单易学、功能强大、编译速度快而从众多的软件开发工具中脱颖而出。
它提供了灵活的可视化设计工具,将可视化界面与面向对象技术完善、紧密地结合起来,并封装了Windows编程的复杂性。
程序的规模小到简单的个人数据库应用,大到复杂的企业的多层次分布式系统,都可以使用Delphi进行开发,其友好的集成开发界面,可视化的双向开发模式,良好的数据库应用支持高效的程序开发和程序运行,备受广大程序开发人员的好评。
尤其是Delphi对数据库应用的强大支持,大大提高了数据库应用软件开发的效率,缩短了开发周期,深受广大数据库应用程序设计人员的喜爱。
Delphi为数据库应用开发人员提供了丰富的数据库开发组件,使数据库应用开发功能更强大,控制更灵活,编译后的程序运行速度更快。
本系统采用Dephi5而不选择Dephi6、Dephi7是因为开发移动2000综合业务管理系统的过程中发现其稳定性比较好,所以到现在还用它。
1.3本文所作工作
第一章绪论部分主要叙述课题提出背景、目前应用现状、分析比较当前开发工具,数据库技术的比较。
第二章结合软件工程方法,对系统进行需求分析、功能划分、数据流图设计,并结合数据库原理和功能划分进行ER图的绘制、数据库结构设计,
第三章根据需求分析的结果,用户概念数据模型表示数据及其相互间的联系。
第四章根据需求分析的结果,对系统进行详细设计,主要介绍用Delphi和Pradox实现每一个模块的具体功能。
第五章毕业设计小结,总结部分介绍了设计体会和编程体会,并指出了系统设计中的不足和改进的方向。
第二章
需求分析
2.1总体需求调查
2.1.1组织结构图
某中型公司组织结构图如下
2.1.2系统目标
采用公司现有的软硬件软件及科学的管理系统开发方案,建立某中型人事工资管理系统,实现移动人事工资管理的计算机自动化。
系统应符合公司人事、工资管理制度,并达到操作直观、方便、实用、安全等要求。
2.1.3应用现状调查
目前,公司使用的人事工资管理系统采用的是DOS环境下的Foxbase数据库,界面不友好,不能适应移动公司发展的需要。
2.1.4业务总体流程调查
维护员工基本信息:
人事管理主要负责人员基本信息的维护,包括新进员工档案的建立,员工信息的修改。
公司工资管理基本流程如下:
数据来源:
将各部门送达的员工工资信息包括基本工资、奖金、水电费等作为数据来源,分为新增员工工资数据和老员工每月修改数据。
数据的输入:
由工作人员通过新员工本月工资增加和老员工上月工资表修改完成。
数据的统计:
由工作人员通过对修改后的上月工资表进行计算得到每个人的实发工资以及总金额。
表格的制作:
由工作人员以修改、计算后的在上月工资表为蓝本生成与银行进行数据交换的软件即出盘。
同时可打印工资报表。
2.2系统功能调查
整个系统从总体上分为人事管理、工资管理、系统维护三大部分,每一部分应实现的功能如下:
2.2.1人事管理功能
Ø新员工档案的输入:
Ø员工基本信息维护:
包括修改、删除(删除员工只是将该员工登记为无效,并不要求从表中删除).
Ø员工基本信息查看:
Ø员工基本信息查询:
支持多条件查询,可以选择某一部门、某一职位、某一职称、学历、性别等进行查询,也可以组合查询。
Ø人事状况曲线:
Ø企业员工花名册:
2.2.2工资管理功能
Ø新员工工资新增:
Ø员工工资修改:
Ø出盘:
按所规定的格式生成与银行进行数据交换的软件,一般为文本文件
Ø出盘出错回滚:
Ø工资短信:
将员工本月工资信息通过短信发出,并通知领工资时间。
2.2.3系统维护功能
Ø部门信息维护:
实现灵活的增减部门信息
Ø职务信息维护:
实现灵活的增减职务信息
Ø职称信息维护:
实现灵活的增减职称信息
Ø工资账目维护:
能够灵活的改变员工的薪水账目。
Ø用户管理:
包括新增用户、删除用户、修改用户密码等。
2.3系统功能模块图
第三章概要设计
3.1概念设计
概要设计基础是完成需求分析后提供的需求说明书,用概念数据模型表示数据及其相互间的关系,这种数据模型是与DBMS无关的、面向现实世界的、易如理解的数据模型,其独立于计算机的数据模型,独立于计算机的软硬件系统,与用户进行交流十分方便。
概念性数据模型关心的是如何完整、正确地反映客观实际情况,不关心在数据库中如何实现。
这种数据模式能真实地反应用户要求的实际情况,是一种容易被人们理解的直观的数据库结构模式。
同时也是一种相对稳定统一的数据模式,一般情况下很少变动。
概念性数据在用户和设计者之间建立了桥梁。
是设计数据库结构的基础。
概念设计中自顶向下的实体分析方法,即常用的实体联系模型(简称E-R模型),对具体数据进行抽象加工,将实体集合抽象成实体类型。
用实体间联系反映现实世界事物间的内在联系。
E-R模型是建立概念性数据模型的有力工具。
通过对企业员工管理内容、工资管理内容和过程的分析,本系统应设计的实体和属性如下:
员工(包括员工工号、员工姓名、学历、性别、政治面貌、出生日期、所属部门、职称、职务、入职时间、身份证号、联系电话、家庭住址、手机号码、Email、有效标志)
部门(部门代号、部门名称)
职务(职务代号、职务名称)
职称(职称代号、职称名称)
薪金结构(月份、员工工号、薪水帐目、数目)
薪水帐目(薪水帐目代号、薪水帐目名称)
实体和实体之间的关系E-R图如下:
3.2数据库设计
作为Borland公司的桌面数据库,Paradox在Delphi中的应用非常广泛,为此我选用Paradox数据库来进行数据库的逻辑设计。
根据前面定义的实体及实休之间的关系,形成数据库的表格以及各个表之间的关系。
为了减少数据冗余度,将职称实体、部门实体、职务实体、薪水帐目实体放在同一个表里,以一个类型字段加以区分。
对个关系选择主健,按照关系模式的规范化进行规范,消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的’分离’。
3.2.1ygzlb(员工资料表)
序号
域名
域中文名
域类型
备注
1
Ygh
员工工号
Alpha(6)
主键
2
Xm
员工姓名
Alpha(12)
3
Xb
性别
Alpha
(2)
4
Zzmm
政治面貌
Alpha(4)
5
Xl
学历
Alpha(12)
6
Qsrq
出生日期
Alpha(19)
7
Ssbm
所属部门
Alpha(30)
8
Zc
职称
Alpha(30)
9
Zw
职务
Alpha(30)
10
Rzsj
入职时间
Alpha(19)
11
Sfzh
身份证号
Alpha(20)
12
Gdlxdh
联系电话
Alpha(16)
13
Jtzz
家庭住址
Alpha(60)
14
Sjhm
手机号码
Alpha(12)
15
Email
Email
Alpha(20)
16
Yxbz
有效标志
Short
1代表有效员工;9代表无效员工
17
Czy
操作员
Alpha(20)
18
Czrq
操作时间
Alpha(19)
说明:
员工基本信息表用于存储员工基本信息,为保证数据的一致和历史资料的完整,表的记录在一般的情况不能被删除,如果发生员工离职,只更改其有效标志为9。
3.2.2Yhklb用户口令表
序号
域名
域中文名
域类型
备注
1
Dlgh
登录工号
Alpha(20)
主键
2
Pswd
口令
Alpha(10)
说明:
为了便于多个用户管理该系统,建立此表,记录用户的登录工号和口令
3.2.3Ygxjjgb员工薪金结构表
序号
域名
域中文名
域类型
备注
1
Yf
月份
Alpha(6)
主键
2
Ygh
员工工号
Alpha(6)
主键
3
Xszmid
薪水帐目ID
Short
主键
4
Sm
数目
Money
5
Czy
操作员
Alpha(6)
6
Czsj
操作时间
Alpha(19)
说明:
员工薪金结构表采用竖表结构,便于以后薪水帐目的新增,利于系统保持较长时间的适用。
同时该表采用月帐的形式,便于历史资料的稳定查询,和统计,同时也能做到出盘发生错误时,进行回滚。
在准备当前月份的数据的时候,将同时校验该员工的有效性。
如果是无效员工,则系统将不会显示该员工的资料。
但在历史月份还是将体现该员工的资料。
系统将根据基本参数表中的工资帐目的费用影响关系(1或-1)来形成员工的应发工资和实发工资。
3.2.4Kjcsb控制参数表
序号
域名
域中文名
域类型
备注
1
Yf
序列
Short
主键
2
Csdm
参数代码
Alpha(20)
3
Csmc
参数名称
Alpha(40)
4
Czy
操作员
Alpha(6)
5
Czsj
操作时间
Alpha(19)
说明:
控制参数表用于控制出盘,在每次出盘成功后,会在该表中插入一条记录,以记录该月是否已经出盘;在需要再次出盘的时候,系统将会首先判断该月的出盘标志,如果已经出盘,则对数据库不做操作,仅仅在界面上进行出盘,生成TXT文本文件,如果未出盘则需要对数据库进行操作(将该月的数据重新插入数据库,作为下个月出盘的初始数据)
3.2.5Jbcsb基本参数表
序号
域名
域中文名
域类型
备注
1
ID
ID
Short
主键
2
Lx
参数类型
Short
1:
薪水帐目;2:
部门代码;3:
职务代码;4:
职称代码
3
Mc
参数名称
Alpha(30)
4
Czy
操作员
Alpha(20)
5
Czsj
操作时间
Alpha(19)
6
Rela
费用影响关系
Short
-1代表该项目对实发工资是负的影响;
1代表该项目对实发工资是正的影响;
3.2.6工资短信表
序号
域名
域中文名
域类型
备注
1
ygh
员工号
Alpha(6)
主键
2
sfgz
实发工资
Alpha(10)
说明:
基本参数表用于维护系统的一些基本参数,例如职务,职称,工资帐目等、部门。
员工信息表和员工薪金结构表通过员工ID进行关联;可得知每个员工的工资明细情况;
员工薪金结构表中的帐目ID在基本参数表中进行定义;
员工信息表的职务ID和职称ID和部门ID也在基本参数表中进行定义;
工资短信表:
是为便于发送工资短信信息而建立的,只保存当前月的工资数据。
第四章详细设计
根据需求分析、概要设计的结果,采用Delphi做为开发工具,实现公司人事工资管理各模块的功能。
4.1启动界面设计
4.1.1功能说明
系统运行时,首先弹出此启动窗口,4秒钟后自动关闭出现主窗口和登录窗口,实现此界面主要是修改了工程文件,并调用了一个延时函数,实现起来很简单,源程序不加以介绍。
4.1.2屏幕格式设计
启动界面
4.2登录窗口设计
4.2.1功能说明
控制员工登录,防止非法用户闯入本系统,保证系统的安全,输入口令时屏幕显示为“*”以利保密。
4.2.2屏幕格式设计
登录界面
4.2.3源程序分析
procedureTFrm_dl.Button1Click(Sender:
TObject);
begin
ifedit2.text=''then//判断密码是否输入为空
begin
Application.MessageBox('密码不能为空,请重新输入!
','系统提示',mb_IconInformation+mb_OK);
Edit2.SetFocus;
Exit;
end;
query1.sql.clear;
query1.sql.add('selectpswdfromyhklbwheredlyh='+''''+trim(edit1.text)+'''');
ifquery1.Activethen
query1.close;
query1.open;//根据用户名从用户口令表中取出用户口令
ifedit2.text<>query1.fieldbyname('pswd').asstring
then
begin
iferr_cou=2then//判断是否三次输入错误
begin
application.messagebox('三次登录的用户名或密码错误','系统退出',mb_IconInformation+mb_OK);
frm_main.close;//关闭主窗口,退出系统
end;
Application.MessageBox('密码或工号不正确','请重新输入!
',mb_IconInformation+mb_OK);//若密码输入错误,提示重新输入
Edit2.SetFocus;
err_cou:
=err_cou+1;//输入次数加1
exit;
end;
dluser:
=edit1.text;//给变量赋值,记录登录用户,供其它程序使用
Close;
end;
4.3主窗口设计
4.3.1功能说明
界面采用MDI方式,可同时打开几处子窗口体,在界面上放置了菜单栏和工具栏、状态栏;菜单栏集中了系统操作的入口,各功能模块的执行从此进入;工具框显示了系统菜单中常用项目的快键图标,使用户只需点击相应图标即可进入相应功能模块,当鼠标移动到相应图标时,系统会出现提示信息。
状态栏主要是用于显示日期时钟信息,以及系统操作过程中的信息。
4.3.2屏幕格式设计
系统主界面
4.3.3源程序分析
procedureTFrm_main.N20Click(Sender:
TObject);//菜单关闭事件
begin
close;
end;
procedureTFrm_main.N_shutdownClick(Sender:
TObject);件
begin//菜单退出系统并关机事件
ifmessagedlg('是否退出并关闭计算机?
',mtinformation,[mbyes,mbno],1)=mryesthen
begin
close;
ExitWindowsEx(EWX_FORCEorEWX_SHUTDOWN,0);//调用API函数
end;
end;
procedureTFrm_main.N_closeClick(Sender:
TObject);
begin
close;
end;
procedureTFrm_main.N_bmcxwhClick(Sender:
TObject);//打开部门参数维护窗口
begin
Application.CreateForm(TFrm_bmxg,Frm_bmxg);
iffrm_bmxg.query1.activethenfrm_bmxg.query1.close;//判断Query是否打开
frm_bmxg.query1.open;//打开Query
end;
procedureTFrm_main.N_zwwhClick(Sender:
TObject);//打开职务参数维护窗口
begin
Application.CreateForm(TFrm_zwxg,Frm_zwxg);
iffrm_zwxg.query1.activethenfrm_zwxg.query1.close;
frm_zwxg.query1.open;
end;
procedureTFrm_main.N_ygjbxxsrClick(Sender:
TObject);//打开新增员工信息窗口
begin
Application.CreateForm(Tfrm_ygzbxxsr,frm_ygzbxxsr);
end;
procedureTFrm_main.N_yhwhClick(Sender:
TObject);//打开用户维护窗口
begin
Application.CreateForm(TFrm_yhgl,Frm_yhgl);
iffrm_yhgl.query1.activethenfrm_yhgl.query1.close;
frm_yhgl.query1.open;
end;
procedureTFrm_main.Timer1Timer(Sender:
TObject);
vary,m,d:
word;//在状态栏上显示日期时间星期
begin
decodedate(now,y,m,d);
statusbar1.Panels[1].text:
=concat('【',inttostr(y),'年',inttostr(m),'月',inttostr(d),'日',formatdatetime('hh:
nn:
ssAM/PM',now),f_get_week,'】');//调用函数f_get_week
end;
procedureTFrm_main.N_zcwhClick(Sender:
TObject);//打开职称维护窗口
begin
Application.CreateForm(TFrm_zcxg,Frm_zcxg);
iffrm_zcxg.query1.activethenfrm_zcxg.query1.close;
frm_zcxg.query1.open;
end;
procedureTFrm_main.N_ygzbxxwhClick(Sender:
TObject);//打开员工信息维护窗口
begin
Application.CreateForm(Tfrm_ygzbxxwh,frm_ygzbxxwh);
end;
procedureTFrm_main.N_zbxxckClick(Sender:
TObject);//打开员工信息查看窗口
begin
Application.CreateForm(Tfrm_llygzbxx,frm_llygzbxx);
end;
procedureTFrm_main.N_tjcxClick(Sender:
TObject);//打开员工信息条件查询窗口
begin
Application.CreateForm(Tfrm_ygzlcx,frm_ygzlcx);
end;
procedureTFrm_main.N_gzzmwhClick(Sender:
TObject);//打开薪水帐目维护窗口
begin
Application.CreateForm(TFrm_gzzmwh,Frm_gzzmwh);
ifFrm_gzzmwh.query1.activethenFrm_gzzmwh.query1.close;
Frm_gzzmwh.query1.open;
end;
procedureTFrm_main.N_cpClick(Sender:
TObject);//打开出盘窗口
begin
Application.CreateForm(Tfrm_cp,frm_cp);
end;
procedureTFrm_main.N_gzdxClick(Sender:
TObject);//打开工资短信窗口
begin
frm_gzdx:
=Tfrm_gzdx.create(applicatio