视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
毕业设计论文—考勤管理系统的设计与实现-精品
2025-09-30 22:56:13 责编:小OO
文档
河南农业大学华豫学院本科毕业论文(设计) 摘  要 在现代化企业中,企业员工的考勤工作不仅工作量大,而且时效性强。随着数据库技

术的发展和企业信息化建设的进行,使用计算机管理企业考勤工作也成为大势所趋,它为

企业的考勤工作节约了大量的人力和物力,也大大减轻了考勤工作人员的工作量。 

考勤管理系统是企业对考勤实行了信息化管理,其目的是为了实现员工考勤数据采

集、信息查询和数据统计过程的自动化,完善人事管理现代化,方便管理人员统计、考核

员工出勤情况,计算员工工资。 

 关键词

关键词关键词

关键词:考勤管理,Access2007,数据库,VC++  

Abstract In the corporations today, employees' job of check on work attendance not only workload is 

very large, but also time is very strong. Along with development of database technology and 

progress of corporation information's building, using computer to manage check on work 

attendance of corporations which it is necessary. It saves a mass of manpower and material 

resources and greatly lightens workload of employees. 

Attendance Management System is a business-to-appraisal of the implementation of 

information management, which aims is designed to achieve staff attendance data collection, 

information query and statistical process automation, improve personnel management 

modernization, and the convenience of staff to report to work, facilitate management statistics, 

the examination staff attendance. 

 Key words: attendance, Access2007, database,VC++  

 

 

 

 河南农业大学华豫学院本科毕业论文(设计) 目  录 0 绪论 ........................................................................................................................................... 1 

1 系统目标及使用软件介绍 ....................................................................................................... 1 

1.1 系统目标 ......................................................................................................................... 1 

1.2 使用软件的介绍 ............................................................................................................. 1 

2 可行性研究及设计思想 ........................................................................................................... 2 

2.1 可行性研究 ..................................................................................................................... 2 

2.2 开发设计思想 ................................................................................................................. 3 

3 需求分析 ................................................................................................................................... 3 

3.1 用户需求分析 ................................................................................................................. 3 

3.2 数据分析--概念模型设计 ......................................................................................... 3 

3.2.1 数据描述 ............................................................................................................... 3 

3.2.2 数据库建模 ........................................................................................................... 4 

3.2.3 关系描述的设计 ................................................................................................... 5 

4 系统设计 ................................................................................................................................... 6 

4.1  Access2007数据库的建立 ........................................................................................... 6 

4.2 数据库连接 ..................................................................................................................... 7 

4.3 数据库操作 ..................................................................................................................... 8 

4.4 各个模块的设计与实现 ................................................................................................. 9 

5 主要技术 ................................................................................................................................. 15 

5.1 主要控件代码 ............................................................................................................... 15 

5.2 ADO数据库访问技术 ................................................................................................. 16 

6 结束语 ..................................................................................................................................... 17 

致  谢 ....................................................................................................................................... 18 

参考文献 ....................................................................................................................................... 18  

 河南农业大学华豫学院本科毕业论文(设计) 

1 0

 

  

 绪论 

当今社会,资金是企业生存的主要元素,资金的流动影响到企业的整体运作,企业员

工的工资是企业资金管理的一个重要的组成部分。而随着企业人员数量的增加,企业的工

资管理也变得越来越复杂。企业员工的人数越多,工资的统计工作就越多,工资的发放困

难就越大。 

传统的纸张材料的数据信息管理方式已经不适合现代企业的发展,实现工资管理的系

统化、规范化、自动化,将成为现代公司管理工资的首选。随着计算机的诞生和普及以及

计算机网络的发展,我们可以开发一个工资管理系统,用计算机代替大量的人工统计和计

算,完成许多工资信息的处理,同时,使用计算机还可以安全地、完整地保存大量的工作

记录。 

1 系统目标及使用软件介绍 

1.1 系统目标 

系统需符合考勤工资管理制度,并达到操作直观、方便、实用、安全等要求。能够提

供详细的员工基础信息,包括自然条件信息、工资情况、来源、去向、岗位变动情况。能

够随时查阅在职、非在职人员信息,提供出职工花名册,同时为财务部提供人员变动单及

月基本工资汇总情况等。针对这些要求,系统建立了职工信息查询、职工信息删除、职工

工资信息管理、职工工资信息查询4个主要信息库。系统根据增减人员、工资变动操作自

动生成记录记载变动内容,以便用户查询其变动过程。实现了对员工信息的查询、统计、

增减、变动记录等功能。 

1.2 使用软件的介绍 

(1) 应用程序开发工具 

微软公司的VC++6.0是Windows应用程序开发工具,是目前最为广泛的、易学易用

的面向对象的开发工具。VC++6.0提供了大量的控件,这些控件可用于设计界面和实现各

种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序

的运行效率和可靠性。故而,实现本系统VC是一个相对较好的选择[1]。

  

VC++6.0编程语言是一个面向对象的集成开发系统。它简单、高效的特点使它成为编

程者的最爱。它提供了灵活的可视化设计工具,将可视化界面与面向对象技术完善、紧密

地结合起来,其友好的集成开发界面,可视化的双向开发模式,良好的数据库应用支持高

效的程序开发和程序运行,备受广大程序开发人员的好评。采用Access 2007数据库环境

开发,可缩短开发周期,提高开发效率的特点。对系统的软硬件要求也低,减少用户的资

金投入[2]。  河南农业大学华豫学院本科毕业论文(设计) 

2 (

2) 关系型数据库的选择 

Access2007 就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。

Access 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类

似于 Excel 的电子表格,可以使数据库一目了然[3]。另外,

Access 允许创建自定义报表用

于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把

数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access 是一种关系数据库

工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access 作为关系数据库开

发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大

功能。  

2 可行性研究及设计思想 

2.1 可行性研究 

(1) 技术可行性 

随着国内软件开发的日益发展壮大,各种中小企事业单位已具备开发各种类型的

软件的能力,能够满足不同行业的特别的需求。而这个系统尽管其在组织关系上存在着很

大的复杂性,繁琐性,但是就整个系统的技术构成上来看,它还是属于一个数据库应用类

的系统。其基本操作还是对存在数据库进行添加、删除、查找、编辑等。所以就单纯的数

据库应用来看,暂不存在太大的技术问题。 

(2) 经济可行性 

对于整个系统而言,在系统未运行之前,初期投资比较大,花费相对而言比较多。各

部门必须配置电脑、服务器、打印机、传真机及相关的网络设备,但是在整个系统投入运

行之后,因为现在计算机已经普及了,相关的人员培训费可以减少很多。而同时又减少了

数据的流通环节,不必要花费那么多的时间,也就是说最重要的就是提高了效率,而又保

证了各项数据的准确性,也避免了工作人员的流动造成的收据丢失等问题,适应了当前的

发展形式。 

(3) 管理可行性 

随着时代的发展,人员素质的提高,不论是对于电脑系统的基本操作还是对于系统的

维护都有了一定的基础。同时还可以配置专业的电脑维护人员来维护电脑,不必担心电脑

故障问题。

 (4) 开发环境可行性 

我采用的VC++6.0开发工具,它首先是一个开放的协作式系统,可以和多种PC产品

集成,并可以通过专用接口或ODBC接口连接许多比较常用的数据库;其次它具有可视化河南农业大学华豫学院本科毕业论文(设计) 

3 的开发环境,使代码的编写更为直观,并且在可视化环境下的调试和维护也相对容易。而

为方便用户界面的开发,VC++6.0提供了大量控件,这既丰富了应用程序的表达能力,也

加快了项目的开发速度。同时,它拥有多平台的开发环境,如果需要把一个平台上开发的

代码移植到另外一个平台上,只要重新编译就可以了。 

2.2 开发设计思想 

本系统开发设计思想: 

(1) 尽量利用企业现有软件环境,采用先进的管理系统方案,从而达到充分利用

企业现有资源,提高系统开发水平和应用效果的目的。 

(2) 系统应符合企业工资管理的规定,满足企业相关人员日常使用的需要,并达

到操作过程的直观、方便、实用、安全等要求。 

(3) 系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于

技术维护人员进行补充、维护。 

(4) 系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修

改、备份等操作。 

3 需求分析 

3.1 用户需求分析 

随着社会现代化的发展,单位日常管理相关的信息随之急剧增加,传统的人力手工管

理模式越来越不能适应现在的工作效率和准确性。在这个高节奏的信息时代,安全、准确

的管理信息系统是每个管理者所需求的。建立一个适应现代化社会经济的管理信息系

统势在必行。  

在大量地调查和研究的基础上,包括访问用户,了解财务系统模型,熟悉现有的工作

流程和数据流程等工作,采集和分析有关资料和、报表和业务规定,进行了财务管理软件

的开发。在整个系统的设计和开发过程中,积极采纳最终用户的意见。对于开发财务管理

系统进行了认真仔细的分析,在实施过程中不断地加以修改和完善,使这套财务管理系统

能更好地运行。  

该系统的具体任务就是设计一个电脑公司财务的数据库管理系统,由计算机来代替人

工执行一系列诸如增加、删除、修改、查询、统计及打印等操作。这样就使办公人员以轻

松快捷地完成财务管理的任务。  

3.2 数据分析--概念模型设计 

3.2.1 数据描述 

(1) 静态数据 河南农业大学华豫学院本科毕业论文(设计) 

4 静态数据是系统内部有关的数据结构与操作规程。

 

具体可包括:员工基本信息表(PersonInfo)、员工工种情况表(Department)、员工考

勤情况表(Attendance)、员工缺勤情况表(Absent)、员工加班情况表(Duty)、部门表(Dept)、

工资表(PersonPay)。 

(2) 动态数据 

动态数据包括程序运行时输入和输出的数据,具体是数据库的各个表的各个不同元组

与属性值.  

(3) 数据库描述 

根据上面的分析就可以设计出能够满足用户需求的各种数据实体,以及它们之间的关

系,为后面的逻辑结构设计打下基础,这些实体包括各种具体信息,通过相互之间的作用

形成数据的流动。 

概念型数学模型是一种面向问题的数学模型,是按用户的观点来对数据和信息建模。

最常用的表示概念数据模型的方法是实体--联系方法(Entity--Relationship 

Approach)。这种方法用E-R图描述现实世界中的实体,而不涉及这些实体在系统中的实

现方法,该方法又称E-R模型。E-R图有三种符号:实体、属性和联系。通常实体

用矩形来表示,属性用椭圆或圆角矩形来表示,联系用菱形来表示[4]。联系又分为一对一、

一对多和多对多三种类型。 

3.2.2 数据库建模 

经过上面的分析,能够提取出以下几个实体:员工、工种、考勤情况、月工资等。它

们的实体图如图3.1至3.2所示。 

 

 

 

 

 

 

 

 图

3.1 员工信息实体图  

 员

     工 

员工姓名 

性别 

员工编号 

所在部门 

所属工种 河南农业大学华豫学院本科毕业论文(设计) 

5  

 

 

 

 

 图

3.2 工种实体图 3.2.3 关系描述的设计 

根据以上各实体图和考勤管理系统的E-R图,经过转换,可以得出各个关系。其转

换规则为:首先每个实体应转化为一个关系,有属性的联系也应转化为一个关系,然后需

要给出每个关系的关键字。根据以上规则,直接给出所有关系。 

员工基本信息(PersonInfo),见表3.1。 表

表表

表3.1 

  

 员工基本信息

员工基本信息员工基本信息

员工基本信息 

员工编号

员工编号员工编号

员工编号 员工姓名

员工姓名员工姓名

员工姓名 性别

性别性别

性别 所在部门

所在部门所在部门

所在部门 所属工种

所属工种所属工种

所属工种 工种编号

工种编号工种编号

工种编号 

PersonID PersonName PersonSex Dept Job DeptNO  

部门信息(Department),见表3.2。 表

表表

表3.2 

  

 部门信息

部门信息部门信息

部门信息 

工种编号

工种编号工种编号

工种编号 所在部门

所在部门所在部门

所在部门 工种名称

工种名称工种名称

工种名称 基本工资

基本工资基本工资

基本工资 

DeptNO Dept Job Pay 员工考勤情况(

Attendance),见表3.3。 表

表表

表3.3 

  

 员工考勤信息

员工考勤信息员工考勤信息

员工考勤信息 

员工编号

员工编号员工编号

员工编号 员工姓名

员工姓名员工姓名

员工姓名 执勤天数

执勤天数执勤天数

执勤天数 加班天数

加班天数加班天数

加班天数 缺勤天数

缺勤天数缺勤天数

缺勤天数 所在月份

所在月份所在月份

所在月份 

PersonID PersonName AtDays DutyDays AbDays AtMonth 员工缺勤情况(

Absent),见表3.4。 表

表表

表3.4 

  

 员工缺勤情况

员工缺勤情况员工缺勤情况

员工缺勤情况 

员工编号

员工编号员工编号

员工编号 员工姓名

员工姓名员工姓名

员工姓名 缺勤天数

缺勤天数缺勤天数

缺勤天数 请假类型

请假类型请假类型

请假类型 所在月份

所在月份所在月份

所在月份 备注

备注备注

备注 扣除工资

扣除工资扣除工资

扣除工资 

PersonID PersonName AbDays AbReason AbMonth AbRemarks AbPay 员工加班情况(

Duty),见表3.5。 

 

 工

    种 

工种编

号 

部门名

称 

工种名

称 

基本工

资 河南农业大学华豫学院本科毕业论文(设计) 

6 表

表表

表3.5 

  

 员工加班情况

员工加班情况员工加班情况

员工加班情况 

员工编号

员工编号员工编号

员工编号 员工姓名

员工姓名员工姓名

员工姓名 加班天数

加班天数加班天数

加班天数 所在月份

所在月份所在月份

所在月份 加班工资

加班工资加班工资

加班工资 

PersonID PersonName DutyDays DuMonth DutyPay 员工工资信息(

PersonPay),见表3.6。 表

表表

表3.6 

  

 员工

员工员工

员工工资

工资工资

工资信息

信息信息

信息 

员工编号

员工编号员工编号

员工编号 员工姓名

员工姓名员工姓名

员工姓名 工种

工种工种

工种 

编号

编号编号

编号 

基本工资

基本工资基本工资

基本工资 加班

加班加班

加班 

工资

工资工资

工资 

扣除

扣除扣除

扣除 

工资

工资工资

工资 

总工资

总工资总工资

总工资 月份

月份月份

月份 

PersonID PersonName DutyNO BasePay DutyPay AbPay SumPay PMonth 在得出以上关系后,根据关系数据库的理论要求,需要对所有关系进行关系规范化,

至少要求各个关系达到第三范式的要求,按照第三范式的要求对比以上各个关系,在所有

关系中都不存在非主属性对关键字的部分依赖,即满足第三范式。 

4 系统设计 

4.1  Access2007数据库的建立 

为了在操作过程中使用数据的方便,选用Access作为数据库,启动Access建立一个

空白的数据库: 

(1) 打开Access2007,点击【空白数据库】,为数据库命名Attendance,选择好存

储路径,单击创建,如图4.1所示。 图

4.1 数据库创建图 河南农业大学华豫学院本科毕业论文(设计) 

7 (

2) 在工资数据库中创建部门信息表,月工资表,管理员,考勤记录,员工信息

表等表,如图4.2所示。 图

4.2 考勤数据库图 

4.2 数据库连接 

首先,需要在stdafx.h中添加如下代码: 

#import "C:\\Program Files\\Common Files\\System\\ado\\msado15.dll" no_namespace 

rename("EOF

然后,在CAttendanceApp中的InitInstance函数下添加如下代码: 

AfxOleInit(); 

HRESULT hr; 

m_pConnection.CreateInstance(__uuidof(Connection)); 

try 

m_pConnection->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data 

Source=Attendance.mdb"; 

m_pConnection->ConnectionTimeout=10;

hr=m_pConnection->Open("

 if(hr!=S_OK) 河南农业大学华豫学院本科毕业论文(设计) 

8   AfxMessageBox("

无法连接到数据库,请确定数据库路径正确!"); 

catch(_com_error e) 

 CString errormessage; 

 errormessage.Format("连接数据库失败!\\r\\n错误信息:%d",e.ErrorMessage()); 

 AfxMessageBox(errormessage);///显示错误信息 

 } 

利用extern CAttendanceApp theApp; 在所有的操作页面类中声明一个外部的对象,就

可以对数据库进行操作了。 

4.3 数据库操作 

要对数据库进行操作,首先需要声明一个数据集,以便用它操作,例如: 

_RecordsetPtr   m_pRecPer;       

m_pRecPer.CreateInstance(__uuidof(Recordset));    ///进行实例化... 

打开指定记录集: 

try 

m_pRecPer->Open("select*fromPersonInfo",_variant_t((IDispatch*)theApp.m_pConne

ction,true),adOpenDynamic,adLockOptimistic,adCmdText); 

catch(_com_error e) 

 CString str; 

 str.Format("数据库打开失败!\\r\\n错误信息:%s",e.ErrorMessage); 

 AfxMessageBox(str); 

向表中添加信息(打开记录集方法同上,更换所需要的SQL语句即可): 

m_pRecPer->AddNew();

m_pRecPer->PutCollect("PersonID",(_variant_t)(dlg.m_strNO)); 

m_pRecPer->PutCollect("PersonName",(_variant_t)(dlg.m_strName));

m_pRecPer->PutCollect("PersonSex",(_variant_t)(strSex)); 河南农业大学华豫学院本科毕业论文(设计) 

9 m_pRecPer->PutCollect("Dept",(_variant_t)(dlg.m_strDept));

m_pRecPer->PutCollect("Job",(_variant_t)(dlg.m_strJob));

m_pRecPer->Update();

m_pRecPer->Close();

修改表中信息: 

m_pRecPer->PutCollect("PersonID",(_variant_t)(dlg.m_strNO));

m_pRecPer->PutCollect("PersonName",(_variant_t)(dlg.m_strName));

m_pRecPer->PutCollect("PersonSex",(_variant_t)(strSex));

m_pRecPer->PutCollect("Dept",(_variant_t)(dlg.m_strDept));

m_pRecPer->PutCollect("Job",(_variant_t)(dlg.m_strJob));

m_pRecPer->Update();

m_pRecPer->Close();

删除选中信息: 

m_pRecPer->Delete(adAffectCurrent);

m_pRecPer->Update();

m_pRecPer->Close();

4.4 各个模块的设计与实现 

(1) 登陆模块 

系统登录模块用于验证用户登录系统时输入的用户名,密码是否正确,只有合法的用

户才可以进入系统。 

为了实现此功能,需要在数据库中加入表Login,表内容见表4.1: 表

表表

表4.1 

  

 Login表内容

表内容表内容

表内容 

字段名称

字段名称字段名称

字段名称 数据类型

数据类型数据类型

数据类型 必填字段

必填字段必填字段

必填字段 相关属性

相关属性相关属性

相关属性 备注

备注备注

备注 

ID 

自动编号 是 

-- 

主键 

userName 

文本 否 字段大小=12 用户名 

userPassword 

文本 否 字段大小=16 密码 实现验证用户名,密码功能的代码如下:

 

 CString strName; 

 strName.Format("select userPassword from Login where userName='%s'",m_strName); 

 BSTR bstrSql=strName.AllocSysString(); 

 try 河南农业大学华豫学院本科毕业论文(设计) 

10  { 

m_pRecordset->Open(bstrSql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpen

Static,adLockOptimistic,adCmdText); 

 } 

 catch(_com_error e) 

 { 

  CString strOpen; 

  strOpen.Format("数据库打开失败!\\r\\n错误信息:%d",e.ErrorMessage); 

  AfxMessageBox(strOpen); 

 } 

if(!m_pRecordset->adoEOF)

 { 

  if(m_strPass==(_bstr_t)m_pRecordset->GetCollect("userPassword"))

   CDialog::OnOK(); 

  else 

   AfxMessageBox("密码不正确!"); 

 } 

 else 

  AfxMessageBox("该用户不存在!"); 

该系统还实现了注册新用户的功能,在系统菜单下有注册新用户选项卡,点击注册新

用户,即可注册新用户,如图4.3 河南农业大学华豫学院本科毕业论文(设计) 

11  图

4.3 新用户注册 点击后弹出注册窗口,实现注册新用户代码如下: 

 CString str; 

 str.Format("select * from Login where userName='%s'",m_strName); 

 BSTR bstrSql=str.AllocSysString(); 

 try 

 { 

m_pRecordset->Open(bstrSql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpen

Dynamic,adLockOptimistic,adCmdText); 

 } 

 catch(_com_error e) 

 { 

  AfxMessageBox(e.ErrorMessage()); 

 }  

if(m_pRecordset->adoEOF)

 { 

  try 

  { 

m_pRecordset->AddNew(); 河南农业大学华豫学院本科毕业论文(设计) 

12 m_pRecordset->PutCollect("userName",(_variant_t)(m_strName));

m_pRecordset->PutCollect("userPassword",(_variant_t)(m_strPass));

m_pRecordset->Update();

  } 

   catch(_com_error e) 

   { 

    AfxMessageBox(e.ErrorMessage()); 

   } 

   AfxMessageBox("新用户注册成功!"); 

   CDialog::OnOK(); 

  } 

  else 

   AfxMessageBox("该用户名已存在!"); 

新用户注册成功后会提示"新用户注册成功!",可以利用重新登录来检测是否注册成

功。 

(2) 员工信息模块 

员工信息模块可以显示员工基本信息,并可以增加新的员工信息并对需要修改或删除

的员工信息加以修改、删除,在删除的同时还需要把其他表单中相应的员工记录删除。 

点击数据选择菜单下的员工信息,就可以弹出员工信息模块,如图4.4所示 河南农业大学华豫学院本科毕业论文(设计) 

13  图

4.4 员工信息界面 在该模块中含有添加、修改、删除以及通过编号查询和通过姓名查询的功能,点击添

加按钮会弹出相应的添加窗口,在选中记录之后点击修改(删除)按钮会弹出相应的修改

窗口(确认删除的提示),如果没有选择记录,则会有"请选择需要修改(删除)的记录"

的提示。 

该模块的编写需要注意以下几点: 

① 添加新记录时需确定要添加的员工信息在员工信息表中没有记录。 

② 确定新员工信息的部门、工种及工种编号在部门信息中存有记录。 

③ 删除记录时需同时删除员工在考勤表,工资表的对应记录,并在删除的时候会有

是否删除的确定提示。 

(3) 部门信息模块 

该模块显示了工种编号、部门名称、工种名称以及基本工资,并可以对其进行添加和

修改,同时也能根据部门名称和部门编号进行查询操作。 

点击数据选择下的部门信息菜单,便可弹出相应的部门信息窗口。 

(4) 考勤信息模块 

该模块实现了考勤信息的显示及查询,查询分为姓名查询、编号查询、按年查询和按

月查询四种方式,当填写好年月,并输入姓名(或编号),点击姓名(或编号)下的查询河南农业大学华豫学院本科毕业论文(设计) 

14 按钮,便可查询该姓名(或编号)的员工在该年月下的考勤信息。

 

点击数据选择菜单下的考勤信息,可弹出如图4.5的考勤信息界面。 

 图

4.5 考勤信息界面 需要注意的是,该模块并不具备添加、修改功能,添加新纪录时,需要先在缺勤信息

内添加当月的缺勤纪录(如果当月没有缺勤纪录,可添加缺勤天数为0),再在加班信息中

添加当月的加班天数(没有加班可以不进行填写,系统会默认为0)。 

(5) 缺勤记录模块及加班记录模块 

缺勤记录模块用于实现对员工执勤情况的管理,通过在该模块下添加、修改员工执勤

记录可相应修改员工在考勤信息及工资信息中的相应数据。点击考勤记录菜单下的缺勤记

录选项,可弹出如图4.6的缺勤记录界面。 

该模块的编写需要注意以下几点: 

① 添加新记录时需要先确定该员工是否在员工信息中有记录,在确定该员工的当月

记录是否已经添加在缺勤记录表中。 

② 添加新记录的同时需要在考勤信息和工资信息中添加相应的记录。 

③ 修改一条记录时也需要在考勤信息和工资信息中修改相应的记录。 

加班记录模块用于实现对员工加班情况的管理,编写方法及注意事项和缺勤模块基本

一致,通过点击考勤记录菜单下的加班记录选项,便可弹出加班记录的界面。 河南农业大学华豫学院本科毕业论文(设计) 

15  图

4.6 缺勤信息界面 (6) 工资信息模块 

该模块用于显示员工工资信息,并实现姓名查询、员工编号查询、工种编号和按月查

询以及数据导出的功能,选择数据选择菜单下的工资信息,便可弹出相应的工资信息界面,

其实现方法与考勤信息模块基本一致。 

5 主要技术 

我的程序是采用Visual  C++完成,所用的技术是C++的数据库编程,选用的数据库

是MicroSoft 的 Access 2007, 整个制作过程用了两个月,有不少地方做的不好(例如界

面不太美观),需要进一步的完善才行,不足之处请老师见谅。 

5.1 主要控件代码 

 关于下拉列表框的使用,向下拉列表框中添加数据,以月份为例,代码如下: 

for(int i=1;i<13;i++)

 { 

  CString strI; 

  strI.Format("%d",i); 

((CComboBox*)GetDlgItem(IDC_COMBO_M))->AddString(strI);

 } 河南农业大学华豫学院本科毕业论文(设计) 

16  

关于列表控件的使用,设置列表控件表头,以员工信息为例,代码如下: 

m_listPerson.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);   

 m_listPerson.InsertColumn(0,"员工编号",LVCFMT_LEFT,80);      

 m_listPerson.InsertColumn(1,"员工姓名",LVCFMT_LEFT,80); 

 m_listPerson.InsertColumn(2,"性别",LVCFMT_LEFT,60); 

 m_listPerson.InsertColumn(3,"所在部门",LVCFMT_LEFT,80); 

 m_listPerson.InsertColumn(4,"所属工种",LVCFMT_LEFT,80); 

 m_listPerson.InsertColumn(5,"工种编号",LVCFMT_LEFT,80); 

 向列表控件中添加数据库信息,以添加员工信息为例: 

while(!m_pRecPer->adoEOF)

 { 

  try 

  { 

 m_listPerson.InsertItem(0,_bstr_t("")); 

m_listPerson.SetItemText(0,0,(_bstr_t)m_pRecPer->GetCollect("PersonID"));

m_listPerson.SetItemText(0,1,(_bstr_t)m_pRecPer->GetCollect("PersonName")

m_listPerson.SetItemText(0,2,(_bstr_t)m_pRecPer->GetCollect("PersonSex")) 

m_listPerson.SetItemText(0,3,(_bstr_t)m_pRecPer->GetCollect("Dept"));

m_listPerson.SetItemText(0,4,(_bstr_t)m_pRecPer->GetCollect("Job"));

m_listPerson.SetItemText(0,5,(_bstr_t)m_pRecPer->GetCollect("DeptNO"));

 m_pRecPer->MoveNext();

  } 

  catch(_com_error e) 

  { 

   CString strerror; 

   strerror.Format("数据库导出失败!\\r\\n错误信息:%s",e.ErrorMessage); 

   AfxMessageBox(strerror); 

  } 

 } 

5.2 ADO数据库访问技术 

尽管应用程序仍可使用Visual C++ 6.0中的ODBC和RDO,但Microsoft还是推荐将河南农业大学华豫学院本科毕业论文(设计) 

17 ADO

作为新应用程序的数据访问方法。 

所有这些数据访问方法都是COM接口,可在不同工具中使用,但是,它们之间还是

有几点主要区别: 

(1) ADO是访问OLE DB中所有类型数据的对象模型。 

诸如Visual Basic、Java、Visual C++ 6.0、VBScript和Jscript的语言都可使用ADO,

然后通过其访问任何OLE DB源中的数据。ADO可用来访问关系数据,以及E-Mail或电

子表格中含有的数据。 

(2) RDO是访问ODBC中关系数据的对象模型。 

RDO可使Visual Basic开发人员访问ODBC数据时不需编写ODBC API代码。RDO

是针对ODBC API的一种COM接口,可在程序设计对象模型中提供ODBC的功能。它的

作用是可使用那些使用了复杂的查询引擎的数据库服务器程序,例如,SQL Server和

Oracle。 

(3) DAO是通过访问Jet本地或SQL数据的对象模型。 

DAO是三种数据访问方法中最早的一种方法。使用DAO,可访问Microsoft Jet数据

库、Microsoft Jet-connected ODBC数据库和可安装的索引序列访问方法(indexed sequential 

Access method,ISAM)数据源,例如FoxPro、Paradox、Lotus 1-2-3中的数据。同新型的

ADO和RDO技术相比,DAO是速度相对较慢、功能较少的数据访问方法。DAO,与其

同伴Microsoft Jet数据引擎相似,最初是为支持ISAM数据访问而设计的。 

综上所述,ADO具有以下特点: 

(1) ADO可访问各种类型的数据,而RDO和DAO只能访问关系数据。 

(2) ADO对象模型没有RDO或DAO那么复杂,易于使用,需要代码也较少。 

(3) ADO结合了RDO和DAO最好的性能,最终将取代它们。 

(4) ADO是Microsoft工具使用的标准数据访问对象模型[5]。 6

 结束语 

通过本次毕业设计实践,我不仅加深了对Visual C++ 6.0  程序设计工具的熟悉,加深

了对Access 2007的认识;而且还学到了一些有关考勤管理系统开发方面的知识。体会了软

件开发的基本过程,这为我今后在该领域上的应用奠定了基础。 

在指导老师毛晓菊的引导和帮助下,通过几个月的设计和开发,企业考勤管理管理系

统基本开发完毕。其功能基本符合用户需求,能够完成职工基本信息、工资输入和统计。

以及各类查询。并提供部分系统维护功能,使用户方便进行数据备份和恢复、数据删除。同

时也考虑到了单位编码以减少数据冗余的问题,对于数据的一致性的问题也通过程序进行河南农业大学华豫学院本科毕业论文(设计) 

18 了有效的解决。

 

但是,在开发过程中,由于平时在软件开发方面的实践太少,因而重复工作太多。又

由于时间和技术水平的,本软件的部分功能还有不尽人意的地方,请老师和同学多提

宝贵意见,以使我在今后的工作中进一步完善。我将不胜感激! 致  谢

 在论文完成之际,谨向所有关心和帮助过我的人表示最衷心的感谢。 

首先感谢我的导师毛晓菊老师,感谢她在学业上对我孜孜不倦的教诲和悉心指导,她

那种严谨的治学态度、永无止境的追求、忘我的工作热情、平易近人的为人风格和为教育

事业无私奉献的高尚品德将不断地鞭策和激励我,我将在今后的工作和学习中积极向上、

努力进取、以实际行动报答她对我的培养和教育。 

感谢河南农大华豫学院计算机科学与技术学院的领导及所有老师对我的培养,尤其感

谢导师***在我论文撰写过程中给予我很大的帮助;感谢所有曾给予我帮助的好友和同学;

最后,感谢父母和家人一直的大力支持。 参考文献

 [1] 丁有和,郑进,周怡君.Visual C++实用教程[M].北京:电子工业出版社.2008:334-369. 

[2] 侯奇峰,李晓华,李莎.Visual C++数据库通用模块开发与系统移植[M].北京:清华

大学出版社.2007:207-405. 

[3] 郭玲文,丁永卫,张忠将等.中文版Access2007循序渐进教程[M].北京:科学出版

社.2008:1-73. 

[4] 王珊,萨师煊.数据库系统概论(第四版)[M].北京:高等教育出版社.2008:263-330. 

[5] Peter.Rob

,Elie.Semaan.数据库设计与开发[M].北京:电子工业出版社.2005:9-26. 

更多专业考试资料尽在我的主页

专业文档尽在我主页下载本文

显示全文
专题