资源描述
人事管理系统的设计与实现摘要:随着企业(单位)自身人力资源的日益庞大、复杂程度逐渐增强,人机作坊再也无法适应如今企业的人事管理了,取代的是运用各种领域的知识,结合计算机科学而开发的人事管理系统。人事管理系统是典型的信息管理系统(MIS),本系统的开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。一个好的系统,要能够向用户提供优质、安全、快捷的服务。本系统操作简便,界面友好,安全,实用,灵活,在功能上对新进员工加入时人事档案的建立,老员工转出时档案的删除,在职员工职位变动的档案修改以及员工工资管理、员工信息查询等都能很好的实现。本系统采用功能强大的Visual C+ 6.0 作为界面和功能的开发工具和SQL Sever 2000作为后台数据库,利用其提供的各种面向对象开发工具进行界面和数据库的开发,最终实现本人事管理信息系统。 关键词:人事管理系统 SQL Sever2000 信息查询 The designing and implement of the TANGBU Middle School human resource management system Abstract:Along with their own human resources increasing, complexity growing, the man-machine workshop also is unable adapt the present enterprises personnel management again, but the personnel management system that make use of knowledge in different fields and computer science and technology. Personnel management system is a typical management information system (MIS), including the establishment and maintenance of the background-database and front-end application development. A good system, it could provide high quality, safety, quick service. This system has an easily operation, a friendly interface, safety, practicality, flexibility, it can well implemented on the function in establishment of personnel records when new employees join in and deletion of the file when old employees transferred out and modification of the file when personnel change their position and employee salary management and staff information query.This system uses the powerful Visual C+ 6.0 as the interface and functions of development tools and take SQL Sever 2000 database as background-database, the development of the interface and database which made use of its object-oriented tools and finish the human resource management system.Key words: human resource management system SQL Sever2000 information inquiry 一、前言(一)系统概述1. 人事管理系统介绍HRMS(人事管理系统Human Recource Manage System)系统,是一个用计算机对各种各类人事档案信息进行日常的管理,迅速准确地完成各种信息的统计计算和汇总工作。随着计算机和网络技术的广泛应用,人案管理系统成为现代企业(单位)管理中不可缺少的一部分,为适应现代化制度要求,实现企业(单位)劳动人事档案管理的科学化和规范化。作为计算机应用的一部分,使用计算机对人事信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事管理的效率。其主要功能一般包含:人员添加功能、查询功能、修改功能、删除功能以及数据存储,而且系统要符合操作简便、界面友好、灵活、实用、安全的要求出发。换句话说,HRMS系统的最终目的是使管理员根据此系统提供的功能能够快速、准确地管理好企业(单位)的人力资源。2.项目背景在80年代初发展起来的国内的酒店管理系统,充分吸收了国外管理系统的精华,再结合国内的实际情况,逐步发展成熟,到90年代初期已形成了几个较成熟的软件系统,同时,产生了几家专职从事宾馆业计算机管理系统的公司。到了90年代中后期,随着计算机的普及应用,计算机技术的不断发展,人事管理系统的发展到了一个新的时期,新的系统平台、新的系统特点及发展方向不断涌现,主要体现在系统基本转到客户机/服务器模式下的Windows版,功能更加细致完善,系统更加稳定可靠。2000年以后,我国企业信息化走向了以ERP为主的道路,许多外国ERP厂商如SAP、BAAN、ORACLE、FOUTH SHIFT等纷纷进入中国,国内目前也已有数十家ERP软件供应商,不少已经形成商品化且有几百家用户。根据对学校的访谈,了解到学校内并没有一款专门的软件用来对人事的管理,基本上是用手工记录的方法对档案信息进行处理,效率低,安全低,查询极不方便,由于是用纸质记录,会因为天气等原因导致数据丢失。本系统再加上数据库,就可以很好地解决上面所发现的问题。在系统设计过程中,尽量采用易懂易读的人机界面,使用户可以在短期内完全掌握。始终把系统的正确性放在首位,力求数据的完整和处理的正确性。在此基础上优化程序代码,加速系统运行和减少对系统资源的占用。(二)开发工具介绍1.开发工具:Microsoft Visual C+ 6.0 微软公司的VC+6.0是Windows应用程序开发工具,是目前最为广泛的、易学易用的面向对象的开发工具。它提供了大量的控件,通过这些控件来进行界面的设计和实现各种功能,大大减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性,也将可视化界面与面向对象技术完善、紧密地结合起来,友好的集成开发界面,可视化的双向开发模式,良好的数据库应用支持,高效的程序开发和程序运行等等,这些简单、高效的特点使它成为编程者的最爱。2.数据库:Microsoft SQL SERVER 2000SQL SERVER2000 是微软公司推出的基于Windows的客户机/服务器关系型数据库管理系统 RDBMS。它引入了大量先进的数据库技术,代表了未来数据库技术的发展趋势,可以为各种用户提供完整的数据库应用解决方案。除了其关系型系统的内核之外,它的分布式查询处理、强大的触发器功能、方便的数据发布等特点,使它充满着未来数据库技术的气息。SQL SERVER2000具有如下特点:(1)客户机/服务器关系型客户机/服务器体系结构把整个任务划分为在客户机上完成的任务和在服务器上运行的任务,客户机负责组织与用户的交互和显示数据;服务器负责数据的存储和管理; 客户机向服务器发出操作请求,服务器根据用户的请求处理数据,并把结果返回客户。(2)支持分布式数据库结构在一个或多个网络中可有多个 SQL Server,用户可以将在逻辑上作为一个整体的数据库的 数据分别存放在各个不同的 SQL Server 服务器上,成为分布式数据库结构。客户端可分别 或同时向多个 SQL Server 服务器存取数据,这样可以降低单个 SQL Server 的处理负担,提 高系统执行效率。(3)易用性、可伸缩性、集成性SQL SERVER2000它拥有微软产品的一贯特性,符合用户的操作习惯,简单易用;它使用的是动态数据库,当用户的数据超过原先申请的大小时,数据库文件可自动扩大,直到占满整个磁盘空间;它已经与Windows 2000 以上的操作系统紧密结合,能够提供更加有效的安全性。 二、 系统可行性研究可行性,是指在当前情况下,设计开发这个系统是否有必要,是否具备必要的条件,它不仅包括必要性,还包括合理性。系统的可行性分析,是针对设计一个系统,它的设计是否存在内外部的必要条件,包括技术上、资金上、经济上、人力资源以及组织管理上的必要条件,同时还要分析在目前条件下是否有必要设计这样一个系统。在改革深入和市场经济高速发展的今天,人事管理的信息量和信息类型越来越大,工作流程越来越清晰,社会分工越来越细,原来传统上的人工处理方式和单机管理系统越来越来不能适应人事管理的需要,不能满足新形势下企业人事管理的需要。因此,必须有一套应用于网络时代的适应于新需求上的人事管理系统。而且每一个企业的人事管理又是错综复杂的。(一)技术可行性研究本系统所采用的软硬件平台最低要求:1.硬件要求:客户端:CPU:1GHz以上的处理器。内存:256MB,推荐512MB。硬盘:150MB以上剩余空间。声卡、网卡、显卡:一般集成的即可。显示像素:最低800*600,最佳效果1024*768。服务器:CPU:Intel E52002.5GHz2M缓存。内存:1GB,推荐2GB。硬盘:80G以上剩余空间。声卡、显卡:一般集成的即可。网卡:速率要达到1Gbps;显示像素:最低800*600,最佳效果1024*768。2.软件要求:Microsoft SQL server 2000Microsoft Visual C+ 6.0Microsoft Windows XP professional目前计算机硬件技术发展迅猛,在硬件上完全符合本系统的要求。3.技术方面:Visual C+是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C+编程基础。在Visual C+环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、动态数据访问(ADO)等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。面向对象的程序设计:4.0版以后的Visual C+支持面向对象的程序设计,但它与一般的面向对象的程序设计语言(C+)不完全相同。在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是抽象的概念;而Visual C+则是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,Visual C+自动生成对象的程序代码并封装起来。每个对象以图形方式显示在界面上,都是可视的。结构化程序设计语言:Visual C+是在C+语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式。Visual C+语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。6Visual C+是解释型语言,在输入代码的同时,解释系统将高级语言分解翻译成计算机可以识别的机器指令,并判断每个语句的语法错误。在设计Visual C+程序的过程中,随时可以运行程序,而在整个程序设计好之后,可以编译生成可执行文件(.EXE),脱离Visual C+环境,直接在Windows环境下运行。访问数据库:Visual C+具有强大的数据库管理功能,利用数据控件和数据库管理窗口,可以直接建立或处理Microsoft Access格式的数据库,并提供了强大的数据存储和检索功能。同时,Visual Basic还能直接编辑和访问其他外部数据库,如dBASE,FoxPro,Paradox等,这些数据库格式都可以用Visual Basic编辑和处理。Visual C+提供开放式数据连接,即ODBC功能,可通过直接访问或建立连接的方式使用并操作后台大型网络数据库,如SQL Server,Oracle等。在应用程序中,可以使用结构化查询语言SQL数据标准,直接访问服务器上的数据库,并提供了简单的面向对象的库操作指令和多用户数据库访问的加锁机制和网络数据库的SQL的编程技术,为单机上运行的数据库提供了SQL网络接口,以便在分布式环境中快速而有效地实现客户/服务器(client/server)方案。(二)操作可行性研究系统的易用性和易维护性要求系统设计的过程中更加的人性化操作。本系统的设计采用人性化的设计,界面友好、灵活,可以使得每个使用系统的人都可以很快地上手,短时间内熟练使用,也可以使得进行维护的人很快的了解系统。(三)经济可行性研究资金可得性:由于系统开发并不复杂,操作起来也比较简单,只需一些基本的编辑软件,另外具备网络中心的一些资源优势,因此开发费用较低。经济合理性:由于该系统用于企业工作的大部分信息发布和传递工作,不仅能够节省大量的人工信息传递任务,提高了工作效率,更加有利于整个企业各部门之间的无纸化办公的推广。(四)社会可行性研究网络安全技术的不断提升,网络管理人事在实际运用中越来越被企业或个人所接受(这些都可以在实际生活中找到材料和数据。),并且在不断的提升和表现它在实际企业活动中的经济价值,这个经济价值也是当前的企业所期望看到的。人事管理工作覆盖面广,涉及到机构设置、人员调配、员工培训、考核、奖惩、工资福利待遇等多个方面。人事管理活动中产生的大量数据和信息,如:各级机构的层次构建,职工的自然状况,职称、职务变动情况,考核培训结果,专业技术工作及主要业绩以及针对这些数据进行的各类统计报表的制作和综合分析等。对如此多的数据、信息的管理、开发及运用,都必须在规范化和标准化的基础上实现,借助于网络化管理手段能够满足这些要求。 三、 需求分析需求分析是软件定义时期的最后一个阶段,也是设计数据库的一个起点,它确定了系统必须完成哪些工作,提出完整、准确、清晰和具体的要求,直接影响到后面各个阶段的设计,及设计结果是否合理和实用。需求分析的任务是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统/计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计系统。需求分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量。因此必须用行之有效的方法对软件需求进行严格的审查验证。事实上,需求分析是数据库开发中最难的任务之一。因为,第一,系统本身是可变的,用户的需求必须不断调整,使之与这种变化相适应。第二,用户很难说清某部分工作的功能处理过程。所以,设计人员必须认识到:在整个需求分析以及系统设计过程中,用户参与的重要性,通过各种方法展开调查分析。(一)功能需求该系统分为六个模块:系统管理、人事管理、工资管理、考勤管理、合同管理、权限管理。系统管理:该模块主要是学校信息查询,用户密码修改和系统的安全退出。人事管理:该模块是关于单位的人事信息维护,首先是对入职员工的基本信息的录入、修改、浏览等操作;其次是职工人事档案基本信息的管理;最后,并对单位的人事信息从工种,专业,学历等属性进行统计分析。工资管理:该模块主要是关于单位的薪资信息维护,系统管理员能进入该模块给员工进行工资管理,职工的工资主要是工资方案计算得出,工资方案是由工资项目进行组合而成。另外还能对员工的工资信息能进行调整。考勤管理:该模块主要涉及到单位职工的考勤统计。考勤主要是日常考勤,请假考勤、上课考勤几大内容。合同管理:合同是当事人或当事双方之间设立、变更、终止民事关系的协议,受法律保护。该模块主要是单位的合同信息维护,对合同的录入要有严格要求,一丝不苟;对合同的查询要快速,准确。权限管理:该功能模块要实现管理员可以添加职工,对所有职工的信息进行查询,修改,删除,普通职工只能查询个人信息。系统管理员拥有修改权限的权限。本系统的权限划分为两部分:(1)普通职工:只能查询个人信息,无修改权限。(2)管理员:即超级管理员,可以完成对档案信息的录入、查询、修改。删除,管理权限。后台数据库:数据库主要记录以下信息:l 学校概况信息l 职工个人档案信息。l 职工工资信息。l 职工合同信息。l 职工考勤记录信息。l 职工请假记录信息。(二)系统操作流程分析管理员用户进入系统时要进行安全性检查,防止非法用户进行系统破坏数据及威胁系统安全,避免不必要的损失。只有合法的用户在输入正确的密码后方可进入系统。用户登录通过权限判断,普通用户只能查询信息,管理员用户可以进行信息录入、修改和删除等操作,其主要操作流程(如图31所示):图31为系统主要操作流程图(三)系统数据流分析数据流图是系统的逻辑模型,然而任何计算机系统实质上都是信息处理系统。也就是计算机系统本质上都是把输入数据变换成输出数据。因此,任何系统的基本模型(如图32所示)都有如干个数据源点/终点以及一个处理组成,这个处理就代表了系统对数据加工变换的基本功能。图32人事管理系统基本模型1、 顶层数据流图基本的系统模型比较太抽象了,对人事管理系统所能了解到的信息非常有限,下一步顶层流程图(如图33所示)应该把基本系统模型细化,描绘系统的主要功能。图33为人事管理系统数据流图2.人事管理数据流图人事管理数据流图(如图34所示):图34为人事管理层数据流图(四)数据库的需求分析数据库系统应充分熟悉用户各方面的需求,对于本系统用户的需求具体体现在各种信息的提供、保存、更新和查询,这要求数据库的结构能充分满足各种信息的输入和输出,收集基本数据、数据结构及数据处理的流程,为后面的具体设计打下数据基础。1数据录入和处理的准确性和实时性:数据的准确输入是数据处理的前提,错误的输入会导致系统输出的异常和不正确,从而使系统的工作失去意义。数据的输入来源是手工输入。手工输入数据要考虑数据的长度和数据的属性。在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。2数据的一致性与完整性:由于系统的数据是共享的,在不同的部门中,信息是共享数据,所以如何保证这些数据的一致性,是系统必须解决的问题。要解决这一问题,要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,系统应该拒绝该数据。 四、 概要设计 (一)系统目标设计人事管理系统可以用于支持单位完成劳动人事管理工作,有如下3个方面的目标。 使得单位的管理更加规范化。 高效率完成劳动人事管理的日常业务,包括新员工加入时人事档案的建立,员工请假、员工的工资管理等。 支持单位进行劳动人事管理及其相关方面的科学决策,如领导根据现有的员工数目决定招聘的人数等。(二)开发设计思想本系统开发设计思想有以下几点。尽量采用公司现有软硬件环境,及先进的管理系统开发方案,从而达到充分利用公司现有资源,提高系统开发水平和应用效果的目的。系统应符合公司人事管理的规定,满足公司日常人事管理工作需要,并达到操作过程中的直观、方便、实用、安全等要求。系统采用C/S体系结构,Client(客户端)负责提供表达逻辑、显示用户界面信息、访问数据库服务器;Server(服务器端)则用于提供数据服务。系统分析等前期工作应尽量详细完善,以便公司以后体系结构的改变,对于一些安全性要求不高的信息可以方便的采用Brower/Server的方式进行访问。系统采用模块化程序设计方法,即便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改等操作。(三)系统功能分析在系统开发总体任务的基础上完成系统功能分析。系统开发的总体任务一般由领导、包括人事处领导提出。本例中的人事管理系统需要完成如下功能。 人力资源管理:包括用户列表、添加职工、职工查询、职工信息修改 考勤管理:包括考勤规则、假别管理、请假记录、考勤记录 系统管理:学校信息、职工密码修改、安全退出系统 工资管理:包括添加员工工资信息、修改员工工资信息、工资信息搜索(四)系统功能模块设计根据需求分析,把客户关系管理系统划分为以下功能模块(如图41):图4-1为系统主要功能模块系统总体结构如图4-2所示:图4-2为系统总体结构图 五、 系统详细设计 (一)VC+利用ADO操作数据库1.ADO概述ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口。ADO 编写应用程序以通过 OLE. DB 提供者访问和操作数据库服务器中的数据。ADO 最主要的优点是易于使用、速度快、内存支出少和磁盘遗迹小。ADO 在关键的应用方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻量、高性能的接口。OLE DB是一组”组件对象模型”(COM) 接口,是新的数据库低层接口,它封装了ODBC的功能,并以统一的方式访问存储在不同信息源中的数据。OLE DB是Microsoft UDA(Universal Data Access)策略的技术基础。OLE DB 为任何数据源提供了高性能的访问,这些数据源包括关系和非关系数据库、电子邮件和文件系统、文本和图形、自定义业务对象等等。也就是说,OLE DB 并不局限于 ISAM、Jet 甚至关系数据源,它能够处理任何类型的数据,而不考虑它们的格式和存储方法。在实际应用中,这种多样性意味着可以访问驻留在 Excel电子数据表、文本文件、电子邮件/目录服务甚至邮件服务器,诸如 Microsoft Exchange 中的数据。但是,OLE DB 应用程序编程接口的目的是为各种应用程序提供最佳的功能,它并不符合简单化的要求。您需要的API 应该是一座连接应用程序和OLE DB 的桥梁,这就是 ActiveX Data Objects (ADO)。2.ADO接口简介ADO库包含三个基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。_ConnectionPtr接口返回一个记录集或一个空指针。通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程。使用_ConnectionPtr接口返回一个记录集不是一个好的使用方法。对于要返回记录的操作通常用_RecordserPtr来实现。而用_ConnectionPtr操作时要想得到记录条数得遍历所有记录,而用_RecordserPtr时不需要。_CommandPtr接口返回一个记录集。它提供了一种简单的方法来执行返回记录集的存储过程和SQL语句。_RecordsetPtr是一个记录集对象。与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定,游标控制等。同_CommandPtr接口一样,它不一定要使用一个已经创建的数据连接,可以用一个连接串代替连接指针赋给_RecordsetPtr的connection成员变量,让它自己创建数据连接。如果你要使用多个记录集,最好的方法是同Command对象一样使用已经创建了数据连接的全局_ConnectionPtr接口,然后使用_RecordsetPtr执行存储过程和SQL语句。3.ADO连接数据库实现利用_ConnectionPtr智能指针产生一个连接接口,取得与数据库的连接。主要代码实现:bool ADOConn:OnInitADOConn():CoInitialize(NULL);/ 初始化OLE/COM库环境try m_pConnection.CreateInstance(ADODB.Connection); CString strConnect; strConnect=Driver=SQL Server;Server=+sqlip+;Database=TBYZ;UID=sa;PWD=; m_pConnection-Open(_bstr_t)strConnect,adModeUnknown); return true;catch(_com_error e)AfxMessageBox(连接数据库服务器出错!请检查网络连通性或配置好服务器IP或域名!);return FALSE;4.数据库操作函数。数据库命令语句执行函数:BOOL ADOConn:ExecuteSQL(_bstr_t bstrSQL)_variant_t RecordsAffected;try if(m_pConnection=NULL) OnInitADOConn(); m_pConnection-Execute(bstrSQL,NULL,adCmdText);return true;catch(_com_error e)e.Description();return false;数据库查询语句执行函数:_RecordsetPtr& ADOConn:GetRecordSet(_bstr_t bstrSQL) tryif(m_pConnection=NULL) OnInitADOConn();m_pRecordset.CreateInstance(_uuidof(Recordset);m_pRecordset-CursorType=adOpenStatic; m_pRecordset-CursorLocation=adUseClient;m_pRecordset-Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); catch(_com_error e)e.Description();return m_pRecordset;数据库断开连接函数:void ADOConn:ExitConnect() if(m_pRecordset!=NULL)m_pRecordset-Close();m_pConnection-Close();:CoUninitialize();(二)文件架构设计本系统是基于MFC构建的,根据系统的概要设计,系统一共有如下5个部分,CPP文件,H头文件,database文件,INI文件,ICO文件,其中CPP文件H头文件主要负责系统功能的实现,database文件主要包括系统的数据库, INI文件负责保存服务器的IP地址或计算机名,以保证数据库访问时网络的连通性,ICO文件主要是系统用到的图片。下面简单介绍一些主要文件的功能:主要的CPP文档列表如表5-1所示:表51 系统主要CPP文件LOGIN.cpp系统登录功能TBYZDlg.cpp系统主界面CHPSW.cpp密码修改功能MD5d.cpp合同录入功能ConMan.cpp合同管理功能ConDetail.cpp密码MD5加密CheckRecord.cpp考勤录入功能CheckinQurey.cpp考勤查询功能Ipconfig.cpp保存数据库服务器IP信息Leave.cpp请假录入功能person_record.cpp职工录入功能ModPRecord.cpp职工信息修改person_man.cpp职工管理页面SalRecord.cpp工资录入功能ModPRecord.cpp工资修改功能SalMan.cpp工资管理页面CurPersonInfo.cpp个人信息查询CurSalInfo.cpp个人工资查询CurConInfo.cpp个人合同信息查询CurCheckinInfo.cpp个人考勤信息查询(三)系统数据库设计1、 E-R模型人事管理系统的主要数据库E-R模型,如图5-2所示:(1)实体关系ER图图5-2主要数据库E-R模型图(2)职工属性图,如图53所示:图5-3职工属性图(3)工资属性图,如图54所示:图5-4工资属性图(4)合同属性图,如图55所示:图5-5合同属性图(5)考勤属性图,如图56所示:图5-6合同属性图2、数据库设计由数据模型利用SQL SERVER 2000进行数据库的详细设计,一些主要表的设计如下:(1)person_info(职工信息)表的结构如表52所示:表5-2 person_info(职工信息)表的结构主键列名数据类型长度允许空user_idvarchar20pswvarchar50permissionchar1usernamevarchar10genderchar2nativevarchar10nationchar8birthdatetime8addressvarchar30tech_titlevarchar10t_coursevarchar6senioritychar2edu_schoolvarchar20majorvarchar20educationchar4dutyvarchar20politicalvarchar8identity_cardchar18bank_cardchar19mob_phonevarchar20(2)salary(工资信息)表的结构如表53所示:表5-3 salary(职工信息)表的结构主键列名数据类型长度允许空user_idvarchar10usernamevarchar10sal_idvarchar10sal_datedatetime8sal_postdecimal9pay_scaledecimal9perf_saldecimal9totaldecimal9cutpaydecimal9med_insreancedecimal9housing_funddecimal9unem_insdecimal9koufadecimal9SFGZdecimal9(3)checkin(考勤信息)表的结构如表54所示:表5-4 checkin (考勤信息)表的结构主键列名数据类型长度允许空idint4user_idvarchar10usernamevarchar10ch_datedatetime8reasonvarchar6meetingdecimal9flagdecimal9classdecimal9check_pointvarchar8(4)contract(合同信息)表的结构如表55所示:表5-5 contract (合同信息)表的结构主键列名数据类型长度允许空idint4con_idvarchar10con_namevarchar30kindvarchar10partyavarchar10partybvarchar10legal_repvarchar20ct_st_timedatetime8ct_end_timedatetime8ct_detailntext16(5)leave(请假信息)表的结构如表56所示:表5-6 leave (请假信息)表的结构主键列名数据类型长度允许空user_idvarchar10usernamevarchar10kindvarchar6l_datedatetime8daysvarchar3s_datevarchar12e_datevarchar12allowancevarchar10l_reasonntext16(6)school_info(学校概况信息)表的结构如表57所示:表5-7 school_info (学校概况信息)表的结构主键列名数据类型长度允许空sch_namevarchar30sch_addresschar35postchar6principalchar8office_phonechar12sch_areachar16(四)模块功能设计1.公共模块 在设计的过程中,数据库的连接函数经常要用到,如连接数据库初始化函数OnInitADOConn()、数据库语句执行函数ExecuteSQL()、获得结果集函数GetRecordSet()、数据类型转换函数VariantToString ()等。其中本系统经常要用到数据类型转换函数VariantToString (),它是实现数据库类型转换成VC+中的CString类型,使得代码在数据类型转换编码中更加快捷。 以下是VariantToString()函数的关键代码:CString ADOConn:VariantToString(VARIANT var) CString strValue; _variant_t var_t; _bstr_t bstr_t; DATE dt; CTime time_value; COleCurrency var_currency; COleDateTime odt; switch(var.vt) case VT_EMPTY: case VT_NULL:strValue=_T();break; case VT_UI1:strValue.Format(%d,var.bVal);break; case VT_I2:strValue.Format(%d,var.iVal);break; case VT_I4:strValue.Format(%d,var.lVal);break; case VT_R4:strValue.Format(%f,var.fltVal);break; case VT_R8:strValue.Format(%f,var.dblVal);break;case VT_DECIMAL: var_t=var;var_t.ChangeType(VT_R4,NULL);strValue.Format(%.2f,var_t.fltVal);break; case VT_CY: var_currency=var; strValue=var_currency.Format(0);break; case VT_BSTR: var_t =var; bstr_t=var_t; strValue.Format(%s,(const char *)bstr_t);break; case VT_DATE: dt=var.date; odt = COleDateTime(dt); strValue=odt.Format(%Y-%m-%d);break; case VT_BOOL:strValue.Format(%d,var.boolVal);break; default:strValue=_T();break; return strValue; 2.系统各个模块 (1)系统登录模块 (a)功能:本模块的主要功能是对用户身份进行验证,只有系统的合法用户才能进入系统;用户身份分为系统管理员和普通职工两种类型,系统管理员拥有全部权限,可以对系统进行相应的操作。 (b)登录界面其登录窗口如图5-7所示:图5-7系统登录模块(c)输入项、输出项:输入项为职工编号、密码,系统连接到数据库对用户和密码进行验证,输出为成功或失败的提示。(d)代码设计用户名、密码验证:/*验证输入信息的完整性和正确性*/GetDlgItemText(IDC_USER,user);/从编辑框得到用户名GetDlgItemText(IDC_PSW,psw);/从编辑框得到密码md5psw=MD5(psw);/md5加密sql.Format(select * from person_info where user_id=%s and psw=%s,user,md5psw);/格式化数据库语句m_rs.GetRecordSet(_bstr_t)sql);/执行语句if(m_rs.m_pRecordset-adoEOF)/判断用户名密码是否正确chk_log=0;MessageBox(用户名或密码错误);/用户名或密码出错时弹出提示m_duser=;m_dpsw=;UpdateData(false);判断登录权限:pms=m_rs.m_pRecordset-GetCollect(permission);/从数据库中得到权限值glb_permission=m_rs.VariantToString(pms);if (glb_permission=0) /判断权限,如果为0,即普通职工MessageBox(权限不足!);EndDialog(0);(2)系统主界面模块该模块的主要界面如图5-8所示:图5-8为系统主界面模块该模块为人事档案管理的主界面,提供对人员的浏览及其它具体操作功能的入口(3)人事档案管理模块该模块的主要界面如图5-9所示:图5-9为职工管理模块在职工管理模块中,可以完成以下功能:l 新增职工个人信息l 修改职工个人信息l 删除职工个人信息l 查询职工个人信息功能说明:新增职工个人信息,该功能界面如图510所示:图5-10为新增职工个人信息模块在该功能模块中,职工编号由系统自动生成并且唯一,密码长度不能少于8位且经过MD5加密后录入数据库,用户权限分为普通职工和系统管理员,系统管理员在进行新增职工信息时确定该职工登录系统时的权限。修改职工个人信息,该功能界面如图511所示:图5-11为职工个人信息修改模块删除职工个人信息,先在职工列表中选择要删除的职工,点击“删除记录” 按钮,弹出删除提示对话框(如图512),点击“是”按钮即可完成该职工信息的删除,点击“否”按钮取消删除,该功能将删除职工在校的所有个人信息。图5-12为删除职工个人信息对话框(4)职工工资管理模块该模块的主要界面如图5-14所示:图5-14为职工工资管理模块在职工管理模块中,可以完成以下功能:l 新增职工工资信息l 修改职工工资信息l 查询职工工资信息功能说明:新增职工工资信息,该功能界面如图515所示:图5-15为职工工资录入模块在该功能模块中,职工编号必需对应系统中已存在的职工且工资序号在系统中不存在,并且保持唯一。工资录入必需是规范的数字格式,每一项的录入系统会自动计算应发项,扣发项,实发工资。修改职工工资信息,该功能界面如图516所示:图5-16为职工工资修改模块在该功能模块中,系统管理员只能修改职工的岗位工资、薪级工资、绩效工资、失业保险、住房公积金、医疗保险,修改工资必需是规范的数字格式。考勤扣款金额由职工的考勤情况决定,无法进行修改。(5)考勤信息管理模块该模块的主要界面如图5-18所示:图5-18为职工工资信息录入模块在职工管理模块中,可以完成以下功能:l 考勤录入l 考勤信息l 请假记录l 请假信息l 返回l 事假查询l 病假查询l 开会缺勤查询l 升旗缺勤查询l 上课缺勤查询功能说明:考勤录入,该功能是将职工的考勤信息记录到数据库中。考勤信息,该功能是实现对所选职工查看当月的考勤详细内容。请假记录,该功能主要是实现查询所选职工当月请假记录。请假信息,该功能主要是实现查看职工的请假条详细内容。返回,返回当月考勤面版并刷新记录。事假查询,在当月考勤面版中查看所有请事假的职工。病假查询,在当月考勤面版中查看所有请病假的职工。开会缺勤查询,在当月考勤面版中查看所有开会缺勤的职工。升旗缺勤查询,在当月考勤面版中查看所有升旗缺勤的职工。上课缺勤查询,在当月考勤面版中查看所有上课缺勤的职工。(6)其他一些模块(a)密码修改模块该模块的主要界面如图521所示:图5-21为用户密码修改模块功能:更改当前所登录用户的密码。(b)请假录入模块该模块的主要界面如图522所示:图5-22为职工请假条录入模块(c)权限访问控制该模块主要是实现用户在登录系统时系统自动判断用户的登录权限,如普通职工想进入工资管理模块时将弹出如图523的提示,以阻止职工访问该模块。 图5-23为权限不足提示 六、系统测试(一)概述研究成果无论怎样强调软件测试的重要性和它对软件的可靠性的影响都不过分。在开发大型的软件过程中,面对着极其错综复杂的问题,人的通讯和配合也不可能完美无缺。因此,在软件生命周期的每个阶段都不可避免地会出现差错。我们力求在每个阶段借助通过严格的技术审查,尽可能地发现并纠正错误。但是,经验表明审查并不能发现所有差错,此外,在编码过程中还不可避免地会引入新的错误。如果在软件投入运行之前,没有发现并纠正软件中的大部分差错,则这些差错会迟早在生产过程中暴露出来,那时不仅改正这些错误的代价更高,而且会造成更恶劣的后果。测试的目的就是在软件投入生产性运行之前,尽可能地发现软件中的错误。目前软件测试仍然是保证质量的关键步骤,它是对软件的规格说明、设计和编码的最后复审。软件测试在软件生命周期中横跨两个阶段。通常在编写出每个模块之后就对它作必要的测试(称为单元测试),模块的编写者和测试者是同一个人,编码和单元测试属于软件生命周期的同一阶段。在这个阶段之后还应该对软件进行综合测试,这是软件生命周期中的另一个独立阶段,通常由专门的测试人员来承担这项工作。大量统计资料表明,软件测试的工作量往往占软件开发工作量的40%以上,在极端情况时,测试那种关系人的生命安全的软件所花费的成本,可能相当于软件工程其它步骤总成本的三到五倍。因此,必须高度重视软件测试工作,决不要以为写出程序以后软件开发工作就接近完成了。实际上,大约还有同样多的工作量需要完成。仅就测试而言,它的目标是为了发现软件中的错误。但是,发现错误并不是我们的最终目的。软件工程的目的是开发出高质量的完全符合用户需要的软件。因此,通过测试软件发现的错误必须诊断并改正错误,这就是调试的目的。调试是测试阶段最困难的工作。对软件测试的结果也是分析软件的重要依据。(二)软件测试方法简介测试任何产品都有两种方法:如果已经知道了产品的内部工作
展开阅读全文