工资管理系统论文.doc

vb工资管理系统设计(论文+源代码)

收藏

资源目录
跳过导航链接。
vb工资管理系统设计论文源代码.rar
vb工资管理系统设计(论文+源代码)
VB工资管理系统(三)
程序
2.JPG---(点击预览)
004L.JPG---(点击预览)
1.ICO
4.ICO
DataEnvironment1.DCA
DataEnvironment1.Dsr
frmAbout.frm
frmAbout.frx
FRMCOVER.FRM
FRMCOVER.FRX
FRMLOG.FRM
FRMLOG.FRX
frm修改密码.frm
frm分类查询.frm
frm分类查询.frx
frm删除操作员.frm
Frm增加操作员.frm
frm查询.frm
frm统发工资明细.frm
frm财政统发工资系统.frm
frm财政统发工资系统.frx
GZFF.VBW
Module1.bas
MSSCCPRJ.SCC
VB460.TMP
VB466.TMP
VB47B.TMP
VB47C.TMP
VB51.TMP
VB5A.TMP
VB5B.TMP
VB86.TMP
VB9106.TMP
VB9107.TMP
VBA9.TMP
VBAA.TMP
代发工资表.DCA
代发工资表.Dsr
代发工资表.dsx
工资发放系统.mdb
工资发放系统.PDM
工资发放系统.vbp
工资发放系统.vbw
工资管理系统.
工资表.DCA
工资表.Dsr
工资表.dsx
操作说明.txt
论文
压缩包内文档预览:(预览前20页/共80页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:149911176    类型:共享资源    大小:2.33MB    格式:RAR    上传时间:2021-10-10 上传人:好资料QQ****51605 IP属地:江苏
20
积分
关 键 词:
vb 工资管理 系统 设计 论文 源代码
资源描述:
vb工资管理系统设计(论文+源代码),vb,工资管理,系统,设计,论文,源代码
内容简介:
大学毕业设计(论文)工资管理系统毕业论文学校:_姓名:_学号:_同组人员:_指导老师:_二六年五月工资管理系统的设计与实现开题报告一、文献综述目前市面上流行的工资发放软件不少。但是,对于企、事业单位的工资发放来说,不需要太大的数据库系统。只需要一个操作方便,功能实用,能同时满足财务部门、单位其他相关部门及代发单位这三方对数据的管理及需求的系统。我们的目标就是在于开发一个功能实用,用户(财务部、其他相关部门、银行)操作方便,简单明了的工资发放软件。二、选题的目的和意义实现本单位财务部门对工资发放的集中管理。可供财务人员对本单位的人员工资进行增加、删除、修改、查询、导入、导出文件、输出报表,并对系统的可登录人员进行管理;同时通过菜单关闭功能使本单位其他相关部门的人员对工资的数据编辑无法操作,只能通过查询或导出文件来了解本单位的工资发放情况;对工资发放中的应发工资合计、代扣个人所得税及个人实发工资等项目由系统自动进行计算;同时本系统还可对工资发放情况进行多角度查询,并转换成可与银行UNIX平台接口的数据形式以便于委托银行办理代发工资业务。本系统的最终目的是为了能够对工资发放进行有效的管理。财务部门人员能够高效快捷地对工资数据进行编辑,避免进行简单的重复计算,而单位其他相关部门人员可多角度查询本单位的工资发放情况,从而使工资发放数据既得到安全控制又得到宏观管理。三、研究方案首先,单位财务人员以系统管理员身份输入操作员名称和密码,请求登录。若密码跟账号相符,登录成功,则允许执行数据编辑、数据查询、数据导入、数据导出、系统管理菜单功能。其次,在财务人员执行系统管理中的增加用户菜单功能增加用户成功后,作为可登录人员允许单位相关部门人员以一般人员身份输入操作员名称和密码,请求登录。若密码跟账号相符,登录成功,则系统关闭数据编辑、数据导入以及系统管理中的增加用户、删除用户等菜单功能,只允许执行数据查询、数据导出和系统管理中的修改密码等菜单功能。四、进度计划构思管理系统,实际考察,搜集相关信息。书写开题报告,阅读相关书籍及资料。进行课题设计,书写中期报告,开始写论文。结题报告,交由老师初审,根据老师的意见,修改论文和设计,将论文交给老师,待老师审批。五、软件编程环境支持运行的环境:Microsoft Window98/95/me/XP软件环境:Visual Basic 6.0数据库的接口:Microsoft Access Driver摘要本系统为工资发放系统,是为了能够对工资发放进行有效的管理而做,采用的开发工具是 Microsoft Visual Basic 6.0。 使用的技术有:数据库的访问;菜单控制。本系统能够提供对工资发放各明细项目的数据编辑,自动计算出工资发放各项合计数据及代扣项目数据;可自主设定条件从而达到对工资数据的多角度查询功能;方便导入、导出数据及输出报表;并可转换成适合与银行UNIX平台接口的数据形式以便于委托银行办理代发工资业务。财务部门人员以管理员身份登录,对本系统的可登录人员进行管理;而单位其他相关部门人员作为一般用户登录本系统时,数据编辑程序、数据导入程序及增加用户、删除用户程序自动关闭,从而控制本系统的工资数据编辑、数据导入及用户增、删功能只能由财务部门人员操作。实现了财务部门对本单位工资发放系统的集中管理,保证了系统的安全性。是一个功能实用,用户(财务部、其他相关部门、银行)操作方便,简单明了的工资发放软件。支持运行的环境:Microsoft Window98/95/me数据库的接口:Microsoft Access Driver。关键词工资;管理系统;Visual Basic 6.0SummaryThis system grants system for salary. The developing instrument adopted is Basic 6 of Microsoft Visual. There are the technologies used: the visit of the data base; the menu is controlled. The system can be offered to the data editor granting every detail project to the salary, calculate and publish salary grant data of total lings and take the place of and spike project datum while being automatic; but settle the condition on ones own thus reaches and inquires about the function to much angles of the salary data; and the convertible suitable as bank handle and take the place of business of paying out wages of at authorized banks on UNIX platform the data forms of interfaces. Financial personnel of department log-in as janitors log in to personnel go on and manage to this a systematic one; When other relevant department personnel of unit are regarded as a system of general users log-in, Editor of data procedure, data channel procedure into and increase user, delete automatic to close procedure user, Thus, data channel copies of systematic salary data editor into control. Grant systematic centralized management to the salary of our unit after realizing the financial department, have guaranteed the systematic security.Support the environment run: Microsoft Window98/95/meThe interface of the data base: Microsoft Access DriverThe keyword: Salary; Administrative system; Visual Basic 6.0目录开题报告0摘要2Summary3一、引言61、本课题的研究意义62、本论文的目的、内容及作者的主要贡献6二、管理信息系统概述81、管理信息系统现状:82、管理信息系统开发方法介绍10三、研究现状及设计目标131、相近研究课题的特点及优缺点分析132、研究存在的问题及解决办法133、系统层次和功能图174、本课题要达到的设计目标18四、建议的方案191、数据库访问192、菜单控制:19五、系统结构与模型201、推荐方案202、支持环境203、系统流程图20六、系统实现技术261、系统登陆262、一般用户登录273、性能274、数据库特性27七、详细设计和编码291、程序设计语言292、详细设计29八、性能测试与分析431、测试432、测试环境433、测试方法454、测试方案45致谢49参考文献50附录51一 引言1、本课题的研究意义 目前市面上流行的工资发放软件不少。但是,对于企、事业单位的工资发放来说,不需要太大的数据库系统。只需要一个操作方便,功能实用,能同时满足财务部门、单位其他相关部门及代发单位这三方对数据的管理及需求的系统。我们的目标就是在于开发一个功能实用,用户(财务部、其他相关部门、银行)操作方便,简单明了的工资发放软件。2、本论文的目的、内容及作者的主要贡献21目的我们的目标就是在于开发一个操作方便,功能实用,能同时满足财务部门、单位其他相关部门及代发单位这三方对数据的管理及需求的系统。22内容实现本单位财务部门对工资发放的集中管理。可供财务人员对本单位的人员工资进行增加、删除、修改、查询、导入、导出文件、输出报表,并对系统的可登录人员进行管理;同时通过菜单关闭功能使本单位其他相关部门的人员对工资的数据编辑无法操作,只能通过查询或导出文件来了解本单位的工资发放情况;对工资发放中的应发工资合计、代扣个人所得税及个人实发工资等项目由系统自动进行计算;同时本系统还可对工资发放情况进行多角度查询,并转换成可与银行UNIX平台接口的数据形式以便于委托银行办理代发工资业务。在登录管理方面,财务人员以工资发放系统的管理人员身份登录,并对本系统的可登录人员进行管理,有权增加及删除本系统的登录人员,进行自身密码的修改;而本单位其他相关部门的可登录人员在登录本系统后,则只能进行自身密码的修改,而无权增加及删除用户。23作者的主要贡献全程参与了此课题的研究与开发,包括分析,设计,编码,测试,文档等等。二、管理信息系统概述1、管理信息系统现状:管理信息系统(MIS)是一门边缘学科,集管理科学、信息科学、系统科学、现代通信技术和电子计算机技术于一体。1985年,管理信息系统创始人,明尼苏达大学卡尔森管理学院的著名教授戴维斯(Gordon.B.Davis)给出了一个具有代表性的定义:“管理信息系统是一个利用计算机硬件和软件,手工作业、分析、计划、控制和决策模型以及数据库的用户机器系统。它能提供信息支持企业或组织的运行、管理和决策功能。”随着网络技术的出现,管理信息系统又有了新的含义,基于网络的管理信息系统不断出现,管理信息系统的概念模型也发生了相应的变化,许多学者对管理信息系统给出了新的定义。例如劳顿认为:“管理信息系统是一个基于计算机的信息系统,它通过收集、处理、存储和扩散信息,来支持组织的管理、决策、合作、控制、分析活动,并使之可视化。”因此,我们可以看出,管理信息系统具有几个基本含义:(1)管理信息系统不是一个单纯的软件系统,而是一个人机系统,由人和机器协同工作。管理信息系统在支持企业或组织的各项管理活动中,管理人员负责将基础数据及时地输入到计算机中,计算机则根据企业或组织中的各层管理人员的要求对基础数据进行加工处理,并将所得到的信息输出。计算机不断地与最终用户进行着信息的交换,但在对数据的加工处理过程中又需要人的适当干预。(2)管理信息系统的管理过程就是对数据进行惧、存储、加工处理、传递,并产生信息的过程,因此数据是管理信息系统的灵魂。管理信息系统运用了数据库的技术,对基础数据进行统一规划、存储,供各层管理人员使用,从而实现了数据的一致和共享。(3)管理信息系统可以解决企业或组织所面临的问题。例如,管理信息系统可以处理企业生产经营活动的全过程,可以解决组织中数据处理效率问题,也可以解决财务管理决策过程等。管理信息系统应具有如下几个功能。(1)数据处理功能:数据处理是管理信息系统最基本的功能,它包括对各种类型数据的收集、加工处理、传递、存储等工作。(2)实测功能:通过对数据的加工处理,可以随时了解各部门的实际运行情况,如各生产车间今天生产的产品数量、销售部接受的订单等。(3)预测功能:通过运用一定的数学方法和预测模型,对过去的数据进行分析,就可能对未来可能发生的情况进行预测,为高级管理人员进行管理决策提供依据。(4)控制功能:通过信息的反馈可以对整个企业生产经营的各个部门、各个环节的运行情况进行监测、协调、控制,保证系统的正常运行。(5)辅助决策功能:通过对数据的加工处理,可以快速地获取对决策有影响的信息,从而为合理的配置企业的各项资源,做出最佳的决策提供科学的依据。目前,管理信息系统的应用已经非常广泛,随着计算机技术、网络技术和通信技术的发展,管理信息系统的功能也日趋完善,并朝着智能化、网络化、集成化等方向发展。如办公自动化(OA)、电子商务(EC)、专家系统(ES)、计算机集成制造系统(CIMS)。2、管理信息系统开发方法介绍目前,常用的管理信息系统的开发方法有生命周期法、原型法和面向对象的开发方法。下面仅对原型法和面向对象的开发方法进行简单的描述。(1)原型法:原型法(Prototyping Method)是20世纪80年代发展起来的,旨在改变生命周期法的缺点的一种系统开发方法。原型法的基本思想首选根据用户的要求,由用户和开发者共同确定系统的基本要求和主要功能,利用系统快速生成工具,建立一个系统模型。再在此基础上与用户交流,将模型不断补充,修改完善,如此反复,最终直至用户和开发者都比较满意为止,就形成了一个相对稳定、较为理想的管理信息系统。原型法的开发过程采用原型法开发管理信息系统可以分为如下几个阶段:A、确定用户的基本需求。由用户提出对新系统的基本要求,如功能、基本界面形式、所需的数据、应用范围、运行环境等,开发者根据这些信息估算出开发该系统所需的费用,并建立简明的系统模型。B、开发初步的原型系统。系统开发人员根据用户的要求建立原型系统,但该系统只是一个初步的、不成熟的系统,从系统的工作效率上看也是不完善的。其主要目的是为了描述开发者所理解的用户的基本需求。C、修改、评价原型系统。将建造好的原型系统交给用户,并投入试运行,用户将使用过程中发现的问题一一记录下来,并与开发人员进行交流。开发人员针对这些问题不断地对系统进行修改、扩充与完善,直至用户满意为止。D、形成最终的管理信息。对用户满意的原型系统进行进一步的开发,不断补充、完善,最终形成一个适用的管理信息系统。原型法的优缺点原型法的优点是开发周期短,费用较少,同时可以较有效地避免因开发者和用户的认识隔阂所产生的失败,其缺点是系统的开发缺乏统一的规划和开发标准,难以对系统的开发过程加以控制。原型法一般适用于开发规模不大、不太复杂或需求经常发生变化的系统。(2)面向对象的开发方法面向对象(Object Oriented)的技术于20世纪80年兴起,随后广泛地应用于计算机技术的几乎所有领域。面向对象的技术中最重要的概念是对象。面向对象是基于问题对象的自底向上的一种系统开发方法。在开发过程中,分析和设计阶段独立于程序设计语言,信息系统模型设计好后,最终用具体的程序设计语言、数据库或硬件来实现。面向对象法最主要的特点是对对象为基础,对象是分析问题和解决问题的核心。面向对象法的开发过程面向对象法的开发过程一般分为四个阶段:A、认识客观世界(如一个企业)中的对象以及行为,分别独立设计各个对象的实体。B、分析对象之间的联系和相互之间所传递的信息,由此构造客观世界(企业)所对应的信息管理系统的模型。C、由信息系统的模型转换成计算机软件系统的模型。D、由计算机软件系统的模型再转化成一个现实系统。面向对象法的优缺点:面向对象法的优点是便于帮助分析者、设计者和用户清楚地表达抽象概念,互相进行交流;交流特定的软件工具模块,直接地完成了从对象的描述到软件体系结构之间的转换,避免了其它的方法在开发过程的客观世界描述和软件结构不一致性和复杂性问题,便于系统开发简单、统一,开发周期短,费用低。面向对象法的主要缺点与原型法一样,因此这种方法也不适用于开发大的、复杂的系统。本系统在开发过程中具体是采用了原型法和面向对象两种方法相结合的开发思路,力求在开发过程中尽量吸收这两种方法的长处,而克服它们的短处。三、研究现状及设计目标1、相近研究课题的特点及优缺点分析传统的工资发放,多采用手工的形式,既繁琐又易于出差错,随着电子技术的发展,工资发放多采用电算化的方式进行管理,避免进行简单的重复计算,从而做到准确、快捷。为了适应这个要求,我们工作组经过详细的市场调查,发现市面上工资发放的软件繁多,竞争激烈,为了避免重复生产类似的软件产品,做出自己的特色,我们决定做一个切合单位工资发放实际要求的工资发放系统软件。2、研究存在的问题及解决办法目前的可用的设计技术在设计此类系统上的数据库技术已经非常成熟,可提供的开发工具也很多,例如:Visual C+ ,Visual Basic, PowerBuilder, Delphi, visual FoxPro等,它们都是很好的数据库开发工具,都是可视化开发工具,功能强大,开发容易,开发周期短,对于这些任务都能够胜任。Visual Basic是一种可视化的、面对对象和调用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C+编程基础。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、开放式数据访问(ODBC)等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。总的来说,Visual Basic具有以下特点:可视化编程:用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。如果对界面的效果不满意,还要回到程序中修改。有时候,这种编程-编译-修改的操作可能要反复多次,大大影响了软件开发效率。Visual Basic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。Visual Basic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。面向对象的程序设计4.0版以后的Visual Basic支持面向对象的程序设计,但它与一般的面向对象的程序设计语言(C+)不完全相同。在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是抽象的概念;而Visual Basic则是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,Visual Basic自动生成对象的程序代码并封装起来。每个对象以图形方式显示在界面上,都是可视的。结构化程序设计语言Visual Basic是在BASIC语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式。Visual Basic语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。Visual Basic是解释型语言,在输入代码的同时,解释系统将高级语言分解翻译成计算机可以识别的机器指令,并判断每个语句的语法错误。在设计Visual Basic程序的过程中,随时可以运行程序,而在整个程序设计好之后,可以编译生成可执行文件(.EXE),脱离Visual Basic环境,直接在Windows环境下运行。事件驱动编程机制Visual Basic通过事件来执行对象的操作。一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。例如,命令按钮是一个对象,当用户单击该按钮时,将产生一个“单击”(CLICK)事件,而在产生该事件时将执行一段程序,用来实现指定的操作。在用Visual Basic设计大型应用软件时,不必建立具有明显开始和结束的程序,而是编写若干个微小的子程序,即过程。这些过程分别面向不同的对象,由用户操作引发某个事件来驱动完成某种特定的功能,或者由事件驱动程序调用通过过程来执行指定的操作,这样可以方便编程人员,提高效率。访问数据库Visual Basic具有强大的数据库管理功能,利用数据控件和数据库管理窗口,可以直接建立或处理Microsoft Access格式的数据库,并提供了强大的数据存储和检索功能。同时,Visual Basic还能直接编辑和访问其他外部数据库,如dBase,FoxPro,Paradox等,这些数据库格式都可以用Visual Basic编辑和处理。Visual Basic提供开放式数据连接,即ODBC功能,可通过直接访问或建立连接的方式使用并操作后台大型网络数据库,如SQL Server,Oracle等。在应用程序中,可以使用结构化查询语言SQL数据标准,直接访问服务器上的数据库,并提供了简单的面向对象的库操作指令和多用户数据库访问的加锁机制和网络数据库的SQL的编程技术,为单机上运行的数据库提供了SQL网络接口,以便在分布式环境中快速而有效地实现客户/服务器(client/server)方案。动态数据交换(DDE)利用动态数据交换(Dynamic Data Exchange)技术,可以把一种应用程序中的数据动态地链接到另一种应用程序中,使两种完全不同的应用程序建立起一条动态数据链路。当原始数据变化时,可以自动更新链接的数据。Visual Basic提供了动态数据交换的编程技术,可以在应用程序中与其他Windows应用程序建立动态数据交换,在不同的应用程序之间进行通信。对象的链接与嵌入(OLE)对象的链接与嵌入(OLE)将每个应用程序都看作是一个对象(object),将不同的对象链接(link)起来,再嵌入(embed)某个应用程序中,从而可以得到具有声音、影像、图像、动画、文字等各种信息的集合式的文件。OLE技术是Microsoft公司对象技术的战略,它把多个应用程序合为一体,将每个应用程序看作是一个对象进行链接和嵌入,是一种应用程序一体化的技术。利用OLE技术,可以方便地建立复合式文档(compound document),这种文档由来自多个不同应用程序的对象组成,文档中的每个对象都与原来的应用程序相联系,并可执行与原来应用程序完全相同的操作。动态链接库(DLL)Visual Basic是一种高级程序设计语言,不具备低级语言的功能,对访问机器硬件的操作不太容易实现。但它可以通过动态链接库 技术将C/C+或汇编语言编写的程序加入到Visual Basic应用程序中,可以像调用内部函数一样调用其他语言编写的函数。此外,通过动态链接库,还可以调用Windows应用程序接口(API)函数,实现SDK所具有的功能。3、系统层次和功能图层次结构图又称为组织机构图,系统必须设定要实现的功能。功能要以组织结构为背景来识别和调查,因为每个组织都是一个功能机构,都有各自不同的功能。调查时要按部门的层次关系进行,然后用归纳法找出它的功能,形成各层次的功能结构。组织结构与功能结构又不完全一致,各组织、各部门的功能,由于各种原因,有可能重叠,许多功能可能还需要多个部门协力完成。一个部门的功能也不能是惟一的,可能需要完成多种功能,把各部门的功能以及相互之间的功能合作关系用一张二维表格绘制出来,就是组织/功能关系表。以组织结构图为背景分析清楚各部门的功能后,分层次将其归纳、整理,形成各层次的功能结构图:自上而下逐层归纳、整理,形成以系统目标为核心的整个系统的功能结构图。现行的系统的许多功能多数由手工完成。手工处理慢,处理功能分得较细,环节又多,甚至由于某些历史原因造成一些不合理的处理设置。那么,在分析归纳过程中,就要把不合理的流程取消,把功能相似或工作顺序相近的处理功能尽量合并,分析归纳后的功能是否能达到新系统目标以及应设置的功能是否已经具备等。经分析后的系统功能结构一般是多层次的树型结构,一般最后一级功能是不能再分割的。4、本课题要达到的设计目标实现数据库管理,数据库内包含有单位部门名称、序号、姓名、账号、应发工资合计、基础工资、职务工资、级别工资、补助工资、奖金、福利、代扣失业保险金、代扣养老保险金、代扣住房公积金、代扣个人所得税、实发个人工资等等数据项;还包括登录人员、登录密码等数据项。通过读取数据库的数据项来管理单位人员的工资发放情况,财务部门人员有权新建工资发放人员记录,添加人员的各项工资明细数据,对于人员应发工资合计、代扣个人所得税、个人实发工资等需计算的工资项目则由系统自动实现。通过读取数据库的数据项来了解单位人员的工资发放情况,系统的登录人员可按自身对数据的需求情况,自主设定查询条件,从而达到对工资数据的多角度查询;同时,可导出工资数据,并可将工资数据转换成可与银行UNIX平台接口的数据形式以便于委托银行办理代发工资业务。通过读取数据库的数据项来控制系统的登录情况,系统自动检查核对登录人员和密码的一致性。财务部门的人员作为管理员登录本系统,除可以修改自身密码外,还有权决定增加及删除本系统的可登录人员;而系统的其他可登录人员在登录本系统后则只能进行自身密码的修改。本系统的最终目的是为了能够对工资发放进行有效的管理。财务部门人员能够高效快捷地对工资数据进行编辑,避免进行简单的重复计算,而单位其他相关部门人员可多角度查询本单位的工资发放情况,从而使工资发放数据既得到安全控制又得到宏观管理。四、建议的方案工资发放的应用程序不宜太复杂,所以不需使用太多的技术,我们在这里主要使用的技术有:数据库的访问;菜单控制。单位其他相关部门人员在登录本系统时,将数据编辑程序、数据导入程序及增加用户、删除用户程序关闭,从而控制本系统的工资数据编辑及用户增删功能只能由财务部门人员操作。1、数据库访问:我们通过DATA控件访问数据库。2、菜单控制:在系统一开始运行的时候,我们通过一个全屏幕的,没有控制菜单框的窗体作为用户和密码的登录界面。在核对用户名及密码的一致性后,进入系统的功能界面。单位其他相关部门人员登录本系统,数据编辑、数据导入及增加用户、删除用户菜单将被拒绝操作,只有当财务人员以管理员的身份登录后,才有数据编辑、数据导入及增加用户、删除用户的权力。五、系统结构与模型1、推荐方案根据比较上面的方案,我们认为工资发放系统的实时性要求可以不需要很严格,而实用性才是首要考虑的,因此采用 DATA控件访问ACCESS数据库,由数据库来实现对工资发放数据的管理。系统结构图 数据库Access访问修改主机 图5.12、支持环境Microsoft Window98/95/me/XP3、系统流程图系统登陆界面输入操作员及密码数据库正确功能界面出错信息密码错出错信息系统主界面系 统主 界 面检查功能处理 登录 图5.24、系统功能流程图系统管理员登录数据库Access功能界面数据导入数据编写辑数据查询系统管理数据导出工资明细增加用户导出导入分类查询删除用户添加导出文件导出报表密码修改删除修改全删查询退出 图 5.3首先,单位财务人员以系统管理员身份输入操作员名称和密码,请求登录。若密码与用户相符,登录成功,则允许执行数据编辑、数据查询、数据导入、数据导出、系统管理菜单功能。其次,在财务人员执行系统管理中的增加用户菜单功能增加用户成功后,作为可登录人员允许单位相关部门人员以一般人员身份输入操作员名称和密码,请求登录。若密码与用户相符,登录成功,则系统关闭数据编辑、数据导入以及系统管理中的增加用户、删除用户等菜单功能,只允许执行数据查询、数据导出和系统管理中的修改密码等菜单功能。5、系统管理流程图系统管理员登录数据库Access系统管理增加用户功能界面删除用户密码修改 图 5.4系统管理中的增加用户及删除用户菜单功能只有当管理员登录时才可用,且在增加用户里还需要再次验证管理员密码,而在用户增加密码及修改密码时均需验证两次输入密码的一致性,以加强系统的安全控制。6.数据字典数据流程图是描述系统逻辑模型的主要工具,通过几个特定的符号,可以综合地反映出信息在系统中的使用、加工处理、传递、存储的整体情况。数据流程图是系统结构化分析行之有效的工具,它抽象地描述了系统数据处理的情况,但却无法表达各个处理的详细内容,因此还要对数据流程图中出现的数据流和处理等做进一步的补充说明,这就是数据字典和变换逻辑说明。数据字典的任务就是对数据流程图中的出现的所有被命名的图形元素在数据字典中作为一个条目加以定义,便得每一个图形元素的名字都有一个确切的解释。数字是对数据流程图的补充说明,它的编制和维护是一项非常繁重的工作,一旦建立起来,从系统分析直至系统运行都用到它。用户名:名字:用户名别名:描述:标识系统的登录人员定义:字符、字母位置:登录管理表 密码:名字:密码别名:描述:对管理员及可登录人员的真实性进行验证定义:字符|数字位置:登录管理表 工资明细表:名字:工资明细表别名:描述:工资发放的各明细项目定义:货币型定义:数字位置:工资发放系统数据库 登录管理表:名字:登录管理表别名:描述:登录名 及 密码定义:字符位置:工资发放系统数据库系统的E-R图:操作员密码用户管理代扣失业保险金工资明细实发个人工资代扣个人所得税代扣住房公积金福利补助工资级别工资职务工资基础工资账号姓名序号部门名称应发工资合计奖金代扣养老保险金图 5.5六、系统实现技术1、系统登陆1.1管理人员登录管理员登录:管理员在登录工资发放系统时,应当先输入系统管理员的用户名和密码,以供校验管理员的身份。1.2工资发放明细管理:包括新添人员工资明细、修改已存在的工资明细、删除已存在的工资明细、查询已存在的工资明细等有效编辑功能。1.3自动计算功能:根据财务人员录入的各项工资发放明细,系统自动计算出应发工资合计数,并根据应发工资合计数自动计算出该人员应代扣个人所得税额,最后由系统自动计算出应发工资扣除代扣失业保险金、代扣养老保险金、代扣住房公积金、代扣个人所得税后的个人实发工资金额。1.4工资发放分类查询:根据对数据的需要自设查询条件,并将符合条件的信息显示出来。1.5管理员管理:包括增加新的用户、删除已有的用户。1.6增加用户:根据本单位其他相关部门对工资发放数据的需要,决定是否允许该部门人员登录本系统。1.7删除用户:根据本系统用户对工资发放数据的需求情况,决定禁止该用户登录本系统。1.8修改密码:提供修改密码功能供用户定期修改密码,以确保系统的安全性。1.9数据导入:当有大量新增工资发放记录时,可通过数据导入功能批量导入数据到数据库中。1.10数据导出:将工资发放的各项明细导出成文本文件,以便提供给银行代发工资。1.11报表功能:提供工资明细表及银行代发工资表,可以将工资发放数据导入到报表中并打印出来,作为历史资料留存。2、一般用户登录2.1、一般用户登录:一般用户在登录工资发放系统时,应当先输入用户名和密码,以供校验用户的身份。2.2、菜单关闭功能:当系统由非财务部门的其他一般用户登录时,系统自动关闭功能菜单中的数据编辑、数据导入、增加用户及删除用户菜单功能,以确保工资发放数据不被随意修改。2.3、工资发放分类查询:根据对数据的需要自设查询条件,并将符合条件的信息显示出来。2.4、修改密码:用户登录成功后,可任意修改自己的密码。2.5、数据导出:将工资发放的各项明细导出成文本文件,以便提供给银行代发工资。2.6、报表功能:提供工资明细表及银行代发工资表,可以将工资发放数据导入到报表中并打印出来,作为历史资料留存。3、性能系统能够提供对工资发放各明细项目的数据编辑,自动计算工资发放各项合计数据及代扣项目数据;支持多角度的查询功能;方便导出数据及报表;对系统的可登录人员进行控制管理。系统的处理事件能力良好,安全性能好,能够及时响应用户的信息。4、数据库特性我们采用的是Microsoft Access 的数据库引擎,在用户访问数据库时采用DAO方式工作。在工资发放系统数据库里,我们用数据库表格来纪录工资发放的各项明细信息,表格中的字段有:部门名称、姓名、序号、账号、应发工资合计、基础工资、职务工资、级别工资、补助工资、奖金、福利、代扣失业保险金、代扣养老保险金、代扣住房公积金、代扣个人所得税、实发个人工资等等字段。另一个是登录管理表,用来纪录系统可登录人员的信息,主要有以下字段:用户名、密码等字段。七、详细设计和编码1、程序设计语言这份工资发放系统采用Visual Basic 6.0来写ACCESS数据库的办法,采用DAO访问数据库,运用DATA控件打开、访问并操作已有的数据库,通过编程方式,采用标准的SQL语句进行与对数据库的查询和修改,实现了用户管理本系统的功能。2、详细设计2.1数据编辑功能的设计利用数据控件和各种约束控件操纵已存在的“工资明细表”数据库,使用ADDNEW方法向数据库创建成新记录;用UPDATE方法保存新记录,同时当前记录指针恢复为空值;使用DELETE方法来删除当前记录;使用CLOSE方法来关闭记录集并释放分配给它的资源;使用FIND方法来查询记录;使用MOVENEXT及MOVEPREVIOUS方法来移动记录,并检测记录集的EOF/BOF属性。22菜单关闭功能的设计通过设置用户名对菜单的ENABLED及VALUE属性来达到对一般用户关闭数据编辑、增加用户及删除用户等菜单的功能。23导入记录的设计开 始选择文件存在的路径建立 文件建立是否出错?返回出错信息NY写入文件 图 7.1 24导出记录的设计N开 始选择保存的路径建立 文件是否出错?写入文件出错信息返回 Y 图 7.22.5增加用户的程序设计开始管理员登录系统确认管理员密码用户名有效吗用户名密码一致吗提示信息要求重输允许增加操作密码确认一致吗输入新用户名、密码 返回 Y N 图 7.3 增加用户的菜单功能只有管理员登录时才可用,且在增加用户时需再次确认管理员登录名及密码,新增用户需两次输入密码一致才能确定新增用户成功。26删除用户的程序设计删除用户的流程图开始 管理员登录系统确认管理员密码用户名有效吗用户名密码一致吗提示信息要求重输允许删除操作密码确认一致吗输入用户名、密码删除 返回 Y N 图 7.4 27密码修改的程序设计密码修改流程图用户密码一致吗用户登录本系统输入用户名密码用户名有效吗提示信息要求重输允许修改操作开始修改用户名一致吗提示重输修改成功返回密码确认一致吗 图 7.5 28系统窗体和代码设计:(1)系统欢迎界面: 图 7.6代码如下:Private Sub Command1_Click() frmlog.Show 注释:显示Frmlog窗体frmcover.Hide 窗体设置热键End SubPrivate Sub Command2_Click()EndEnd Sub (2)系统登录界面:图 7.7部分代码如下:Private Sub Command1_Click() Dim found, right As Boolean 定义VB的一个数据类型(布尔型) Dim a As Boolean found = False 错误赋值给found right = True Data1.Refresh Data1.Recordset.MoveFirst 是让指针指向记录集中的第一条记录 Do While Data1.Recordset.EOF = False If Data1.Recordset.Fields(操作员).Value = frmlog.Combo1.Text Then 取得Recordset.fields(“字段名”)的值 If Data1.Recordset.Fields(密码).Value = frmlog.Text1.Text Then found = True Else found = True right = False End If Exit Do 退出循环 Else Data1.Recordset.MoveNext 是让指针指向记录集中的下一条记录 End If Loop Data1.Recordset.MoveFirst 是让指针指向记录集中的下一条记录 If found = False And right = True Then a = MsgBox(没有此操作员,登录失败, vbExclamation, 工资发放系统) 当输入的操作员错误后,提示“没有此操作员,登录失败” 警告Else If right = False Then a = MsgBox(密码出错,重新输入?, vbYesNo + vbQuestion, 工资发放系统) = vbNo 当输入错误的密码之后,系统提示“密码出错,重新输入?” frmcover.Show 返回 frmcover.show窗体界面 Else a = MsgBox(登录成功, vbInformation, 工资发放系统)frm工资发放系统.Show 输入正确的操作员和密码之后,显示登录成功If Combo1.Text = root Then 如果操作员为rootfrm工资发放系统.BZ.Enabled = True 登陆到Frm工资发放系统界面frm工资发放系统.CX.Enabled = True 所有功能操作员都可以运行 frm工资发放系统.ZJ.Enabled = True frm工资发放系统.SC.Enabled = True frm工资发放系统.import.Enabled = True frm工资发放系统.XG.Enabled = True frm工资发放系统.TC.Enabled = True Else If Combo1.Text root Then 如果操作员不等于root frm工资发放系统.BZ.Enabled = False 只有部分功能对操作员实现 frm工资发放系统.CX.Enabled = True frm工资发放系统.ZJ.Enabled = False frm工资发放系统.SC.Enabled = False frm工资发放系统.XG.Enabled = True frm工资发放系统.import.Enabled = False frm工资发放系统.TC.Enabled = True End If End IfEnd If (3)系统主界面Private Sub B_Click()frm分类查询.Show 显示分类查询End SubPrivate Sub C_Click() frm浏览.Show 显示浏览End SubPrivate Sub CC_Click()frm工资明细.Show 显示工资明细End SubPrivate Sub DC_Click()cancel:End SubPrivate Sub DD_Click()frm统发工资管理.Show 显示统发工资管理菜单End SubPrivate Sub DY_Click()代发工资表.Show 显示代发工资表End SubPrivate Sub Form_Load()End SubPrivate Sub GG_Click() Dim a As Boolean 声明a是一个布尔型变量 On Error GoTo cancel 如果错误则转到退出状态 CommonDialog1.ShowSave打开保存对话框 filepath = CommonDialog1.FileName On Error GoTo fileerror 如果出现错误的话直接跳转到fileerror,执行Errhandle中的指令 On Error Resume Next如果出现错误,续续执行下面的语句Open filepath + .txt For Output As #1 打开文件标记为#1,然后输出 s1 = Date$ Print #1, s1 打印文件Data1.Recordset.MoveFirst 是让指针指向记录集中的下一条记录 Do While Data1.Recordset.EOF = False 循环语句,当data1错误时候If Data1.Recordset.Fields(部门名称).Value = Date$ Then如果部门名称为data时候s1 = Data1.Recordset.Fields(部门名称).Value 将data1部门名称赋值给s1 s2 = Data1.Recordset.Fields(序号).Value s3 = Data1.Recordset.Fields(姓名).Value s4 = Data1.Recordset.Fields(账号).Value s5 = Data1.Recordset.Fields(应发工资合计).Value s6 = Data1.Recordset.Fields(实发个人工资).Value s7 = Print #1, s1 + s7 + s2 + s7 + s3 + s7 + s4 + s7 + s5 + s7 + s6打印以上的数据,行排列End If Data1.Recordset.MoveNext 是让指针指向记录集中的下一条记录Loop Data1.Recordset.MoveFirst是让指针指向记录集中的第一条记录Close #1 关闭 (4)工资明细:Private Sub Command6_Click() 按下command6按钮时End SubPrivate Sub cmdadd_Click()XG = TrueCommand2.Visible = True 隐藏一下command2按钮Command3.Visible = True隐藏一下command3按钮Command2.Enabled = True 显示command2按钮Command3.Enabled = True 显示command3按钮cmdadd.Enabled = False 显示添加按钮cmdUpate.Enabled = FalsecmdDelete.Enabled = False显示删除按钮cmdClose.Enabled = False显示关闭按钮cmdFIND.Enabled = FalseCommand4.Enabled = Falsecmdmove1(1).Enabled = Falsecmdmove2(2).Enabled = FalseData1.Recordset.AddNew是让指针指向新的添加记录addNewFlag = TrueData1.Recordset.Edit是让指针指向编辑记录Text1.SetFocus 是可以通过这个属性,将光标移到某个地方End SubPrivate Sub cmdClose_Click() 鼠标单击事件,单击关闭按钮If MsgBox(确定退出?, vbYesNo, 注意!) = vbYes Then frm工资发放系统.Show frm工资明细.Hide 如果单击关闭后显示确定退出提示,则返回工资发放系统主界面 End If 结束条件语句End SubPrivate Sub cmdDelete_Click()ss = MsgBox(真的删除这个记录?, vbYesNo + vbInformation, 删除记录) 单击删除按钮,提示真的删除记录?如果单击OK则删除记录If (ss = vbYes) Then 如果将yes赋值给ssData1.Recordset.Delete 是让指针指向删除记录Data1.Recordset.MoveNext是让指针指向记录集中的下一条记录If Data1.Recordset.EOF ThenData1.Recordset.MoveLast是让指针指向记录集中的最后一条记录cmdmove2(2).Enabled = False 隐藏移动按钮End If 结束条件语句End IfEnd Sub (5)数据查询:部分代码如下:Private Sub Command1_Click() 单击command1事件 On Error GoTo OOPS 如果出现错误,续续执行下面的语句 Dim My_Query As String 声明my query为字符串型类型变量 My_Query = Combo1 & & Combo2 & & findtext.Text & Data1.RecordSource = SELECT * FROM 工资明细表 WHERE & My_Query 从ACCESS数据库中调用工资明细表项目 Data1.Refresh Data1.Recordset.MoveLast 是让指针指向记录集中的最后一条记录Data1.Recordset.MoveFirst是让指针指向记录集中的第一一条记录 MsgBox Data1.Recordset.RecordCount & 个匹配 Exit Sub Data与数据库的绑定程序 最终输出记录个数OOPS: MsgBox Err.Description消息框输出信息和标题End SubPrivate Sub Command2_Click() 单击command2按钮 Data1.RecordSource = 工资明细表 使用Data控件访问数据库 Data1.RefreshEnd SubPrivate Sub Command3_Click() 单击command3按钮 MsgBox 如果你使用比较条件是 Like,你可以使用 * (通配符)完成查询 & vbNewLine & 例如:查询 Ma* 或 M*ria 或 *m*End SubPrivate Sub Form_Load() Combo1.AddItem 部门名称 在窗口显示部门名称Combo1.AddItem 序号 在窗口显示序号名称Combo1.AddItem 姓名在窗口显示姓名名称 Combo1.AddItem 账号在窗口帐号名称Combo2.AddItem Like控件外观初始化设置 Combo2.AddItem 是往Combo1(0)控件中添加列表项Combo2.AddItem = 是往Combo1(0)控件中添加列表项Combo1.ListIndex = 0 是设置当前选中项为第1项 Combo2.ListIndex = 0 是设置当前选中项为第2项End Sub 结束语句八、性能测试与分析1、测试因为软件较小,而且时间较短,所以采用自上而下的渐增式测试方法。因为采用了模块开发,而此模块是直接产生EXE可执行文件的,所以单元测试比较简单。2、测试环境系统:Windows 98/95在MIS开发过程中采用了多种措施保证软件质量,但是实际开发过程中还是不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,未经周密测试的系统投入运行,将会造成难以想象的后果,因此系统测试是MIS开发过程中为保证软件质量必须进行的工作。大量统计资料表明,系统测试的工作量往往占MIS开发总工作量的40%以上。因此,我们必须重视测试工作。由于程序中隐藏的缺陷只在特定的环境下才有可靠显露,系统缺陷通常是由于对某些特定情况考虑不周造成的。因此测试不是为了表明程序正确;成功的测试也不是没有发现错误的测试。有意义的软件测试应该是从“破坏”软件系统的角度出发,精心设计最有可能暴露程序系统缺陷的测试方案。因此软件测试的目标应该是以尽可能少的代价和时间找出软件系统中潜在的错误和缺陷。从产品角度看,测试计划中的测试项目包括软件结构中的分系统层、子系统层、功能模块层、程序模块层中的各类模块,从测试本身看,分为单元测试,组合测试,确认测试等。测试对象是随不同阶段而异的,最基本、最初的测试是单元测试,后面的组合测试、确认测试都是以被测过的模块作为测试对象的。(1)单元测试:单元测试也称模块测试或程序测试,单元测试是对每个模块单独进行的,验证模块接口与设计说明书是否一致,对模块的所有主要处理路径进行测试且与预期的结构进行对照,还要对所有错误处理路径进行测试。对源码进行审查,对照设计说明书,检查源程序是否符合功能的逻辑要求,是进行单元测试前的重要工作。单元测试一般是由程序员完成,也称程序调试。(2)组合测试组合测试也称集成测试或子系统测试,通常采用自顶向下测试和自底向上测试两种测试方法。组合测试的对象是指已经通过单元测试的模块,不是对零散模块进行单个测试,而是用系统化的方法装配和测试软件系统,是一个严格的过程,必须认真地进行,其计划的产生和单元模块测试的完成日期要协调起来,这种测试应在系统目标机上进行,造成系统应用的环境条件,除了开发部分项目负责人参加以外,还应该有相应系统的用户参加,给评审员进行演示。(3)确认测试确认测试是对通过组合测试的软件进行的,这些软件已经存于系统目标设备的介质上,确认测试的目的是表明软件是可以工作的,并且符合“软件需求说明书”中规定的全部功能和性能要求。确认测试是按照这些要求定出的“确认测试计划”进行的。测试工作是由一个独立的组织进行,而且测试要从用户的角度出发。(4)系统测试系统测试是对整体性能的测试,主要解决各子系统之间的数据通信和数据共享问题以及检测系统是否达到用户的实际要求,系统测试的依据是系统分析报告。系统测试应在系统的整个范围内进行,这种测试不只对软件进行,而是对构成系统的硬、软件一起进行。系统测试与建构同时进行。系统测试需要确认从头到尾的功能正常才算完成,应当尽量避免系统测试延到项目末尾进行。(5)用户验收测试在系统测试完成后,进行用户的验收测试,它是用户在实际应用环境中所进行的真实数据测试。在具体的测试中,一般应遵循以下原则:由程序设计者之外的人进行测试;测试用例应由两部分组成:输入数据和预期输出结果;应选用不合理的输入数据与非法输入测试;不仅要检验程序是否实现预期功能,还应检查程序是否做了不应该做的工作;集中测试容易出错的程序模块;对程序修改以后,必须重新进行测试。3、测试方法一般来说,对程序测试有两种测试方法:如果已经知道了软件系统应具有的功能,可通过测试来看每个功能是否都能正常使用;如果知道程序的内部工作过程,可以通过测试来检测程序内部是否按照规格说明书的规定正常进行。前一种方法称为黑盒测试,后一种方法称为白盒测试。黑盒测试又称为功能测试,白盒测试又称为结构测试。经过几个月的毕业设计,因为时间和任务的性质的关系,没有完全按照上述的测试方法进行系统的测试,但经过一些简单的步骤的测试,证明本系统具有相当程度的稳定性。4、测试方案功能登录增加、删除用户修改密码查询信息导入、导出文件预 期 效 果能正确检验用户身份及密码的一致性;若不匹配,能返回错误提示信息。能正确验证只有管理员身份及密码一致才可决定是否增删用户。能正确验证用户身份,及新密码和确认密码的匹配。能够正确返回用户要查询的信息。然后退出程序。能正确将工资数据导入、导出,并通过重启系统将导入数据写入到数据库中的工资明细表中。1、系统开发环境:系统开发环境包括硬件平台和软件平台两种。硬件平台是指开发与运行所需要的硬件环境,主要包括计算机机型及硬件配置。由于本系统是一个小型的MIS管理系统,因此对计算机硬件的要求不高,比较经济,只要配备有PII处理器(或以上)、64M内存(或以上)、10G硬盘(或以上)的普通微机即可顺利运行。软件平台是指系统开发与运行的软件环境。本系统在开发时选用了稳定性较强的Windows XP中文专业版和Visual Basic6.0作为开发语言,同时选用了Access数据库,由于这些软件产品都是Microsoft公司的产品,因此彼此之间的兼容性较好,开发出的应用系统稳定性较高。Visual Basic 6.0具有可视化的开发环境,可以快速完成系统的开发,内部集成的数据库访问通道,使得可以轻松方便的对数据库管理。数据库采用MICROSOFT ACCESS,由于我们的系统要求,采用它完全可以适合我们的工作需求,并且它所支持的数据类型十分丰富,维护简便,费用比较低,人员素质要求不是很高,容易升级。 本系统在单机上运行。2、系统运行与维护:系统的运行:21初始数据的输入本系统的输入采用鼠标和键盘相结合的输入方法。22怎样进入系统A、将本系统所在的文件夹拷贝到硬盘,然后执行其中的工资管理系统的程序文件即可,应注意要将全部文件的属性变以存档,消除只读属性。B、在随后出现的登录界面上输入正确的用户名和密码即可23怎样使用本系统:点击鼠标左键即可进行相应功能的选择。系统的维护:本系统是个较复杂的人-机系统,由于系统外部环境与内部因素的变化,不断影响系统的运行,同时需要系统不断地适应这些变化,不断地完善系统,以提高系统运行的效率与服务水平,这就需要自始至终进行系统的维护工作。系统的维护主要包括四个方面:(1)程序的维护:指的是修改部分或全部程序,这种维护往往是在条件发生变化或原系统的效率低的情况下进行的。(2)数据文件的维护:指的是按照用户的要求对数据文件进行不定期的修改。(3)代码的维护:随着系统的发展和变化,可能会出现旧代码不能适应新要求的问题,因此,有必要变更代码,予以维护。(4)硬件的维护:指的是对系统所使用的设备进行维护。本系统的日常维护由专人来负责,如果出现一些不能解决的问题,则由开发者来负责。.2.4系统的转换方案:本次开发的工资管理系统采用了并行转换方式,以保证平衡可靠的过度。即一方面使用本系统来进行工作,另一方面又继续沿用老的方式 手工方式,这种状况持续了半个月的时间,在这期间发现了一些程序中存在的漏洞和错误,用户也提出一些修改意见,经过程序的进一步完善后,正式投入了使用,中止了以前老的手工的操作方式。致谢经过四个多月的构思与设计,在指导老师的精心指导和安排下,本系统已经设计完毕。其使用功能基本符合公司在实际工作的需要,具有一定的实用性。但是由于时间比较仓促,加上本人软件设计经验的不足。因此,在分析问题、解决问题时显得不够严密、完善,还需要在以后的工作中不断地改进和完善。在这次的毕业设计中,让我深深地体现到进行软件开发不是一件简单的事情,它需要设计者具有全面的专业知识、缜密的思维、严谨的工作态度以及较高的分析问题、解决问题的能力,而我在很多方面还有欠缺。最后,我要衷心感谢老师在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的毕业设计。同时,也要感谢我的老师和同学们及实习企业在本系统的设计过程中给予我的支持和帮助。参考文献1、王福成等 编著.Visual Basic 6.0数据库开发指南.北京:清华大学出版社出版2000 2、郭振波 编著.深入浅出Visual Basic 6.0中文版.北京:人民邮电出版社出版 1999 3、林永等 编著.Visual Basic 6.0用户编程手册.北京:人民邮电出版社出版 1999 4、刘炳文等 编著.Visual Basic 6.0 程序设计教程.北京:清华大学出版社出版 2000 5、张海藩等 编著.软件工程导轮.北京:清华大学出版社出版 1998 附录本程序用VB6.0编写,其中包含大量的代码,现将程序主要模块的代码罗列如下:一、系统欢迎界面Private Sub Command1_Click() frmlog.Showfrmcover.HideEnd SubPrivate Sub Command2_Click()EndEnd SubPrivate Sub Form_Load()End Sub二、登录对话框Private Sub Command1_Click() Dim found, right As Boolean Dim a As Boolean found = False right = True Data1.Refresh Data1.Recordset.MoveFirst Do While Data1.Recordset.EOF = False If Data1.Recordset.Fields(操作员).Value = frmlog.Combo1.Text Then If Data1.Recordset.Fields(密码).Value = frmlog.Text1.Text Then found = True Else found = True right = False End If Exit Do Else Data1.Recordset.MoveNext End If Loop Data1.Recordset.MoveFirst If found = False And right = True Then a = MsgBox(没有此操作员,登录失败, vbExclamation, 工资发放系统) Else If right = False Then a = MsgBox(密码出错,重新输入?, vbYesNo + vbQuestion, 工资发放系统) = vbNo frmcover.Show Else a = MsgBox(登录成功, vbInformation, 工资发放系统)frm工资发放系统.ShowIf Combo1.Text = root Thenfrm工资发放系统.BZ.Enabled = Truefrm工资发放系统.CX.Enabled = True frm工资发放系统.ZJ.Enabled = True frm工资发放系统.SC.Enabled = True frm工资发放系统.import.Enabled = True frm工资发放系统.XG.Enabled = True frm工资发放系统.TC.Enabled = True Else If Combo1.Text root Then frm工资发放系统.BZ.Enabled = False frm工资发放系统.CX.Enabled = True frm工资发放系统.ZJ.Enabled = False frm工资发放系统.SC.Enabled = False frm工资发放系统.XG.Enabled = True frm工资发放系统.import.Enabled = False frm工资发放系统.TC.Enabled = True End If End IfEnd IfEnd Iffrmlog.HideEnd SubPrivate Sub Command2_Click() frmcover.Show frmlog.HideEnd SubPrivate Sub Form_Initialize() If Data1.Recordset.RecordCount 0 Then Dim i, count As Integer Dim diffrent As Boolean diffrent = False i = 0 count = frmlog.Combo1.ListCount Data1.Recordset.MoveFirst Do While Data1.Recordset.EOF = False Do While i = count If Data1.Recordset(操作员).Value = frmlog.Combo1.List(i) Then diffrent = True Exit Do Else i = i + 1 End If Loop If diffrent = False Then frmlog.Combo1.AddItem Data1.Recordset(操作员) End If i = 0 diffrent = False count = frmlog.Combo1.ListCount Data1.Recordset.MoveNext Loop Data1.Recordset.MoveFirst frmlog.Combo1.Text = Data1.Recordset(操作员) Else frmlog.Combo1.Text = End If End SubPrivate Sub Form_Load()Dim str As Stringstr = App.PathIf right(str, 1) Thenstr = str + End IfData1.DatabaseName = str & 工资发放系统Data1.RecordSource = 登录管理表Data1.RefreshEnd Sub三、程序主窗体Private Sub B_Click()frm分类查询.ShowEnd SubPrivate Sub C_Click() frm浏览.ShowEnd SubPrivate Sub CC_Click()frm工资明细.ShowEnd SubPrivate Sub DC_Click() cancel: End SubPrivate Sub DD_Click()frm统发工资管理.ShowEnd SubPrivate Sub DY_Click()代发工资表.ShowEnd SubPrivate Sub Form_Load()End SubPrivate Sub GG_Click() Dim a As Boolean On Error GoTo cancel CommonDialog1.ShowSave filepath = CommonDialog1.FileName On Error GoTo fileerror On Error Resume Next Open filepath + .txt For Output As #1 s1 = Date$ Print #1, s1 Data1.Recordset.MoveFirst Do While Data1.Recordset.EOF = False If Data1.Recordset.Fields(部门名称).Value = Date$ Then s1 = Data1.Recordset.Fields(部门名称).Value s2 = Data1.Recordset.Fields(序号).Value s3 = Data1.Recordset.Fields(姓名).Value s4 = Data1.Recordset.Fields(账号).Value s5 = Data1.Recordset.Fields(应发工资合计).Value s6 = Data1.Recordset.Fields(实发个人工资).Value s7 = Print #1, s1 + s7 + s2 + s7 + s3 + s7 + s4 + s7 + s5 + s7 + s6End If Data1.Recordset.MoveNextLoop Data1.Recordset.MoveFirstClose #1save_file = TrueExit Subfileerror:a = MsgBox(文件出错阿, vbExclamation, 工资系统)cancel:End SubPrivate Sub GY_Click()frmAbout.ShowEnd SubPrivate Sub SC_Click()frm删除操作员.ShowEnd SubPrivate Sub TC_Click()frmcover.ShowEnd SubPrivate Sub textImport_Click()Dim str As StringOn Error GoTo cancel CommonDialog1.ShowOpen filepath = CommonDialog1.FileName On Error GoTo fileerror On Error Resume Next sep = Open filepath For Input As #1 Line Input #1, str While Not EOF(1) Line Input #1, str str = Replace(str, sep, #) strlist = Split(str, #) Data1.Recordset.AddNew Data1.Recordset.Edit Data1.Recordset.Fields(部门名称).Value = strlist(0) Data1.Recordset.Fields(序号).Value = strlist(1) Data1.Recordset.Fields(姓名).Value = strlist(2)Data1.Recordset.Fields(账号).Value = strlist(3)Data1.Recordset.Fields(应发工资合计).Value = strlist(4)Data1.Recordset.Fields(实发个人工资).Value = strlist(5) Data1.Recordset.Update MsgBox (str) Wend Data1.Recordset.Update Close #1Exit Subfileerror:a = MsgBox(文件出错阿, vbExclamation, 工资系统)cancel:End SubPrivate Sub XG_Click()frm修改密码.ShowEnd SubPrivate Sub YL_Click()工资表.ShowEnd SubPrivate Sub ZJ_Click()Frm增加操作员.ShowEnd SubPrivate Sub ZT_Click()End Sub四、工资明细查询Private Sub Command6_Click()End SubPrivate Sub cmdadd_Click()XG = TrueCommand2.Visible = TrueCommand3.Visible = TrueCommand2.Enabled = TrueCommand3.Enabled = Truecmdadd.Enabled = FalsecmdUpate.Enabled = FalsecmdDelete.Enabled = FalsecmdClose.Enabled = FalsecmdFIND.Enabled = FalseCommand4.Enabled = Falsecmdmove1(1).Enabled = Falsecmdmove2(2).Enabled = FalseData1.Recordset.AddNewaddNewFlag = TrueData1.Recordset.EditText1.SetFocusEnd SubPrivate Sub cmdClose_Click()If MsgBox(确定退出?, vbYesNo, 注意!) = vbYes Then frm工资发放系统.Show frm工资明细.Hide End IfEnd SubPrivate Sub cmdDelete_Click()ss = MsgBox(真的删除这个记录?, vbYesNo + vbInformation, 删除记录)If (ss = vbYes) ThenData1.Recordset.DeleteData1.Recordset.MoveNextIf Data1.Recordset.EOF ThenData1.Recordset.MoveLastcmdmove2(2).Enabled = FalseEnd IfEnd IfEnd SubPrivate Sub cmdFIND_Click()XG = Falsess = 请输入要查询的序号instring$ = InputBox$(ss, 输入提示, 000000)Data1.Recordset.FindFirst 序号= & instring$ & If Data1.Recordset.NoMatch Thenmsg = 没有记录MsgBox msg, vbOKOnly, 提示End IfEnd SubPrivate Sub cmdmove0_Click(Index As Integer)End SubPrivate Sub cmdmove1_Click(Index As Integer)XG = FalseData1.Recordset.MovePreviousIf Data1.Recordset.BOF ThenData1.Recordset.MoveFirstcmdmove1(1).Enabled = FalseElsecmdmove1(1).Enabled = Truecmdmove2(2).Enabled = TrueEnd IfEnd SubPrivate Sub cmdmove2_Click(Index As Integer)XG = FalseData1.Recordset.MoveNextIf Data1.Recordset.EOF ThenData1.Recordset.MoveLastcmdmove2(2).Enabled = FalseElsecmdmove1(1).Enabled = Truecmdmove2(2).Enabled = TrueEnd IfEnd SubPrivate Sub cmdmove3_Click(Index As Integer)End SubPrivate Sub cmdUpdate_Click()End SubPrivate Sub cmdUpate_Click()XG = TrueCommand2.Visible = TrueCommand3.Visible = TrueCommand2.Enabled = TrueCommand3.Enabled = Truecmdadd.Enabled = FalsecmdUpate.Enabled = FalsecmdDelete.Enabled = FalsecmdClose.Enabled = FalsecmdFIND.Enabled = FalseCommand4.Enabled = Falsecmdmove1(1).Enabled = Falsecmdmove2(2).Enabled = FalseData1.Recordset.EditText1.SetFocusEnd SubPrivate Sub Command1_Click()End SubPrivate Sub Command2_Click()On Error GoTo error1XG = TrueData1.Recordset.UpdateCommand2.Visible = FalseCommand3.Visible = FalseCommand2.Enabled = FalseCommand3.Enabled = Falsecmdadd.Enabled = TruecmdUpate.Enabled = TruecmdDelete.Enabled = TruecmdClose.Enabled = TruecmdFIND.Enabled = TrueCommand4.Enabled = Truecmdmove1(1).Enabled = Truecmdmove2(2).Enabled = TrueDim s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16 As Singles6 = Val(Text6.Text)s7 = Val(Text7.Text)s8 = Val(Text8.Text)s9 = Val(Text9.Text)s10 = Val(Text10.Text)s11 = Val(Text11.Text)s12 = Val(Text12.Text)s13 = Val(Text13.Text)s14 = Val(Text14.Text)s15 = Val(Text15.Text)s5 = s6 + s7 + s8 + s9 + s10 + s11If s5 800 Thens15 = (s5 - 800) * 0.02End Ifs16 = s5 - s12 - s13 - s14 - s15Text5.Text = str(s6 + s7 + s8 + s9 + s10 + s11)Text15.Text = str(s15)Text16.Text = str(s5 - s12 - s13 - s14 - s15)Data1.Recordset.UpdateIf addNewFlag ThenData1.Recordset.MoveLastaddNewFlag = FalseEnd IfExit Suberror1:MsgBox Err.Description, vbOKOnly, 错误提示End SubPrivate Sub Command3_Click()On Error GoTo error2XG = TrueData1.Recordset.CancelUpdateCommand2.Enabled = FalseCommand3.Enabled = FalseCommand2.Visible = FalseCommand3.Visible = Falsecmdadd.Enabled = TruecmdUpate.Enabled = TruecmdDelete.Enabled = TruecmdClose.Enabled = TruecmdFIND.Enabled = TrueCommand4.Enabled = Truecmdmove1(1).Enabled = Truecmdmove2(2).Enabled = TrueExit Suberror2:MsgBox Err.Description, vbOKOnly, 错误提示End SubPrivate Sub Command4_Click()Data1.Recordset.MoveLastWhile Not Data1.Recordset.BOFData1.Recordset.DeleteData1.Recordset.MovePreviousWendcmdmove1(1).Enabled = Falsecmdmove2(2).Enabled = FalseEnd SubPrivate Sub Data1_Validate(Action As Integer, Save As Integer)If Text1.DataChanged ThenSave = TrueIf Data1.Recordset.RecordCount 1 Thencmdmove1(1).Enabled = Truecmdmove2(2).Enabled = TrueEnd IfElseIf Text1.Text = And XG = True Thenss = MsgBox(必须要有单位编码和个人编号!, -vbOKOnly + vbInformation, 提示)Action = FalseCommand2.Visible = TrueCommand3.Visible = Truecmdadd.Enabled = FalsecmdUpate.Enabled = FalsecmdDelete.Enabled = FalsecmdClose.Enabled = FalsecmdFIND.Enabled = FalseCommand4.Visible = Falsecmdmove1(1).Enabled = Falsecmdmove2(2).Enabled = FalseEnd IfEnd IfIf Action = data_actionunload Or Action = data_actionclose ThenSave = TrueEnd IfEnd SubPrivate Sub Form_Load()On Error Resume NextDim iaddNewFlag = FalseData1.RefreshText1.Text = Text2.Text = Text3.Text = Text4.Text = Text5.Text = Text6.Text = Text7.Text = Text8.Text = Text9.Text = Text10.Text = Text11.Text = Text12.Text = Text13.Text = Text14.Text = Text15.Text = Text16.Text = If Data1.Recordset.RecordCount = 0 Thencmdmove1(1).Enabled = Falsecmdmove2(2).Enabled = FalseElsecmdmove2(2).Enabled = TrueEnd IfData1.Recordset.MoveLastData1.Recordset.MoveFirstEnd SubPrivate Sub Timer1_Timer() Label18.Caption = Time Label17.Caption = Date Label19.Caption = 记录: & (Data1.Recordset.AbsolutePosition + 1) & / & Data1.Recordset.RecordCount & 条End Sub五、工资分类查询Private Sub Command6_Click()End SubPrivate Sub cmdadd_Click()XG = TrueCommand2.Visible = TrueCommand3.Visible = TrueCommand2.Enabled = TrueCommand3.Enabled = Truecmdadd.Enabled = FalsecmdUpate.Enabled = FalsecmdDelete.Enabled = FalsecmdClose.Enabled = FalsecmdFIND.Enabled = FalseCommand4.Enabled = Falsecmdmove1(1).Enabled = Falsecmdmove2(2).Enabled = FalseData1.Recordset.AddNewaddNewFlag = TrueData1.Recordset.EditText1.SetFocusEnd SubPrivate Sub cmdClose_Click()If MsgBox(确定退出?, vbYesNo, 注意!) = vbYes Then frm工资发放系统.Show frm工资明细.Hide End IfEnd SubPrivate Sub cmdDelete_Click()ss = MsgBox(真的删除这个记录?, vbYesNo + vbInformation, 删除记录)If (ss = vbYes) ThenData1.Recordset.DeleteData1.Recordset.MoveNextIf Data1.Recordset.EOF ThenData1.Recordset.MoveLastcmdmove2(2).Enabled = FalseEnd IfEnd IfEnd SubPrivate Sub cmdFIND_Click()XG = Falsess = 请输入要查询的序号instring$ = InputBox$(ss, 输入提示, 000000)Data1.Recordset.FindFirst 序号= & instring$ & If Data1.Recordset.NoMatch Thenmsg = 没有记录MsgBox msg, vbOKOnly, 提示End IfEnd SubPrivate Sub cmdmove0_Click(Index As Integer)End SubPrivate Sub cmdmove1_Click(Index As Integer)XG = FalseData1.Recordset.MovePreviousIf Data1.Recordset.BOF ThenData1.Recordset.MoveFirstcmdmove1(1).Enabled = FalseElsecmdmove1(1).Enabled = Truecmdmove2(2).Enabled = TrueEnd IfEnd SubPrivate Sub cmdmove2_Click(Index As Integer)XG = FalseData1.Recordset.MoveNextIf Data1.Recordset.EOF ThenData1.Recordset.MoveLastcmdmove2(2).Enabled = FalseElsecmdmove1(1).Enabled = Truecmdmove2(2).Enabled = TrueEnd IfEnd SubPrivate Sub cmdmove3_Click(Index As Integer)End SubPrivate Sub cmdUpdate_Click()End SubPrivate Sub cmdUpate_Click()XG = TrueCommand2.Visible = TrueCommand3.Visible = TrueCommand2.Enabled = TrueCommand3.Enabled = Truecmdadd.Enabled = FalsecmdUpate.Enabled = FalsecmdDelete.Enabled = FalsecmdClose.Enabled = FalsecmdFIND.Enabled = FalseCommand4.Enabled = Falsecmdmove1(1).Enabled = Falsecmdmove2(2).Enabled = FalseData1.Recordset.EditText1.SetFocusEnd SubPrivate Sub Command1_Click()End SubPrivate Sub Command2_Click()On Error GoTo error1XG = TrueData1.Recordset.UpdateCommand2.Visible = FalseCommand3.Visible = FalseCommand2.Enabled = FalseCommand3.Enabled = Falsecmdadd.Enabled = TruecmdUpate.Enabled = TruecmdDelete.Enabled = TruecmdClose.Enabled = TruecmdFIND.Enabled = TrueCommand4.Enabled = Truecmdmove1(1).Enabled = Truecmdmove2(2).Enabled = TrueDim s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16 As Singles6 = Val(Text6.Text)s7 = Val(Text7.Text)s8 = Val(Text8.Text)s9 = Val(Text9.Text)s10 = Val(Text10.Text)s11 = Val(Text11.Text)s12 = Val(Text12.Text)s13 = Val(Text13.Text)s14 = Val(Text14.Text)s15 = Val(Text15.Text)s5 = s6 + s7 + s8 + s9 + s10 + s11If s5 800 Thens15 = (s5 - 800) * 0.02End Ifs16 = s5 - s12 - s13 - s14 - s15Text5.Text = str(s6 + s7 + s8 + s9 + s10 + s11)Text15.Text = str(s15)Text16.Text = str(s5 - s12 - s13 - s14 - s15)Data1.Recordset.UpdateIf addNewFlag ThenData1.Recordset.MoveLastaddNewFlag = FalseEnd IfExit Suberror1:MsgBox Err.Description, vbOKOnly, 错误提示End SubPrivate Sub Command3_Click()On Error GoTo error2XG = TrueData1.Recordset.CancelUpdateCommand2.Enabled = FalseCommand3.Enabled = FalseCommand2.Visible = FalseCommand3.Visible = Falsecmdadd.Enabled = TruecmdUpate.Enabled = TruecmdDelete.Enabled = TruecmdClose.Enabled = TruecmdFIND.Enabled = TrueCommand4.Enabled = Truecmdmove1(1).Enabled = Truecmdmove2(2).Enabled = TrueExit Suberror2:MsgBox Err.Description, vbOKOnly, 错误提示End SubPrivate Sub Command4_Click()Data1.Recordset.MoveLastWhile Not Data1.Recordset.BOFData1.Record
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:vb工资管理系统设计(论文+源代码)
链接地址:https://www.renrendoc.com/paper/149911176.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!