考勤管理系统方案_第1页
考勤管理系统方案_第2页
考勤管理系统方案_第3页
考勤管理系统方案_第4页
考勤管理系统方案_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

....WORD.考勤系统开发方案及过程编写人:Paul编写时间:2023723一、设计目的随着计算机的进展及网络技术的应用,当今社会正快速向信息自动智能化信息处理已是提高效率、规治理、客观审查的最有效途径。考勤作为一个公司的基项治理,是单位对员工工作治理的根本依据。开发考勤治理系统,正是完善企业信息化治理的重要环节。对于员工考勤假设仍使用传统的手工方式录入将是一项简洁的工作。面对浩大的信息量,该方式现主要存在以下弊端:1、铺张人力、效率低下;全面地监视员工的出勤状况;于实际考勤和领工资的人数,造成公司大量工资流失;数据也存在较大误差,给人事部门的很多全局性的统计工作也带来了不准确性;5、考勤统计工作简洁繁重,难以保证统计结果的正确性、准时性。因此,人工考勤已很难满足公司规化治理的要求。建立现代化的智能考勤治理系统势在必行。巨大的经济效益:证考勤数据的准确、公正、安全,削减考勤人员的工作负担,避开人为因素的干扰和弄虚作假现象;、全面;、牢靠;能灵敏处理各种特别状况,便利的修改各种根本信息,供给丰富的统计报表,查询便利,治理安全,操作简便易学;二、设计任务能够便利地对上班时间进展设定;记录,但是需要设置人工添加的功能,如出勤记录、月度考勤统计、人员信息、部门设置等,已备特别状况的处理;能够供给请假、加班和出差状况的记录,并实现查询、添加、修改、删除、扫瞄等处理功能;能够在每个月底进展整个月的出勤状况统计;能够具有确定的安全性、协调性和完整性。三、设计容与步骤在软、硬件方面对系统的需求,软件要求易学,简洁把握,可以很适应当前的企业状况。1.系统功能模块设计:系统功能模块如图1-1所示。考勤治理系统上 工下 作 考置班 情 勤时 况 统间 记 计设 录手工 加 请 出补 班 假 差计 记 记 记出 录 录 勤2.数据流程图:系统的数据流程图1-2些数据。员工记录出勤时间员工出勤记录月度员工考勤统计表出差记录各种统计信息经理审批通考勤员上下班时间安上下班时间安排治理人员....WORD.员工员工号权限姓名所在部门┄┄记录 记录 记录 记录 记录出差记录完毕时间出入时间累计工作时间完毕时间出入时间累计工作时间完毕时间 日期具体描述累计加班时间缘由累计请假时间累计出差时间迟到次数早退次数矿工时间

出勤记录

记录编号年月

请假记录

加班记录

1-3E-R图。出勤记录:记录号、员工、出入状况和出入时间,如图1-4所示。1-4ATTENDANCE1-51-5ATTENDANCE_STAT请假记录:记录号、员工、假期起始时间/完毕时间和请假缘由,如1-61-6LEAVE请假记录表加班记录:记录号、员工、加班时间长度和日期,如图1-7所示。1-7OVERTIME加班记录表1-81-5ERRAND出差记录表1-9所示。1-9PERSON人员信息表部门设置:部门编号、名称等,如图1-10所示。1-10DEPARTMENT部门设置表数据库操作的预备:....WORD.为了使用ODBC类需要在stdafx.h中参与#include”afxdb.h”一行。因本程序只需要连接一个数据库,所以定义了一个Cdatabase型的全局变量db,一次性翻开和关闭数据库。数据库的翻开在登录认证对话框中。在主程序完毕前需关闭数据库,因此在 App类的数中参与代码:if(db.IsOpen)db.Close;为了编程便捷,可以为数据库中的每一个表映射一个记录集类〔从CrecordSet类继承,其映射关系如表1-1所示。这些类通过〔RecordFieldExchange〕机制将成员变量与表格中的字段值联系起来,通过方问成员变量可以访问当前记录中字段的值。Crecordset派生类 表格CAttendanceRS ATTENDANCECCounterRSCdepartRSCerrandRSCLeaveRSCOvertimeRSCPersonRSCStatRS

COUNTERDEPARTMENTERRANDLEAVEOVERTIMEPERSONATTENDANCE_STAT1-1CRecordset主对话框的设计:如添加记录,统计记录等。每个菜单项关联了一个对话框,在相应的菜单项的初始化中使用:类名dlg;dlg.DoModal;两条语句来进展实现。6.考勤统计对话框的创立也可以通过查找满足条件的记录如年月、员工、等来进展相关的统计。....WORD.四、测试与评价

1-12考勤统计对话框相对简洁,所以总体评价为中等。期望能得到教师的指导得以更加完善此系统,添补漏洞。五、附录主界面源代码清单:BOOLCAttendanceDlg::OnInitDialog{CDialog::OnInitDialog;....WORD.//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;}考勤修改对话框源代码清单: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函数,调用些函数可使列表框显示给定的数据表格。voidC1::UpdateList(CAttendanceRS&rs)//更列表框容{inti=0;CStringstrID,strTime;rs.Open;//翻开出勤记录表m_cList.DeleteAllItems;//while(!rs.IsEOF)//对数据表中全部记录进展处理{m_cList.InsertItem(i,““);//添加ItemstrID.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;//关闭出勤记录表}添加部门和全体员工出勤记录的过程最终可分解为添加单个员工记录的过程。为了避开程序的重复,设置了下面的子程序://添加出勤记录函数voidC1::IO_Add(CStringstrPersonID){intcounter;//用于计数CStringstrIO;//保存出入状况CCounterRSrs_counter(&db);//构造计数器记录表//记录编号rs_counter.m_strFilter=“ID=”A”“;//设置过滤器,提取计数值rs_counter.Open;//counter=rs_counter.m_COUNTER_VALUE;//counter++;//1rs_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“;//转换出入时间类型intnYear,nMonth,nDay,nHour,nMinute;//sscanf(m_strIOTime.Left(4),“%d“,&nYear);//sscanf(m_strIOTime.Mid(5,2),“%d“,&nMonth);//sscanf(m_strIOTime.Mid(8,2),“%d“,&nDay);//sscanf(m_strIOTime.Mid(11,2),“%d“,&nHour);//sscanf(m_strIOTime.Mid(14,2),“%d“,&nMinute);////得到出入时间CTimeIO_time(nYear,nMonth,nDay,nHour,nMinute,0);CAttendanceRSrs_attendance(&db);//构造考勤记录表rs_attendance.Open;//rs_attendance.AddNew;//rs_attendance.m_ID=counter;rs_attendance.m_PERSON=strPersonID;rs_attendance.m_IN_OUT=strIO;rs_attendance.m_IO_TIME=IO_time;rs_attendance.Update;rs_attendance.Close;//关闭考勤记录表UpdateList(rs_attendance);//更列表框}考勤统计对话框源代码清单当输入员工号时,检索员工,用于确认输入。voidCStatDlg::OnChangeStatEdtSeekpersonid{UpdateData;//更数据CPersonRSrs(&db);//构造记录集rs.m_strFilter=“ID=”“+m_strPersonID+“”“;//rs.Open;//if(rs.GetRecordCount==1)//推断员工记录是否存在{m_strPersonName=rs.m_NAME;//得到员工}elsem_strPersonName.Empty;//去除员工的显示rs.Close;//UpdateData(FALSE);//更界面数据}在以上代码中用到了StrToTime函数,这是一个全局函数,代码如下:CtimeStrToTime(Cstringstr){/%Y-%m-%d%H:%M:%1999-01-011111”intnYear,nMonth,nDay,nHour,nMinute,nSecond;sscanf(str.Left(4),”%d”,&nYear); //得到年sscanf(str.Mid(5,2),”%d”,&nMonth); //得到月sscanf(str.Mid(8,2),”%d”,&nDay); //得到日sscanf(str.Mid(11,2),”%d”,&nHour); //得到时sscanf(str.Mid(14,2),”%d”,&nMinute);//得到分sscanf(str.Mid(17,2),”%d”,&nSecond);//得到秒//

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论