考勤管理系统.docx
- 文档编号:3145732
- 上传时间:2022-11-18
- 格式:DOCX
- 页数:11
- 大小:91.02KB
考勤管理系统.docx
《考勤管理系统.docx》由会员分享,可在线阅读,更多相关《考勤管理系统.docx(11页珍藏版)》请在冰豆网上搜索。
考勤管理系统
考勤系统开发方案及过程
编写人:
Paul
编写时间:
2014年7月23日
一、设计目的
随着计算机的发展及网络技术的应用,当今社会正快速向信息自动化社会前进,信息自动化的作用也越来越大,特别是各行业的管理领域,智能化信息处理已是提高效率、规范管理、客观审查的最有效途径。
考勤作为一个公司的基项管理,是单位对员工工作管理的基本依据。
开发考勤管理系统,正是完善企业信息化管理的重要环节。
对于员工考勤如果仍使用传统的手工方式录入将是一项复杂的工作。
面对庞大的信息量,该方式现主要存在以下弊端:
1、浪费人力、效率低下;
2、考勤结果反映速度慢(一月才能汇总一次),主管部门不能及时全面地监督员工的出勤情况;
3、难避免考勤中的弄虚作假现象。
一些单位上报的工资人数往往大于实际考勤和领工资的人数,造成公司大量工资流失;
4、由于考勤数据的不准确,公司劳动人事工资管理系统的许多基础数据也存在较大误差,给人事部门的许多全局性的统计工作也带来了不准确性;
5、考勤统计工作复杂繁重,难以保证统计结果的正确性、及时性。
因此,人工考勤已很难满足公司规范化管理的要求。
建立现代化的智能考勤管理系统势在必行。
通过考勤管理系统能满足公司多种考勤及管理要求,能为公司带来巨大的经济效益:
1、考勤管理系统通过考勤机判断并记录员工上下班关信息,可以保证考勤数据的准确、公正、安全,减少考勤人员的工作负担,避免人为因素的干扰和弄虚作假现象;
2、所有员工的考勤信息可一次读回,考勤系统对信息统一处理,迅速、全面;
3、能为人事工资管理系统提供可靠的数据资料,确保人事统计的准确、可靠;
4、各管理用计算机及管理软件用Windows环境下的全中文界面平台,能灵活处理各种特殊情况,方便的修改各种基本信息,提供丰富的统计报表,查询方便,管理安全,操作简便易学;
二、设计任务
1.能够方便地对上班时间进行设定;
2.能够提供员工出入单位的情况记录。
出入情况主要由考勤机来记录,但是需要设置人工添加的功能,如出勤记录、月度考勤统计、人员信息、部门设置等,已备特殊情况的处理;
3.能够提供请假、加班和出差情况的记录,并实现查询、添加、修改、删除、浏览等处理功能;
4.能够在每个月底进行整个月的出勤情况统计;
5.能够具有一定的安全性、协调性和完整性。
三、设计内容与步骤
在软、硬件方面对系统的需求,软件要求易学,容易掌握,可以很简单方便的管理各种信息。
硬件的配置要求不能太高,这样可以很好的适应当前的企业情况。
1.系统功能模块设计:
系统功能模块如图1-1所示。
图1-1系统功能模块图
2.数据流程图:
系统的数据流程图1-2所示,出勤的原始记录主要来源于考勤机,并且以固定格式保存在数据库中。
考勤管理系统的任务是如何处理这些数据。
图1-2考勤管理系统数据流程图
3.数据库概念结构设计(E-R图)如下所示:
图1-3E-R图
3.数据库需求分析:
根据数据流程,可以列出以下管理系统所需的数据项和数据结构。
出勤记录:
记录号、员工、出入情况和出入时间,如图1-4所示。
图1-4ATTENDANCE出勤记录表
月度考勤统计:
记录号、员工、年月、累计正常工作时间、累计请假时间、累计加班时间、累计出差时间、迟到次数、早退次数和旷工次数,如图1-5所示。
图1-5ATTENDANCE_STAT月度考勤统计表
请假记录:
记录号、员工、假期起始时间/结束时间和请假缘由,如图1-6所示。
图1-6LEAVE请假记录表
加班记录:
记录号、员工、加班时间长度和日期,如图1-7所示。
图1-7OVERTIME加班记录表
出差记录:
记录号、员工、出差起始时间/结束时间和具体描述,如图1-8所示。
图1-5ERRAND出差记录表
人员信息:
员工号、密码、权限、姓名、部门和当前状态等,如图1-9所示。
图1-9PERSON人员信息表
部门设置:
部门编号、名称等,如图1-10所示。
图1-10DEPARTMENT部门设置表
5.数据库操作的准备:
为了使用ODBC类,需要在stdafx.h中加入#include”afxdb.h”一行。
因本程序只需要连接一个数据库,所以定义了一个Cdatabase型的全局变量db,一次性打开和关闭数据库。
数据库的打开在登录认证对话框中。
在主程序结束前需关闭数据库,因此在App类的ExitInstance()函数中加入代码:
if(db.IsOpen())db.Close();为了编程便捷,可以为数据库中的每一个表映射一个记录集类(从CrecordSet类继承),其映射关系如表1-1所示。
这些类通过RFX(RecordFieldExchange)机制将成员变量与表格中的字段值联系起来,通过方问成员变量可以访问当前记录中字段的值。
Crecordset派生类
表格
CAttendanceRS
ATTENDANCE出勤记录表
CCounterRS
COUNTER计数器表
CdepartRS
DEPARTMENT部门信息表
CerrandRS
ERRAND出差记录表
CLeaveRS
LEAVE请假记录表
COvertimeRS
OVERTIME加班记录表
CPersonRS
PERSON员工个人信息表
CStatRS
ATTENDANCE_STAT月度考勤统计表
表1-1CRecordset派生类对应的表格
6.主对话框的设计:
主对话框界面如图1-11所示。
用户可以通过菜单进行方便的操作,如添加记录,统计记录等。
每个菜单项关联了一个对话框,在相应的菜单项的初始化中使用:
类名dlg;dlg.DoModal();两条语句来进行实现。
图1-11主对话框
6.考勤统计对话框的创建
考勤统计对话框界面设计如图1-12所示。
用户可进行月度统计,也可以通过查找满足条件的记录如年月、员工、姓名等来进行相关的统计。
图1-12考勤统计对话框
四、测试与评价
经过测试,该应用程序能够较好的实现上班时间的设定;能够提供员工出入单位的情况记录;能够提供请假、加班和出差情况的记录,并实现查询、添加、修改、删除、浏览等处理功能;能够在每个月底进行整个月的出勤情况统计;能够拥有一定的安全性、协调性和完整性。
但在安全性上存在一定的漏洞;功能不够完善,不能进行统一查询;界面相对简单,所以总体评价为中等。
希望能得到彭老师的指导得以更加完善此系统,添补漏洞。
五、附录
1.主界面源代码清单:
BOOLCAttendanceDlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//Add"About..."menuitemtosystemmenu.
//IDM_ABOUTBOXmustbeinthesystemcommandrange.
ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX<0xF000);
CMenu*pSysMenu=GetSystemMenu(FALSE);
if(pSysMenu!
=NULL
{CStringstrAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if(!
strAboutMenu.IsEmpty())
{pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);
}
}
voidCAttendanceDlg:
:
OnBtnConfig()
{
//显示工作时间设置对话框
CWorkplanDlgdlg;
dlg.DoModal();
}
2.考勤修改对话框源代码清单:
BOOLCAttDlg:
:
OnInitDialog()//初始化对话框
{
m_Sheet.Create(this,WS_CHILD|WS_VISIBLE,0);//创建窗口
m_Sheet.ModifyStyleEx(0,WS_EX_CONTROLPARENT);//修改风格
m_Sheet.ModifyStyle(0,WS_TABSTOP);//修改风格
//设置窗口位置
m_Sheet.SetWindowPos(NULL,0,100,0,0,
SWP_NOZORDER|SWP_NOSIZE|SWP_NOACTIVATE);
returnTRUE;
}
为了方便地更新列表框内容,编写了UpdateList()函数,调用些函数可使列表框显示给定的数据表格。
voidCPage1:
:
UpdateList(CAttendanceRS&rs)//更新列表框内容
{
inti=0;
CStringstrID,strTime;
rs.Open();//打开出勤记录表
m_cList.DeleteAllItems();//清除列表框内容
while(!
rs.IsEOF())//对数据表中所有记录进行处理
{
m_cList.InsertItem(i,"");//添加新Item
strID.Format("%d",rs.m_ID);//转换为字符串
m_cList.SetItemText(i,0,strID);
m_cList.SetItemText(i,1,rs.m_PERSON);
m_cList.SetItemText(i,2,rs.m_IN_OUT);
m_cList.SetItemText(i,3,rs.m_IO_TIME.Format("%Y-%m-%d%H:
%M"));
rs.MoveNext();//跳到下一条记录
i++;
}
rs.Close();//关闭出勤记录表
}
添加部门和全体员工出勤记录的过程最终可分解为添加单个员工记录的过程。
为了避免程序的重复,设置了下面的子程序:
//添加出勤记录函数
voidCPage1:
:
IO_Add(CStringstrPersonID)
{
intcounter;//用于计数
CStringstrIO;//保存出入情况
CCounterRSrs_counter(&db);//构造计数器记录表
//记录编号
rs_counter.m_strFilter="ID='A'";//设置过滤器,提取计数值
rs_counter.Open();//打开计数器记录表
counter=rs_counter.m_COUNTER_VALUE;//提取计数值
counter++;//计数值加1
rs_counter.Edit();//编辑计数器
rs_counter.m_COUNTER_VALUE=counter;//保存当前计数
rs_counter.Update();//提交修改
rs_counter.Close();//关闭计数器记录表
//添加记录
//判断确定出入情况
if(((CButton*)GetDlgItem(IDC_RADIO_OUT))->GetCheck())
strIO="O";
elsestrIO="I";
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 考勤 管理 系统