基于C的企业考勤管理系统的设计与开发

上传人:痛*** 文档编号:111514974 上传时间:2022-06-20 格式:DOC 页数:85 大小:290KB
收藏 版权申诉 举报 下载
基于C的企业考勤管理系统的设计与开发_第1页
第1页 / 共85页
基于C的企业考勤管理系统的设计与开发_第2页
第2页 / 共85页
基于C的企业考勤管理系统的设计与开发_第3页
第3页 / 共85页
资源描述:

《基于C的企业考勤管理系统的设计与开发》由会员分享,可在线阅读,更多相关《基于C的企业考勤管理系统的设计与开发(85页珍藏版)》请在装配图网上搜索。

1、摘 要黑体 二号 随着现代科学技术的发展,越来越多的公司和企业对职工的考勤都实行了信息化管理,使用计算机系统代替复杂的手工方式来管理考勤事务。考勤管理系统可以有效地管理公司员工的出勤情况,规范人事制度管理,保证公司正常的工作,是人力资源管理的重要组成部分。 系统的开发主要包括后台数据库的建立,维护以及前端应用程序的开发两个方面,主要模块包括基本信息管理模块,考勤信息管理模块,统计查询模块和系统用户管理模块。系统是使用Visual C+开发语言,使用Microsoft Visual Studio 6.0作为工具软件,数据库为SQL Server 2000。系统采用目前比较流行的ADO数据访问技术

2、,并将每个数据库表的字段和操作封装到类中,它使应用程序的各个窗口都能够共享对表的操作,不需要重复编码,使程序更加易于维护,从而将面向对象的程序设计思想应用到数据库应用程序中。关键词:考勤管理;人力资源;数据库;数据访问技术Abstract Along with the development of the modern science and technology, more and more companies and enterprises implemented the information management to the staffs checking attendance, a

3、nd use computer system instead of the complex manual way to manage the checking attendance business. The checking attendance management system may effectively manage the staffs going out on duty situation, Standard personnel system management, Guarantees the company normal work. It is the important

4、part of human resources management The development of this system mainly includes two aspects: the establishment of the backstage database and the development of the front-side application. This system contains following several modules: the basic information management module, the attendance inform

5、ation management module, the statistical inquiry module and the system user administration module. Visual C+ and SQL Server2000 are used in the development of the system. The system uses the popular ADO technology, and encapsulates the fields and the operations of each table into some classes. It ca

6、uses the operation which the application procedure each window all can share synchronizes tables. It has not repeat codes, and makes the application to be easier to maintain. By this way, the idea of object-oriented programming will be applied in the database application.Key words: Attendance manage

7、ment; Human resources; Database; Data access technology2目 录二号黑体居中摘 要黑体 二号2第1章 概述一级标题 黑体 二号理工类学科的论文主体不少于10000字11.1 企业考勤管理系统意义二级标题黑体 三号1企业考勤系统的应用背景11.3 企业考勤系统基于的技术种类1第2章 系统的可行性研究12.1 技术可行性分析1经济可行性分析12.3 操作运行可行性分析1第3章 一级标题 黑体 二号系统分析13.1 系统二级标题 黑体 三号需求分析1用户工作流程13.1.2 功能需求13.2 性能需求13.3 全局分析1第4章 系统软件设计14.

8、1 系统设计预览14.1.1 系统设计目标与功能结构14.1.2 业务流程图展示14.2 数据库设计14.2.1 数据库分析14.3 公共类的设计14.3.1 CADOconnection类14.3.2 CADODataSet类14.4 统主体窗的设计14.5 系统模块设计14.5.1 用户登入模块设计14.5.2 用户管理模块设计14.5.3 部门管理模块设计14.5.4 人员信息管理模块14.5.5 考勤管理模块设计14.5.6 考勤汇总查询模块设计1第5章 总结与展望1参考文献1附 录黑体,二号,居中1致 谢黑体,二号,居中1 目录页码与正文页码分开,不同 4第1章 概述一级标题 黑体

9、二号理工类学科的论文主体不少于10000字1.1 企业考勤管理系统意义二级标题黑体 三号 考勤管理是企事业单位经营的重要环节,加强考勤管理,严肃考勤制度是企事业单位搞好各项经营管理工作的前提与保障.科学地管理考勤不仅可以保证各项经营管理计划得以落实,而且有利于提高工作学习效率.长期以来,很多单位沿袭人工方式进行考勤管理,每个单位都有专门负责考勤登记的人员.即便如此科学准确地管理考勤也绝非易事,原因主要在于考勤涉及人员、班种、请假等诸多因素,每日考勤统计工作量极大等.利用计算机管理考勤不仅能使管理人员从繁重的考勤管理工作中解脱出来,而且能够使考勤管理工作更加科学化,规范化,智能化. 随着计算机技

10、术的高速发展,正在改变着整个世界的经济,也改变着企业的管理.顺应信息技术发展的潮流,作为企业信息化的核心部分,选择先进的,符合国际标准的考勤系统,不仅可以有效提高企业管理,协作与监控员工的出勤效率,更可以为企业进一步信息化建设奠定良好的基础.利用计算机实现企业人事考勤管理势在必行。本系统结合企业实际考勤管理制度,经过实际的需求分析,采用功能强大的Visual C+ 6.0作为开发工具,开发出来的企业考勤管理系统。 其一,可以将考勤事务交给基本部门处理,交个每个员工自己处理,交给系统自动处理,用IT技术推动人事考勤管理的变革。 其二,新的考勤系统的实施,不仅把HR人员从考勤的具体事务中解放出来,

11、而且也推动了全员对人事管理的参与和互动.HR人员的可以把工作重心可以放在服务员工、支持公司管理层的战略决策上,放在公司最重要的资产员工和员工的集体智慧的管理上等核心业务上来。在此讨论的考勤管理系统的开发,旨在探索一种新的考勤模式.通过这种新的模式,为企业的传统考勤模式创造一种新的概念,提高考勤工作效率和标准化水平。 整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成日常的员工签到,出勤修改,出勤查询,用户维护,员工维护,以及系统配置等功能.经过实际使用证明,本文所设计的系统可以满足企业进行日常的员工考勤管理方面的需要。1.2 企业考勤系统的应用背景随着计算机在国内外的普及和计算

12、机科学技术的飞速发展,人们开始越来越多地利用计算机解决实际问题。企业员工考勤信息管理是企业信息管理的重要部分。面对大量的人事考勤信息,采用人力处理将浪费大量的时间、人力和物力,且数据的准确性低。 因此,开发一个界面友好,易于操作的员工信息管理软件进行自动化处理具有较大的社会现实意义。同时,人事考勤管理系统是一切应用系统的典范,它具有一切应用系统的特征,系统结构与现实生活紧密结合,具体直观,开发应用简单,不失一般性。 人事考勤管理系统的特点是从人事考勤管理的角度出发,用集中的数据库将几乎所有与人事考勤相关的数据统一管理起来,形成了集成的信息源。友好的用户界面,强有力的报表生成工具、分析工具和信息

13、的共享使得人事考勤管理人员得以摆脱繁重的日常工作,集中精力从战略的角度来考虑企业人事考勤规划和政策. 作为计算机应用的一部分,使用计算机对考勤信息进行管理,有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事劳资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。 考勤管理系统就是把分散的企事业单位的考勤信息实行统一、集中、规范的收集管理,建立分类编号管理、电脑存储查询以及防火、防潮、防蛀、防盗等现代化、专业化的管理系统,为企事业单位和职工解除后顾之忧。 企业考勤管理系统为企事业单位提供信息咨询、信息检索

14、、信息存取等服。 本考勤管理系统基本上能够满足现代企业考勤管理需求。信息录入项目齐全、完整、系统。现代考勤管理系统灵活使用表格对各种信息分门别类,组成企业考勤管理系统,可以方便地查询、阅读、修改、交流和重复使用。 1.3 企业考勤系统基于的技术种类 基于ClientServer结构的远程电脑考勤系统,PB和SQL Server结合开发出两层C/S结构的远程电脑考勤系统。该系统采用条码扫描的形式,在Client端采集考勤数据,在Server端综合汇总,汇总的数据除供管理者查询以做决策的依据外,还可直接将其传至公司的财务系统,作为薪金发放的重要参考。在论述远程电脑考勤系统实例的同时,还从系统环境,

15、前台应用程序的设计,后台数据库的设计,系统数据库的安全,系统网络的安全等方面给出了开发两层次C/S结构应用系统、一般方法和技巧,具有一定的参考价值。 基于VB/SQL Server的管理系统的实现智能化考勤系统设计,VB作为一种面向对象的可视化编程工程,具有简单易学、灵活方便和易于扩充的特点.与后端的SQL Server相结合,VB能够提供一个高性能的客户机/服务器方案.主要讲述在软件工程原理指导下,考勤管理方案的设计,该系统服务端采用了Mircosoft SQL Serve2000,客户端采用Visual Basic编程,通过微软的ADO控件调用服务器端的相关数据,实现数据的分布式管理. 基

16、于ASP.NET的考勤管理系统的设计与实现,考勤管理系统是企事业单位实现员工考勤自动化管理的重要设施.本文详细讨论了某公司考勤管理系统的系统功能、系统结构的设计和关键技术实现的过程.用ASP.NET开发的该系统具有操作简便、界面友好、灵活、实用和安全等特点. 正文页码要用阿拉伯数字,与目录页码不同第2章 系统的可行性研究2.1 技术可行性分析为达到技术的可行支持在程序设计开发之前,首要确定运用什么工具来开发,必须考量运用怎样的形式才能达到最好的效果。1991年微软公司推出Visual Basic,是基于BASIC的可视化的程序设计语言。既继承了其先辈的BASIC所有的程序设计简单易用的特点,其

17、程序也采用了面向对象,事件驱动的编程机制,用一种巧妙的方法把Windows的编程复杂性封装起来,提供了一种所见即所得的可视界面设计方法。VB的多种功能特点体现于:具有面向对象的可视化设计工具,应用面向对象的程序设计方法,把程序和数据封装起来视为一个对象,每个对象都是可逆的。程序员在设计时只需要根据现有界面设计的要求,直接在屏幕上画出窗口,菜单,按扭等不同类型的对象,并为每个对象设置属性。程序员的编程工作仅编写针对对象要完成哪些功能的程序,因而程序设计的效率可提高很多。事件驱动的编程机制的运用,事件驱动是非常适合图形用户界面的编程方式。传统的编程方式是一种面向过程,按程序事先设计的流程运行。但在

18、图形用户界面的应用程序中,用户的动作即事件掌握着程序的运行流向,每个事件都能驱动一段程序的运行。程序员只要编写响应用户动作的代码,各个动作之间不一定有联系。这样的应用程序代码较短,使得程序既易于编写又易于维护。明确提供了易学易用的应用程序集成开发环境在VB集成开发环境中,用户可设计界面、编写代码、调试程序,直至把应用程序编译成可执行文件,在Windows中运行,使用户在友好的开发环境中工作。结构化的程序设计语言,VB具有丰富的数据类型、众多的内部函数和结构化程序结构,而且简单易学。支持多种数据库系统的访问,利用数据控件或ODBC能够访问的数据库系统有,Microsoft Access、Btri

19、eve 、dBASE、Microsoft FoxPro和Paradox等,也可以访问Microsoft Excel、Lotus1-2-3等多种电子表格。OLE技术在于VB的核心就是其对对象的链接与嵌入(OLE)的支持,利用OLE,VB能够开发集声音、图像、动画、字处理、Web等对象于一体的应用程序。Active技术发展了原有的OLE技术,它使开发人员摆脱了特定语言的束缚。可方便地使用标准的Active部件,调用标准的接口,实现特定的功能。完备的help联机帮助功能,与Windows环境下的软件一样,在VB中,利用帮助菜单和F1功能键,用户可随时方便地得到所需的帮助信息,VB帮助窗口中显示了有关

20、的示例代码,通过复制、粘贴操作可获得大量的示例代码,为用户的学习和使用提供了捷径。基于以上关于Visul Basic C+强大功能和易操作性的介绍,我们将采用其作为本次考勤系统的前台开发工具。SQL Server 2000 是Microsoft 公司推出的数据库管理系统,它继承了SQL Server 7.0在数据库软件设计和引擎方面的优势,同时增加了读多新的功能,使用更加方便,完全支持Web应用,而且更具可靠性和稳定性。我们选择SQL Server 2000作为后台支持,大家都知道,SQL Server 2000对一些企业级用户来说是个福音,它在存储大容量数据、保证数据的安全性、维护数据的完整

21、性都有着极其出色的一方面。它还具有自动高效的机制以及运行分布式处理等优点。这种关系型数据库管理系统能够满足各种类型数据库的单独开发和其他商业应用程序开发的需要。使用SQL Server 2000我们可以很方便的建立数据库,可以将所建立的数据库很好的和VB结合起来。2.2 经济可行性分析考勤系统的面向主体用户群是企业,而企业在运营过程中准求的在范围内的尽量少的成本下实现最大的产出,已达到最高的性价比。以企业员工的数量可满足考勤系统的容量与需求,因此只需在配备定量的服务器的条件下,增加考勤机和IC卡即可。考勤系统运行的环境采用操作系统WINDOWS系统,系统开发工具,以及后台数据库均无需购买。因此

22、实施此考勤系统无需硬件资金投入,若想将管理系统全面投入运行,所需资金投入也只需日常维护与技术支持等必须费用。所以,实施考勤系统在经济上是可行的,将考勤系统全面投入运行,在经济上也是可行的。2.3 操作运行可行性分析信息化考勤系统是考勤管理模式的发展方向,以现代化信息技术完成考勤工作,可以提高工作效率和工作质量,迎合现代化企业发展管理的需求,也是与国际社会流行趋势相吻合的。企业管理制度的齐全与稳定,提供了企业创新发展的基础。企业计算机设备齐全,网络完善,有良好的机房和技术人员。企业DBA对微机操作熟练,完全可以掌握系统的使用和维护。因此,考勤系统的操作运行是可行的。第3章 一级标题 黑体 二号系

23、统分析3.1 系统二级标题 黑体 三号需求分析需求分析是系统开发必要环节,也是重中之重;需求过程研究业务工作,以期设计出有助于业务工作的更加完善的系统。作为该过程的结果,需求规格说明书是对系统的功能和行为完整的描述。系统设计将来自于需求和分析的抽象规格说明转变为面向真实世界的设计。一旦构建完成,该系统就会投入使用,同时会不可避免地产生更多的新需求。同时,需求过程与分析活动之间有相当程度的重叠,分析建模对于设定工作的范围和其他一些事来说是必要的,所以我们利用分析模型来描述需求过程,随着开发工作的继续,分析活动在工作中占的比例将变得越来越大,直到所有需求都已知。3.1.1 用户工作流程登陆运行更新

24、(删除)查询系统开发主要有以下五个模块组成:在系统模块中实现了,登录与运行功能。在维护模块中实现了,对数据库更新与删除的功能。在查询模块中实现了,条件模糊查询功能。能够清楚的让使用者了解本系统,并帮助使用者如何更好的使用本系统3.1.2用户业务需求(1) 该管理软件将对企业人事考勤档案进行管理和统计,对部门信息、员工信息、考勤数据、考勤信息进行管理和统计。(2) 该管理软件将根据用户的需要对个人信息进行查询,并能打印详细信息。(3) 该管理软件将为用户提供账号管理工具,以便用户对账号进行管理,具体为添加用户、删除用户、修改用户密码。(4) 该管理软件提供企业人员管理,能够对企业员工的分类管理,

25、新员工的加入以及员工删除,修改进本信息等功能。3.1.2 功能需求基于系统需求分析,该系统需要实现以下基本功能:用户管理:管理系统操作人员,设置操作人员口令和权限。在满足不同系统用户的操作需求的基础上,提高系统的安全性。人事考勤管理:完成企业对员工个人考勤信息(包括员工的基本档案和在职信息)的管理及相关操作。操作员进行员工考勤信息录入及更改,其中包括员工的基本信息、工作部门、工作流程,要求对这些员工档案信息可以进行新增、修改、删除操作,同时可以进行查询和浏览操作。该模块是本系统的重点,用户可以通过该模块为单位建立一个比较完整的人事考勤系统,同时可以对数据进行查看。基础数据管理:维护人事管理相关

26、的一些基础数据。主要包括以下功能:(1) 部门类别设置:维护企业中设立的部门类别信息;(2) 职工类型设置:维护当前企业职工与企业的关系的类别信息;(3) 职务类别设置:维护企业中设立的职务类别信息;(4) 职工资类别设置:维护企业中设立的工资类别信息;(5) 称类别设置:维护企业职工的职称类别信息;人事变动管理:对于人事上的变动调整进行管理,对人员考勤的信息进行更新(如:员工职务、员工职称、员工性质等的变动)考勤管理:考勤管理可帮助公司完成时间管理记录员工上下班、加班、出缺勤时间,并可将数据连至薪资计算系统处理,以便作薪资结算。企业还可根据此考勤系统查询企业内各时段的员工出缺勤状况,作管理方

27、面的分析。提供了全面的考勤管理。数据库管理:对现有的数据库进行管理,包括数据备份和恢复,以方便用户对数据库的管理和维护工作,提高系统的数据安全性。3.2 性能需求(1) 硬件环境在最低配置的情况下,系统的性能往往不尽如人意,现在的硬件性能已经相当出色,且价格也很便宜,因此通常给服务器端配置高性能硬件。处理器:Inter Pentium II 266 MX或更高内存:64MB硬盘空间:2GB显卡:SVGA显示适配器(2) 软件环境操作系统:Windows 98/ME/2000/NT数据库: MSQ3.3 全局分析用户需要输入用户名和密码进入人事考勤管理系统,对人事考勤管理系统的部门、员工的基本信

28、息进行维护和管理。在考勤管理模块中录入员工当天的考勤信息,同时可对年、月、员工进行查询。还可以通过考勤汇总查询对员工某月的考勤记录进行汇总,计算出员工月工作天数,早退、迟到的天数等。Use Case是对一个活动者使用系统的一项功能时所进行的交互过程的一个文字描述序列.在该Use Case图中只有顶层图,主要是考虑到考勤管理系统体积不大,做成一个顶层图会使得各用例间的关系更清晰.具体关系如图所示. 图3-1 考勤管理系统顶层Use Case全局分析第4章 系统软件设计4.1 系统设计预览4.1.1 系统设计目标与功能结构人事考勤管理系统以实现员工日常出勤信息管理为设计目标,加以强大的数据库管理功

29、能,可以方便对考勤信息进行管理,大大地提高了人事部门的日常工作效率。本系统在设计时应满足以下几点: 采用人机对话的操作方式,信息查询灵活、方便、快捷、准确、数据 存储安全可靠。对考勤信息的操作简单,可以方便的进行添加、修改、和删除,可以录入员工信息、部门信息。对员工的考勤信息可按月进汇总计算,对用户输入的数据,系统进行严格的数据检查,尽可能排除人为的错误。 系统最大限度的实现了易维护性和易操作性。统运行稳定、安全可靠。人事考勤系统功能结构如图4-1所示。 图4-1人事考勤系统功能结构4.1.2 业务流程图展示图4-2人事考勤系统业务流程图4.2 数据库设计4.2.1 数据库分析 人事考勤管理系

30、统使用了Microsoft SQL Sever 2000 数据库来满足系统的要求,数据库名称为tb_person,在数据库中创建4张表用于存储各种不同的信息,如图4-2所示 图4-2 数据库中的标2数据库逻辑结构设计下面给出人事考勤管理系统数据库中的主要表的表结构。Tab_User(管理员信息表):用于保存管理员的信息,如图4-3所示Tab_Dept(部门信息表):用于记录部门的信息情况,如图4-4所示Tab_Employees(员工信息表):用于保存公司员工信息,如图4-5所示Tab_check(考勤信息表):记录员工每天的考勤信息,如图4-6所示4.3 公共类的设计 本系统是使用ADO连接

31、数据库的,为了能更方便地在程序中使用ADO建立数据库连接与数据表的操作,就在公共类中对系统中所使用的ADO操作进行了封装。在该系统中建立了ADO的两个公共类CADOConnection和CADODataSet,这两个类定义在ADO.h头文件中,实现ADO.cpp文件中。4.3.1 CADOconnection类CADOConnection类是用来连接数据库的,实现了对_Connection接口的封装,CADOConnection类在头文件中的定义如下:#importmsado15.dll no_namespace rename(EOF,adoEOF)class CADOConnectionpr

32、ivate:Static void InitADO();Static void UnInitADO();protected:_ConnectionPtr m_Connection;public:BOOL IsOpen();_ConnectionPtr GetConnection();Cstring GetSQLConstr(CString IP,CString DBName);BOOL Open(CString ConStr);CADOConnection();VirtualCADOConnection();CADOConnection*GetConnection();CADOConnecti

33、on类的实现代码如下:定义两个全局变量ConCount和g_Connection,ConCount变量是一个整型变量,用起来记录在工程中所创建的CADOConnection类的实例个数。在构造方法中当此变量为0时调用CoInitialize函数实现OLE的初始化。在析构方法中当此变量为0时调用CoUninitialize方法取消OLE的初始化。Int ConCount = 0;CADOConnection g_Connection;GetConnection 函数是一个全局函数,用于返回全局数据库连接对象的指针,代码如下:CADOConnection*GetConnection()Return

34、 & g_Connection;CADOConnection方法是析构函数,用于初始化OLE和创建_Connection接口的指针实例,代码如下:CADOConnection:CADOConnection()InitADO();m_Connection.CreateInstance(ADODB.Connection);CADOConnection方法是析构函数,用于取消OLE初始化和释放_Connection接口的指针,代码如下:CADOConnection:CADOConnection()If(IsOpen();m_Connection-Close();m_Connection = NULL

35、;UnInitADO();InitADO方法是一个静态方法,用于初始化OLE,代码如下:Void CADOConnection:InitADO()If(ConCount + = 0)CoInitialize(NULL);UnInitADO方法是一个静态方法,用于取消OLE的初始化,代码如下:void CADOConnection:UnInitADO()if(ConCount = 0)CoUninitialize();Open方法通过指定的数据库连接字符串与SQL数据库建立连接,代码如下:BOOL CADOConnection:Open(CString ConStr)if(IsOpen()m_C

36、onnection-Close();m_Connection-Open(_bstr_t)ConStr,adModeUnknown);return IsOpen();GetSQLConStr方法用来生成与数据库连接所需要的连接字符串,代码如下:CString CADOConnection:GetSQLConStr(CString IP,CString DBName)CString Str;Str.Format(Provider = SQLOLEDB.1;Persist Security Info = False;User ID = sa;Initial Catalog = %s;Data Sou

37、rce = %s,DBName,IP);return Str;GetConnection方法用于返回_Connection接口指针,代码如下:_ConnectionPtr CADOConnection:GetConnection()return m_Connection:IsOpen 方法用来判断当前数据库连接对象与数据库的连接状态,代码如下:BOOL CADOConnection:IsOpen()long State;m_Connection-get_State(&State);if(State = adStateOpen)return true;return false;4.3.2 CAD

38、ODataSet类CADODataSet类是用来存储数据的数据集类,该类实现了_Recordset 接口的实例,该类在头文件中的定义如下:class CADODataSetprotected:_RecoedsetPtr m_DataSet;CADOConnection *m_Connectionpublic:void Delete();int GetRecordNo();void move(int nIndex);void Save();void SetFieldValue(CString FieldName,_variant_t Value);void AddNew();BOOL Next(

39、);FieldsPtr GetFields();int GetRecordCount();void SetConnetion(CADOConnection *pCon);BOOL Open(CString SQLStr);CADODataSet();virtual CADODataSet();private:BOOL IsOpen();CADODataSet方法为记录集实现类的构造方法,在该方法中实现记录集接口对象的创建,代码如下:CADODataSet:CADODataSet()m_DataSet.CreateInstance(ADODB.Recordset);CADODataSet类为记录

40、集实现类的构造方法,在该方法中实现记录集的关闭与接口的释放,代码如下:CADODataSet:CADODataSet()if(IsOpen()m_DataSet-Close();m_DataSet = NULL;m_Connection = NULL;SetConnection方法用来设置记录集所连接的数据库连接类的对象,代码如下:void CADODataSet:SetConnection(CADOConnection *pCon)m_Connection = pCon;GetRecordCount方法用来获取记录集中数据的数量,实现代码如下:int CADODataSet:GetRecor

41、dCount()if(IsOpen()return m_DataSet-GetRecordCount();elsereturn 0;Open方法通过SQL查询语句打开数据集,实现代码如下:BOOL CADODataSet:Open(CString SQLStr)if(IsOpen)m_DataSet-Close();IsOpen方法用来判断数据集是否处于打开状态,实现代码如下:BOOL CADODataSet:IsOpen()long State;m_DataSet-get_State(&State);if(State = adStateOpen)return true;return fals

42、e;GetFields方法用来获取记录集中字段的集合,实现代码如下:FieldsPtr CADODataSet:GetFields()return m_DataSet-GetFields();Next方法将记录指针下移一位,实现代码如下:BOOL CADODataSet:Next()if(m_DataSet-adoEOF)retuen false;m_DataSet-MoveNext();return true;AddNew方法用于记录集中添加一个新行,实现代码如下:void CADODataSet:AddNew()m_DataSet-AddNew();SetFieldValue方法用来向记录

43、集中指定的字段赋值,实现代码如下:void CADODataSet:SetFieldValue(CString FieldName,_variant_t Value0)m_DataSet-PutCollect(_bstr_t)FieldName,Value);Save方法用来保存对记录集中所做的任何数据更改,实现代码如下:void CADODataSet:Save()m_DataSet-Upsate();Move方法将记录集的当前指针移动到指定的索引位置,实现代码如下:void CADODataSet:Move(int nIndex)m_DataSet-MoveFirst();m_DataSe

44、t-Move(nIndex);GetRecordNo方法用来获取记录集中的当前行号,实现代码如下:int CADODataSet:GetRecordNO()return m_DataSet-AbsolutePositon;Delete方法用来删除记录集中的当前行,实现代码如下:void CADODataSet:Delete()m_DateSet-Delete(adAffectCurent);4.4 统主体窗的设计人事考勤系统主窗口由菜单和客户区域组成,其中,客户区域显示了一幅位图,主窗体效果如图4-3所示。主窗体设计步骤如下:(1) 启动Visual C+ 6.0,选择File/New命令,打

45、开New窗口,如图4-4所示。(2) 在New窗口左方的列表视图中选择MFC AppWizardexe选项,在Project name编辑框中输入工程名称,在Location编辑框中设置工程保存的路径。单击OK按钮进入MFC AppWizard-Step1窗口,如图4-5所示。(3) 单击Finish按钮完成工程的创建。(4) 向工程中导入一幅位图资源。(5) 创建一个菜单资源,并设置各个菜单项的ID和名称。(6) 通过类向导向主窗口添加菜单项的单击事件。4.5 系统模块设计4.5.1 用户登入模块设计用户登入模块是所有管理系统所应具备的基础模块之一,该模块实现了用户使用系统的检验工作,使没有

46、权限的用户不能使用该系统,增加了系统的安全性。用户登入界面如图4-6所示。用户登录窗体是整个系统中创建并显示的第一个窗体,所以该窗体应在主窗体创建前创建并显示。在登录窗体创建的同时应该创建数据库连接。这些操作都应在程序类的初始化方法中实现,该方法名为InitInstance,代码如下:BOOL CPersonApp:InitInstance()AfxEnableControlContainer();#ifdef_AFXDLLEnable3dControls();#elseEnable3dControlsStatic(); #endifLoadSkin();BOOLbCon=GetConnect

47、ion()-Open(GetConnection()-GetSQLConStr(127.0.0.1,tb_person);CLoginDialog logindlg;if(logindlg.DoModal()! = IDOK)return false;CPersonDlg dlg;m_pMainWnd =& dlg;int nResponse = dlg.DoModal();if(nResponse = IDOK)else if(nResponse = IDCANCEL)return FALSE; 创建一个对话框,打开对话框属性窗口,将对话框的ID改为IDD_DLGOGIN,将对话框标题改为“

48、登入”。想对话框中添加两个静态文本控件、一个编辑框控件、一个列表框控件和两个按钮控件。分别设置两个按钮的Caption属性为“确定”和“取消”。在窗体的初始化方法中创建用户表的数据集,并将用户名添加到列表控件中,实现代码如下:BOOL CLoginDialog:OnInitDialog()CDialog:OnInitDialog();m_DataSet.SetConnection(GetConnection();m_DataSet.Open(Select * From Tab_User);int count = m_DataSet.GetRecordCount();for(int i = 0;

49、i ItemLUserName-Value);m_DataSet.Next();m_UserList.SetCurSel(0);return TRUE;在“确定”按钮的事件中实现用户名和密码的检证,实现代码如下:void CLoginDialog:OnLogin()CString sql,user,pass;m_UserList.GetWindowText(user);m_passWord.GetWindowText(pass);sql.Format(Select * From tab_user Where UserName = %s and PassWord = %s,user,pass);

50、m_DataSet.Open(sql);if(m_DataSet.GetRecordCount() = 1):SetUserName(user);this-OnOk(); elseAfxMessageBox;4.5.2 用户管理模块设计用户管理模块实现了对系统登录用户的添加、修改和删除操作。用户管理模块的界面如图 4-7所示。在用户管理模块中使用CListCtrl控件显示用户信息,当对某一记录进行编辑或删除操作时必须获取一个与记录对应的标识,所以在对用户列表进行添加时利用列表视图控件SetItemData方法将记录集对应的行号添加到每一行对应的数据中。当对记录进行修改时即可通过获取对应的行号对

51、数据集中的数据进行修改。获取数据时使用列表视图控件中的GetItemData方法.创建一个对话框,打开对话框属性窗口,将对话框的ID改为IDD_DLGUSER,将对话框标题改为“用户管理”。向对话框中添加一个列表视图控件和4个按钮控件。列表视图控件的变量为m_grid,分别设置按钮控件的Caption属性为“添加”、“修改”、“删除”和“退出”。定义UpdateGrid方法,用来更新列表视图中显示的用户信息,实现代码如下:void CUserManage:UpdateGrid() m_DataSet.Open(Select * From tab_User); m_grid.DeleteAllI

52、tems(); for(int = 0;i ItemLUserName-Value);int no = m_DataSet.GetRecordNo();m_grid.SetItemData(i,no);m_DataSet.Next(); 向对话框中添加OnInitDialog方法,在对话框的初始化方法中添加列表视图控件应显示的列头,并在下拉列表视图控件中添加数据,代码如下:BOOL CUserManage:OnInitDialog() CDialog:OnInitDialog();m_grid.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDL

53、INES);m_grid.InsertColumn(0,用户名);m_grid.SetColumnWidth(0,150);m_DataSet.SetConnection(:GetConnection();UpdateGrid();return TRUE; 在“添加”按钮事件中弹出“用户编辑”窗体,输入用户名后单击“确定”按钮,实现对用户的添加,代码如下:void CUserManage:OnAppend() CUserEdit useredit;if (useredit.DoModal() = IDOK)m_DataSet.AddNew();m_DataSet.SetFieldValue(U

54、serName,(_bstr_t)useredit.name);m_DataSet.Save();UpdateGrid();在“修改”按钮事件中弹出“用户编辑”窗体,输入用户名后单击“确定”按钮实现对用户的修改,代码如下:void CUserManage:OnEdit() CUserEdit useredit;int no = m_grid.GetItemData(m_grid.GetSelectionMark();m_DataSet.move(no-1);useredit.name = (char *)(_bstr_t)m_DataSet.GetFields()-ItemLUserName-

55、Value;if (useredit.DoModal() = IDOK)m_DataSet.SetFieldValue(UserName,(_bstr_t)useredit.name);m_DataSet.Save();UpdateGrid();在“删除”按钮的单击事件中获取当前记录进行删除操作,代码如下:void CUserManage:OnDelete() if (MessageBox(是否删除此记录!,提示,MB_YESNO|MB_ICONWARNING) = IDYES)int no = m_grid.GetItemData(m_grid.GetSelectionMark();m_Da

56、taSet.move(no-1);m_DataSet.Delete();m_DataSet.Save();UpdateGrid();4.5.3 部门管理模块设计部门管理记录了部门间的层次结构和部门信息,所以通常部门管理窗体中对于部门的显示是使用树列表显示的。部门管理界面如图4-8所示。由于部门通常都是存在层次级别的,所以在设计数据表结构时应至少创建3个字段,即“编号”、“父编号”和名称。而在程序中显示部门信息时也根据“父编号”作为查询条件不断地查找下一级的部门。在本系统中,由于部门信息通常不会太多,所以可以用嵌套的方式将部门信息一次性地读入树列表视图控件中,实现代码如下:void CDeptM

57、anage:GetNode(HTREEITEM pNode,int nPid)HTREEITEM node;CADODataSet DataSet;DataSet.SetConnection(:GetConnection();CString str;str.Format(Select * From tab_Dept where pid = %d,nPid );DataSet.Open(str);int count = DataSet.GetRecordCount();int ID;_variant_t value;for(int i = 0;i ItemDeptName-Value,pNode

58、);value = (_vaiant_t)DataSet.GetFields()-ItemID-Value;ID = value.intVal;m_tree.SetItemData(node,ID);GetNode(node,ID);DataSet.Next();创建一个对话框,打开对话框属性窗口,将对话框的ID改为IDD_DLGDEPT,将对话框标题改为“部门管理”。向对话框中添加一个树列表控件、4个按钮控件,分别设置按钮控件的Caption属性为“添加”、“修改”、“删除”和“退出”。定义GetNode方法用来按层次关系获取部门表中的所有数据,并添加到树列表控件中。该方法由UpdateDe

59、pt方法进行调用,实现代码如下:void CDeptManage:UpdateDept()m_tree.DeleteAllItems();GetNode(TVI_ROOT,0);void CDeptManage:GetNode(HTREEITEM pNode,int nPid)HTREEITEM node;CADODataSet DataSet;DataSet.SetConnection(:GetConnection();CString str;str.Format(Select * From tab_Dept where pid = %d,nPid);DataSet.Open(str);int count = DataSet.GetRecordCount();int ID;_variant_t value;for (int i = 0;iItemDeptName-Value,pNode);value = (_variant_t)DataSet.GetFields()-ItemID-Value;ID = value.intVal;m_tree.SetItemDa

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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