考勤管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
考勤系统开发方案及过程
编写人:Paul
编写时间:2014年7月23日
图1-3 E-R 图
3.数据库需求分析:
根据数据流程,可以列出以下管理系统所需的数据项和数据结
构。
出勤记录:记录号、员工、出入情况和出入时间,如图1-4所示。
图1-4 ATTENDANCE 出勤记录表
月度考勤统计:记录号、员工、年月、累计正常工作时间、累计请假时间、累计加班时间、累计出差时间、迟到次数、早退次数和旷工次数,如图1-5所示。
员工
员工号
员工密码
权限
姓名
所在部门
┄┄
出差记录
记录编号
起始时间
结束时间
具体描述 出勤记录 月度考勤统计 请假记录 加班记录 记录编号 出入状态 出入时间 记录编号 年月 累计工作时间
累计加班时间
累计请假时间
累计出差时间
迟到次数 早退次数 矿工时间 记录编号 起始时间 结束时间 缘由 记录编号 加班时间 日期
记录 记录 记录 记录 记录
图1-5 ATTENDANCE_STA T月度考勤统计表
请假记录:记录号、员工、假期起始时间/结束时间和请假缘由,如图1-6所示。
图1-6 LEAVE 请假记录表
加班记录:记录号、员工、加班时间长度和日期,如图1-7所示。
图1-7 OVERTIME 加班记录表
出差记录:记录号、员工、出差起始时间/结束时间和具体描述,如图1-8所示。
图1-5 ERRAND 出差记录表
人员信息:员工号、密码、权限、姓名、部门和当前状态等,如图1-9所示。
图1-9 PERSON 人员信息表
部门设置:部门编号、名称等,如图1-10所示。
图1-10 DEPARTMENT 部门设置表
5.数据库操作的准备:
为了使用ODBC类,需要在stdafx.h中加入#include”afxdb.h”
一行。因本程序只需要连接一个数据库,所以定义了一个Cdatabase 型的全局变量db,一次性打开和关闭数据库。数据库的打开在登录认证对话框中。在主程序结束前需关闭数据库,因此在App类的ExitInstance()函数中加入代码:if (db.IsOpen()) db.Close();
为了编程便捷,可以为数据库中的每一个表映射一个记录集类(从CrecordSet类继承),其映射关系如表1-1所示。这些类通过RFX (Record Field Exchange)机制将成员变量与表格中的字段值联系起来,通过方问成员变量可以访问当前记录中字段的值。
Crecordset派生类表格
CAttendanceRS ATTENDANCE出勤记录表
CCounterRS COUNTER计数器表
CdepartRS DEPARTMENT部门信息表
CerrandRS ERRAND出差记录表
CLeaveRS LEAVE请假记录表
COvertimeRS OVERTIME加班记录表
CPersonRS PERSON员工个人信息表
CStatRS ATTENDANCE_STAT月度考勤统计表
表1-1 CRecordset派生类对应的表格
6.主对话框的设计:
主对话框界面如图1-11所示。用户可以通过菜单进行方便的操作,
如添加记录,统计记录等。每个菜单项关联了一个对话框,在相应的菜单项的初始化中使用:类名 dlg; dlg.DoModal();两条语句来进行实现。
图1-11 主对话框
6.考勤统计对话框的创建
考勤统计对话框界面设计如图1-12所示。用户可进行月度统计,也可以通过查找满足条件的记录如年月、员工、姓名等来进行相关的统计。
图1-12 考勤统计对话框
四、测试与评价
经过测试,该应用程序能够较好的实现上班时间的设定;能够提供员工出入单位的情况记录;能够提供请假、加班和出差情况的记录,并实现查询、添加、修改、删除、浏览等处理功能;能够在每个月底进行整个月的出勤情况统计;能够拥有一定的安全性、协调性和完整性。但在安全性上存在一定的漏洞;功能不够完善,不能进行统一查询;界面相对简单,所以总体评价为中等。
希望能得到彭老师的指导得以更加完善此系统,添补漏洞。