毕业设计---银行工资代发代扣系统实现与设计
第一章 银行工资代发代扣系统概述
1.1 背景
在计算机诞生之前,人们对帐目的管理一直采用的是纸质材料记录,人工统计和计算。例如,古时候所谓的“大户人家”,或是商号等等,都需要有专门的帐房先生来针对每个月的支出、收入等加以统计,并记录于帐册上。其中,对于“仆人”的月俸等管理便是其中相当重要的一个部分,常年累月地便积累了一大摞一大摞的帐册。这样的管理不但费时费力,也容易产生计算上的错误和各种疏漏;随着时代的变迁,这种混乱的情形有所改善,但采取的依然是人工操作,工作量大的时候,出现错误的机率也随之升高。
当今社会,资金是企业生存的主要元素,资金的流动影响到企业的整体运作,企业员工的工资是企业资金管理的一个重要的组成部分,因为企业每个月都要涉及发放企业员工工资的问题。而随着企业人员数量的增加,企业的工资管理也变得越来越复杂。企业员工的人数越多,工资的统计工作就越多,工资的发放困难就越大。如果能够实现工资管理的自动化,无疑将给企业管理部门带来很大的方便。
传统的纸介材料的数据信息管理方式已经不适合现代企业公司的发展了,实现工资管理的系统化、规范化、自动化,将成为现代公司管理工资的首选。随着计算机的诞生和普及以及计算机网络的发展,我们就可以开发一个工资管理系统,用电脑代替大量的人工统计和计算,完成许多工资信息的处理,同时,使用电脑还可以安全地、完整地保存大量的工作记录。
1.2 系统介绍
银行工资代发代扣管理系统为与合作企业提供了工资计算,工资统计等服务;而且系统使用表格保存相关的工资信息,方便查询、浏览、修改等操作,基本上能够满足现代工资管理的需求。
本系统主要实现了以下的功能: (1) 用户密码修改功能;
(2) 员工和部门的基本信息的浏览、添加、删除、修改功能; (3) 员工代发代扣工资的设置和调整功能; (4) 员工的考勤信息统计功能; (5) 员工工资的结算功能; (6) 员工工资和打印功能。
第二章 代发代扣工资系统分析
2.1 企业工资管理的应用现状
随着我国国民经济建设的蓬勃发展和具有中国特色的社会主义市场经济体制的迅速完善,各个行业都在积极使用现代化的手段,不断改善服务质量,提高工作效率,这些都在很大程度上给企业提出越来越严峻的挑战,对企业体系无论是在行政职能、企业管理水平以及优质服务上都提出更高的要求。建设一个科学高效的信息管理系统是解决这一问题的必由之路。企业内部财务管理是该企业运用现代化技术创造更多更高的经济效益的主要因素之一。工资管理作为企业内部的一种财务管理也是如此,由于企业职工人数较多,每一位职工的具体实际情况也不尽相同,各项工资条款的发放,如果没有一个完整的管理系统来进行管理,那么势必会给管理人员带来种种麻烦,因此类似工资管理系统之类的财务软件的开发势在必行。
2.2 系统可行性分析研究
可行性研究的目的使用最小的代价在尽可能短的时间里确定问题是否能解决,通过复杂系统的规模与目标,研究与此类似的系统后,我们具体从下面两个方面考虑。
(1) 技术上的可行性。
由于对企业工资管理系统这一类的企业财务系统进行开发已有一定的时期,有很多成功的实例,技术基础也已经非常雄厚,因而技术上的准备应该不成问题。
(2) 经济上的可行性。
由于企业工资管理系统是一个比较小型的系统,是由我一个人进行开发的,所以从人力、物力、财力方面来说都是可行的。
2.3 需求分析
对用户需求的分析应该全面、深入、发展,全面是指考查由MIS 管理的信息是否有纰漏,必须保证各静态、动态信息的完全;深入是指对信息的内容、结构、含义、变换、生存周期的分析和认识;发展是指对信息未来发展变化的预测,因为信息在某个系统、机构内的变化往往存在着自身特有的发展规律,需求分析应该预见这种规律,否则就会缩短MIS 的使用寿命。为了保证需求分析的完备性,就必须保证需求分析的时间。
2.4 功能分析
开发这个系统的目的就是帮助企业的财务主管部门提高工作效率,实现企业工资信
息管理的系统化、规范化和自动化。系统最终应主要实现如下功能:
(1) 系统:包括修改用户密码和退出系统。
(2) 工资档案管理部分:包括员工信息的管理和部门信息的管理。
(3) 代发代扣工资部分:包括员工基本工资的设置、员工考勤信息的统计、员工工资的结算和固定工资的调整。
(4) 信息查询部分:包括查询员工工资信息和查询部门工资总汇。 (5) 打印报表部分:包括打印员工工资单和打印部门工资总汇。 (6) 帮助:对于系统版权的声明。
2.5 模块分析
本系统主要设计有以下几个模块: (1) 系统
系统启动的时候有一个用户登录界面,登录后,可以修改密码。 (2) 档案管理
① 职工信息:按照员工卡号对员工的基本信息,包括其个人信息和所属部门信息进行浏览、添加、删除和修改。
② 部门信息:按照部门编号对部门的信息进行浏览、添加、删除和修改。 (3) 工资管理
① 基本工资设置:对员工的基本工资信息进行添加、删除和修改。 ② 考勤信息统计:对员工的考勤信息进行添加、删除和修改。
③ 工资结算:根据员工的基本工资信息和考勤信息,以及本月奖金和补助等的输入金额,结算员工该月的工资。
④ 固定工资调整:对于企业员工的固定工资,进行统一的调整。 (4) 信息查询
① 查询员工工资信息:按照员工卡号或员工姓名,或是二者组合查询员工 的工资信息。
② 查询部门工资信息:按照部门编号或部门名称,或是二者组合查询部门员工的工资信息。
(5) 打印报表
① 打印预览:打印预览员工的工资单、部门的工资汇总工资单。 ② 打印:打印员工的工资单、部门的工资汇总工资单。 (6) 帮助
关于本系统的版权声明。
2.6 数据库需求分析
针对企业工资信息管理系统的需求,通过对员工工资计算过程的内容和数据流程分析,为本系统的工资数据库设计如下的数据项和数据结构:
(1) 职工信息:包括员工编号、员工姓名、性别、籍贯、出生日期、学历、住址、邮编、联系电话、所属部门编号、所属部门名称、职务、参加工作时间、进入公司时间、备注。
(2) 部门信息:包括部门编号和部门名称。
(3) 基本工资信息:包括员工编号、员工姓名、所属部门、职务、基本工资、职务津贴、工龄津贴/年、加班工资/天、事假扣款/天、病假扣款/天、迟到扣款/天、备注。
(4) 员工考勤信息:包括员工编号、员工姓名、所属部门、年份、月份、迟到天数、事假天数、病假天数、加班天数、备注。
(5) 员工工资结算信息:包括员工编号、员工姓名、所属部门编号、所属部门名称、职务、职务津贴、基本工资、工龄工资、基本工资额、加班工资、奖金、其他补助、本月补助、迟到扣款、事假扣款、病假扣款、考勤扣款、违纪罚款、其他扣款、个人所得税、实发金额、年份、月份、操作时间、备注。
2.7 系统分析
对项目进行系统分析是极其重要的。系统分析是能体现整个系统的灵魂的文档,将客户的需求从具体到抽象的一个过程,并制定编码人员可实施的规范和标准。
(1) 根据对公司的调查确定公司的组织机构如下:
(2) 数据流程图
数据流程图是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数几种
符号综合地反映出信息在系统中的流动、处理和存储情况。数据流程图具有抽象性和概括性。
数据流程图分为四个部分: ① 外部实体:
外部实体指系统以外又和系统有联系的人或事物,它说明了数据的外部来源和去处,属于系统的外部和系统的界面。外部实体支持系统数据输入的实体称为源点,支持系统数据输出的实体称为终点。 通常外部实体在数据流程图中用正方形框表示,框中写上外部实体名称,为了区分不同的外部实体,可以在正方形的左上角用一个字符表示,同一外部实体可在一张数据流程图中出现多次,这时在该外部实体符号的右下角画上小斜线表示重复。
② 处理过程:
处理指对数据逻辑处理,也就是数据变换,它用来改变数据值。而每一种处理又包括数据输入、数据处理和数据输出等部分。在数据流程图中处理过程用带圆角的长方形表示处理,长方形分三个部分,标识部分用来标识一个功能,功能描述部门是必不可少的,功能执行部门表示功能由谁来完成。
③ 数据流:
数据流是指处理功能的输入或输出,它用来表示一中间数据流值,但不能用来改变数据值。数据流是模拟系统数据在系统中传递过程的工具。
在数据流图中用一个水平箭头或垂直箭头表示,箭头指出数据的流动方向,箭线旁注明数据流名。
④ 数据存储:
数据存储表示数据保存的地方,它用来存储数据。系统处理从数据存储中提取数据,也将处理的数据返回数据存储。与数据流不同的是数据存储本身不产生任何操作,它仅仅响应存储和访问数据的要求。
在数据流程图中数据存储用右边开口的长方条表示。在长方条内写上数据存储名字。为了区别和引用方便,左端加一小格,再标上一个标识,用字母D 和数字组成。
根据以上概念,将系统的数据流图设计如下:
(3) 数据字典
数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具。
数据字典包括以下六部分内容: ① 数据流
● 数据流名称及其称号;
● 数据流的来源:可能是一个外部实体、处理逻辑、数据存储; ● 数据流的去处;
● 数据流的组成:一个数据流可能包括若干个数据结构,若只有一个数据结构,就不需要专门定义;
● 数据流的流通量:单位时间的传输次数; ● 高峰时期的流通量:业务的频繁程度和时间有关 ② 数据项
数据项也称数据元素,是“不可再分”的数据单位,是数据的最小组成单位。主要内容有:
● 数据项名称及编号:数据项名称必须唯一地标识这个数据项,以区别于其他数据项;给数据项取名时,要反映该数据项的含义,易于他人理解、记忆。
● 别名:同一数据项的名称可能不止一个,称为别名。 ● 取值的范围和取值的含义 。
● 数据项的长度:指数据项所包含的字符或数字的位数。
③ 数据结构
● 数据结构的名称及其编号 ;
● 数据结构的组成:如果是一个简单的数据结构,只要列出它所包含的数据项即可。如果是一个嵌套的数据结构,只需列出它所包含的数据结构名称,因为这些数据结构同样在数据字典中有定义。
④ 数据存储
数据存储是数据结构停留或保存的场所。主要内容:
● 数据存储的名称及其编号:在数据流程图中对数据存储给以命名,并编上一个唯一的编号;
● 流入、流出的数据流:流入的数据流指出其来源,流出的数据流指出其去向; ● 数据存储的组成:指它所包含的数据项或数据结构。 ⑤ 处理逻辑 其包含的主要内容: ● 处理逻辑的名称及编号 ;
● 简述:对处理逻辑的简明描述,其目的是使人了解这个处理逻辑是做什么用的; ● 处理逻辑的输入和输出; ● 处理逻辑的主要功能 ; ● 处理逻辑的小说明(文档之一)。 ⑥ 外部实体
外部实体是系统的“人-机”界面,也就是系统的数据流由外部实体流入,或者系统的数据向外部流出。主要内容:
● 外部实体的名称及编号; ● 与外部实体有关的数据流。 根据以上概念,将系统设计如下:
表2.1 数据流条目示例
表2.2 基本数据项条目示例
表2.3 数据存储条目示例
(4) 系统流程图
系统流程图又叫事务流程图,是在计算机事务处理应用进行系统分析时常用的一种描述方法(另一个是数据流图),它描述了计算机事务处理中从数据输入开始到获得输出为止,各个处理工序的逻辑过程。包括四个基本元素符号:
本系统系统流程图如下:
第三章 工资管理系统设计
系统设计的基础是由系统分析提供的,系统设计的任务就是充分利用和发挥系统分析的成果,并把这些成果具体化和结构化。所谓系统设计就是在系统分析的基础上,用系统思想综合运用各有关学科的知识、技术和经验,通过总体研究和详细设计等环节,落实到具体工作上,以创造满足设计目标的人造系统。根据系统需要实现的主要功能,可以得到如下图所示的企业工资管理系统的功能模块图。
图3-1 企业工资管理系统功能模块图
3.1 概念设计
概要设计基础是完成需求分析后提供的需求说明书,用概念数据模型表示数据及其相互间的关系,这种数据模型是与DBMS 无关的、面向现实世界的、容易理解的数据模型,其独立于计算机数据模型,独立于计算机的软硬件系统,与用户进行交流十分方便。
概念性数据模型关心的是如何完整、正确地反映客观实际情况,不关心在数据库中如何实现。这种数据模式能真实地反应用户要求的实际情况,是一种容易被人们理解的概念性数据在用户和设计者之间建立了桥梁,是设计数据库结构的基础。
概念设计中自顶向下的实体分析方法,即常用的实体联系模型(简称E-R 模型) ,对具体数据进行抽象加工,将实体集合抽象成实体类型。用实体间联系反映现实世界事物间的内在联系。E-R 模型是建立概念性数据模型的有力工具。
① 本系统中工人信息的实体集及有关属性的图例:
② 工资管理系统实体和实体之间关系E-R
图:
3.2 数据库设计
选用Access 2000作为后台数据库。
启动Access 2000,创建一个空数据库,命名为“企业工资管理系统.mdb ”,保存在要存放这个系统的所有工程文件的文件夹中。
数据库以表的形式存放相关的数据,点击“使用设计器创建表”,为本系统创建表格如下:
表3.1 员工基本信息表
设置“员工卡号”为主键,并将其命名为:员工基本信息表。
表3.2 部门信息表
设置“部门编号”为主键,并将其命名为:部门信息表
表3.3 员工基本工资明细表
设置“员工编号”为主键,并将其命名为:员工基本工资明细表。
表3.4 员工考勤信息表
设置“员工卡号”为主键,并将其命名为:员工考勤信息表。
表3.5 员工工资结算表
设置“员工卡号”为主键,并将其命名为:员工工资结算表
3.3 建立公共模块
运行Visual Basic 后,选择“文件”—>“新建工程”菜单,然后从工程模块中选择“标准EXE ”项,单击“确定”按钮。Visual Basic就会自动生成一个Form 窗体,这个窗体的属性采用的都是默认设置。在本系统中,先删除这个窗体,然后选择“文件”—>“保存工程”菜单,在出现的“文件另存为”对话框中输入这个工程项目的名称(采用默认的工程名),并且选择要保存的这个工程的目录,单击“保存”按钮,保存工程。
为了提高代码的效率方便维护,在Visual Basic中可以用公用模块来存放工程中经常使用的函数、过程和全局变量等。在本系统中,只添加一个SUB MAIN过程。
在项目资源管理器中为这个工程添加一个模块,添加的方法和添加窗体的方法一
样,只不过选择的不是MDI 窗体,而是模块。代码如下:
Public Sub Main() Frmlogin.Show End Sub
3.4 窗体设计
由于各窗体的添加、以及实现的功能类似,故只选取其中典型的几例加以介绍。 3.4.1 添加主窗体
(1) 主窗体设计
在这个系统中,选择使用多文档界面。使用这个窗体的好处是可以使程序更加有条理,对于一个多任务的应用程序,使用多文档窗体还可以减少占用的系统资源。
单击工具栏中的添加MDI 窗体或者选择“工程”-->“添加MDI 窗体”菜单,选择MDI 窗体,单击“打开”按钮,为这个工程添加一个多文档窗体作为主窗体。
添加主窗体后,更改下列主窗体的属性: ① 名称属性值改为“frmMain ”
② Caption属性值改为“企业工资管理系统” ③ StartUpPosition属性值改为“2-屏幕中心” ④ WindowsState属性值改为“2-Maxinized ” (2) 菜单设计
在添加好的窗体中,单击鼠标右键,从弹出的快捷菜单中选择“菜单编辑器”命令,在弹出的菜单编辑器对话框中添加需要的菜单,并且使用方向键为菜单分级,系统的菜单结构如图3-4所示。
图3-4系统菜单结构图
(3) 添加代码
主窗体中添加的代码不多,基本上都是实现单击某个菜单选项即弹出相应窗体的语句,这里仅举一例:
选择“系统”-->“修改密码”菜单,出现修改密码窗体,代码如下:
选择“文件”-->“保存frmMain.frm ”菜单,保存设好的窗体。 3.4.2 建立登录窗体
(1) 添加窗体
为工程添加一个窗体,在工具栏中选择“添加窗体命令”。更改窗体的属性如下(仅列出修改的属性):
① 名称属性值改为“frmLogin ” ② Caption属性值改为“用户登录”
③ StartUpPosition属性值改为“2-屏幕中心” (2) 添加控件
① 为登录窗体添加2个标签(Label ),用来标示窗体中的信息;2个文本框(TextBox ),用来输入用户名称和用户密码;2个按钮(CommandButton ),用来确定或返回。
② 为登录窗体中添加Ado Data控件,用来与数据库进行连接。 ● Ado Data控件简介
Ado Data 控件使用Microsoft ActiveX 数据对象(ADO )来快速建立数据库绑定的控件和数据提供者之间的连接。数据绑定控件是任何具有“数据源”属性的控件。数据提供者可以是任何符合OLE DB规范的数据源。使用Visual Basic的类模块也可以很方便地创建子集的数据提供者。尽管可以在应用程序中直接使用ActiveX 数据对象,但如图3-5所示的Ado Data控件有作为一个图形控件的优势(具有“向前”和“向后”按钮),以及一个易于使用的界面,使可以用最少的代码创建数据库应用程序。
图3-5 Ado Data控件
● 引入 Ado Data控件到VB 项目
在VB 开发环境中选择主菜单“工程”中的“部件”子菜单,弹出如图3-6所示的部件属性框,在控件标签页中选择“Microsoft ADO Data Control 6.0(OLEDB )”控件。
然后单击“确定”按钮,这样Ado Data 控件就引入到当前的VB 项目中。在如图3-7所示的VB 开发环境中的工具箱中,就能够看到 Ado Data 控件的图标。然后单击该图标,就可以在窗体中的任意位置添加Ado Data控件。
⏹ 主要属性
✧ ConnectionString 属性
Ado Data控件的ConnectionString 属性是一个字符串,可以包含进行一个连接所需的所有设置值。在该字符串中所传递的参数是与驱动程序相关的。例如,ODBC 驱动程序允许该字符串包含驱动程序、提供者 、缺省的数据库、服务器、用户蜜柑年成以及密码等。
✧ UserName 属性
当数据库受密码保护时,需要指定该属性。这个属性可以在ConnectionString 中指定。如果同时提供了一个ConnectionString 属性以及一个UserName 属性,则ConnectionString 中的值将覆盖UserName 属性的值。
✧ PassWord 属性
在访问一个受保护的数据库时该属性也是必需的。和UserName 属性类似,如果在ConnectionString 属性中指定了密码,则将覆盖在这个属性中指定的值。
✧ RecordSource 属性
Ado Data控件的RecordSource 属性通常包含一条语句,用于决定从数据库检索什么信息。
✧ CommandType 属性
Ado Data 控件的CommandType 属性告诉数据库提供者Source 属性是一条SQL 语句、一个表的名称、一个存储过程还是一个未知的类型。
使用CommandType 属性可优化CommandText 属性的计算。如果CommandType 属性的值等于adCmdUnknown (默认值),系统的性能将会降低,因为ADO 必须调用提供者以确定CommandText 属性是SQL 语句、还是存储过程或表格名称。如果知道正在使用的命令
图3-6 Ado Data控件
图
3-7
的类型,可通过设置CommandType 属性指令ADO 直接转到相关代码。如果CommandType 属性与CommandText 属性中的命令类型不匹配,调用Execute 方法时将产生错误。
✧ LockType 属性
LockType 属性决定当其他人试图更改正在编辑的数据时,如何锁定该数据。如何设置这个LockType 属性是一个复杂的决策,取决欲多个因素。
✧ Mode 属性
Mode 属性决定想用记录集进行什么操作。使用Mode 属性可设置或返回当前连接上提供者正在使用的访问权限。Mode 属性只能在关闭Connection 对象时方可设置。例如,如果只是想要创建一个报告,可以将该属性设为只读来获得性能的改善。
✧ ConnectionTimeout 属性
ConnectionTimeout属性设置等待建立一个连接的时间,以秒为单位。如果连接超时,则返回一个错误。
如果由于网络拥塞或服务器负载过重导致的延迟使得必须放弃连接尝试时,请使用Connection 对象的ConnectionTimeout 属性。如果打开连接前所经过的时间超过ConnectionTimeout 属性上设置的时间,将产生在错误,并且ADO 将取消该连接尝试。如果将该属性设置为零,ADO 将无限等待直到连接打开。请确认正在对其编写代码的提供者会支持ConnectionTimeout 功能。
✧ Recordset 属性
返回或设置对下一级ADO Recordset 对象的引用。利用Recordset 属性,可以使用ADO 的ADODB.Recordset 对象的方法、属性和事件。必须在Set 语句中使用Recordset 属性,如下例所示:
Dim rsNwind As New ADODB.Recordset Set ADODC1.Recordset=rsNwind ✧ BOFAction 、EOFAction 属性
这两个属性决定当该控件位于光标的开始和末尾时的行为。提供的选择包括停留在开始或末尾、移动到第一个或最后一个记录或添加一个新记录(只能在末尾)。
BOFAction属性有以下两个值:adDoMoveFirst 和adStayBOF ,分别代表如果当前记录到达了数据的第一条记录的前面时,采取移动到第一条记录的动作或者继续停留在原来位置两种操作。
EOFAction属性值有以下3个值:adDoAddNew 、adDoMoveLast 和adStayEOF ,它们分别代表如果当前记录到达了最后一条数据记录的后面,采取增加一条新记录、移动到最后一条记录或者继续停留在原位置的3种操作。
⏹ 主要事件 ✧ Error 事件
一般地,在开发应用程序时通常要在代码中为代码运行错误时提供错误处理的功能,但有时在没有代码运行时也会发生数据存取的错误,此时才会发生这个事件。该事件的语法为:
object Error([Index As Integer,] ErrorNumber As Long,Description As String,Scode As Long,Source As String,HelpFile As String,HelpContext As Long,fCancelDisplay As Boolean)
其中object 为控件对象名:Index 为可选参数, 如果控件在一个控件数组中, 此值可以标识该控件; ErrorNumber为本地错误号码; Description为对错误的描述;Scode 为服务器返回的错误代码; Source为错误的来源; ;HelpFile 为包含该错误详细信息的帮助文件的路径; HelpContext为帮助主题的上下文号码;fCancelDisplay 为一个布尔值,可以设置这个值来取消对错误消息的显示。
✧ EndOfRecordset 事件
移动行时如果超过记录集结尾,则调用EndOfRecordset 方法。该事件的语法为: Adodc1_EndofRecordset(fMoreData
As
Boolean,adStatus
As
ADODB.EventStatusEnum,ByVal pRecordset As ADODB.Recordset)
当用户可能因调用MoveNext 而移过Recordset 结尾时,将调用该事件的处理程序。使用该方法用户可以从数据库中检索到更多记录并将其追加到pRecordset 的结尾。在这种情况下,用户要将pfMoreData 设置为VARIANT_TRUE,并从EndOfRecordset 返回。在此之后用户可以再次调用MoveNext 以访问新检索到的记录。
⏹ 主要方法
✧ UpdateControls 方法
使用UpdateControls 方法将绑定控件的内容恢复为其初始值,如同用户更改了数据,然后又决定取消了这些更改。除了不会导致任何事件的发生之外,这个方法产生的效果与使当前行再次成为当前行一样。由于此方法不会调用任何事件,可以使用这个方法来简化一个更新操作,因为它不会触发任何多余的验证和更改世间过程。
✧ Refresh 方法
Refresh 方法用来重新建立或显示与Ado Data 控件相连的数据库记录集。如果在程序代码中改变了ConnectionString 、RecordSource 、CommandType 的属性值,就必须用Refresh 方法来刷新记录集。
Refresh 方法的语法为: Adodc1.Refresh
③ 修改控件的属性设置值:
● 将控件Texbox1的Name 属性属性值改为“UserName ”
● 将控件Texbox2的Name 属性属性值改为PassWord ;PassWord 属性属性值改为“*”
● 将控件CommandButton1的Name 属性属性值改为CmdOK ;Caption 属性属性值改为“确定”
● 将控件CommandButton2的Name 属性属性值改为CmdCancel ;Caption 属性属性值改为“取消”
● 将控件Label1的Caption 属性属性值改为“用户名称” ● 将控件Label2的Caption 属性属性值改为“用户密码” 3.4.3 建立部门信息窗体
(1) 添加窗体
为工程添加一个普通窗体,属性设置如下: ① 将名称属性值改为“frmBMInfo ” ② 将Caption 属性值改为“部门信息” (2) 添加控件
根据前面的介绍可以知道,Ado Data控件必须通过绑定数据感知控件才能提供一个访问数据库的界面,用来对数据库数据的浏览、添加、删除、修改等操作。
为了体现用Ado Data 控件直接进行记录的移动,这里就要引入DataGrid 控件来进行数据的显示。具体的操作步骤如下:
① 在前面创建的项目中,按照3.3.2节介绍的引入Ado Data控件的方法,在部件属性框的控件标签页中选择“Microsoft Data Grid Control 6.0(OLEDB )”控件,然后引入该控件。
② 在工具箱中单击DataGrid 控件的图标,在前面创建的窗体中添加该控件。 为这个窗体添加的控件及其更改的属性设置如下: 将控件Frame1的Caption 属性属性值改为“部门列表” ● 将DataGrid1的DataSource 属性属性值改为“Adodc1” ● 将DataGrid2的DataSource 属性属性值改为“Adodc2”
● 将Adodc1的ConnectionString 属性属性值改为“连接企业工资管理系统.mdb ”;RecordSource 属性属性值改为“部门信息表”
● 将Adodc2的ConnectionString 属性属性值改为“连接企业工资管理系统.mdb ”;RecordSource 属性属性值改为“职工信息表”
● 将Frame2的Caption 属性属性值改为“操作” ● 将Command1的Caption 属性属性值改为“首记录” ● 将Command2的Caption 属性属性值改为“新增部门” ● 将Command3的Caption 属性属性值改为“后翻” ● 将Command4的Caption 属性属性值改为“删除部门” ● 将Command5的Caption 属性属性值改为“末记录”
● 将Command6的Caption 属性属性值改为“保存”
● 将Command7的Caption 属性属性值改为“前翻”
● 将Command8的Caption 属性属性值改为“取消”
● 将Command9的Caption 属性属性值改为“返回”
● 将Frame3的Caption 属性属性值改为“当前部门”
● 将Label1的Caption 属性属性值改为“部门编号”
● 将Label2的Caption 属性属性值改为“部门名称”
3.4.4 建立查询员工工资窗体
(1) 添加窗体
添加一个普通窗体,Caption 属性设为“查询职工工资”,Name 属性设为“frmSearch1”。
(2) 添加控件
● 添加一个Label1控件,并将其Caption 属性属性值改为“所有职工:”
● 添加一个Adodc1控件,并将其RecordSource 属性属性值改为“职工信息表” ● 添加一个Adodc2控件,并将其RecordSource 属性属性值改为“select * from职工工资结算表”
● 添加一个DataGrid1控件,并将其DataSource 属性属性值改为“Adodc1”
● 添加一个DataGrid2控件,并将其DataSource 属性属性值改为“Adodc2”
● 添加一个Label2控件,并将其Caption 属性属性值改为“请输入查询的条件:” ● 添加一个Label3控件,并将其Caption 属性属性值改为“员工编号:”
● 添加一个TexBox1控件,并将其Text 属性属性值删除
● 添加一个Label4控件,并将其Caption 属性属性值改为“员工姓名:”
● 添加一个TexBox2控件,并将其Text 属性属性值删除
● 添加一个CommendButton1控件,并将其Caption 属性属性值改为“开始查询” ● 添加一个CommendButton2控件,并将其Caption 属性属性值改为“重新查询” ● 添加一个CommendButton3控件,并将其Caption 属性属性值改为“退出”
3.4.5 建立查询部门工资情况窗体
(1) 添加窗体
添加一个普通窗体,Caption 属性设为“查询部门工资情况”,Name 属性设为“frmSearch2”。
(2) 添加控件
● 添加一个Label1控件,并将其Caption 属性属性值改为“所有职工:”
● 添加一个Adodc1控件,并将其RecordSource 属性属性值改为“职工信息表”
● 添加一个Adodc2控件,并将其RecordSource 属性属性值改为“select * from 职工工资结算表”
● 添加一个DataGrid1控件,并将其DataSource 属性属性值改为“Adodc1”
● 添加一个DataGrid2控件,并将其DataSource 属性属性值改为“Adodc2”
● 添加一个Label2控件,并将其Caption 属性属性值改为“请输入查询的条件:” ● 添加一个Label3控件,并将其Caption 属性属性值改为“部门编号:”
● 添加一个TexBox1控件,并将其Text 属性属性值删除
● 添加一个Label4控件,并将其Caption 属性属性值改为“部门名称:”
● 添加一个TexBox2控件,并将其Text 属性属性值删除
● 添加一个CommendButton1控件,并将其Caption 属性属性值改为“开始查询” ● 添加一个CommendButton2控件,并将其Caption 属性属性值改为“重新查询” ● 添加一个CommendButton3控件,并将其Caption 属性属性值改为“退出”
3.4.6 建立职工信息窗体
(1) 添加窗体
添加一个普通窗体,Caption 属性设为“职工信息”,Name 属性设为“frmZGInfo ”。
(2) 添加控件
● 添加一个Frame1控件,并将其Caption 属性属性值改为“个人信息”
● 在Fram1控件中添加九个Label 控件,并将其Caption 属性属性值分别改为:“员工编号:”、“员工姓名:”、“性别:”、“籍贯:”、“出生年月:”、“学历:”、“住址:”、“邮编:”、“联系电话:”
● 在Frame1控件中添加九个TexBox 控件
● 添加一个Frame2控件,并将其Caption 属性属性值改为“所属部门信息”
● 在Fram2控件中添加五个Label 控件,并将其Caption 属性属性值分别改为:“部门编号:”、“部门名称:”、“职务:”、“参加工作时间:”、“进入公司时间:”
● 在Frame2控件中添加九个TexBox 控件
● 添加一个Frame3控件,并将其Caption 属性属性值改为“操作”
● 在Fram3控件中添加九个CommandButton 控件,并将其Caption 属性属性值分别改为:“首记录”、“后翻”、“末记录”、“前翻”、“新增职工”、“删除职工”、“修改信息”、“保存信息”、“取消”
● 添加一个Label 控件,并将其Caption 属性属性值改为“备注:”;在其下方添加一个TexBox 控件
● 添加一个Adodc1控件,并将其RecordSource 属性属性值改为“职工信息表”
3.4.7 添加考勤信息统计窗体
(1) 添加窗体
添加一个普通窗体,Caption 属性设为“考勤信息统计”,Name 属性设为“frmAttInfo ”。
(2) 添加控件
● 添加一个Frame1控件,并将其Caption 属性属性值改为“时间”
● 添加两个Label 控件,并分别将其Caption 属性属性值改为“年份:”、“月份:” ● 添加一个TextBox 控件,将其DataFried 属性属性值改为“年份”;添加一个ComboBox 控件,并将其Text 属性属性值删除
● 添加一个Frame2控件,并将其Caption 属性属性值改为“考勤信息浏览”
● 添加一个DataGrid1控件,并将其DataSource 属性属性值改为“Adodc1”
● 添加一个Fram3控件,并将其Caption 属性属性值删除
● 在Fram3控件中添加八个CommandButton 控件,并将其Caption 属性属性值分别改为:“首记录”、“下一条”、“末记录”、“上一条”、“增加”、“删除”、“保存”、“返回”
● 添加一个Adodc1控件,并将其RecordSource 属性属性值改为“考勤信息表”
3.4.8 添加员工基本工资设置窗体
(1) 添加窗体
添加一个普通窗体,Caption 属性设为“员工基本工资设置”,Name 属性设为“frmBSalary ”。
(2) 添加控件
● 添加一个Frame1控件,并将其Caption 属性属性值改为“工资信息输入框” ● 在Fram1控件中添加十二个Label 控件,并将其Caption 属性属性值分别改为:“员工编号:”、“基本工资:”、“迟到扣款/天:”、“员工姓名:”、“职务津贴:”、“事假扣款/天:”、“所属部门:”、“工龄津贴/年:”、“病假扣款/天:”、“职务:”、“加班工资/天:”、“备注:”
● 在Frame1控件中添加十二个TexBox 控件
● 添加一个Frame2控件,并将其Caption 属性属性值删除
● 在Fram2控件中添加九个CommandButton 控件,并将其Caption 属性属性值分别改为:“首记录”、“下一条”、“末记录”、“上一条”、“增加”、“删除”、“保存”、“返回”
● 添加一个Frame3控件,并将其Caption 属性属性值改为“固定工资浏览”
● 添加一个DataGrid1控件,并将其DataSource 属性属性值改为“Adodc1”
● 添加一个Adodc1控件,并将其RecordSource 属性属性值改为“职工工资明细表”
3.4.9 添加工资结算窗体
(1) 添加窗体
添加一个普通窗体,Caption 属性设为“工资结算”,Name 属性设为“frmJSalary ”。
(2) 添加控件
● 添加一个Frame1控件,并将其Caption 属性属性值改为“职工信息”
● 在Fram1控件中添加六个Label 控件,并将其Caption 属性属性值分别改为:“员工编号:”、“所属部门编号:”、“职务:”、“员工姓名:”、“所属部门名称:”、“就业时间:”
● 添加两个TextBox 控件,并将其DataField 属性属性值分别改为“员工编号”、 “员工姓名”
● 在Fram1控件中添加四个Label 控件,并将其DataField 属性属性值分别改为: “所属部门编号:”、“职务:”、 “所属部门名称:”、“参加工作时间:”;并将四个Label 控件的DataSource 属性改为“Adodc1”
● 添加一个Frame2控件,并将其Caption 属性属性值改为“固定工资信息”
● 在Fram1控件中添加八个Label 控件,并将其Caption 属性属性值分别改为:“工
龄工资:”、“工龄津贴/年:”、“病假扣款/天:”、“基本工资:”、“加班工资/天:”、“事假扣款/天:”、“职务津贴:”、“迟到扣款/天:”
● 在Fram1控件中再添加八个Label 控件,并将其DataField 属性属性值分别改为: “工龄工资:”、“工龄津贴/年:”、“病假扣款/天:”、“基本工资:”、“加班工资/天:”、“事假扣款/天:”、“职务津贴:”、“迟到扣款/天:”;并将第一个Label 控件的DataSource 属性属性值改为“Adodc4”, 其它七个Label 控件DataSource 属性属性值改为“Adodc3”
● 添加一个Frame3件,并将其Caption 属性属性值改为“考勤统计”
● 在Fram3件中添加六个Label 控件,并将其Caption 属性属性值分别改为: “年份:”、“月份”:、“事假天数”、“病假天数:”、“加班天数:”、“迟到天数:”
● 在Fram3件中添加两个ComboBox 控件,并将其Text 属性属性值删除
● 在Fram3控件中添加四个TextBox 控件,并将其DataField 属性属性值分别改为:“事假天数”、“病假天数:”、“加班天数:”、“迟到天数:”;DataSource 属性属性值改为“Adodc2”
● 添加一个Frame4控件,并将其Caption 属性属性值改为“动态工资信息”
● 在Fram1控件中添加十二个Label 控件,并将其Caption 属性属性值分别改为:“加班工资:”、“迟到扣款:”、“个人所得税:”、“奖金:”、“病假扣款:”、“实发金
额:”、“其它补助:”、“事假扣款:”、“备注:”、“违纪罚款:”、“考勤扣款:”、“操作时间:”
● 在Fram1控件中添加十二个TextBox 控件,并将其DataField 属性属性值分别改为:“加班工资:”、“奖金:”、“其它补助:”、“迟到扣款:”、“病假扣款:”、“事假扣款:”、“违纪罚款:”、“个人所得税:”、 “实发金额:”、 “备注:”、 “考勤扣款:”、“操作时间:”;DataSource 属性属性值改为“Adodc4”
● 添加一个Frame5控件,并将其Caption 属性属性值改为“操作”
● 添加四个CommandButton 控件,并将其Caption 属性属性值改为“更新”、“计算”、“保存”、“返回”
● 添加四个Adodc 控件,并将其RecordSource 属性属性值改为“select * from 职工信息表”、“select * from 考勤信息表”、“select * from 职工工资明细表”、“职工工资结算表”
3.4.10 添加职工固定工资调整窗体
(1) 添加窗体
添加一个普通窗体,Caption 属性设为“职工固定工资调整”,Name 属性设为“frmChangeGZ 。
(2) 添加控件
● 添加一个Label1控件,并将其Caption 属性属性值改为“工资项目:”
● 添加一个ComboBox1控件,并将其Text 属性属性值删除
● 添加一个Label2控件,并将其Caption 属性属性值改为“条件:”
● 添加一个ComboBox2控件,并将其Text 属性属性值删除
● 添加四个Label 控件,并将第一个Caption 属性属性值改为“由:”;第二个 ● Caption 属性属性值删除;第三个Caption 属性属性值改为“调整为:”;第四个Caption 属性属性值改为“元”
● 添加一个TextBox 控件,并将其Text 属性属性值删除
● 添加两个CommandButton 控件,并将其Caption 属性属性值改为“确定”、“返回”
● 添加一个Adodc 控件,并将其RecordSource 属性属性值改为“select * from 职工工资明细表”
3.4.11 添加修改密码窗体
(1) 添加窗体
添加一个普通窗体,Caption 属性设为“修改密码”,Name 属性设为“frmChangePWD 。
(2) 添加控件
● 添加三个Label1控件,并将其Caption 属性属性值改为“请输入旧密码:”、“请输入新密码”、“请确认新密码:”
● 添加三个TextBox 控件,并将其PasswordChar 属性属性值改为“*”;DataSource 属性属性值改为“Adodc1”
● 添加两个CommandButton 控件,并将其Caption 属性属性值改为“确定”、“取消”
● 添加一个Adodc 控件,并将其RecordSource 属性属性值改为“用户信息表”
3.4.12 添加打印报表窗体
(1) 添加窗体
添加一个普通窗体,Caption 属性设为“打印报表”,Name 属性设为“frmPrintBB ”。
(2) 添加控件
● 添加两个Label 控件,并将其Caption 属性属性值改为“版权所有”、“cj ”
3.4.13 添加关于窗体
(1) 添加窗体
添加一个普通窗体,Caption 属性设为“关于”,Name 属性设为“frmAbout ”。
(2) 添加控件
● 添加五个Label 控件,并将其Caption 属性属性值改为“企业工资管理系统”、“version 1.4.0”、“版权所有(C)”、“2005-2010”、“天津大学 cj”
● 添加一个Line 控件
● 添加两个Label 控件,并将其Caption 属性属性值改为“本软件使用权属于”、“cj ”
● 添加Frame 控件,并将其Caption 属性属性值改为“警告”
● 添加一个Label 控件,并将其Caption 属性属性值改为“本系统由天津大学cj 开发, 版权所有, 如擅自复制、传播本应用程序,将追究其法律责任。”
● 添加一个CommandButton 控件,并将其Caption 属性属性值改为“确定”
3.4.14 添加谢谢使用窗体
(1) 添加窗体
添加一个普通窗体,Caption 属性设为“谢谢使用”,Name 属性设为“frmExit ”。
(2) 添加控件
● 添加一个Timer 控件
● 添加一个Label 控件,并将其Caption 属性属性值改为“谢谢使用本系统”
第四章 工资管理系统实施
系统实施作为系统生命周期的后期阶段,是把系统设计转化为可实际运行的物理系统的必然步骤,再好的系统设计,不通过系统实施也只能是不能带来效益的空中楼阁。系统实施作为系统的最后物理实现阶段,对于系统的质量、可靠性和可维护性等有着十分重要的影响。
4.1 Ado Data控件直接操纵数据库
使用Ado Data控件访问数据库,可以完全不用编写代码,只需通过简单设置和操纵其属性就可以实现与数据库的连接,通过绑定数据感知控件就能提供一个访问数据库的界面,用来对数据库数据的浏览、添加、删除、修改等操作。
4.1.1 连接数据库
使用Ado Data 控件连接到数据源要相对简单得多,基本上可以用鼠标的操作来完成。具体的操作步骤如下:
(1) 打开frmLogin 窗体。
(2) 在Ado Data 控件上单击鼠标右键,在快捷菜单上选择“属性”命令,打开Ado Data 控件的属性对话框,如图2-4所示。Ado Data 控件的属性对话框共有5个选项卡,常用的是“通用”选项卡、“身份验证”选项卡和“记录源”选项卡。在“通用”选项卡中设置Ado Data控件的数据源属性,在“身份验证”选项卡中,设置访问数据源时有关的安全信息,在“记录”选项卡中,设置Ado Data控件返回记录的记录源。
(3) 在“通用”选项卡中,选择“使用连接字符串”单选按钮,并单击“生成”按钮,打开“数据链接属性”对话框,如图2-5所示。使用该对话框可以方便地建立和数据源的连接,而在应用程序的开发过程中,使用连接字符串有许多优点(例如客户端不用配置ODBC 数据源名称等)。
图4-1 Ado Data控件的属性对话框
图4-2 “数据链接属性”对话框
(4) 在“数据链接属性”对话框中,第一步要做的工作是选择数据源提供者程序。使用哪一种数据源,就选择哪一种提供者程序。例如,使用本例的数据库。就选择Microsoft Jet4.0 OLE DB Provider ,然后单击“下一步”按钮。设计器切换到“连接”选项卡,如图2-6所示,让用户设置使用的数据源。
(5) 选择或输入数据库的名称。数据库可以在本机硬盘上,也可以在网络上。单击数据库名称文本框旁边的命令按钮,然后在Windows 标准对话框中选择作为数据源的Microsoft Jet数据库。
(6) 单击“测试连接”命令按钮,测试刚才的设置是否正确及数据库是否可用。如果当前设置的数据源可用,则Visual Basic给出一个连接成功的对话框。否则,警告连接失败并给出失败的原因。
(7) 在“属性”对话框中,切换到“身份验证”选项卡,如图2-7所示。因为在设置连接字符串时,已经向Ado Data控件提供了身份验证信息,所以当前不用再进行设置。如果连接不是用“数据连接属性”对话框创建的,或者输入的字符串中没有包含身份验证信息,则必须设置本选项卡,以便让数据源的数据库管理系统确定用户权限。
图4-3 “数据链接属性”对话框
图4-4 Ado Data控件的属性对话框
(8) 属性对话框中,切换到“记录源”选项卡。在“记录源”选项卡中,可以在“命
令类型”下拉列表框中选择用于记录源的命令类型。可用的选择, 如下表所示:
表4.1 记录源命令列表
(9) 把该属性设定为2-adCmdTable ,把“表或存储过程名称”属性设置为需要用的表。
(10) 单击“确定”按钮,关闭属性对话框,完成所有的设置。
4.1.2 建立DataGrid 控件与Adodc 控件的连接
根据前面的介绍可以知道,Ado Data控件必须通过绑定数据感知控件才能提供一个访问数据库的界面,用来对数据库数据的浏览、添加、删除、修改等操作。
为了体现用Ado Data 控件直接进行记录的移动,这里就要引入DataGrid 控件来进行数据的显示。具体的操作步骤如下(仅举一例) :
(1) 打开frmAttInfo 窗体
(2) 设置DataGrid 控件的DataSource 属性为Adodc1。这样就完成了DataGrid 控件同Adodc1控件的绑定。
(3) 然后保存该项目,接着运行该窗体。
(4) 在该运行窗口中直接单击Adodc1控件中的箭头图标即可实现DataGrid 控件中选定数据的上下移动。
(5) 在上节完成的基础上,只要设置DataGrid 控件的属性即可实现对记录的增、删、改操作。右键单击DataGrid 控件,在弹出的快捷菜单中选择“属性”,便会弹出“属性页”对话框。
(6) 选中“允许添加”、“允许删除”、“允许更新”复选框,代表DataGrid 控件可以进行记录的添加、删除、更新。
(7) 保存设置,运行程序,如图2-9所示,最后一行是空白行,用来添加新的数据,选中整行之后,单击键盘上的Delete 键就可以删除该行信息,随便选中某个单元格,就可以进行数据的更改。
4.2 代码设计(见附录)
第五章 系统测试
5.1 系统测试的概念
在MIS 开发过程中采用了多种措施保证软件质量,但是实际开发过程中还是不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,示经周密测试的系统投入运行,将会造成难以想像的后果,因此系统测试是MIS 开发过程中为保证软件质量必须进行的工作。大量统计资料表明,系统测试的工作量往往占MIS 开发总工作量的40%以上。因此,我们必须重视测试工作。
由于程序中隐藏的缺陷只在特定的环境下才有可靠显露,系统缺陷通常是由于对某些特定情况考虑不周造成的。因此测试不是为了表明程序正确;成功的测试也不是没有发现错误的测试。有意义的软件测试应该是从“破坏”软件系统的角度出发,精心设计最有可以暴露程序系统缺陷的测试方案。因此软件测试的目标应该是以尽可能少的代价和时间找出软件系统中潜在的错误和缺陷。
从产品角度看,测试计划中的测试项目包括软件结构中的分系统层、子系统层、功能模块层、程序模块层中的各类模块,从测试本身看,分为单元测试,组合测试,确认测试等。测试对象是随阶段而异的,最基本、最初的测试是单元测试,后面的组合测试、确认测试都是以被测过的模块作为测试对象的。 (1) 单元测试:
单元测试也称模块测试或程序测试,单元测试是对每个模块单独进行的,验证模块接口与设计说明书是否一致,对模块的所有主要处理路径进行测试且与预期的结构进行对照,还要对所有错误处理路径进行测试。对源码进行审查,对照设计说明书,表态地检查源程序是否符合功能的逻辑要求,是进行单元测试前的重要工作工。单元测试一般是由程序员完成,也称程序调试。 (2) 组合测试
组合测试也称集成测试或子系统测试,通常采用自顶向下测试和自底向上测试两种测试方法。组合测试的对象是指已经通过单元测试的模块,不是对零散模块进行单个测试,而是用系统化的方法装配和测试软件系统,是一个严格的过程,必须认真地进行,其计划的产生和单元模块测试的完成日期要协调起来,这种测试应在系统目标机上进行,造成系统应用的环境条件,除了开发部分项目负责人参加以外,还应该有相应系统的用户参加,给评审员进行演示。
(3) 确认测试
确认测试是对通过组合测试的软件进行的,这些软件已经存于系统目标设备的介质
上,确认测试的目的是对表明软件是可以工作的,并且符合“软件需求说明书”中规定的全部功能和性能要求。确认测试是按照这些要求定出的“确认测试计划”进行的。测试工作是由一个独立的组织进行,而且测试要从用户的角度出发。
(4) 系统测试
系统测试是对整体性能的测试,主要解决各子系统之间的数据通信和数据共享问题以及检测系统不否达到用户的实际要求,系统测试的依据是系统分析报告。系统测试应在系统的整个范围内进行,这种测试不只对软件进行,而是对构成系统的硬、软件一起进行。系统测试与建构同时进行或略慢。系统测试需要确认从头到尾的功能正常才算完成,应当尽量避免系统测试延到项目末尾进行。
(5) 用户验收测试
在系统测试完成后,进行用户的验收测试,它是用户在实际应用环境中所进行的真实数据测试。
在具体的测试中,一般应遵循以下原则:由程序设计者之外的人进行测试;测试用例应由两部分组成:输入数据和预期输出结果;应选用不合理的输入数据与非法输入测试;不仅要检验程序是否实现预期功能,还应检查程序是否做了不应该做的工作;集中测试容易出错的程序模块;对程序修改以后,必须重新进行测试。
5.2 系统测试
在开发本系统时,为了使系统能够稳定运行,对本系统进行了有针对性的全面测试,采取的方式是:
(1) 菜单项测试:为了保证每一项下拉菜单能够正确实现系统设计的功能,我把相关的基础数据,基本上全部输入到本系统中,并对每一个菜单项反复进行了增加、删除、修改等操作,从而保证了菜单级功能的正确实现。
(2) 数据跟踪:完成菜单项测试后,我又对系统内的每一个数据进行了跟踪。例如:在成绩管理模块中,我首先对考试类型进行设定,然后在成绩添加模块中进行数据操作,随时观察这两个模块之间是否有冲突产生,配合得是否正确,再然后在成绩浏览模块中进行验证,说明该功能完全正常,对其它的功能模块也进行了类似的设置。
(3) 综合测试:在以上测试的基础上对系统功能进行了整体的测试,依次来检验系统功能是否符合系统设计的要求。
5.3 系统运行界面
按照单元测试、组装测试、确认测试、系统测试和用户验收测试的步骤后,测出了大量的错误,并给予了改正,改正后的系统运行界面如下:
(1) 用户登陆界面
(2) 系统主窗口
(3) 修改密码窗口
(4) 员工信息窗体
(5)代发代扣基本工资信息窗体
(6)代发代扣工资结算窗体
(7)职工固定工资调整窗体
(8) 打印预览窗体
(13) 关于窗体
(14) 退出窗体
第六章 系统小结
本系统的开发打破了传统的纸质材料的人工管理工资的方式,节省了大量的人工操作的工作量,自动完成众多的信息处理,减少了数据出现错误的几率,加强了工资记录的安全性和完整性,提高工作效率,实现企业工资信息管理的系统化、规范化和自动化。
本系统方便了企业对于职工的工资管理,浏览、添加、删除、修改等操作简单直观,能基本符合企业工资管理的需求,在一定的时期内具有教好的发展前景。
本系统没有实现其他用户的添加,所以只适于管理员用户的使用,而无法为一般的职工所用,既无法实现一般用户的查询功能。
本系统完成的仅是工资管理系统中的几个常见的模块,所以仅适于规模一般的企业的使用,无法适用于大型企业。