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

上传人:b****4 文档编号:17958459 上传时间:2022-12-12 格式:DOCX 页数:50 大小:529.22KB
下载 相关 举报
MFC程序设计考勤系统Word文档下载推荐.docx_第1页
第1页 / 共50页
MFC程序设计考勤系统Word文档下载推荐.docx_第2页
第2页 / 共50页
MFC程序设计考勤系统Word文档下载推荐.docx_第3页
第3页 / 共50页
MFC程序设计考勤系统Word文档下载推荐.docx_第4页
第4页 / 共50页
MFC程序设计考勤系统Word文档下载推荐.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

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

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

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

傅期结束醐

REJSatl

文本

请傭喙由

图2-3请假记录表

勒据空型

说明

曾卜

■卄W—

记录编号

PFESOM

WORK_HDWES

则田寸间

WCBE_DATE

日期丹捐

加脏日期

图2-4加班记录表

享孵称

埶据类型

FERSOK

ST危T_TIME

曰期细

出差幵始旳

END_TIMB

曰期㈱

出差結棘

DESCBIFTIOff

具ftfflif

图2-5出差记录表

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

3.1生成程序框架

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

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

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

本程序需要连接一个数据库,所以定义了一个CDatabase型的全局变量db,用

于打开和关闭数据库。

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

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

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

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

CRecordset派生类

表格

CAttendanceRS

ATTENDANCE勤记录表

CCounterRS

COUNTE计数器表

CDepartRS

DEPARTMEN部门信息表

CErrandRS

ERRAN出差记录表

CLeaveRS

LEAVE青假记录表

COvertimeRS

OVERTIME加班记录表

CPersonRS

PERSO员工个人信息表

CStatRS

attendanceatAT度考勤统计表

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

用户名

idcedtpasswd

mstrPasswd

密码

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

“设置”按钮

IDCBTNRECORD

“出勤记录”按钮

IDC_BTN_STATISTICS

“统计”按钮

IDCBTNRELOGIN

“重新登录”按钮

IDCBTNEXIT

“退出”按钮

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

Public:

CBrushm_brush;

CStatDIg*m_pStatDlg;

CAttDlg*m_pAttDlg;

CFontm_font;

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

代码:

//改变标题字体大小

LOGFONTLogFont;

GetFont()->

GetLogFont(&

LogFont);

LogFont.lfHeight+=LogFont.lfHeight/2;

LogFont.lfWidth+=LogFont.lfWidth/2;

m_font.CreateFontlndirect(&

LogFont);

GetDlgltem(IDC_STATIC_HEAD)->

SetFont(&

m_font);

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

见附录【2】

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

给按钮的

BN_CLICKE事件的处理和退出代码见附录【3】。

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

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

主要控件类型、ID

和对应的成员变量及说明如表3-8所示。

Fu上对闫设置S3|

修改I帀農默认设竄1!

图3-7时间设置对话框

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

Data

Picker

Time

IDC_WORKSTAT_DATETIMEPICKER1

m_Time1

上午上班时间

IDC_WORKSTAT_DATETIMEPICKER2

m_Time2

中午下班时间

IDC_WORKSTAT_DATETIMEPICKER3

m_Time3

下午上班时间

IDC_WORKSTAT_DATETIMEPICKER4

m_Time4

下午下班时间

IDCWORKPLANMODIFY

“修改”按钮

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_CLICKE事件处理用于保存当前的设置:

代码见附录【4】“恢复默认设置”按钮的BN_CLICKE事件处理程序用于恢复初始设置。

这个函数同时被OnInitDialog()函数应用,以实现初始化操作,代码见附录【5】3.5考勤修改对话框的创建

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

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

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

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

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

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

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

考勤愣改

a|

"

2•”.mii.A-..-■>

—Jb.ssj■■—.it.—m.n>

!

>

■一"

■>

■.4..it....si.,c.is.-^^ssa..-a:

■■..■■■■...■■■—■■■a...->

ssa.^.a:

■-■>

>

:

..si

B>

■—liiisa:

—■!

■■■—iSISi—>

Sil:

一3:

s■»

«

记昱扎事鼻件

 

厂时间范厨A

2O1C/L2/2〒至

2010/12/^▼

厂员工良工号:

编辑姓名

图3-9考勤修改对话框

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

CheckBox

IDC_CHK_SEEKBYTIME

m_bSeekbytime

时间围选项

IDC_CHK_SEEKBYPERSON

1mbSeekbyperson

员工选项

DateTimePicker

IDCDATETIMEPICKER1

mStartTime

起始时间

IDC_DATETIMEPICKER2

m_EndTime

结束时间

IDCEDTSEEKPERSONID

mstrPersonID

IDCEDTSEEKPERSONNA

iMEstrName

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

CPagelm_Page1;

CPage2m_Page2;

CPage3m_Page3;

CPage4m_Page4;

CPropertySheetm_Sheet;

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

见附录【6】

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

加入

IDC_EDT_SEEKPERSO的DEN_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

m_strPersonID

IDCEDITPERSONNAME

mstrPersonName

员工

RadioButton

IDC_RADIO_OUT

出入选项“出”

IDCRADIOIN

出入选项“入”

IDCBTNADDALL

“全部员工”按钮

IDCBTNADDDEPART

“部门员工”按钮

IDCBTNADDPERSON

“单个员工”按钮

IDCBTNDELETEATTEND

“删除所选记录”按钮

IDCBTNSEEKIO

“按条件检索”按钮

ListControl

IDCLIST1

mcList

“出勤记录列表”

界面初始化操作如下:

见附录【8】

为了方便更新列表框容,编写UpdateList()函数,调用此函数可使列表框

显示给定的数据表格。

见附录【9】

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

见附录【10】

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

见附录【11】

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

程。

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

见附录【12】

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

见附录【13】

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

见附录【14】

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

见附录【15】

3.7加班记录属性页的创建

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

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

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

图3-13加班记录属性页

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

DateTime

IDC_OVERTIME_DATETIMERPICK

Em_Date

日期

IDCEDITOVERTIMEHOUR

mnHour

加班时间

IDCEDITOVERTIMEPERSONID

IDCEDITOVERTIMEPERSONNA

iMEstrPersonName

IDCBTNOVERTIMEADD

“添加”按钮

IDC_BTN_OVERTIME_DELETEATT

E无

“删除所选记

录”按钮

IDC_BTN_OVERTIME_SEEKIO

“按条件检索”按钮

IDC_LIST2

m_cList

加班记录列表

初始化代码如下:

见附录【16】

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

见附录【17】当输入员工号时,需要检索员工,以确认输入是否正确。

见附录【18】

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

见附录【19】

3.8请假记录属性页的创建

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

界面设计如

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

图3-15请假记录属性页

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

IDCEDTLEAVESTARTTIME

mstrSTime

IDCEDTLEAVEENDTIME

mstrETime

IDCEDTLEAVEPERSONID

IDCEDTLEAVEPERSONNAM

EmstrPersonName

IDCEDTLEAVEREASON

mstrReason

请假原理

IDCBTNLEAVEADD

IDC_EDT_LEABE_DELETEATTE

N无

IDCEDTLEABESEEKIO

“按条件检索”

按钮

IDC_LIST3

界面的初始化、列表框的更新、员工的检索、删除所选记录和条件检索的功

能与前面加班记录相应的功能类似,代码稍作修改即可。

添加记录的代码如下:

见附录【20】

3.9出差记录属性页的创建

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

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

卩融亲宁

i时间范is;

|竊辑至|骗辑具体拯述:

|员工号:

|编辑

员工姓名:

帽辑

济加1

图3-17出差记录属性页

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

IDCEDTLEAVEDESCRIBE

mstrDescribe

具体描述

IDC_EDT_LEABE_SEEKIO

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

3.10考勤统计对话框的创建

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

图3-19考勤统计对话框

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

IDCSTATTIME

r统计年月

DataTime

IDC_STAT_DATETIMEPICKER_STARTTIME

m_strTime

开始时间

IDC_STAT_DATETIMEPICKER_ENDTIME

m_STime

ProgressControl

IDC_STAT_PROGRESS

m_ETime

进度条

IDCSTATBTNSTAT

mcProgress

IDCSTATCHKSEEKBYTIME

mbSeekbytime

按年月检索

IDCSTATCHKSEEKBYPERSON

mbSeekbyperson

按员工检索

IDCSTATEDTSEEKTIME

mstrSeektime

检索年月

IDC_STAT_EDT_SEEKPERSONID

检索员工号

IDCSTATEDTSEEKPERSONNAME

mstrPersonName

请假原因—

IDCSTATBTNSEEK

“检索”按钮

IDC_STAT_LIST

记录列表

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

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

见附录【21】

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

见附录【22】

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

见附录【23】

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

见附录【24】

第4章系统的实现

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

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

图4-1登录对话框

在输入用户名和密码并登录后,系统会从数据库中提取相应记录,来判断用

户和密码权限是否匹配,如果不匹配,会弹出对话框提示,如图4-2。

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

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

图4-3主对话框

到登录对话框,并且会隐藏主对话框;

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

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

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

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

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

图4-4时间设置对话

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

当前位置:首页 > 工程科技 > 电力水利

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1