MFC程序设计考勤系统Word文档下载推荐.docx

上传人:b****4 文档编号:8162676 上传时间:2023-05-10 格式:DOCX 页数:53 大小:716.35KB
下载 相关 举报
MFC程序设计考勤系统Word文档下载推荐.docx_第1页
第1页 / 共53页
MFC程序设计考勤系统Word文档下载推荐.docx_第2页
第2页 / 共53页
MFC程序设计考勤系统Word文档下载推荐.docx_第3页
第3页 / 共53页
MFC程序设计考勤系统Word文档下载推荐.docx_第4页
第4页 / 共53页
MFC程序设计考勤系统Word文档下载推荐.docx_第5页
第5页 / 共53页
MFC程序设计考勤系统Word文档下载推荐.docx_第6页
第6页 / 共53页
MFC程序设计考勤系统Word文档下载推荐.docx_第7页
第7页 / 共53页
MFC程序设计考勤系统Word文档下载推荐.docx_第8页
第8页 / 共53页
MFC程序设计考勤系统Word文档下载推荐.docx_第9页
第9页 / 共53页
MFC程序设计考勤系统Word文档下载推荐.docx_第10页
第10页 / 共53页
MFC程序设计考勤系统Word文档下载推荐.docx_第11页
第11页 / 共53页
MFC程序设计考勤系统Word文档下载推荐.docx_第12页
第12页 / 共53页
MFC程序设计考勤系统Word文档下载推荐.docx_第13页
第13页 / 共53页
MFC程序设计考勤系统Word文档下载推荐.docx_第14页
第14页 / 共53页
MFC程序设计考勤系统Word文档下载推荐.docx_第15页
第15页 / 共53页
MFC程序设计考勤系统Word文档下载推荐.docx_第16页
第16页 / 共53页
MFC程序设计考勤系统Word文档下载推荐.docx_第17页
第17页 / 共53页
MFC程序设计考勤系统Word文档下载推荐.docx_第18页
第18页 / 共53页
MFC程序设计考勤系统Word文档下载推荐.docx_第19页
第19页 / 共53页
MFC程序设计考勤系统Word文档下载推荐.docx_第20页
第20页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MFC程序设计考勤系统Word文档下载推荐.docx

《MFC程序设计考勤系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《MFC程序设计考勤系统Word文档下载推荐.docx(53页珍藏版)》请在冰点文库上搜索。

MFC程序设计考勤系统Word文档下载推荐.docx

部门编号、名称等。

图2-1出勤记录表

图2-2月度考勤统计表

图2-3请假记录表

图2-4加班记录表

图2-5出差记录表

第3章各个功能模块的创建

3.1生成程序框架

本系统的应用程序使用MFCODBC的方法开发,采用Dialogbased的应用框架,如图3-1为。

由一个对话框和若干个功能对话框组成。

为了使用ODBC类,需要在stdafx.h中加入#include”afxdb.h”头文件。

本程序需要连接一个数据库,所以定义了一个CDatabase型的全局变量db,用于打开和关闭数据库。

数据库的打开在登录认证数据库中。

为了访问数据库中的表格,本程序从CRecordset中派生了8个类,分别用于封装所需访问的表格,如表3-1。

通过访问成员变量可以访问当前记录中字段的值。

表3-1CRecordset派生类对应的表格

CRecordset派生类

表格

CAttendanceRS

ATTENDANCE出勤记录表

CCounterRS

COUNTER计数器表

CDepartRS

DEPARTMENT部门信息表

CErrandRS

ERRAND出差记录表

CLeaveRS

LEAVE请假记录表

COvertimeRS

OVERTIME加班记录表

CPersonRS

PERSON员工个人信息表

CStatRS

ATTENDANCE_ATAT月度考勤统计表

3.2登录认证对话框

登录窗口如图3-2所示,包括3个输入框和2个按钮。

主要控件类型、ID和对应的成员变量及说明如表3-4。

图3-2登录窗口

表3-4登录认证对话框控件列表

控件类型

ID

成员变量

说明

ComboBox

IDC_CMB_DSN

m_strDSN

ODBC数据源

EditBox

IDC_EDT_USER

m_strUser

用户名

IDC_EDT_PASSWD

m_strPasswd

密码

Button

IDOK

“登录”按钮

IDCANCEL

“取消”按钮

对IDOK的点击加登录代码。

CLoginDlg类需要用到加密类,本程序使用的是CCrypt类。

在cpp文件的开头加入#include”Crypt.h”一行。

另外,为了使用全局数据库变量db,需要在cpp文件开头加入以下语句:

ExternCDatabasedb;

用户认证过程在“登录”按钮的处理函数中:

代码见附录【1】

为了运行登录认证对话框,还需在App类的InitInstance()函数中在显示主对话框前加入以下代码:

CLoginDlgLoginDlg;

If(LoginDlg.DoModal()!

=IDOK)returnFALSE;

3.3主对话框窗口的设计

用户登录后即显示主对话框,如图3-5所示。

包括5个按钮。

控件列表如表3-6。

图3-5主对话框

表3-6主对话框控件列表

StaticText

IDC_STATIC_HEAD

“考勤管理系统”静态文本

IDC_BTN_CONFIG

“设置”按钮

IDC_BTN_RECORD

“出勤记录”按钮

IDC_BTN_STATISTICS

“统计”按钮

IDC_BTN_RELOGIN

“重新登录”按钮

IDC_BTN_EXIT

“退出”按钮

在CAttendanceDlg中定义以下成员变量:

Public:

CBrushm_brush;

CStatDlg*m_pStatDlg;

CAttDlg*m_pAttDlg;

CFontm_font;

对话框初始化时需要改变标题字体大小,因此在OnInitDialog()中加入以下代码:

//改变标题字体大小

LOGFONTLogFont;

GetFont()->

GetLogFont(&

LogFont);

LogFont.lfHeight+=LogFont.lfHeight/2;

LogFont.lfWidth+=LogFont.lfWidth/2;

m_font.CreateFontIndirect(&

GetDlgItem(IDC_STATIC_HEAD)->

SetFont(&

m_font);

为了美观起见,还插入了背景图片,通过Ctrl+R引入图片后,在OnPaint()中的条件语句的else()中添加下列代码:

见附录【2】

对话框中5个按钮的功能主要是显示相应的功能对话框。

给按钮的BN_CLICKED事件的处理和退出代码见附录【3】。

3.4上班时间设置对话框的创建

此对话框用于设置上下班时间,布局如图3-7.所示。

主要控件类型、ID和对应的成员变量及说明如表3-8所示。

图3-7时间设置对话框

表3-8时间设置对话框控件列表

DataTimePicker

IDC_WORKSTAT_DATETIMEPICKER1

m_Time1

上午上班时间

IDC_WORKSTAT_DATETIMEPICKER2

m_Time2

中午下班时间

IDC_WORKSTAT_DATETIMEPICKER3

m_Time3

下午上班时间

IDC_WORKSTAT_DATETIMEPICKER4

m_Time4

下午下班时间

IDC_WORKPLAN_MODIFY

“修改”按钮

IDC_WORKPLAN_RESET

“恢复默认设置”按钮

一般上下班时间是相对固定的,而且需要在统计是频繁使用,所以不需要保存在数据库中,因此采用标准的INI设置文件来保存这些数据。

首先,在构造函数中初始化4个时间的取值:

CWorkplanDlg:

:

CWorkplanDlg(CWnd*pParent/*=NULL*/)

:

CDialog(CWorkplanDlg:

IDD,pParent)

{

m_Time1=0;

m_Time2=0;

m_Time3=0;

m_Time4=0;

}

“修改”按钮的BN_CLICKED事件处理用于保存当前的设置:

代码见附录【4】

“恢复默认设置”按钮的BN_CLICKED事件处理程序用于恢复初始设置。

这个函数同时被OnInitDialog()函数应用,以实现初始化操作,代码见附录【5】

3.5考勤修改对话框的创建

考勤修改对话框主要用来人工输入出勤情况。

在考勤机出现问题是,它可以及时弥补数据。

同时加班、请假、出差的记录都是需要通过这个对话框来输入。

对话框布局如图3-9所示。

为了区分不同的输入,在对话框中嵌入了CPropertySheet和4个CPropertyPage,这4个CPropertyPage分别放置出勤、加班、请假和出差记录的修改界面,而共用一个查询条件设置。

图3-9下方空白处用于放置CPropertySheet和4个CPropertyPage。

对话框中的主要控件类型、ID和对应的成员变量及说明如表3-10所示。

图3-9考勤修改对话框

表3-10考勤修改对话框控件列表

CheckBox

IDC_CHK_SEEKBYTIME

m_bSeekbytime

时间围选项

IDC_CHK_SEEKBYPERSON

m_bSeekbyperson

员工选项

DateTimePicker

IDC_DATETIMEPICKER1

m_StartTime

起始时间

IDC_DATETIMEPICKER2

m_EndTime

结束时间

IDC_EDT_SEEKPERSONID

m_strPersonID

员工号

IDC_EDT_SEEKPERSONNAME

m_strName

为了使用CPropertySheet和CPropertyPage,需要在类定义中加入以下变量:

CPage1m_Page1;

CPage2m_Page2;

CPage3m_Page3;

CPage4m_Page4;

CPropertySheetm_Sheet;

然后在OnInitDialog中添加以下代码:

见附录【6】

当输入员工号时,需要检索员工,以确定设置的条件有效。

加入IDC_EDT_SEEKPERSONID的EN_CHANGE消息,函数如下:

见附录【7】

3.6修改出勤记录属性页的创建

加入一个对话框资源,将其封装设为从CPropertyPage继承的CPage1类。

对话框布局如图3-11所示。

对话框中主要控件、ID和对应的成员变量及说明如表3-12所示。

图3-11修改出勤记录属性页

表3-12修改出勤记录属性页控件列表

IDC_EDIT_IOTIME

m_strIOTime

出入时间

IDC_EDIT_DEPARTID

m_strDepartID

部门编号

IDC_EDIT_DEPARTNAME

m_strDepartName

部门名称

IDC_EDIT_PERSONID

IDC_EDIT_PERSONNAME

m_strPersonName

RadioButton

IDC_RADIO_OUT

出入选项“出”

IDC_RADIO_IN

出入选项“入”

IDC_BTN_ADDALL

“全部员工”按钮

IDC_BTN_ADDDEPART

“部门员工”按钮

IDC_BTN_ADDPERSON

“单个员工”按钮

IDC_BTN_DELETEATTEND

“删除所选记录”按钮

IDC_BTN_SEEKIO

“按条件检索”按钮

ListControl

IDC_LIST1

m_cList

“出勤记录列表”

界面初始化操作如下:

见附录【8】

为了方便更新列表框容,编写UpdateList()函数,调用此函数可使列表框显示给定的数据表格。

见附录【9】

当输入部门编号时,自动检索部门名称。

见附录【10】

输入员工号是,检索相应信息。

见附录【11】

添加部门和全体员工出勤记录的过程最终可分解为添加单个员工记录的过程。

设置以下子程序是为了避免程序的重复。

见附录【12】

添加记录的3个按钮处理程序分别调用以上的函数。

见附录【13】

“删除所选纪录”按钮用于删除列表中当前所选纪录。

见附录【14】

“按条件检索”按钮用于激活检索条件。

见附录【15】

3.7加班记录属性页的创建

加班记录属性页的创建与考勤修改属性页类似,封装类设为从CPropertyPage继承的Cpage2类。

为了将它们放入同一个PropertySheet,需将二者大小设为一致。

界面设计如图3-13,主要控件类型、ID和对应的成员变量及说明如表3-14所示。

图3-13加班记录属性页

表3-14加班记录属性页控件列表

IDC_OVERTIME_DATETIMERPICKER

m_Date

日期

IDC_EDIT_OVERTIME_HOUR

m_nHour

加班时间

IDC_EDIT_OVERTIME_PERSONID

IDC_EDIT_OVERTIME_PERSONNAME

IDC_BTN_OVERTIME_ADD

“添加”按钮

IDC_BTN_OVERTIME_DELETEATTEN

IDC_BTN_OVERTIME_SEEKIO

IDC_LIST2

加班记录列表

初始化代码如下:

见附录【16】

UpdateList()完成列表框数据显示工作,代码如下:

见附录【17】

当输入员工号时,需要检索员工,以确认输入是否正确。

见附录【18】

“添加”按钮用于完成纪录的添加操作。

见附录【19】

3.8请假记录属性页的创建

请假记录属性页封装类为从CPropertyPage继承的Cpage3类。

界面设计如图3-15,主要控件类型、ID和对应的成员变量及说明如表3-16所示。

图3-15请假记录属性页

表3-16请假记录属性页控件列表

IDC_EDT_LEAVE_STARTTIME

m_strSTime

IDC_EDT_LEAVE_ENDTIME

m_strETime

IDC_EDT_LEAVE_PERSONID

IDC_EDT_LEAVE_PERSONNAME

IDC_EDT_LEAVE_REASON

m_strReason

请假原理

IDC_BTN_LEAVE_ADD

IDC_EDT_LEABE_DELETEATTEND

IDC_EDT_LEABE_SEEKIO

IDC_LIST3

界面的初始化、列表框的更新、员工的检索、删除所选记录和条件检索的功能与前面加班记录相应的功能类似,代码稍作修改即可。

添加记录的代码如下:

见附录【20】

3.9出差记录属性页的创建

请假记录属性页封装类为从CPropertyPage继承的Cpage4类。

界面设计如图3-17,主要控件类型、ID和对应的成员变量及说明如表3-18所示。

图3-17出差记录属性页

表3-18出差记录属性页控件列表

IDC_EDT_LEAVE_DESCRIBE

m_strDescribe

具体描述

出差记录与请假记录的功能基本一致。

3.10考勤统计对话框的创建

考勤统计对话框界面设计如图3-19所示,主要控件类型、ID和对应的成员变量及说明如表3-20所示。

图3-19考勤统计对话框

表3-20考勤统计控件列表

IDC_STAT_TIME

统计年月

IDC_STAT_DATETIMEPICKER_STARTTIME

m_strTime

开始时间

IDC_STAT_DATETIMEPICKER_ENDTIME

m_STime

ProgressControl

IDC_STAT_PROGRESS

m_ETime

进度条

IDC_STAT_BTN_STAT 

m_cProgress

IDC_STAT_CHK_SEEKBYTIME

按年月检索

IDC_STAT_CHK_SEEKBYPERSON

按员工检索

IDC_STAT_EDT_SEEKTIME

m_strSeektime

检索年月

IDC_STAT_EDT_SEEKPERSONID

检索员工号

IDC_STAT_EDT_SEEKPERSONNAME

请假原因

IDC_STAT_BTN_SEEK

“检索”按钮

IDC_STAT_LIST

记录列表

列表框的初始化和数据更新和前面类似。

初始化时设置缺省时间,修改构造函数如下:

见附录【21】

当输入员工号时,检索员工,用于确认输入。

见附录【22】

“检索”按钮的处理代码如下:

见附录【23】

统计过程主要是记录判断过程,代码如下:

见附录【24】

第4章系统的实现

各对话框设计完成后,运行程序,查看结果。

系统启动后,首先出现的是登录对话框,如图4-1。

图4-1登录对话框

在输入用户名和密码并登录后,系统会从数据库中提取相应记录,来判断用户和密码权限是否匹配,如果不匹配,会弹出对话框提示,如图4-2。

图4-2认证失败提示信息

登录成功后,会出现如图4-3所示的主对话框。

图4-3主对话框

单击对话框中的各个按钮即可显示相应的对话框。

其中“重新登录”用于回到登录对话框,并且会隐藏主对话框;

“退出”按钮直接退出应用程序;

“设置”按钮用来弹出上下班时间设置对话框;

“出勤记录”按钮用来弹出考勤修改对话框;

“统计”用来弹出统计对话框。

图4-4显示的是单击“设置”按钮弹出的时间设置对话框。

图4-4时间设置对话框

考勤修改窗口如图4-5所示。

这个对话框包括4个记录修改功能,分别对应出勤记录、加班记录、请假记录和出差记录。

检索条件包括时间围和员工,可以根据需要任意选择。

如图4-6。

图4-5考勤修改窗口

图4-6记录检索条件

其中出勤记录的添加时为了在考勤机出现故障是,可以人工添加,保证记录的完整性。

设置的全体员工、部门员工和单个员工出勤情况的输入功能实现了批量输入,下面的进度条可以显示进度,如图4-7所示。

图4-7添加修改出勤记录对话框

加班记录对话框用于添加员工加班的日期和小时数,如图4-8。

图4-8加班记录对话框

请假记录和出差记录布局和功能基本相似,主要用于记录请假和出差的时间段和缘由,备注等。

如图4-9和4-10,分别为请假记录和出差记录的对话框。

图4-9请假记录对话框

图4-10出差记录对话框

考勤统计对话框有月度统计、检索条件和记录列表3部分。

月度统计需要设定统计的时间围。

检索条件部分则用于快速地位记录,便于查询和修改,如图4-11所示。

图4-11考勤统计对话框

第5章结束语

通过本次课程设计的实践,不仅熟悉了对VisualC++6.0程序设计工具的操作,加深了对Access2003的认识,还学到了有关考勤管理系统开发方面的知识。

体会了软件开发的基本过程,同时也学会了如何修改,调试程序,如何将各个模块的功能进行合理的整合和调整,如何充分利用各方资源,优化和完善程序。

提高了综合应用计算机语言的各种编程知识和技巧进行程序设计的能力。

在老师和同学的指导和帮助下,通过一个多月的设计和开发,考勤管理系统基本完成,能够实现对员工出勤情况的记录和统计,以及按时间或员工号的各类查询。

但由于时间仓促和自己水平所限,本系统不可避免的还存在着一些缺陷,比如在权限的管理以及美观方面做的还不好,还要其他方面还请老师和同学提宝贵意见,不胜感激。

参考文献

[1]闽溟,吴继刚,周学明.VisualC++6.0数据库系统开发实例导航[M].:

人民邮电.2002:

151-180.

[2]侯奇峰,晓华,莎.VisualC+

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2