




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 毕业(设计)论文工资管理系统设计与实现系 别: 计算机应用与工程系 专 业: 软件工程 班 级: 06软件一班 完成日期: 2010.04.30 摘要 随着我国国民经济建设的蓬勃发展和具有中国特色的社会主义市场经济体制的迅速完善,各个行业都在积极使用现代化的管理工具,不断改善企业的服务质量,提高工作效率。无论是行政职能,还是生产运作的管理要求的不断提高,在很大程度上使企业不得不改变传统的经营管理方式以适应快速发展的社会主义市场经济,改变企业管理方式、方法已经成为企业发展的先决条件。建设一个科学高效的信息管理系统是解决这一问题的必由之路。 对企业内部的财务运用现代化技术进行管理,是提高工作效率
2、的有效手段。工资管理作为企业内部财务管理的一个重要方面,也逐步被企业管理者所重视,由于企业的规模的不断扩,大企业职工人数的不断增多,使工资发放成为企业管理中的一个重课题;再加上每一位职工的具体实际情况相同,规章章制度的不断完善,增大了个人工资发放难度;每个人每月的工资都要通过工资制度的审核,这大大增加了管理人员的工作量,通过计算机管理系统对员工工资进行全面的统计与管理,全面解决了工资管理过程中所遇到的各种问题,并且克服了传统管理方式中的易出错等问题。工资管理系统成为企业现代化管理中的首选管理工具。 关键词 工资管理系统;工资;管理工具 目 录第1章 引 言11.1 本课题的研究意义11.2 本
3、论文的目的、内容及作者的主要贡献1 1.2.1 目的 1 1.2.2 内容1 1.2.3作者的主要贡献1第2章 管理信息系统概述22.1 管理信息系统现状22.2 管理信息系统开发方法介绍3第3章 研究现状及设计目标63.1 相近研究课题的特点及优缺点分析63.2 研究存在的问题及解决办法 63.3 本课题要达到的设计目标8第4章 总体设计104.1项目规划104.2系统功能结构104.3设计目标10第5章 系统设计125.1开发运行环境125.2数据库设计12第6章 主功能模块设计136.1建立工程框架136.2封装数据库146.3主窗口设计 166.4登录模块设计186.5员工录入模块设计
4、206.6用户管理模块设计24第7章 结论与展望286.1 结论28参 考 文 献2928第1章 引 言1.1本课题的研究意义目前市面上流行的工资发放软件不少。但是,对于企、事业单位的工资发放来说,不需要太大型的数据库系统。只需要一个操作方便,功能实用,能同时满足财务部门、单位其他相关部门及代发单位三方对数据的管理及需求的系统。我们的目标就是在于开发一个功能实用,用户(财务部、其他相关部门、银行)操作方便,简单明了的工资发放软件。1.2 本论文的目的、内容及作者的主要贡献1.2.1 目的 目前市面上流行的工资发放软件不少。但是,对于企、事业单位的工资发放来说,不需要太大型的数据库系统。只需要一
5、个操作方便,功能实用,能同时满足财务部门、单位其他相关部门及代发单位三方对数据的管理及需求的系统。我们的目标就是在于开发一个功能实用,用户(财务部、其他相关部门、银行)操作方便,简单明了的工资发放软件。 1.2.2 内容实现本单位财务部门对工资发放的集中管理。可供财务人员对本单位的人员工资进行增加、删除、修改、查询、导入、导出文件、输出报表,并对系统的可登录人员进行管理;同时通过菜单关闭功能使本单位其他相关部门的人员对工资的数据编辑无法操作,只能通过查询或导出文件来了解本单位的工资发放情况;对工资发放中的应发工资合计、代扣个人所得税及个人实发工资等项目由系统自动进行计算;同时本系统还可对工资发
6、放情况进行多角度查询,并转换成可与银行unix平台接口的数据形式以便于委托银行办理代发工资业务。 在登录管理方面,财务人员以工资发放系统的管理人员身份登录,并对本系统的可登录人员进行管理,有权增加及删除本系统的登录人员,进行自身密码的修改;而本单位其他相关部门的可登录人员在登录本系统后,则只能进行自身密码的修改,而无权增加及删除用户。 1.2.3作者的主要贡献 全程参与了此课题的研究与开发,包括分析,设计,编码,测试,文档等。第2章 管理信息系统概述2.1 管理信息系统现状 管理信息系统(mis)是一门边缘学科,集管理科学、信息科学、系统科学、现代通信技术和电子计算机技术于一体。1985年,管
7、理信息系统创始人,明尼苏达大学卡尔森管理学院的著名教授戴维斯(gordon.b.davis)给出了一个具有代表性的定义:“管理信息系统是一个利用计算机硬件和软件,手工作业、分析、计划、控制和决策模型以及数据库的用户机器系统。它能提供信息支持企业或组织的运行、管理和决策功能。 随着网络技术的出现,管理信息系统又有了新的必恭必敬,基于网络的管理信息系统不断出现,管理信息系统的概念模型也发生了相应的变化,许多学者对管理信息系统给出了新的定义。例如劳顿认为:“管理信息系统是一个基于计算机的信息系统,它通过收集、处理、存储和扩散信息,来支持组织的管理、决策、合作、控制、分析活动,并使之可视化。因此,我们
8、可以看出,管理系统系统具有几个基本含义: (1)管理信息系统不是一个单纯的软件系统,而是一个人机系统,由人和机器协同工作。管理信息系统在支持企业或组织的各项管理活动中,管理人员负责将基础数据及时地输入到计算机中,计算机则根据企业或组织中的各层管理人员的要求对基础数据进行加工处理,并将所得到的信息输出。计算机不断地与最终用户进行着信息的交换,但在对数据的加工处理过程中又需要人的适当干预。 (2)管理信息系统的管理过程就是对数据进行惧、存储、加工处理、传递,并产生信息的过程,因此数据是管理信息系统的灵魂。管理信息系统运用了数据库的技术,对基础数据进行统一规划、存储,供各层管理人员使用,从而实现了数
9、据的一致和共享。 (3)管理信息系统可以解决企业或组织所面临的问题。例如,管理信息系统可以处理企业产生经营活动的全过程,可以解决组织中数据处理效率问题,也可以解决财务管理决策过程等。 管理信息系统应具有如下几个功能。 (1)数据处理功能: 数据处理是管理信息系统最基本的功能,它包括对各种类型数据的收集、加工处理、传递、存储等工作。 (2)实测功能: 通过对数据的加工处理,可以随时了解各部门的实际运行情况,如各生产车间今天生产的产品数量、销售部接受的订单等。 (3)预测功能: 通过运用一定的数学方法和预测模型,对过去的数据进行分析,就可能对未来可能发生的情况进行预测,为高级管理人员进行管理决策提
10、供依据。 (4)控制功能: 通过信息的反馈可以对整个企业生产经营的各个部门、各个环节的运行情况进行监测、协调、控制,保证系统的正常运行。 目前,管理信息系统的应用已经非常广泛,随着计算机技术、网络技术和通信技术的发展,管理信息系统的功能也日趋完善,并朝着智能化、网络化、集成化等方向发展。如办公自动化(oa)、电子商务(ec)、专家系统(es)、计算机集成制造系统(cims)。 2.2 管理信息系统开发方法介绍目前,常用的管理信息系统的开发方法有生命周期法、原型法和面对对象的开发方法。 下面仅对原型法和面对对象的开发方法进行简单的描述。 (1)原型法: 原型法(prototyping metho
11、d)是20世纪80年代发展起来的,旨在改变生命周期法的缺点的一种系统开发方法。 原型法的基本思想 首选根据用户的要求,由用户和开发者共同确定系统的基本要求和主要功能,利用系统快速生成工具,建立一个系统模型。再在此基础上与用户交流,将模型不断补充,修改完善,如此反复,最终直至用户和开发者都比较满意为止,就形成了一个相对稳定、较为理想的管理信息系统。 原型法的开发过程 采用原型法开发管理信息系统可以分为如下几个阶段: a、 确定用户的基本需求。由用户提出对新系统的基本要求,如功能、基本界面形式、所需的数据、应用范围、运行环境等,开发者根据这些信息估算出开发该系统所需的费用,并建立简明的系统模型。
12、b、开发初步的原型系统。系统开发人员根据用户的要求建立原型系统,但该系统只是一个初步的、不成熟的系统,从系统的工作效率上看也是不完善的。其主要目的是为了描述开发者所理解的用户的基本需求。 c、修改、评价原型系统。将建造好的原型系统交给用户,并投入试运行,用户将使用过程中发现的问题一一记录下来,并与开发人员进行交流。开发人员针对这些问题不断地对系统进行修改、扩充与完善,直至用户满意为止。 原型法的优缺点 原型法的优点是开发周期短,费用较少,同时可以较有效地避免因开发者和用户的认识隔阂所产生的失败,其缺点是系统的开发缺乏统一的规划和开发标准,难以对系统的开发过程加以控制。 原型法一般适用于开发规模
13、不大、不太复杂或需求经常发生变化的系统。 (2)面向对象的开发方法 面向对象(object oriented)的技术于20世纪80年兴起,随后广泛地应用于计算机技术的几乎所有领域。面向对象的技术中最重要的概念是对象。 面向对象是基于问题对象的自底向上的一种系统开发方法。在开发过程中,分析和设计阶段独立于程序设计语言,信息系统模型设计好后,最终用具体的程序设计语言、数据库或硬件来实现。面向对象法最主要的特点是对对象为基础,对象是分析问题和解决问题的核心。 面对对象法的开发过程 面对对象法的开发过程一般分为四个阶段: a、认识客观世界(如一个企业)中的对象以及行为,分别独立设计各个对象的实体。 b
14、、分析对象之间的联系和相互之间所传递的信息,由此构造客观世界(企业)所对应的信息管理系统的模型。 c、由信息系统的模型转换成计算机软件系统的模型。 d、由计算机软件系统的模型再转化成一个现实系统。 面向对象法的优缺点: 面向对象法的优点是便于帮助分析者、设计者和用户清楚地表达抽象概念,互相进行交流;交流特定的软件工具模块,直接地完成了从对象的描述到软件体系结构之间的转换,避免了其它的方法在开发过程的客观世界描述和软件结构不一致性和复杂性问题,便利系统开发简单、统一,开发周期短,费用低。 面向对象法的主要缺点与原型法一样,因此这种方法也不适用于开发大的、复杂的系统。 本系统在开发过程中具体是采用
15、了原型法和面向对象两种方法相结合的开发思路,力求在开发过程中尽量吸收这两种方法的长处,而克服它们的短处。 第3章 研究现状及设计目标3.1 相近研究课题的特点及优缺点分析传统的工资发放,多采用手工的形式,既繁琐又易于出差错,随着电子技术的发展,工资发放多采用电算化的方式进行管理,避免进行简单的重复计算,从而做到准确、快捷。为了适应这个要求,我们工作组经过详细的市场调查,发现市面上工资发放的软件繁多,竞争激烈,为了避免重复生产类似的软件产品,做出自己的特色,我们决定做一个切合单位工资发放实际要求的工资发放系统软件。 3.2 研究存在的问题及解决办法 目前的可用的设计技术在设计此类系统上的数据库技
16、术已经非常成熟,可提供的开发工具也很多,例如:visual c+ ,visual basic,powerbuilder,dephi, visual foxpro等,它们都是很好的数据库开发工具,都是可视化开发工具,功能强大,开发容易,开发周期短,对于本任务都能够胜任。 visual basic是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发windows环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与windows的专业开发工具sdk相媲美,而且程序开发人员不必具有c/c+编程基础。在visual basic环境下,利用事件驱动的编程机制、新颖易用的可视化
17、设计工具,使用windows内部的应用程序接口(api)函数,以及动态链接库(dll)、动态数据交换(dde)、对象的链接与嵌入(ole)、开放式数据访问(odbc)等技术,可以高效、快速地开发出windows环境下功能强大、图形界面丰富的应用软件系统。 总的来说,visual basic具有以下特点: 可视化编程:用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。如果对界面的效果不满意,还要回到程序中修改。有时候,这种编程-编译-修改的操作可能要反复多次,大大影响了软件开发效率。visual basic提供了可
18、视化设计工具,把windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。visual basic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。 面向对象的程序设计:4.0版以后的visual basic支持面向对象的程序设计,但它与一般的面向对象的程序设计语言(c+)不完全相同。在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是抽象的概念;而visual basic则是应用面向对象的程序设计
19、方法(oop),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,visual basic自动生成对象的程序代码并封装起来。每个对象以图形方式显示在界面上,都是可视的。 结构化程序设计语言 :visual basic是在basic语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式。visualbasic语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。 事件驱动编程机制 :visual basi
20、c通过事件来执行对象的操作。一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。例如,命令按钮是一个对象,当用户单击该按钮时,将产生一个“单击“(click)事件,而在产生该事件时将执行一段程序,用来实现指定的操作。 在用visual basic设计大型应用软件时,不必建立具有明显开始和结束的程序,而是编写若干个微小的子程序,即过程。这些过程分别面向不同的对象,由用户操作引发某个事件来驱动完成某种特定的功能,或者由事件驱动程序调用通用过程来执行指定的操作,这样可以方便编程人员,提高效率。 访问数据库 visual basic具有强大的数据库管理功能,利用数据控件和数据库管理窗口,可以
21、直接建立或处理microsoft access格式的数据库,并提供了强大的数据存储和检索功能。同时,visual basic还能直接编辑和访问其他外部数据库,如dbase,foxpro,paradox等,这些数据库格式都可以用visual basic编辑和处理。 visual basic提供开放式数据连接,即odbc功能,可通过直接访问或建立连接的方式使用并操作后台大型网络数据库,如sql server,oracle等。在应用程序中,可以使用结构化查询语言sql数据标准,直接访问服务器上的数据库,并提供了简单的面向对象的库操作指令和多用户数据库访问的加锁机制和网络数据库的sql的编程技术,为单
22、机上运行的数据库提供了sql网络接口,以便在分布式环境中快速而有效地实现客户/服务器(client/server)方案。 动态数据交换(dde) 利用动态数据交换(dynamic data exchange)技术,可以把一种应用程序中的数据动态地链接到另一种应用程序中,使两种完全不同的应用程序建立起一条动态数据链路。当原始数据变化时,可以自动更新链接的数据。visual basic提供了动态数据交换的编程技术,可以在应用程序中与其他windows应用程序建立动态数据交换,在不同的应用程序之间进行通信。 对象的链接与嵌入(ole) 对象的链接与嵌入(ole)将每个应用程序都看做是一个对象(obj
23、ect),将不同的对象链接(link)起来,再嵌入(embed)某个应用程序中,从而可以得到具有声音、影像、图像、动画、文字等各种信息的集合式的文件。ole技术是microsoft公司对象技术的战略,它把多个应用程序合为一体,将每个应用程序看做是一个对象进行链接和嵌入,是一种应用程序一体化的技术。利用ole技术,可以方便地建立复合式文档(compound document),这种文档由来自多个不同应用程序的对象组成,文档中的每个对象都与原来的应用程序相联系,并可执行与原来应用程序完全相同的操作。 动态链接库(dll) visual basic是一种高级程序设计语言,不具备低级语言的功能,对访问
24、机器硬件的操作不太容易实现。但它可以通过动态链接库技术将c/c+或汇编语言编写的程序加入到visual basic应用程序中,可以像调用内部函数一样调用其他语言编写的函数。此外,通过动态链接库,还可以调用windows应用程序接口(api)函数,实现sdk所具有的功能。3.3 本课题要达到的设计目标 实现数据库管理,数据库内包含有单位部门名称、序号、姓名、账号、应发工资合计、基础工资、职务工资、级别工资、补助工资、奖金、福利、代扣失业保险金、代扣养老保险金、代扣住房公积金、代扣个人所得税、实发个人工资等等数据项;还包括登录人员、登录密码等数据项。通过读取数据库的数据项来管理单位人员的工资发放情
25、况,财务部门人员有权新建工资发放人员记录,添加人员的各项工资明细数据,对于人员应发工资合计、代扣个人所得税、个人实发工资等需计算的工资项目则由系统自动实现。 通过读取数据库的数据项来了解单位人员的工资发放情况,系统的登录人员可按自身对数据的需求情况,自主设定查询条件,从而达到对工资数据的多角度查询;同时,可导出工资数据,并可将工资数据转换成可与银行unix平台接口的数据形式以便于委托银行办理代发工资业务。 通过读取数据库的数据项来控制系统的登录情况,系统自动检查核对登录人员和密码的一致性。财务部门的人员作为管理员登录本系统,除可以修改自身密码外,还有权决定增加及删除本系统的可登录人员;而系统的
26、其他可登录人员在登录本系统后则只能进行自身密码的修改。 本系统的最终目的是为了能够对工资发放进行有效的管理。财务部门人员能够高效快捷地对工资数据进行编辑,避免进行简单的重复计算,而单位其他相关部门人员可多角度查询本单位的工资发放情况,从而使工资发放数据既得到安全控制又得到宏观管理。第4章 总体设计4.1 项目规划工资管理系统是由基本信息管理、工资查询、工资管理、系统管理和帮助等几个功能模块组成,规划系统功能模块如下:q 基本信息管理模块基本信息管理模块主要包括员工录入、员工删除2部分。q 工资查询模块工资查询模块主要包括基本工资查询、浮动工资查询、加班/休假查询、总体查询4个部分。q 工资管理
27、模块工资管理模块主要包括工资发放管理、基本工资管理、浮动工资管理3个部分。q 系统管理模块系统管理模块主要包括用户管理、修改密码、退出系统3个部分。q 帮助模块帮助模块主要包括关于1个部分。4.2 系统功能结构工资系统的功能结构如图1所示。图4.1 系统功能图4.3 设计目标本系统是根据中小企业的实际需求而开发的,完全能够实现企业对客户的自动化管理,通过本系统可以达到以下目标:q 系统运行稳定,安全可靠。q 界面设计美观,人机交互界面友好。q 信息查询灵活、方便、快捷、准确,数据存储安全可靠。q 满足键盘和鼠标的双重操作,完全支持回车键。q 采用多种方式查询数据。q 操作员可以随时修改自己的口
28、令。q 对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。数据保密性强,为每个用户设置相应的权限级别。第5章 系统设计5.1 开发运行环境1硬件要求cpu:300mhz以上的处理器。内存:128mb,推荐256mb。硬盘:150mb以上剩余空间。显示像素:最低800*600,最佳效果1024*768。2软件要求操作系统:windows2000/nt/xp/ce。数据库:sql server2000。5.2 开数据库统计1数据库概要说明 数据库gzffxt中包括员工基础信息表、员工基本工资表、员工浮动工资表、员工加班/休假表、工资发放明细表、用户表6个数据表。图2所示的即为本系统中
29、数据库中的数据表结构图,该数据表结构图包含系统所有数据表。可以清晰地反应数据库信息。图2 数据库概要说明2主要数据表的结构数据库中的数据表请参见附录b。第6章 系主要功能模块设计6.1 建立工程框架在visual c+中建立文档管理系统的基本框架,步骤如下:(1)单击菜单“file->new”命令,打开“new”对话框,单击“projects”选项卡,选择“mfc appwizard(exe)”,输入工程名,并设置路径,如图6.3所示。图6.3 “new”对话框(2)单击“ok”按钮,“mfc appwizard-step1”对话框已经打开,如图6.4所示,选项“dialog base”
30、,接着单击“next”按钮。图6.4 “mfc appwizard-step 1”对话框(3)在弹出的“mfc appwizard-step 2 of 4”对话框中,输入对话框标题,如图5所示。图6.5 “mfc appwizard-step 2 of 4”对话框(4)在接下来的对话框中保持默认的选项。设置好的属性如图6所示,单击“ok”按钮后,就完成了新建工程。图6.6 设计好的工程属性6.2窗口设计1菜单资源设计主窗口菜单设置的主要步骤如下:(1)单击“resourceview”选项卡,右键单击“gzglxt resources”选项,选择“insert”菜单项,打开“insert res
31、ource”窗口,如图6.7所示。图6.7 “insert resource”窗口(2)选择“menu”文件夹,单击“new”按钮,在gzglxt resources目录下新增一个menu目录项,菜单id为idr_menu1。双击此菜单,对此菜单项的属性进行设计。如图6.8所示。图6.8 设计菜单属性图2客户区设计(1)打开对话框idd_gzglxt_dialog属性窗口,在对话框中添加1个picture控件,用来存放图片。在menu组合框中选择idr_menu1。如图9所示。图6.9 系统主界面(2)预先在下边留出状态栏,声明ctime、cstatusbarctrl类对象实体代码如下。cti
32、me t;cstatusbarctrl m_statusbar;引用的外部变量extern cczyxxb ffxxb;(3)在oninitdialog成员函数中添加状态栏。/ todo: add extra initialization heret=ctime:getcurrenttime();m_statusbar.enableautomation();m_statusbar.create(ws_child|ws_visible,crect(0,0,0,0),this,0);/id_statusbar);int width=200,370,500;m_statusbar.setparts(
33、4, &width0);m_statusbar.settext("吉林省明日科技有限公司",0,0);cstring statustext;statustext.format("当前用户:%s",ffxxb.getczyname();m_statusbar.settext(statustext,0,1);cstring strdate;strdate.format("当前时间:%s",t.format("%y-%m-%d");m_statusbar.settext(strdate,0,2);return t
34、rue; / return true unless you set the focus to a control(4)打开classwizard窗口,为菜单项id_exit添加代码。程序调用onok()函数关闭对话框,退出系统。void cgzglxtdlg:onexit() / todo: add your command handler code hereonok();6.3 登录模块设计1实现目标登录模块功能是完成用户登录本系统的操作,用户登录对话框的设计如图10所示图6.10 登录对话框2设计步骤(1)向项目中添加一个新dialog资源,资源id为idd_login。在idd_logi
35、n对话框资源中单击鼠标右键,执行弹出快捷菜单的“properties”菜单命令,打开“dialog properties”对话框。在“dialog properties”对话框中选择general选项卡,更改其“caption”文本框内容为“用户登录”。(2)从controls面板上向dialog资源中添加2个static、1个picture、2个edit,更改资源的属性,并为资源设置相对应的变量,如表1所示。表6.1 资源设置idpropertiesmember variablestypememberidc_edit1默认cstringm_nameidc_ edit2password tru
36、ecstringm_pwdidokcaption 登录idcancelcaption 退出idc_statictype bitmap3代码分析(1)引用的外部变量。extern cczyxxb ffxxb;(2)响应“登录”按钮的代码。void clogin:onok() / todo: add extra validation here/将对话框中编辑框的数据读取到成员变量中updatedata(true);if(m_name="")messagebox("请输入用户名");return;/如果读取数据和用户输入不同,则返回if(ffxxb.havec
37、zy(m_name,m_pwd)!=1)messagebox("用户名或密码错误!");return;ffxxb.setczyname(m_name);jb="1"/判断当前用户级别if(ffxxb.haveczyjb(m_name,m_pwd,jb)=1)ffxxb.setczyjb(jb);cdialog:onok();下面在主对话框中添加代码,使对话框在启动时首先打开登录对话框。在主窗口选择oninitdialog函数,该函数将打开登录对话框,如果用户不是通过单击“登录”按钮关闭对话框,则调用onok函数关闭主对话框,具体代码如下:bool cwo
38、rdglxtdlg:oninitdialog()cdialog:oninitdialog();./ todo: add extra initialization hereclogin gin;if(gin.domodal()!=idok)onok();.return true; / return true unless you set the focus to a control6.4 员工录入模块设计1实现目标添加员工信息,员工录入对话框的设计如图11所示图6.11 员工录入对话框2设计步骤(1)向项目中添加一个新dialog资源,资源id为idd_ygtjk。在idd_ygtjk对话框资源
39、中单击鼠标右键,执行弹出快捷菜单的“properties”菜单命令,打开“dialog properties”对话框。在“dialog properties”对话框中选择general选项卡,更改其“caption”文本框内容为“员工录入”。(2)从controls面板上向dialog资源中添加4个static、2个combo、2个edit,更改资源的属性,并为资源设置相对应的变量,如表6.2所示。表6.2 资源设置idpropertiesmember variablestypememberidc_edit1默认cstringm_ididc_ edit2默认cstringm_name idc_
40、combo1type bitmapccomboboxm_sexidc_combo2caption 退出ccomboboxm_whcdidokcaption 添加idcancelcaption 退出3代码分析(1)打开classwizard窗口,添加在oninitdialog成员函数,向oninitdialog添加代码如下。bool cygjctjdlg:oninitdialog() cdialog:oninitdialog();/ todo: add extra initialization hereseticon(m_hicon, true);m_sex.addstring("男&
41、quot;);m_sex.addstring("女");m_whcd.insertstring(0,"专科");m_whcd.insertstring(1,"本科");m_whcd.insertstring(2,"研究生");return true; / return true unless you set the focus to a control/ exception: ocx property pages should return false(2)当用户单击“添加“按钮时,实现添加员工功能,其响应代码如下
42、void cygjctjdlg:onok() / todo: add extra validation herecygjcxxb xxb;updatedata(true);if(m_id="")messagebox("编号不能为空");return;if(m_name="")messagebox("姓名不能为空");return;if(xxb.haveid(m_id)=1)messagebox("员工编号已存在");return;xxb.setygid(m_id);xxb.setygxm(m_n
43、ame);cstring sex,whcd;m_sex.getwindowtext(sex);if(sex="")messagebox("性别不能为空");return;/从组合框中读取文本 m_sex.getlbtext(m_sex.getcursel(),strsex);xxb.setsex(strsex);m_whcd.getwindowtext(whcd);if(whcd="")messagebox("文化程度不能为空");return;m_whcd.getlbtext(m_whcd.getcursel()
44、,strwhcd);xxb.setwhcd(strwhcd);xxb.sql_insert();/向浮动工资表添加编号、姓名cygfdgzxmb xmb;xmb.setygid(m_id);xmb.setygxm(m_name);xmb.sql_insert();/向基本工资表添加编号、姓名cygjbgzb gzb;gzb.setygid(m_id);gzb.setygxm(m_name);gzb.sql_insert();/向加班休假表添加编号、姓名cygjbsjb sjb;sjb.setygid(m_id);sjb.setygxm(m_name);sjb.sql_insert();cdia
45、log:onok();6.5 员工工资添加模块1实现目标添加员工实际发放的工资情况,员工工资添加对话框设计如图12所示。图6.12 员工工资添加对话框2设计步骤(1)向项目中添加一个新dialog资源,资源id为idd_yggongzitj。在idd_yggongzitj对话框资源中单击鼠标右键,执行弹出快捷菜单的 “properties”菜单命令,打开“dialog properties”对话框。在“dialog properties”对话框中选择general选项卡,更改其“caption”文本框内容为“员工工资添加”。(2)从controls面板上向dialog资源中添加19个stati
46、c、17个edit、2个button控件,更改资源的属性,并为资源设置相对应的变量,如表6.3所示。表6.3 资源设置idpropertiesmember variablestypememberidc_edit1默认cstringm_ididc_edit2默认cstringm_nameidc_edit3默认intm_jbgzidc_edit4默认intm_zwgzidc_edit5默认intm_glgzidc_edit6默认intm_zfbzidc_edit7默认intm_shbzidc_edit8默认intm_bxfidc_edit9默认intm_jiabtsidc_edit10read-o
47、nly trueceditm_jiabgzidc_edit11默认intm_sjtsidc_edit12read-only trueceditm_sjgzidc_edit13默认intm_ylbxjidc_edit14默认intm_grsdsidc_edit15默认intm_sfgzidc_edit16read-only trueceditm_yfgzidc_edit17read-only trueceditm_syyeidokcaption 添加idcancelcaption 退出idc_buttonsyyecaption 上月余额idc_buttonyfgzcaption 应发工资3代码分
48、析(1)双击“idc_edit9”控件,自动生成onchangeedit9函数,实现用户添加加班天数时,加班工资自动计算并显示,具体代码如下:void cyggztjdlg:onchangeedit9() / todo: if this is a richedit control, the control will not/ send this notification unless you override the cdialog:oninitdialog()/ function and call cricheditctrl().seteventmask()/ with the enm_ch
49、ange flag ored into the mask.updatedata(true);cstring str;str.format("%d",m_jiabts*40);m_jiabgz.setwindowtext(str);updatedata(false);/ todo: add your control notification handler code here(2)双击“上月余额”按钮,系统自动添加消息响应函数onbuttonsyye,具体代码如下。void cyggztjdlg:onbuttonsyye() / todo: add your control
50、notification handler code hereupdatedata(true);if(m_id="")messagebox("请先填写员工编号");return;adoconn m_adoconn;m_adoconn.oninitadoconn();t = ctime:getcurrenttime();int m,y;cstring str;m=t.getmonth()-1;y=t.getyear();if(m=0)m=12;y=y-1;cgzffmxb mxb;if(mxb.havesyye(m_id,y,m)=1)cstring sql
51、;sql.format("select * from gzffmxb where ygid='%s' and year(sjian)='%i' and month(sjian)='%i'",m_id,y,m);m_adoconn.getrecordset(_bstr_t)sql);str=(char*)(_bstr_t)m_adoconn.m_precordset->getcollect("yu_e");m_syye.setwindowtext(str);elsem_syye.setwindowtex
52、t("0");updatedata(false);m_adoconn.exitconnect();在头文件中添加下列代码。ctime t;(3)双击“应发工资”按钮,系统自动添加消息响应函数onbuttonyfgz,具体代码如下:void cyggztjdlg:onbuttonyfgz() / todo: add your control notification handler code hereupdatedata(true);cstring syye;m_syye.getwindowtext(syye);if(syye="")messagebox(
53、"请先添加上月余额");return;int yfgz;yfgz=atoi(syye)+m_jbgz+m_glgz+m_zwgz+m_shbz+m_zfbz-m_ylbxj;yfgz+=(-m_bxf+m_jiabts*40-m_sjts*40-m_grsds);cstring str;str.format("%d",yfgz);m_yfgz.setwindowtext(str);(4)为“添加”按钮添加代码,实现添加员工工资功能,代码如下:void cyggztjdlg:onok() / todo: add extra validation hereu
54、pdatedata(true);cygjcxxb xxb;cstring yfgz;m_yfgz.getwindowtext(yfgz);if(m_id="")messagebox("编号不能为空");return;if(xxb.haveid(m_id)!=1)messagebox("员工编号不存在");return;if(m_name="")messagebox("姓名不能为空");return;if(xxb.havename(m_id,m_name)!=1)messagebox("员工不存在");return;if(yfgz="")messagebox("应发工资不能为空");return;cgzffmxb mxb;mxb.setygid
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冀教版九年级上册23.4 用样本估计总体教学设计及反思
- 1自主选择课余生活《课余生活我选择》教学设计-2023-2024学年道德与法治五年级上册统编版
- 机械工程师的职业发展与社会期望的匹配度试题及答案
- 机械工程师资格证书考试申报注意事项试题及答案
- 2024年酒店经营管理师考试的未来挑战试题及答案
- 2025年中国座椅振动耐久试验机市场调查研究报告
- 2025年中国干萝卜市场调查研究报告
- 2025年中国大四开胶印机数据监测报告
- 初中数学人教版九年级上册23.2.3 关于原点对称的点的坐标教案及反思
- 2025年中国小型方形透明篮球板市场调查研究报告
- 2025年中国航天日知识竞赛考试题库300题(含答案)
- 物业项目经理考题及答案
- T-JSQX 0016-2024 无人驾驶配送装备通.用技术要求
- 电力建设工程概算定额电气设备安装工程(2018年版)
- 书信作文(满分范文)专练-上海新高考英语一轮总复习(解析版)
- 老年康体指导职业教育68课件
- 2025年中考历史总复习-讲练测-主题15 常考点一句话背记(中国近现代史)
- DBJ04T 289-2020 建筑工程施工安全资料管理标准
- 2025年巴中发展控股集团限公司招聘高频重点模拟试卷提升(共500题附带答案详解)
- 机械精度设计基础 课件 第六章 典型零件精度设计与检测-3-螺纹
- 2025年浙江宁波舟山港股份有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论