考勤管理系统
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
3 考勤管理系统的设计
3.1 需求分析
考勤管理系统的用户是各单位负责考勤管理的员工和领导,它可以有效的管理公司单位员工的出勤情况,规范人事制度的管理。管理员可以创建用户,修改用户信息以及删除用户,和对公司一些员工信息的编辑等。该系统包括基本信息管理,考勤信息管理,统计查询和用户管理等主要模块。每一个功能模块都需要针对不同的表来完成相同的数据库操作,即添加记录,修改记录,删除记录以及查询显示记录信息。具体功能有以下几个方面。
1、基本信息的添加,修改,删除和查询。节本信息管理包括节假日日期设置,部门信息管理和员工信息管理。
2、考勤信息管理包括出勤管理,加班管理,请假管理和出差管理等功能。
3、统计查询功能包括日考勤统计表,月考勤统计表和当日缺勤人员列表。
4、用户管理包括Admin用户管理和其他用户管理。
【买计算机毕业论文就到www.think58.com】 copyright think58 [来源:http://www.think58.com]
3.2 功能模块构成
考勤管理系统由基本信息管理模块、考勤信息模块、统计查询模块和用户管理模块四个主要功能模块构成。
基本信息管理模块,包括节假日日期设置,部门信息管理缓和员工信息管理。节假日日期信息只包括具体的日期数据,部门信息包括部门名称和部门功能的描述,员工信息包括员工姓名,性别,生日,身份证号等。
考勤信息包括出勤,加班,请假,出差等信息。出勤信息包括全勤,休息,旷工,迟到和早退等信息;加班信息包括员工信息,加班时间,加班类型和加班描述;请假信息包括员工信息,请假类型和原因;出差信息包括员工信息和出差原因。
统计查询模块包括日考勤统计表,月考勤统计表和当日缺勤人员列表。日考勤统计表包括员工姓名,考勤日期,是否全勤,是否请假等信息,月考勤统计表包括员工姓名,考勤月份,全勤天数,出差天数等信息,当日缺勤人员列表包括系统当前日期缺勤员工的姓名,所在部门和联系电话等信息。
用户管理模块用户包括Admin用户和普通用户。Admin用户可以修改自己的密码,创建修改和删除普通用户信息。普通用户只能修改自身的信息
功能模块构成如图1:
图1 功能模块
3.3 数据库结构设计
考勤管理系统数据库采用Microsoft SQL SERVER 2000,在使用数据库过程中,接触最多的就是数据库中的表,表是数据存储的地方,是数据库最重要的部分。这个系统数据库表由6个表构成,具体如下。
[来源:http://www.think58.com]
CheckInfo表是记录考勤信息的,记录员工迟到,早退,全勤,旷工,病假,事假,休息,出差等信息。
表1 CheckInfo
字 段 数据类型 长 度 是否允许为空 字段描述
CheckDate char 10 否 考勤日期
EmpId int 4 否 员工编号
QuanQin char 2 是 全勤
ChuChai char 2 是 出差
BingJia char 2 是 病假
ShiJia char 2 是 事假
KuangGong char 2 是 旷工
XiuXi char 50 是 休息
ChiDao char 50 是 迟到
Zaotui char 50 是 早退
Memo varchar 200 是 备注 内容来自think58
DepInfo表是记录部门信息的。DepId为主键。
表2 DepInfo
字 段 数据类型 长 度 是否允许为空 字段描述
DepId int 4 否 部门编号
DepName varchar 50 否 部门名称
Describes varchar 250 是 描述
UID int 4 否 总的编号
think58
[资料来源:http://think58.com]
[来源:http://www.think58.com]
EmpInfo表是记录员工的基本信息。管理员可以查看员工信息,添加员工信息需要用的表。EmpId是主键。
表3 EmpInfo
字 段 数据类型 长 度 是否允许为空 字段描述
EmpId int 4 否 编号
Name varchar 50 否 姓名
Sex char 2 是 性别
Birthday varchar 20 是 生日
IdCard varchar 20 是 身份证号
OfficePhone varchar 30 是 办公电话
Mobile varchar 30 是 手机电话
HireDate Int 4 是 到岗日期
DepId varchar 40 是 部门编号
Mission varchar 50 是 工作岗位
Duty varchar 20 是 职务
Memo varchar 200 是 备注信息 think58好,好think58 [资料来源:THINK58.com]
HolidaySet表是设置节假日信息的。Id为主键。
表4 HolidaySet
字 段 数据类型 长 度 是否允许为空 字段描述
Id int 4 否 编号
HolidayDate char 10 否 节假日期
HolidayName varchar 50 是 节假名称 本文来自think58
[版权所有:http://think58.com]
OverTime表是记录加班信息的。
表5 OverTime
字 段 数据类型 长 度 是否允许为空 字段描述
otDate Char 10 否 加班日期
EmpId int 4 否 员工编号
otHour smallint 2 否 加班时间
otType varchar 50 否 加班类型
Describes varchar 200 是 描述 [来源:http://think58.com]
think58好,好think58 [资料来源:THINK58.com]
[资料来源:THINK58.com]UserInfo表是记录用户信息的,包括用户名和密码。
表6 UserInfo
字 段 数据类型 长 度 是否允许为空 字段描述
UserName varchar 40 否 用户名
Passwd varchar 40 是 密码
UserType int 4 否 用户类型 think58好,好think58 [资料来源:http://www.THINK58.com]
4 考勤管理系统的实现
4.1 系统登陆功能的实现
用户要使用本系统,首先必须通过系统的身份认证。如果用户名错误或者不存在,密码错误3次后,对话框自动关闭。
图2 登陆对话框 [资料来源:http://THINK58.com]
具体代码如下:
void CLoginDlg::OnOK()
{ UpdateData(TRUE); //将对话框中编辑框的数据读取到成员变量中
if(m_User == "")// 没有输入用户名
{ MessageBox("请输入用户名", "信息提示");
GetDlgItem(IDC_USER_EDIT)->SetFocus();
return;}
CUserInfo User; // 定义用户信息表变量
if(!User.IsExistUser(m_User)) // 判断用户是否存在
{count++;
if(count < 3)
{MessageBox("用户名不存在,请重新输入!", "用户名错误", MB_ICONINFORMATION);
UpdateData(FALSE);
GetDlgItem(IDC_USER_EDIT)->SetFocus();
return;}
else
{ MessageBox("重试次数已到,不能再输入用户名和密码,即将退出系统!", "用户名错误", MB_ICONEXCLAMATION);
exit(0);}}
User.GetInfo(m_User); // 判断密码是否正确
if(User.Passwd != m_Passwd)
{……//同用户判断}
CDialog::OnOK();// 关闭对话框} think58
[资料来源:http://THINK58.com]
4.2 基本信息管理模块
基本信息管理模块包括节假日信息管理,部门信息管理和员工信息管理。
4.2.1 节假日信息管理
节假日信息管理,首先对节假日信息的编辑,判断节假日记录是否存在,存入数据。在从HolidaySet中读取所有节假日记录,在对记录进行操作,即添加,修改和删除。普通用户是不能打开这一块信息的,节假日管理对他们是不可见的。
think58好,好think58 [来源:http://think58.com]
内容来自think58
[资料来源:THINK58.com]
本文来自think58 [资料来源:http://THINK58.com]
think58好,好think58 [资料来源:http://think58.com]
copyright think58 [来源:http://think58.com]
本文来自think58
图3 节假日信息框
部分代码如下:
BOOL CHolidayManDlg::OnInitDialog()// 初始化
{ CDialog::OnInitDialog();
RefreshData();}
void CHolidayManDlg::RefreshData()// 更新数据
{ UpdateData(TRUE);
CString cSource = "SELECT Id, HolidayDate AS 节假日, HolidayName AS 名称" " FROM HolidaySet"; // 设置Select语句
m_Adodc.SetRecordSource(cSource); //刷新ADO Data控件的记录源
m_Adodc.RefreshData()}
void CHolidayManDlg::OnAddButton() //添加按钮
{ UpdateData(TRUE);
CHolidayEditDlg dlg; // 初始化HolidayEditDlg对话框中的变量
if (dlg.DoModal() == IDOK)
RefreshData();}
void CHolidayManDlg::OnModiButton()// 修改按钮
{ CHolidayEditDlg dlg; // 设置HolidayEditDlg对话框中的变量
if (dlg.DoModal() == IDOK) // 打开HolidayEditDlg对话框
RefreshData();}
void CHolidayManDlg::OnDelButton()// 删除按钮
{ cur.SqlDelete(m_Datagrid.GetItem(0));
RefreshData(); }
think58好,好think58
[资料来源:http://think58.com]
[资料来源:http://think58.com]下一篇:VC模拟器件测试平台设计与实现