工资管理系统论文.docx
《工资管理系统论文.docx》由会员分享,可在线阅读,更多相关《工资管理系统论文.docx(56页珍藏版)》请在冰豆网上搜索。
工资管理系统论文
分类号:
2010届本科生毕业设计
题目:
_______________________
作者姓名:
学号:
系(院)、专业:
软件工程系
指导教师姓名:
指导教师职称:
2010年月日
注:
请认真填写的姓名及学号信息,并要求与学院规定的一致
1前言
上世纪八、九十年代以来,计算机产业飞速发展,其应用渗透在社会生产的各个领域。
计算机在国内的崛起加速了各企事业单位、机关的自动化进程,提高了国民生产的效率,从而为国民经济的飞速发展创造了必要的条件。
步入21世纪以来,计算机更是以惊人的普及速度,进入各行各业和大部分家庭。
各种应用的需求也不断增加,人们更加追求生活的品质和工作的效率,企业更是视提高生产效率为生存和发展之道,于是通过科技手段提高生产和管理效率自然成为竞争和发展的焦点。
这不仅包括如何实现企业生产设备的改进和生产技术的提高还包括如何有效地组织和管理企业各项事务,实现企业的办公自动化。
而管理信息系统(ManagementInformationSystem,MIS)在办公自动化的进程中发挥着重要的作用。
市场需求也日益增加。
大型企业的分工比较严格、细致,组织较为紧密,对软硬件的要求也就比较高,因此试图以一款软件来解决企业的所有问题显然是不可能的,这就需要我们细化事务,有针对性地开发纵向应用广泛的MIS系统。
不仅能够解决大型企业和机构的某方面问题,还应该能为更多的中、小型企业利用,提高他们的工作效率,加速企业的发展,从而促进国民经济的建设。
财务是每一个单位都会涉及的问题,管理软件雨后春笋般崛起的今天,企业不仅需要通过软件有效地对其实施管理,还想操作能够尽可能简单,软件易于上手。
通过查阅相关资料,对市场需求进行分析,对既成工资管理软件的研究和测试,我们认为本课题是一个适应现今工资管理需求的计算机信息管理系统,具有一定的现实意义和开发使用价值。
2系统概况
2.1系统开发背景
自20世纪80年代以来,知识经济的兴起和信息技术的日新月异消除了人与人之间知识、信息传递的障碍,也带来了人类经营意识、管理观念的巨大改变。
21世纪是一个经济时代,经济竞争说到底是人才的竞争,谁拥有了人才,谁就将最终拥有财富。
通过工资人事管理可以获得并维持组织的竞争优势,人作为公司最重要的资产,如何用好人才,为每个人找到合适的岗位去发挥其特长是用人的关键环节。
而运用先进科技手段进行有效管理是最好的发展方向。
MIS作为提高管理效率和办公自动化进程的重要工具,已深入到国民生产的方方面面。
我们更加需要开发适应不同行业不同需求的MIS系统。
2.2系统开发目的
本系统开发的主要目的就是要使企事业单位工资管理实现计算机管理,使管理员能够有序地管理每一位职工的各项工资条款的发放以及员工个人台帐的生成,使企业运用现代化技术创造更多更高的经济效益。
2.3系统平台选用
2.3.1数据库技术的现状与发展
数据库是60年代末出现的一门计算机软件技术,到现在虽然只有三十多年的历史,但在理论和时间上都得到了和很大的发展。
现在,数据库是数据处理的主要工具,是管理信息系统(MIS)的核心部分。
数据库系统是当今计算机信息系统的核心,是计算机技术和应用发展的关键。
传统的数据库系统旨在处理永久、稳定的数据,强调维护数据的完整性、一致性。
数据库理论与技术的发展极其迅速,其应用日益广泛,在当今的信息社会中,它几乎无所不在。
以关系型为代表的三大经典(层次、网状、关系)型数据库在传统的(商务和管理的事务型)应用领域获得了极大成功。
计算机世界报社与IBM公司联合举办了"21世纪数据库技术发展专家研讨会"。
IBMDB2的创始人DonaldHaderle先生与国内著名数据库专家,就下世纪数据库发展的趋势、数据库领域革命性的突破、IBMDB2的应用、数据仓库的实施、我国数据库技术和应用的现状及趋势、我国数据库用户的需求等问题,进行了广泛而深入的讨论。
2.3.2数据库系统的选择原则
数据库系统采用易于集成的,开放的技术。
产品质量优异,可靠性高,适于长期运行,能支持关键应用。
数据安全,保安型高。
能提供分布式数据库功能。
支持多种开发环境,软件开发容易。
扩充性和升级能力强。
2.3.3系统开发工具的选择
本次工资管理系统选用Delphi与Oracle11g进行开发,现在市场上有很多MIS的开发工具,如:
Visualbasic、Delphi、ASP等等,数据库开发工具又有很多种,如:
Access,SQLSever,Oracle等等。
与其他开发工具相比,Delphi与Oracle有着自己的特点与优势。
Delphi简介
Delphi,是Windows平台下著名的快速应用程序开发工具(RapidApplicationDevelopment,简称RAD)。
它的前身,即是DOS时代盛行一时的“BorlandTurboPascal”,最早的版本由美国Borland(宝兰)公司于1995年开发。
主创者为AndersHejlsberg。
经过数年的发展,此产品也转移至Embarcadero公司旗下。
从产品名称上就可以知道,TurboPascal使用的是Pascal语言。
从TurboPascal5.5版开始,Borland公司在传统Pascal的基础上加入了面向对象的功能。
Delphi是一个集成开发环境(IDE),使用的核心是由传统Pascal语言发展而来的ObjectPascal,以图形用户界面(GraphicalUserInterface,简称GUI)为开发环境,透过IDE、VCL工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。
Delphi所编译的可运行档,虽然容量较大,但效能上却比较快。
除了使用数据库的程序之外,不需安装即可运行,在使用上相当方便。
Delphi在本质上应该归类为软件开发工具,而非程序语言,但由于Delphi几乎是目前市场上唯一使用Pascal,并持续推出新版本的商业产品。
因此,有时人们会把Delphi视为ObjectPascal的代名词。
Borland公司因而把ObjectPascal改称为Delphi。
2006年,Borland把开发工具产品线独立出来,成立了一家新的公司CodeGear,并把产品线交由此公司负责。
原本的Delphi,亦曾一度因此被命名为TurboDelphi。
但是在新的版本中,除了DelphiforWin32(原有的Delphi版本)之外,还有一个新产品“DelphiforPHP”。
在CodeGear的发展规划中,或许“Delphi”不再是ObjectPascal的专属IDE名称,而是将之提升到通用IDE品牌的层次。
2008年5月7日,EmbarcaderoTechnologies(易博龙)公司宣布以2300万美元的价格收购CodeGear公司,从而把Delphi收入囊中。
2009年5月6日,MicroFocus宣布以7500万美元收购Borland。
Delphi目前的最新版本是2010。
Delphi具有如下特点:
直接编译生成可执行代码,编译速度快。
由于Delphi编译器采用了条件编译和选择链接技术,使用它生成的执行文件更加精炼,运行速度更快。
在处理速度和存取服务器方面,Delphi的性能远远高于其他同类产品。
支持将存取规则分别交给客户机或服务器处理的两种方案,而且允许开发人员建立一个简单的部件或部件集合,封装起所有的规则,并独立于服务器和客户机,所有的数据转移通过这些部件来完成。
这样,大大减少了对服务器的请求和网络上的数据传输量,提高了应用处理的速度。
提供了许多快速方便的开发方法,使开发人员能用尽可能少的重复性工作完成各种不同的应用。
利用项目模板和专家生成器可以很快建立项目的构架,然后根据用户的实际需要逐步完善。
具有可重用性和可扩展性。
开发人员不必再对诸如标签、按钮及对话框等Windows的常见部件进行编程。
Delphi包含许多可以重复使用的部件,允许用户控制Windows的开发效果。
具有强大的数据存取功能。
它的数据处理工具BDE(BorlandDatabaseEngine)是一个标准的中介软件层,可以用来处理当前流行的数据格式,如xBase、Paradox等,也可以通过BDE的SQLLink直接与Sybase、SQLServer、Informix、Oracle等大型数据库连接。
Delphi既可用于开发系统软件,也适合于应用软件的开发。
拥有强大的网络开发能力,能够快速的开发B/S应用,它内置的IntraWeb和ExpressWeb使得对于网络的开发效率超过了其他任何的开发工具。
Delphi使用独特的VCL类库,使得编写出的程序显得条理清晰,VCL是现在最优秀的类库,它使得Delphi在软件开发行业处于一个绝对领先的地位。
用户可以按自己的需要,任意的构建、扩充、甚至是删减VCL,以满足不同的需要。
从Delphi8开始Delphi也支持.Net框架下程序开发。
当前DELPHI已经成为一个品牌,而不仅仅是一个开发平台或开发语言的名称。
当前DELPHI产品已经由CodeGear公司继续发展,该公司是BORLAND公司的全资子公司。
当前,CodeGear为广大开发者提供了DELPHIFORPHP,以高度可视化的方式全面支持面向对象的PHP网站开发,大大提高了PHP开发网站的代码复用程度,成为WEB应用开发的新利器。
Oracle简介
Oracle的关系数据库是世界第一个支持SQL语言的数据库。
1977年,LawrenceJ.Ellison领着一些同事成立了Oracle公司,他们的成功强力反击了那些说关系数据库无法成功商业化的说法。
现在,Oracle公司的财产净值已经由当初的2000美元增值到了现在的年收入超过97亿美元。
Oracle11g扩展了Oracle独家具有的提供网格计算优势的功能,可以利用它来提高用户服务水平、减少停机时间以及更加有效地利用IT资源,同时还可以增强全天候业务应用程序的性能、可伸缩性和安全性。
11g降低了数据库升级以及其他硬件和操作系统更改的成本,显著简化了更改前后的系统测试以便您可以识别和解决问题。
例如:
利用DatabaseReplay,可以在数据库级别轻松捕获实际的生产负载并在您的测试系统上重新播放,这样您可以全面测试系统更改(包括关键的并发特性)的影响。
Oracle数据库11g继续致力于(从Oracle9i数据库开始一直到Oracle数据库10g)显著简化和完全自动化DBA任务。
Oracle数据库11g中的新功能包括:
利用自学功能自动进行SQL优化系统全局区(SGA)和程序全局区(PGA)的内存缓存区的自动、统一调整新的advisor用于分区、数据恢复、流性能和空间管理针对自动数据库诊断监视器(ADDM)的增强,能够提供Oracle真正应用集群(OracleRAC)环境中的更好的性能全局视图以及改进的性能比较分析功能。
Oracle数据库11g中新增的故障诊断功能使客户在发生错误后捕获OracleSupport所需的数据变得极为简单。
这可以加速问题的解决,减少客户重现问题的需要。
Delphi和Oracle数据库的连接方法
Oracle是以高级结构化查询语言(SQL)为基础的大型关系数据库,是目前最流行的客户/服务器(CLIENT/SERVER)体系结构的数据库之一,目前被广泛应用于各类型企业的信息化管理中。
数据库支持是Delphi7.0开发环境的一个重要特性,很多程序员在数据库应用程序开发中都采用Delphi7.0作为开发工具,来实现对数据库的访问和控制。
Delphi数据库应用程序是通过数据库引擎来访问它们引用的数据源的。
本文概括性的介绍在WindowsXP环境中Delphi7.0连接Oracle数据库的3种方式,它们分别是BDE、ADO、DbExpress。
ADO(ActiveXDataObjects)是Microsoft的高级接口,基于Microsoft的数据访问OLEDB技术而实现。
本系统采用ADO方式连接Oracle数据库。
3需求分析
3.1需求陈述
本系统拟在完成工资管理的同时,集成其他必要的功能,以保证系统的完整性和安全性。
具体包括,员工基本信息管理、部门管理、当前工资及历史工资管理等。
现对有关要求描述如下:
①整体结构合理,风格一致,模块化结构,界面清晰,接口灵活,操作简便。
②开发方法,文档规范化,便于管理,可扩充。
③完善的数据输入,维护,输出。
④自检性能高,用户误输、错输均有提示。
⑤容错性能高,某个用户的操作错误不会引起整个系统的瘫痪,每一功能的操作都有信息提示以免重复操作,错误操作有警告,以便用户及时改正。
3.2可行性分析
3.2.1技术可行性
技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,软硬件配置能否满足开发者需要等,这一特点非常适合计算机的特点,发挥计算机的数据处理速度快,准确率高的优势,现代计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。
通过对Delphi和Oracle的系统学习,已经基本掌握了开发本系统所需的技术和查阅文献的能力。
对工资管理系统这一类的财务系统开发也有一定的认识,因此具备技术可行性。
3.2.2时间、设备可行性
12周的时间足够开发一个满足中小型企业简单需求的工资管理系统,现有计算机的软硬件配置能够满足系统开发的要求,具备时间和设备的可行性。
3.2.3经济可行性
基于企业的现有计算机及配套设备,建设MIS系统。
不但能大大减少重复性的书面报告,降低办公费用,提高办公室效率,而且能提高检测数据效用,为企业提供很方便。
由于企业工资管理系统是一个比较小型的系统,开发工具也均可免费使用,网络资源丰富,只需较少的花费在技术文献上,开发成本较低,因此,开发本系统具有经济上的可行性。
4概要设计
4.1系统功能结构设计
图4.1功能模块图
表4.1功能说明表
功能序号
功能名称
功能说明
1
部门信息管理
包含对部门信息的增加、删除
2
员工信息管理
包含对员工信息的增加、删除
3
基本工资数据
查看和修改基本工资信息
4
活动工资数据
填报每月活动工资数据
5
每月工资存档
每月工资填报完毕后存储数据
6
当月报表
查看当月各部门工资表,打印工资条
7
当月汇总表
查询当月各部门工资汇总信息
8
历史部门月报
查询历史年月的部门工资信息
9
历史月汇总表
查询指定部门制定年月的历史工资汇总信息
10
系统信息
系统与作者信息等
设计角色:
财务管理人员
4.2数据库设计
4.2.1数据库逻辑结构
表4.2部门信息表(bm)
字段名称
类型
宽度
约束
说明
Bh
VARCHAR2
3
Pk
部门编号
Mc
VARCHAR2
10
部门名称
表4.3职工工资信息表(ry)
字段名称
类型
宽度
约束
说明
Bm
VARCHAR2
10
部门
Bh
VARCHAR2
3
编号
Xm
VARCHAR2
10
姓名
Z1
NUMBER
(8,2)
岗位资
Z2
NUMBER
(8,2)
基本资
Z3
NUMBER
(8,2)
效益资
J1
NUMBER
(8,2)
加班
J2
NUMBER
(8,2)
金额
J3
NUMBER
(8,2)
夜班
J4
NUMBER
(8,2)
金额
Z4
NUMBER
(8,2)
独子
Z5
NUMBER
(8,2)
月效资
Z6
NUMBER
(8,2)
技师补
Z7
NUMBER
(8,2)
医务补
Z8
NUMBER
(8,2)
护10%
Z9
NUMBER
(8,2)
护龄
Z10
NUMBER
(8,2)
女工卫
Z11
NUMBER
(8,2)
厂扣
Z12
NUMBER
(8,2)
应得资
K1
NUMBER
(8,2)
房租金
K2
NUMBER
(8,2)
水电暖
K3
NUMBER
(8,2)
公积金
Z13
NUMBER
(8,2)
保险
Rq
VARCHAR2
200
日期
Kbx
NUMBER
(8,2)
实发工资
表4.4历史数据表(sj)
字段名称
类型
宽度
约束
说明
Bm
VARCHAR2
10
部门
Bh
VARCHAR2
3
编号
Xm
VARCHAR2
10
姓名
Z1
NUMBER
(8,2)
岗位资
Z2
NUMBER
(8,2)
基本资
Z3
NUMBER
(8,2)
效益资
J1
NUMBER
(8,2)
加班
J2
NUMBER
(8,2)
金额
J3
NUMBER
(8,2)
夜班
J4
NUMBER
(8,2)
金额
Z4
NUMBER
(8,2)
独子
Z5
NUMBER
(8,2)
月效资
Z6
NUMBER
(8,2)
技师补
Z7
NUMBER
(8,2)
医务补
Z8
NUMBER
(8,2)
护10%
Z9
NUMBER
(8,2)
护龄
Z10
NUMBER
(8,2)
女工卫
Z11
NUMBER
(8,2)
厂扣
Z12
NUMBER
(8,2)
应得资
K1
NUMBER
(8,2)
房租金
K2
NUMBER
(8,2)
水电暖
K3
NUMBER
(8,2)
公积金
Z13
NUMBER
(8,2)
保险
Rq
VARCHAR2
200
日期
Kbx
NUMBER
(8,2)
实发工资
4.2.2数据库E-R图
图4.2工资管理系统实体关系图
4.2.3Oracle数据库的使用
在Oracle中创建用户,如图4.2所示
图4.2创建用户
在Oracle中建表,如图4.3所示
图4.3建表
5详细设计
5.1主界面设计
由于本系统是针对财务管理人员角色设计开发的,故未进行权限的设定。
在主界面显示每个模块的入口,点击即可进入。
在状态栏显示系统日期和登录系统时间。
系统主界面如图5.1所示:
图5.1系统主界面
该模块主要代码:
procedureTgzgl_f.FormCreate(Sender:
TObject);//数据库连接处理
begin
gzgl_f.Color:
=rgb(180,130,100);
try
db1.Connected:
=true;
except
showmessage('连接数据库失败!
');
application.terminate;
end;
end;
procedureTmainf.FormCreate(Sender:
TObject);//状态栏系统日期与时间
begin
Statusbar1.Panels[0].Text:
='系统日期:
'+datetostr(date);
Statusbar1.Panels[1].Text:
='系统时间:
'+timetostr(time);
end;
procedureTmainf.bmiClick(Sender:
TObject);//选中菜单显示相应的窗体,此处为部门管理
begin
Ifbmi.CheckedThen//用If语句做异常处理
bmf.Show
ELSE
begin
Application.CreateForm(Tbmf,bmf);
bmf.Show;
bmi.Checked:
=True;
end;
end;
5.2基本信息管理模块
此模块包括部门和员工的基本信息维护,具体功能包括,部门信息的添加和删除,员工信息的添加和删除。
输入要添加的数据后,点击“添加”完成数据添加,点击“刷新”按钮显示数据。
删除数据时程序将连接后台数据库,判断是否存在该记录的工资信息,若不存在则删除成功,若存在,则删除失败。
如图5.2,5.3所示
图5.2部门信息维护
部门信息维护核心代码:
procedureTbmf.BitBtn1Click(Sender:
TObject);
begin
edit1.Text:
=trim(edit1.text);
if(length(edit1.Text)=0)or(length(bh.Text)=0)
then
begin
showmessage('编号与单位名称不能为空!
');
exit;
end;
withQ1do
begin
Close;
Sql.Clear;
Sql.Add('InsertIntobm(bh,mc)');
Sql.Add('Values(:
y0,:
y1)');
Parameters.ParamByName('y0').Value:
=bh.Text;
Parameters.ParamByName('y1').Value:
=edit1.Text;
Try
ExecSql;
except
showmessage('服务器连接error,程序退出!
');
application.Terminate;
end;
end;
end;
procedureTbmf.BitBtn2Click(Sender:
TObject);
begin
ifmessagedlg('如果系统中存在本部门数据不能删除,确要删除吗?
',mtconfirmation,[mbyes,mbno],0)
=mrnothenexit;
q1.Close;
q1.Sql.Clear;
q1.Sql.Add('deletefrombm');
q1.Sql.Add('where(bhlike:
bh)');
q1.Parameters.ParamByName('bh').Value:
=bh.text+'%';
Try
q1.ExecSql;
except
showmessage('服务器连接error,程序退出!
');
application.Terminate;
end;
q1.Close;
end;
procedureTbmf.BitBtn3Click(Sender:
TObject);
vari:
integer;
begin
Q1.Close;
Q1.Sql.Clear;
Q1.Sql.Add('Selectbh,mcFrombm');
Q1.Sql.Add('orderbybh');
Try
Q1.Open;
except