企业工资管理系统论文

来源:互联网 发布:淘宝卖家发布不了宝贝 编辑:程序博客网 时间:2024/04/28 07:42

2007届毕业生课题设计
题目  企业工资管理系统
 企业工资管理系统的开发
摘  要 
企业工资管理系统是公司管理的一个重要内容,是一种典型的管理系统企业工资管理系统是公司管理的一个重要内容,是一种典型的管理系统,其开发主要包括后台的数据库的建立、维护以及前端的相应应用程序的开发两个方面的内容,系统的建立和维护主要要求其管理数据的系统性、规范性、自动性等特点,而前台的应用程序开发则要求做到各项功能要完备、操作要简便、易学易用等特点。
综合上述各项要求,本问首先分析了企业工资管理系统的应用现状,阐述了本工资管理系统的开发目的,通过对数据库技术的现状与发展,数据库系统的选择原则,系统开发工具的选择一系列问题的分析确定了系统的开发平台。接着阐述了MIS系统基本理论,并在此理论知道下,详细给除了从工资管理系统分析到总体设计详细设计与实现及测试的各个环节,最后对本系统作了客观评价指明了系统的现实意义,缺点以及系统的升级方向。利用其能快速地构建各类对象,特别是数据窗口这一能方便而简洁操纵数据库的最具特色的智能化控件,在短时间内快速建立起系统的原型,然后再对原型不断地根据需要进行修正和改进,直到形成用户满意的可行系统为止。

[关键字]:控件,窗体 ,企业工资管理系统,数据库,MIS
Abstract
The enterprise wages management system management system is acorporatecorporate management important content, is one kind of typical management system management system, its development Mainly includes the backstage the database establishment, the maintenance as well as the front end corresponding application procedure development two aspects Content, system establishment and maintenance overriding demand its management data systematic characteristic, automatic and so on characteristic, But onstage application procedure development then the request achieves each
function to have complete, the operation to have simple, to be easy to study Yi Yong and so on especially Spot.  
The synthesis above each request, passes through the earnest analysis and screening, I choose Visual Basic am this system The development kit, it supports the object-oriented programming, in has set including the data window many kinds of objects class, but By conveniently visits the
database, has the efficiency high, the cost low, the quality high, the function is strong and so on the Characteristic, suits extremely This system development.
   Using its can fast construct each kind of object, specially the data window this can facilitate but succinctly operates the database Most has the characteristic the intellectualization to control, fast establishes the system in the short time the prototype, then is again unceasing to the Prototype According to needs to carry on the revision and the improvement, until forms user satisfaction the feasible system.
                          
[Keywords]:Controls, Forms,Enterprise Wages Management System,Database
MIS
目  录
第一章、企业工资管理系统概述
1.1、系统的主要功能
1.2、方法概要
  1.3、工资管理的应用现状
 1.3.1企业工资管理的应用现状
1.3.2管理系统开发的目的
第二章、系统平台的选用
   2.1数据库技术的现状与发展
   2.2数据库系统的选择原则
   2.3系统开发工具的选择
第三章、MIS系统基本理论
3.1    MIS系统的概念
3.2 MIS系统的开发梗概
3.2.1 MIS系统的开发原则
3.2.2 MIS系统的开发步骤
3.2.3 MIS开发方法的选择
第四章、工资管理系统分析
  4.1系统目标
  4.2系统可行性分析研究
  4.3 需求分析
  4.4 数据流程图
第五章、总体设计
   5.1 系统功能模块图
   5.2功能的说明
第六章、详细设计与实现
   6.1数据库设计
6.1.1概念设计
6.1.2 E-R图
6. 2 数据库表
   6.3系统模块设计
    6.3.1数据输入
    6.3.2工资计算
6.3.3查   询
第七章、系统测试
   7.1系统开发环境
   7.2系统测试
7.3 系统运行与维护
7.4系统的转换方案
第八章、系统评价
   8.1系统的特点
8.2系统的缺点
8.3将来可能提出的要求
第九章、总结与展望
参考文献
致谢
第一章 企业工资管理系统概述
1.1、系统的主要功能
   企业工资管理系统的主要任务是用计算机对各种工资信息进行日常的管理,如查询、修改、增加、删除以及存储等,迅速准确地完成各种工资信息的统计计算和汇总工作,快速打印出工资报表,针对系统服务对象的具体要求,设计了企业工资管理系统。企业工资管理系统主要有以下几大功能:
(1) 对单位人员的变动进行处理。一个单位的职工不会是一成不变的,总是在不断的变化:有调出、有调入、也有职工在本单位内部调动。因此,设计系统是应考虑到这些情况。
(2) 对职工的工资进行计算、修改。可以对职工的工资档案进行个别、部分和批量修改,同时,能对各职工的工资进行计算,即计算应发金额、应扣金额及实发金额等。
(3) 查询统计功能。要求即可以单项查询,比如查看某个职工的工资情况等;也可以多项查询,比如某部门工资数在某一范围的职工的工资情况等。
(4) 报表打印功能。每月发放工资时,要求能够打印本月的工资表、随工资发给每个职工的工资条以及工资统计表。
1.2、方法概要
本工资管理系统是采用面向对象的程序设计思想进行编制的,整个系统由若干个表单、类、报表以及一个主菜单组成,有项目管理器统一管理全部程序的编写和调试。用户可以通过主菜单或总表单调用系统的各项功能。
1、面向对象设计不再是单纯的从代码的第一行一直编到最后一行,而是考虑如何创建类和对象,利用类和对象来简化程序设计,并提供代码的封装和可重用性,便于程序的维护与扩展。
2、所谓的对象是一种抽象的名称,用来对应实现世界存在的“东西”。一个窗口、一个按钮、一个菜单都可视为一个对象,而按钮对象、菜单对象、又会出现在窗口对象中,因此按钮对象、菜单对象便是窗口的组件之一。对象内部的数据是不能随意更改的,必须由外部向其传递信息,再由对象按其方法加以处理。用户无需知道其任何细节,操作是封闭的,对象之间能通过函数调用相互通信。
3、类可视为一个产品模具、一个模块。在面向对象设计中,类是对象的原型,是对象的制作器。类的概念是面向对象程序设计最重要的特征。所谓类,是指由数据结构及其相关操作所形成的集合,描述该类任一对象的共同的行为特征,是对一组性质相同的对象的程序描述,概括了对象的共同性质和数据。
4、面向对象设计的核心是类的设计。例如:可以定义一个“工资查询表单”类,该类中可以定义查询的姓名、年龄、工资等等信息,则以此类为原型可以设计出众多的“工资查询表单”类的对象实例,这些实体都具有类中所定义的特征。
5、设计的工资管理系统也是建立在一系列类基础之上的,其编程的思想是:先根据一定的需要创建一系列的子类或直接调用vfp提供的基类,编制程序时,由这些类派生出相应的对象,所派生出的对象继承了其父类所有的功能,而且具有很好的封装性,这样就可利用派生出的对象像搭积木一样来设计自己的程序。打个比方,就比如要制造一台机器,首先要制造各种零件的模具,然后用制造好的模具生产出所需的零件,所有这些做完后,剩下的就只是如何把这些零件组装起来,这样一台机器就很容易制造出来了。实际编程也是如此。每个表单都是由一定数量的对象按某一种方式组合在一起的,程序编制的核心是类的设计。
1.3、企业工资管理系统的现状分析
1.3.1企业工资管理的应用现状
     随着我国国民经济建设的蓬勃发展和具有中国特色的社会主义市场经济体制的迅速完善,各个行业都在积极使用现代化的手段,不断改善服务质量,提高工作效率,这些都在很大程度上给企业提出越来越严峻的挑战,对企业体系无论是在行政职能、企业管理水平以及优质服务上都提出更高的要求。建设一个科学高效的信息管理系统是解决这一问题的必由之路。企业内部财务管理是该企业运用现代化技术创造更多更高的经济效益的主要因素之一。工资管理作为企业内部的一种财务管理也是如此,由于企业职工人数较多,每一位职工的具体实际情况也不尽相同,各项工资条款的发放,如果没有一个完整的管理系统来进行管理,那么势必会给管理人员带来种种麻烦,因此类似工资管理系统之类的财务软件的开发势在必行。
1.3.2管理系统开发的目的
 本系统开发的主要目的就是要使企事业单位工资管理实现计算机管理,使管理员能够有序的管理每一位职工的各项工资条款的发放以及员工个人台帐的生成,使企业运用现代化技术创造更多更高的经济效益。

第二章.企业工资管理系统平台的选用
2.1数据库技术的现状与发展
     数据库是60年代末出现的一门计算机软件技术,到现在虽然只有三十多年的历史,但在理论和时间上都得到了和很大的发展。现在,数据库是数据处理的主要工具,是管理信息系统(MIS)的核心部分。数据库系统是当今计算机信息系统的核心,是计算机技术和应用发展的关键。传统的数据库系统旨在处理永久、稳定的数据,强调维护数据的完整性、一致性。
数据库理论与技术的发展极其迅速,其应用日益广泛,在当今的信息社会中,它几乎无所不在。以关系型为代表的三大经典(层次、网状、关系)型数据库在传统的(商务和管理的事务型)应用领域获得了极大成功。计算机世界报社与IBM公司联合举办了"21世纪数据库技术发展专家研讨会"。IBM DB2的创始人Donald Haderle先生与国内著名数据库专家,就下世纪数据库发展的趋势、数据库领域革命性的突破、IBM DB2的应用、数据仓库的实施、我国数据库技术和应用的现状及趋势、我国数据库用户的需求等问题,进行了广泛而深入的讨论。
2..2数据库系统的选择原则
   (1)数据库系统采用易于集成的,开放的技术。
   (2)产品质量优异,可*性高,适于长期运行,能支持关键应用。
   (3)数据安全,保安型高。
   (4)能提供分布式数据库功能。
   (5)支持多种开发环境,软件开发容易。
   (6)扩充性和升级能力强。
2.3系统开发工具的选择
     现在市场上有很多管理系统的开发工具,如:Visual basic、delphi、ASP等等,数据库开发工具又有很多种,如:Access,SQL Sever,Oracle等等。这些都是很出色的管理信息系统及数据库的开发工具。不过Visual foxpro6.0有着以下几项特点:
     Visual foxpro是microsoft公司推出的全新的pc平台关系数据库管理系统。它具有强大的性能、无与匹敌的速度、完整而丰富的工具、及其友好的图形用户界面、简单得数据存取方式、良好的兼容性、独一无二的跨平台特性及真正的可编译性,是系统成为目前最快、最完美的数据库系统。不但兼容早期的dbase以及foxbase各种版本,同时还提供了许多基于windows的崭新功能。Visual foxpro作为具有windows95兼容标志的应用软件,具有快速开发应用程序、面向对象和客户机/服务器的强大功能,它是多年来出现在关系数据库方面最重要的产品。
     随着桌面操作系统有windows98逐渐向windowsXP升级的发展潮流,visual foxpro必将成为今后数据库产品中的主流。Microsoft visual foxpro是一个32位的数据库开发系统,可运行于window98和windowsxp操作系统。Visual foxpro既具有visual系列的功能强大、直观易用、面向对象等优点,又兼具windows和foxpro的长处。提供了“向导”、“设计器”和“生成器”等工具,使的数据库的管理工作变的容易。Visual foxpro的易用性使初学者和那些想避免涉及foxpro复杂命令的人能很快用它来管理自己的数据库,制作各种报表、标签等;增添的面向对象的编程方式等新特色,使它成为应用程序开发人员强有力工具;其兼容性使原来的广大Xbase用户能迅速转为使用 visual foxpro;visual foxpro还能广泛地与其他许多软件共享和交换数据。正是由于其易用性、先进性和广泛性,使visual foxpro 真正做到了面向各种水平的用户。
(1) 简单,易学,易用
①快速完成应用任务
    Visual Foxpro6.0提供了向导,生成器和设计器三种工具,这三种工具都使用图形交互界面方式,使用户能够最简单而又最快速地完成数据操作任务。
    操作向导提供了用户要完成某一项任务所需的详细地操做步骤,在这些步骤的指导下,用户可以一步步地很简单完成任务。例如:此工资管理系统中的各项工资数据输入的表单就是用表单向导和生成器来制作的。
    生成器也是一种具有友好界面的图形工具,它的主要功能是在用户自己的应用程序中加入一定的控制功能,例如列表框生成器就是一个带有标签的对话界面,利用列表框,生成器,用户可以在窗体中设计出一个列表框,并且可以在这种生成器中设计一个列表框的共同特征,如有手写输入,可以加入到表单中去,减少用户输入繁琐的,大量的工作,用户只要从列表下拉框中选择即可,本系统在查询设置均使用了这种方法。
如果用户想突破向导和生成器本身的限制,想要自己对应程序进行更复杂或更灵活的控制,可以利用另一种Visual Foxpro6.0提供的方便有效的工具——设计器,设计器也提供了一个友好的图形应用程序开发接口,通过它对用户能建立起自己的应用程序。例如:用户可以用窗体设计器定义和生成一个窗体,用数据表设计器定义和生成一个数据表。
②使用方便的工具栏
    象许多其他Microsoft产品一样,Visual Foxpro6.0也给用户提供了使用方便的工具栏,工具栏里有许多按钮,他们代表着菜单里的某些选项。一般来说,用户经常执行的操作或使用的对象多对应一个按钮,用户可以通过选择这些按钮方便而迅速地完成操作,而不必通过菜单选项。
③不编程而建立应用程序界面
    Visual Foxpro6.0提供的窗体设计器是一种功能强大的工具,用户能够不编程或使用很少的代码来实现友好的交互式应用程序界面以及对界面的控制。例如;用户可以用栅格控制很容易地建立一对多的窗体;用户只需把一个数据表拖到一个窗体上就可以了。也可以利用页格式控件来建立有标签的对话框话或用户自己的生成器界面。
④用项目管理器统一界面
     Visual Foxpro6.0提供的另一高效易用的工具是项目管理器。通过项目管理器,用户可以集中地管理数据,文档,类库,源代码等各种资源。例如用户可以建立和更新数据库,设计或改变窗体和报表,定义或改变类库,生成或重新生成自己的应用程序。另外,用户也可以在项目管理器中使用Visual Foxpro6.0提供的简单而有效的其他工具,如向导,生成器,工具栏等。所有这些,使用户能够对工作进行集中管理而又简单有效。
(2)功能更强大
    Visual Foxpro6.0比以前的数据库管理系统具有更强大的功能。它通过使用快速查询技术和对系统的优化而使用户最大限度地体会到Visual Foxpro6.0快速而又功能强大的优点。
①具有面向对象编程的能力
    Visual Foxpro6.0在支持标准的Xbase传统编程方式的同时,也提供了完全的面向对象编程的能力。在Visual Foxpro6.0的对象模式下,用户可以利用所有的面向对象编程特性,这些特性包括继承,封装,多态性以及分类,他们都作为用户所熟悉的Xbase编程语言的扩展集而实现。
    Visual Foxpro6.0提供了一套基类,包括窗体、工具栏、页格式等,使用这些类,用户可以建立基本的窗体、工具栏、页格式,这样就可以一方面减少用户编程工作量,另一方面又加快程序开发过程。
 再进一步,用户可以将自己定义的类再进行分类,这样可利用用户已有的代码或窗体。例如,用户可以将基本的窗体类再进行分类而建立自己的子类,这个子类将根据用户的要求自动地在应用程序中建立起一个用户希望看到的窗体,它的结构是由用户分类来决定的。
 Visual Foxpro6.0类模式能够在用户应用程序中对对象进行深入而全面的控制,例如用户在设计时可用窗体设计器对窗体中的对象进行完全的控制,二类模式下当用户运行程序时客队窗体中的表现和行为提供相同的控制。
 在Visual Foxpro6.0中,用户可以用类设计器交互式地建立一个类,或者用DEFINE CLASS命令来编程建立。
②更容易处理事件。
    Visual Foxpro6.0包含一种事件模式,它能够帮助用户自动地处理事件。在这种事件模式下,用户可以获取并控制所有标准的WINDOWS Visual Foxpro6.0事件,例如鼠标的移动,通过处理这一事件,用户可以拖动和放置一个对象,用户可以用两种方式来控制事件:一种是通过特性窗体来可视地控制;另一种是通过Visual Foxpro6.0的编程语言来控制这两种方法都能使用户很容易的建立起完全的事件驱动应用程序而不用考虑READ层次及浏览窗口限制,也不用编写事件处理程序。
③最优化系统
    Visual Foxpro6.0能通过优化用户的实际来提高自身的性能。在所有的优化措施中,做有效的方法是尽可能多地增加用户的扩展内存或减少被其他程序所占用的内存。其余的提高Visual Foxpro6.0性能的措施包括加快启动速度和优化设置指令。
④使用快速查询技术
    快速查询技术是一种专用的数据查询技术,他能够迅速从数据库中选择出一组满足用户要求的记录。使用这种即使能将数据查询所需的时间大大缩短,这样可以极大的提高数据查询效率。
⑤真正的数据库概念
   以前的Xbase软件中称.DBF文件为数据库,使人容易产生一个数据库就是一个二维表的错误认识。而visual foxpro 废除了以前Xbase  不合理的数据库概念,采用独特的数据库容器,为用户管理应用系统中的表、查询、表单、报表、程序等数据提供了方便,支持长数据库文件名和字段名设置的显示标题,为字段指定默认值,设置字段级和记录级的有效性规则,设置表的插入、删除和改变记录的触发程序得集合,合理得体现了关系型数据库的思想,与关系数据库理论统一了起来。新的数据库把有关系的表封装在一起,关系清晰、合理且处理方便。
     Viual foxpro 由于使用了这种真正的数据库概念,使得它数据库结构与sql等标准结构统一,从而使数据库的实现更加标准、合理、方便。
⑥可视化编程技术
     Visual foxpro用于visual c++、visual basic同样的编程技术,这是他取名为Visual foxpro的原因。可视化编程技术给人一种所见即所的的感受,在您编辑屏幕表单、报表、菜单时,可以直接运行,不必来回调试,极为方便。
⑦新增许多命令和函数,功能大大加强,sql语句更加丰富
     增加了7种新的字段类型:整型、货币型、日期时间型、双精度型、通用型、二进制型和二进制备注型。
在结构化的复合索引中可以建立4种类型的索引:主索引、候选索引、普通索引和唯一索引。
     允许在表中使用空值null,以保证与采用sql标准的数据库管理系统的兼容和数据共享。
⑧用32位方式
Visual foxpro使用32位方式,其运算速度、存储能力大大提高。
   第三章.MIS系统基本理论
3.1  MIS系统的概念
管理信息系统(Management Information System,简称MIS)是一个由人、计算机等组成的能进行信息收集、传递、存储、加工、维护和使用的系统。
管理信息系统按照其名称进行基本概念分解,可分为管理、信息和系统三个部分,事实上MIS正是在这三个科学领域的基础上发展起来的。
    信息反映着客观事物,信息以数据、文字、符号、声音和图象等各种不同的形式表示出来。这些形式经过转换都可以输入到计算机中,在管理信息系统中,信息是管理的对象。
数据是一组表示数量,行为和目标的非随机的可兼备的符号,它可以是字母,数字或其他符号,如*,%,也可以是图象,声音或者味道,数据项可以按使用的目的组织数据结构。
管理的含义一般说来就是计划、组织、领导和控制的活动。利用已有的和可以争取到的各种资源,在实现其目标的过程中,所应用的一切思想、理论和方法就构成了管理的主要内容。
系统是为了某种目标而将一些部件有机地结合的一个整体。一个大系统还可以分成若干个子系统,各子系统又可以有它自己的组成部件。
总之,管理信息系统是一个综合性的概念,而且它还在不断地发展着。
3.2 MIS系统的开发梗概
 3.2.1 MIS系统的开发原则
管理信息系统是一项耗资大,技术复杂,管理变革明显,并需要相当一段时间才能完成的工程项目。
    系统分析是MIS系统开发中最重要的一环。 系统分析的主要内容是对原工作状态进行充分的了解和展示,提出新系统的逻辑方案。常用开MIS发方法学及比较软件作为一种工程化产品的概念到现在已经发展了近三十年,而对软件开发方法的探讨与研究也有了很大的发展。从传统的生命周期法到原形法、面向对象法。这种演变趋势体现了软件开发从手工生产向自动化生产的转变过程,也体现了软件开发方法论发展的规律。开发方法学是MIS系统开发的指导原则,没有开发方法学的指导,或者未把开发方法学放在应有的位置,那就不可能从总体上把握开发过程,是导致MIS系统失败的主要原因之一。对MIS开发和维护的困难认识不足,过多地偏重于编码阶段的实现,即使在引入CASE工具后的今天,实践中这种状况仍未得到彻底改观。现有的MIS开发方法学为数不多,有影响的主要为以下三种方法:①生命周期法②原型法③面向对象法
3.2.2 MIS系统的开发步骤
管理信息系统开发步骤如图3-1:
                              图3-1
3.2.3开发方法的选择
 管理信息系统的开发方法有生命周期法、原型法和面向对象的开发方法等。生命周期法(Life Cycle Method)是20世纪60年代发展起来的一种应用广泛且比较成熟的管理系统开发方法,它的基本思想是将系统的开发工作从开始到结束划分为若干个阶段,每个阶段都有明确的任务,而系统开发出来后,并不意味着生命周期的结束,而意味着根据组织的需要对系统的修改和重建的开始;原型法(Prototyping Method)是20世纪80年代发展起来的,旨在改变生命周期法的缺点的一种系统开发方法,该法的开发思路是首先根据用户的要求,由用户和开发者共同确定系统的基本要求和主要功能,利用系统快速生成工具,建立一个系统模型,再在此基础上与用户交流,将模型不断补充、修改、完善,如此反复,最终直至用户和开发者都比较满意为止,从而形成一个相对稳定、较为理想的管理信息系统;面向对象(Object Oriented)的开发方法于20世纪80年代开始兴起的,是一种基于问题对象的自底向上的一种系统开发方法,这种方法的特点是以对象为基础,对象是分析问题和解决问题的核心。基于以上三种方法的特点和各自的优缺点,本企业工资管理系统利用软件工程化思想和方法,总体上是采用结构化生命法进行系统分析和设计的,而系统实现等步骤则采用了原型法和面对对象的方法。
第四章.企业工资管理系统分析
4.1系统目标
本系统要对企业工资管理的日常的工资发放进行数据输入,并对各项工资条款进行计算。汇总各项数据生成员工个人台帐,打印工资报表。采用用户名,密码安全机制,分用户权限登陆访问,保证系统资源不受人为因素的干扰。   
4.2系统可行性分析研究
   可行性研究的目的使用最小的代价在尽可能短的时间里确定问题是否能解决,通过复杂系统的规模与目标,研究与此类似的系统后,我们具体从下面两个方面考虑。
(1)技术上的可行性。
技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,软硬件配置能否满足开发者需要等,这一特点非常适合计算机的特点,发挥计算机的数据处理速度快,准确率高的优势,现代计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。由于对企业工资管理系统这一类的企业财务系统进行开发已有一定的时期,有很多成功的实例,技术基础也已经非常雄厚,因而技术上的准备应该不成问题。
(2)经济上的可行性。
主要是对项目的经济效益进行评价,一方面是支出的费用,其中包括设备购置费,软件开发费,管理和维护费,人员工资和培训费等。另一方面是取得的收益中可以用钱来衡量的那部分(收益的另一部分难以用钱来表示)。基于企业的现有计算机及配套设备,建设MIS系统。不但能大大减少重复性的书面报告,降低办公费用,提高办公室效率,而且能提高检测数据效用,为企业提供很方便。由于企业工资管理系统是一个比较小型的系统,是由我及几个同学小组进行开发的,所以从人力、物力、财力方面来说都是可行的。
(3)  管理上的可行性
主要是管理人员对开发信息系统是否支持,现有管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等,企业工资管理系统比较完善的规章制度和管理方法为系统的建设提供了保障。
(4) 社会可行性
社会可行性研究是对系统投入使用后对社会可能带来的影响进行分析,比如是否为人们所接受,是否为社会带来利益。
可行性分析的最后成果是写出可行性分析报告,可行性分析报告包括下列内容
企业工资管理系统的战略目标,新系统的总体目标及主要功能。
主要问题和主要信息要求。
拟订新系统的方案。
从经济,技术,管理,社会等方面论证方案的可行性。
4.3 需求分析

 

对用户需求的分析应该全面、深入、发展,全面是指考查由MIS管理的信息是否有纰漏,必须保证各静态、动态信息的完全;深入是指对信息的内容、结构、含义、变换、生存周期的分析和认识;发展是指对信息未来发展变化的预测,因为信息在某个系统、机构内的变化往往存在着自身特有的发展规律,需求分析应该预见这种规律,否则就会缩短MIS的使用寿命。为了保证需求分析的完备性,就必须保证需求分析的时间。
1. 系统业务流程图
通过对企业原先手工进行员工工资管理业务的情况,可以设计出它的业务流程图,如图4-1所示。
用户登录      数据输入     工资计算     存储数据
            
   工资查询     报表汇总
        图4-1
2. 系统的功能要求。
①整体结构合理,风格一致,模块化结构,界面清晰,接口灵活,操作简便。
②开发方法,文档规范化,便于管理,可扩充。
③完善的数据输入,维护,输出。
④自检性能高,用户误输、错输均有提示。
⑤容错性能高,某个用户的操作错误不会引起整个系统的瘫痪,每一功能的操作都有信息提示以免重复操作,错误操作有警告,以便用户及时改正。
4.4 数据流程图:
1.管理系统的数据流程图符号如图4-2所示
 
                 

   外部实体          处理        数据流             数据存储
                图4-2    数据流程图的符号
2.本系统的数据流程如图4-3所示
     图4-3企业工资管理系统的数据流程图

第五章.系统总体设计
本部分主要介绍系统要实现的功能,搭好设计的总体框架,使我们对要开发的系统有一个系统、全面、确切的认识。
5.1 系统功能模块图
本系统在设计时采用结构化程序的设计方法,系统的总体结构采用菜单来调用表单,利用表单来对信息进行管理、数据加工、信息查询、系统维护等工作,系统的功能模块本结构图如图5-1所示。
  图5-1  系统功能模块图
5.2功能的说明
本系统大致分为如下四大功能模块。
1.员工信息
分为员工信息浏览和员工信息查询:
在员工信息浏览子模块中,可以对员工的编号、姓名、性别、岗位、工龄、工资等级等信息进行浏览,并可以对员工信息进行增加记录,修改记录,删除记录等操作;
在员工信息查询模块中,可按员工号或员工姓名进行查询。
2.工资基本设定
包括对基础工资、岗位工资、工龄工资的设定。
基础工资的设定包括工资等级、工资额的设定,可以对工资等级及相应的工资额进行修改、添加、删除。
岗位工资的设定包括岗位名称、岗位工资额的设定,可以对岗位名称及相应的岗位工资额进行修改、添加、删除。
工龄工资的设定包括工龄、工资额的设定,可以对各个工龄段及相应的工龄工资额进行修改、添加、删除。
3.工资汇总
在工资管理中,要分别输入每一个员工的各项工资条款,这样才能运用计算机技术来管理好员工的工资发放情况,其中包括:员工基本情况,员工基本工资情况,员工岗位工资情况,员工工龄工资,工资综合。
4. 个人工资查询
此查询分为按职工姓名查询、按职工号查询。
5. 退出
此功能块为退出系统。
5.3系统的运行要求
1.硬件要求。
设备名称 说明
处理器 奔腾III以上,256MB
内  存 256MB,内存越大,速度越快
硬  盘 40GB
鼠  标 双飞燕2D鼠标
2.软件要求。
名   称 说明
操作系统 WINDOWS95/98,WINDOWSXP
应用软件 VISUAL FOXPRO6.0(中文版)
本部分简明扼要的介绍了各个部分要实现的功能,搭好了设计的总体框架,使我们对要开发的系统能够更加系统的,全面的,确切的认识,下一步就可以进行系统的详细设计与具体功能的实现了。

第六章.详细设计与实现
本部分说明了系统的整个设计,再以工资数据输入,工资计算以及查询为例详细说明了系统是怎样实现的。
6.1数据库设计
     6.1.1概念设计
概要设计基础是完成需求分析后提供的需求说明书,用概念数据模型表示数据及其相互间的关系,这种数据模型是与DBMS无关的、面向现实世界的、易如理解的数据模型,其独立于计算机的数据模型,独立于计算机的软硬件系统,与用户进行交流十分方便。
概念性数据模型关心的是如何完整、正确地反映客观实际情况,不关心在数据库中如何实现。这种数据模式能真实地反应用户要求的实际情况,是一种容易被人们理解的直观的数据库结构模式。同时也是一种相对稳定统一的数据模式,一般情况下很少变动。概念性数据在用户和设计者之间建立了桥梁。是设计数据库结构的基础。
概念设计中自顶向下的实体分析方法,即常用的实体联系模型(简称E-R模型),对具体数据进行抽象加工,将实体集合抽象成实体类型。用实体间联系反映现实世界事物间的内在联系。E-R模型是建立概念性数据模型的有力工具。
通过对企业工资管理内容和过程的分析,本系统应设计的实体和属性如下:
本系统一共用到了3个表。如下:
岗位表(dept.dbf)(包括岗位名称,岗位工资)
工龄表(gongling.dbf)(包括工龄,工龄工资)
工人信息表(personnel.dbf)(包括编号,姓名,性别,工作岗位,工龄,工资等级)。
图6-1为本系统中工人信息的实体集及有关属性的图例:
6.1.2实体和实体之间的关系E-R图如图6-2:
6.2系统中有关数据库表结构设计如下:
部门表
字段名 类型 宽度 小数位数 索引
部门 字符型 10  
部门工资 数值型 10 2 
2.工龄表
字段名 类型 宽度 小数位数 索引
工龄 数值型 10  索引
工龄工资 数值型 10 2 
3.员工信息表
字段名 类型 宽度 小数位数 索引
序号 数值型 10  主索引
姓名 字符型 6  
性别 字符型 2  
岗位 字符型 10  
工龄 数值型 5  
工资等级 字符型 5  
6.3系统模块设计举例
   下面对本系统的具体的几个模块做详细说明。
1、系统主程序MAIN.PRG
clear screen
clear events
set defa to d:/qygz
open database database/salary
do salary/main.mpr
do form salary/form/ksjm
read events
2、Ksjm.frm
(1)打开表单设计器,设计好表单,并且设置好必要的属性,设计结果见图6-3。
Form1.load事件代码:
public i
i=0
Timer.timer事件代码:
if Thisform.Label1.Left<0-Thisform.Label1.Width
Thisform.Label1.Left=Thisform.Width+3
Endif
Thisform.Label1.Left=Thisform.Label1.Left-10
I=I+10
If I>=255*2-6
I=0
Endif
(2)“员工基本信息“按钮的CLICK事件为:
      do form salary/form/personnel
   personnel.frm的有关设计见第3目
 
图6-3
    (3)“工资基本设定“按钮的CLICK事件为:
do form salary/form/dataformat
(4)“工资汇总“按钮的CLICK事件为:
     do form salary/form/result
(5)“个人工资查询“按钮的CLICK事件为:
     do form salary/form/grcx
(6)“退出“按钮的CLICK事件为:
     thisform.release
clear events
3. personnel.frm的有关设计:
    (1)打开表单设计器,设计好表单,并且设置好必要的属性,设计结果见图6-4。
Form1.init事件代码:
set multilocks on
cursorsetprop("buffering",3)
(2) thisform.pageframe1.page1.command1.click事件代码:
thisform.pageframe1.page1.fy1.enabled=.F.
thisform.pageframe1.page1.command2.enabled=.F.
thisform.pageframe1.page1.command3.enabled=.F.
thisform.pageframe1.page1.command4.enabled=.T.
if thisform.pageframe1.page1.command1.caption='增加新记录'
thisform.pageframe1.page1.txtpid.enabled=.T.
thisform.pageframe1.page1.txtpname.enabled=.T.
thisform.pageframe1.page1.txtp***.enabled=.T.
thisform.pageframe1.page1.txtpjob.enabled=.T.
thisform.pageframe1.page1.txtpindate.enabled=.T.
thisform.pageframe1.page1.txtprank.enabled=.T.
append blank
thisform.pageframe1.page1.command1.caption='增加确认'
thisform.pageframe1.page1.refresh
thisform.pageframe1.page1.txtpid.setfocus
else
getid=alltrim(thisform.pageframe1.page1.txtpid.value)
getname=alltrim(thisform.pageframe1.page1.txtpname.value)
get***=alltrim(thisform.pageframe1.page1.txtp***.value)
getjob=alltrim(thisform.pageframe1.page1.txtpjob.value)
getindate=alltrim(thisform.pageframe1.page1.txtpindate.value)
getrank=alltrim(thisform.pageframe1.page1.txtprank.value)
if empty(getid) or empty(getname) or empty(get***) or empty(getjob) or empty(getindate) or empty(getrank)
messagebox("资料不足",48,"错误")
else
thisform.pageframe1.page1.command1.caption='增加新记录'
tableupdate(.t.)
thisform.pageframe1.page1.txtpid.enabled=.F.
thisform.pageframe1.page1.txtpname.enabled=.F.
thisform.pageframe1.page1.txtp***.enabled=.F.
thisform.pageframe1.page1.txtpjob.enabled=.F.
thisform.pageframe1.page1.txtpindate.enabled=.F.
thisform.pageframe1.page1.txtprank.enabled=.F.
thisform.pageframe1.page1.fy1.enabled=.T.
thisform.pageframe1.page1.command2.enabled=.T.
thisform.pageframe1.page1.command3.enabled=.T.
thisform.pageframe1.page1.command4.enabled=.F.
endif
endif
4.工龄工资设定窗体代码:
1.”修改”按钮有关代码:
thisform.grdgongling.column1.text1.enabled=.T.
thisform.grdgongling.column2.text1.enabled=.T.
thisform.grdgongling.column1.text1.setfocus
2.”修改确认”按钮有关代码:
thisform.grdgongling.column1.text1.enabled=.F.
thisform.grdgongling.column2.text1.enabled=.F.
3.”添加” 按钮有关代码:
append blank
go bottom
thisform.grdgongling.column1.text1.enabled=.T.
thisform.grdgongling.column2.text1.enabled=.T.
thisform.grdgongling.column1.text1.setfocus
4.”删除” 按钮有关代码:
thisform.grdgongling.recordsource=''
use gongling exclusive
delete from gongling where gname=getgname
pack
thisform.grdgongling.recordsource='gongling'
thisform.grdgongling.refresh
5.”退出” 按钮有关代码
thisform.release
do form salary/form/dataformat

5.个人查询窗体有关代码:
(1).”确定”按钮有关代码:
inname=alltrim(thisform.text1.value)
inpswd=alltrim(thisform.text2.value)
set order to tms_user
seek inname
if !found()
    cMessageTitle='设备管理系统'
    cMessageText='用户名错误,请重新输入'
    nDialogType=4+32
    nAnswer=messagebox(cMessageText,nDialogType,cMessageTitle)
   do case
       case nAnswer=6   
          thisform.text1.value=''
          thisform.text1.setfocus        
       case nAnswer=7        
          messagebox("请勿偷窥他人资料",48,"警告")
          thisform.release
       endcase
else
  if tms_pswd!=inpswd
  cMessageTitle='设备管理系统'
     cMessageText='密码错误,请重新输入'
     nDialogType=4+32
     nanswer=messagebox(cMessageText,nDialogType,cMessageTitle)
     do case
         case nAnswer=6
          if flag<2
          thisform.text2.value=''
             thisform.text2.setfocus
             flag=flag+1
             else
            messagebox("请勿偷窥他人资料",48,"警告")
            thisform.release
            endif
         case nAnswer=7  
                messagebox("请勿偷窥他人资料",48,"警告")  
            thisform.release
        endcase
     else
         thisform.release
        par1=inname
        do form salary/form/gresult
  endif
 endif
(2).表单载入事件代码:
public inname
public flag
flag=0
5岗位工资有关源码:
(1).”修改”按钮有关代码:
thisform.grddept.column1.text1.enabled=.T.
thisform.grddept.column2.text1.enabled=.T.
thisform.grddept.column1.text1.setfocus
(2).”修改确认”按钮有关代码:
thisform.grddept.column1.text1.enabled=.F.
thisform.grddept.column2.text1.enabled=.F.
(3).”添加” 按钮有关代码:
append blank
go bottom
thisform.grddept.column1.text1.enabled=.T.
thisform.grddept.column2.text1.enabled=.T.
thisform.grddept.column1.text1.setfocus
(4).”删除” 按钮有关代码:
thisform.grddept.recordsource=''
use dept exclusive
delete from dept where jobname=getjob
pack
thisform.grddept.recordsource='dept'
thisform.grddept.refresh
(5).”退出” 按钮有关代码
thisform.release
do form salary/form/dataformat

其它模块设计略,具体的请用VFP6.0打开工程文件就可看到相应的源代码。
 第七章  系统测试
7.1系统开发环境:
系统开发环境包括硬件平台和软件平台两种。
硬件平台是指开发与运行所需要的硬件环境,主要包括计算机机型及硬件配置。由于本系统是一个小型的MIS管理系统,因此对计算机硬件的要求不高,比较经济,只要配备有奔腾四代赛扬处理器2.0GHZ(或以上)、DDR256M内存(或以上)、60G硬盘(或以上)的普通微机即可顺利运行。
软件平台是指系统开发与运行的软件环境。本系统在开发时选用了稳定性较强的Windows XP中文专业版和Visual Basic6.0作为开发语言,同时选用了Access数据库,由于这些软件产品都是Microsoft公司的产品,因此彼此之间的兼容性较好,开发出的应用系统稳定性较高。
Visual Basic 6.0具有可视化的开发环境,可以快速完成系统的开发,内部集成的数据库访问通道,使得可以轻松方便的对数据库管理。
数据库采用MICROSOFT ACCESS,由于我们的系统要求,采用它完全可以适合我们的工作需求,并且它所支持的数据类型十分丰富,维护简便,费用比较低,人员素质要求不是很高,容易升级。
本系统在单机上运行。
7.2系统测试:
在MIS开发过程中采用了多种措施保证软件质量,但是实际开发过程中还是不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,示经周密测试的系统投入运行,将会造成难以想像的后果,因此系统测试是MIS开发过程中为保证软件质量必须进行的工作。大量统计资料表明,系统测试的工作量往往占MIS开发总工作量的40%以上。因此,我们必须重视测试工作。
由于程序中隐藏的缺陷只在特定的环境下才有可*显露,系统缺陷通常是由于对某些特定情况考虑不周造成的。因此测试不是为了表明程序正确;成功的测试也不是没有发现错误的测试。有意义的软件测试应该是从“破坏”软件系统的角度出发,精心设计最有可以暴露程序系统缺陷的测试方案。因此软件测试的目标应该是以尽可能少的代价和时间找出软件系统中潜在的错误和缺陷。
从产品角度看,测试计划中的测试项目包括软件结构中的分系统层、子系统层、功能模块层、程序模块层中的各类模块,从测试本身看,分为单元测试,组合测试,确认测试等。测试对象是随阶段而异的,最基本、最初的测试是单元测试,后面的组合测试、确认测试都是以被测过的模块作为测试对象的。
(1)单元测试:
单元测试也称模块测试或程序测试,单元测试是对每个模块单独进行的,验证模块接口与设计说明书是否一致,对模块的所有主要处理路径进行测试且与预期的结构进行对照,还要对所有错误处理路径进行测试。对源码进行审查,对照设计说明书,表态地检查源程序是否符合功能的逻辑要求,是进行单元测试前的重要工作工。单元测试一般是由程序员完成,也称程序调试。
(2)组合测试
组合测试也称集成测试或子系统测试,通常采用自顶向下测试和自底向上测试两种测试方法。组合测试的对象是指已经通过单元测试的模块,不是对零散模块进行单个测试,而是用系统化的方法装配和测试软件系统,是一个严格的过程,必须认真地进行,其计划的产生和单元模块测试的完成日期要协调起来,这种测试应在系统目标机上进行,造成系统应用的环境条件,除了开发部分项目负责人参加以外,还应该有相应系统的用户参加,给评审员进行演示。
(3)确认测试
确认测试是对通过组合测试的软件进行的,这些软件已经存于系统目标设备的介质上,确认测试的目的是对表明软件是可以工作的,并且符合“软件需求说明书”中规定的全部功能和性能要求。确认测试是按照这些要求定出的“确认测试计划”进行的。测试工作是由一个独立的组织进行,而且测试要从用户的角度出发。
(4)系统测试
系统测试是对整体性能的测试,主要解决各子系统之间的数据通信和数据共享问题以及检测系统不否达到用户的实际要求,系统测试的依据是系统分析报告。系统测试应在系统的整个范围内进行,这种测试不只对软件进行,而是对构成系统的硬、软件一起进行。系统测试与建构同时进行或略慢。系统测试需要确认从头到尾的功能正常才算完成,应当尽量避免系统测试延到项目末尾进行。
(5)用户验收测试
在系统测试完成后,进行用户的验收测试,它是用户在实际应用环境中所进行的真实数据测试。
在具体的测试中,一般应遵循以下原则:由程序设计者之外的人进行测试;测试用例应由两部分组成:输入数据和预期输出结果;应选用不合理的输入数据与非法输入测试;不仅要检验程序是否实现预期功能,还应检查程序是否做了不应该做的工作;集中测试容易出错的程序模块;对程序修改以后,必须重新进行测试。
在开发本系统时,为了使系统能够稳定运行,对本系统进行了有针对性的全面测试,采取的方式是:
1、菜单项测试:为了保证每一项下拉菜单能够正确实现系统设计的功能,我把相关的基础数据,基本上全部输入到本系统中,并对每一个菜单项反复进行了增加、删除、修改等操作,从而保证了菜单级功能的正确实现。
2、数据跟踪:完成菜单项测试后,我又对系统内的每一个数据进行了跟踪。例如:在成绩管理模块中,我首先对考试类型进行设定,然后在成绩添加模块中进行数据操作,随时观察这两个模块之间是否有冲突产生,配合得是否正确,再然后在成绩浏览模块中进行验证,说明该功能完全正常,对其它的功能模块也进行了类似的设置。
3、综合测试:在以上测试的基础上对系统功能进行了整体的测试,依次来检验系统功能是否符合系统设计的要求。
7.3 系统运行与维护:
系统的运行:
1、初始数据的输入
本系统的输入采用鼠标和键盘相结合的输入方法。
2、怎样使用本系统:
本系统的使用相应简单,基本上只要会使用Windows软件就会使用本系统,在具体的操作时,只需点击鼠标左键即可进行相应功能的选择。
3、系统的维护:
本系统是个较复杂的人-机系统,由于系统外部环境与内部因素的变化,不断影响系统的运行,同时需要系统不断地适应这些变化,不断地完善系统,以提高系统运行的效率与服务水平,这就需要自始至终进行系统的维护工作。
系统的维护主要包括四个方面:
(1)程序的维护:指的是修改部分或全部程序,这种维护往往是在条件发生变化或原系统的效率低的情况下进行的。
(2)数据文件的维护:指的是按照用户的要求对数据文件进行不定期的修改。
(3)代码的维护:随着系统的发展和变化,可能会出现旧代码不能适应新要求的问题,因此,有必要变更代码,予以维护。
(4)硬件的维护:指的是对系统所使用的设备进行维护。
本系统的日常维护由学校的的专人来负责,如果出现一些不能解决的问题,则由开发者来负责。
7.4系统的转换方案:
本次开发的企业工资管理系统采用了并行转换方式,以保证平衡可*的过度。即一方面使用本系统来进行工作,另一方面又继续沿用老的方式—手工方式,这种状况持续了半个月的时间,在这期间发现了一些程序中存在的漏洞和错误,用户也提出一些修改意见,经过程序的进一步完善后,正式投入了使用,中止了以前老的手工的操作方式。
第八章.系统评价
系统评价就是客观,公正的从各个方面评价系统的各项功能。本部分将具体从三方面阐述:优点,缺点以及将来可能提出的要求。
8.1系统的特点
1. 流程符合企业内部工资管理的要求。
2. 界面友好,输入信息方便(好多信息,系统自动生成)。
3. 查询全面,对任何情况或字段都可以查询,从而对管理进行监督。
4. 系统扩充容易。由于资料有限,有很多地方还需要更好的完善。
5. 即面向开发人员,又面向用户。
8.2系统的缺点
1. 由于时间的原因。输出报表不完善。
2. 网络功能欠缺。本系统只能在单片机上运行,不能实现网络连接,资源共享。
3. 容错性不高。系统的抗错,容错性不高。这方面有待加强。
4. 由于资料有限,有很多地方还设计的不够详细,如考勤制度与工资奖金,福利,公积金,应付合计,扣除合计,应发合计的关系等,还需要更好的完善。
5. 没有良好的用户权限和密码限制以防止人为的破坏与盗窃数据资源。
8.3将来可能提出的要求
1. 网络化。
系统能支持网络数据传输,数据共享;数据远程访问能自动采取一定的加锁策略;远程报表处理。
2. 多媒体化。
系统能够支持语音输入。
 第九章  总结与展望

通过这次毕业设计,使我受到了一次用专业知识、专业技能分析和解决问

题的全面系统的锻炼。使我在综合知识的选用方面,在应用软件开发的基本思

想、方法方面,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步。

为日后成为合格的应用型人才打下良好的基础。这次在指导老师的帮助下,在

同学的帮助下,基本上完成了设计任务,在软件的设计方面也有了一定的提高,

熟练掌握了VISUAL  FOXPRO命令和编程技巧,为今后走上工作岗位打下了专

业基础。   

在这次的毕业设计中,让我深深地体现到进行软件开发不是一件简单的事情,

它需要设计者具有全面的专业知识、缜密的思维、严谨的工作态度以及较高的

分析问题、解决问题的能力,而我在很多方面还有欠缺。最后,我要衷心感谢

老师在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的

毕业设计。同时,也要感谢我的老师和同学们及实习企业在本系统的设计过程

中给予我的支持和帮助。
参考文献


1. 数据库基础与应用                    电大教材

2.王汝涌       管理信息系统            中国财政经济      2001.7

3.张海藩       软件工程                清华大学出版社    2001.6

4.刘瑞新       VFP程序设计教程        机械工业出版社    2002.3

5.毛一心       VFP6.0应用             人民邮电出版社    2003.3

6、萨师煊、王珊《数据库系统概论(第二版)》高等教育出版社  2001.4 

7.王要武,管理系统,电子工业出版社,2003

8.李红等编著,管理信息系统开发与应用,电子工业出版社,2003

致谢

为了这个系统,我们经过一个多月的努力,终于把企业工资管理系统做好

了, 让我真正明白了工夫不负有心人。是我成长经历中的一次经验。

本系统刚开始时我都不知道怎么着手,经过上网查找资料,了解毕业设计的

格式和企业的一些知识。慢慢摸索,想老师讨教,随着随着知识的成熟,同时也

对这次的企业管理系统产生了兴趣,一步步完成的,并且从中得到了不少的乐趣,

和成功感,才知道经过努力后能拥有的成果也是一种幸福。


刚开始在做系统的时候有很多不懂的地方,我都会请教周围的同学们或者老

师,他们也很耐心的给我讲解,让我的思维逐渐的成熟,进一步的完成此系统,

在此要对他们表示真诚的感谢。还有我们的指导老师周友学,他对我们要求得尤

其严格,每个星期都要求我们去见她一次,观看我们的进展情况,并改正我们的

错误。每完成一步他都不厌其烦的给我们更改,更改后才能进行下一步,老师的

鼓励同学们的帮助让我鼓舞勇气。 在以后的人生里,我也要做个负责任的人。

为社会贡献一份自己的力量。

这次的企业工资管理系统的完成,让我对VB有了更深一个层次的认识,并且明

白学好一个软件不仅仅*理论知识,而且还要理论联系实际,多搜集资料,多动

手才能真正的做到学以制用的效果,掌握其中的奥妙。才能在社会竞争中立于不

败之地。

 最,再次忠心得感谢和我在一组的同学们,和周友学老师!

原创粉丝点击