设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计
 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>理工论文 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopin QQ:2922748026   
C++ 员工考勤管理系统说明书+源码免费下载
文章来源:www.biyezuopin.vip   发布者:毕业作品网站  
gin-top: 0px; margin-bottom: 0px; -ms-text-justify: inter-ideograph;">User.GetInfo(m_User); // 判断密码是否正确

if(User.Passwd != m_Passwd)

{……//同用户判断}

CDialog::OnOK();// 关闭对话框}

2.2 基本信息管理模块

基本信息管理模块包括节假日信息管理,部门信息管理和员工信息管理。

4.2.1 节假日信息管理

节假日信息管理,首先对节假日信息的编辑,判断节假日记录是否存在,存入数据。在从HolidaySet中读取所有节假日记录,在对记录进行操作,即添加,修改和删除。普通用户是不能打开这一块信息的,节假日管理对他们是不可见的。

图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(); }

4.2.2 部门信息管理

部门信息管理模块包括部门信息编辑对话框,部门信息管理对话框和部门信息选择对话框。

部门编辑主要是用来添加和修改部门信息。部门信息管理对话框,是系统管理员进行的操作,如果当前用户不是系统管理员,则添加,修改,和删除等按钮是不可以用,他们没有相关的权限。在删除部门的时候要对部门信息进行判断,如果部门是根节点,包含下一级部门和员工时不能删除。部门信息的选择,是为了方便用户选择部门,以后的其他模块程序可以通过此程序来获取选择的部门信息。

图4 部门图

主要代码如下:

BOOL CDepManDlg::OnInitDialog() //初始化

{CDialog::OnInitDialog();}

void CDepManDlg::AddtoTree(HTREEITEM m_node, int UpperId)

{//使用递归方法将部门添加到TreeView控件中

int i;

HTREEITEM m_child;

if(UpperId == atoi(dep.a_UID.GetAt(i)))

{ m_child = m_tree.InsertItem(dep.a_DepName.GetAt(i), m_node);

m_tree.SetItemData(m_child, atol(dep.a_DepId.GetAt(i)));

AddtoTree(m_child, atoi(dep.a_DepId.GetAt(i)));

}}

void CDepManDlg::OnAddButton() //添加按钮

{HTREEITEM node;  //用于保存当前选择的节点

node = m_tree.GetSelectedItem();  //取得当前选择的节点}

// 删除按钮

void CDepManDlg::OnDelButton()

{HTREEITEM node;  //用于保存当前节点

node = m_tree.GetSelectedItem();  //取得当前节点

//弹出对话框,要求用户确认是否删除。如果用户单击“是”按钮,则删除

if (MessageBox("是否删除当前部门?", "请确认", MB_YESNO) == IDYES)

{dep.SqlDelete(cDepId);  //删除表Departments中的指定记录

m_tree.DeleteItem(node);  //删除Tree控件中的当前节点}}

4.2.3 员工信息管理

编辑员工基本信息对话框用来添加和修改员工信息,主要包括员工的姓名,性别,出生日期,身份证号,到岗日期,办公电话,手机电话,工作岗位,职务和描述信息。员工管理则是通过选择部门信息,添加,修改和删除员工信息 这里可以查看每个部门下的员工信息。同样普通用户只能查看员工信息,不能对其信息进行添加,修改和删除等操作。

图5 员工信息图

主要代码如下:

void CEmpManDlg::RefreshData()

{UpdateData(TRUE);

int iDepId; //从Tree控件中读取部门编号信息

HTREEITEM node;

node = m_tree.GetSelectedItem();

iDepId = m_tree.GetItemData(node);

CString cDepId; //根据部门编号设置SELECT语句

cDepId.Format("%d", iDepId);

// 设置SELECT语句

CString cSource = "SELECT EmpId, Name AS 姓名, Sex AS 性别,"

" Birthday AS 生日, IdCard AS 身份证号, OfficePhone AS 办公电话,"

" Mobile AS 手机号码, HireDate AS 到岗日期, Mission AS 工作岗位,"

" Duty AS 职务, Memo AS 备注 FROM EmpInfo e, DepInfo d"

" WHERE e.DepId = d.DepId";…}

void CEmpManDlg::OnAddButton()// 添加按钮

{ UpdateData(TRUE);

CTime CurrentTime = CTime::GetCurrentTime();// 添加员工时,将日期控件设置为当天

if(dlg.DoModal()==IDOK)

RefreshData();}

void CEmpManDlg::OnModiButton()// 修改按钮

{UpdateData(TRUE);

CEmpInfo emp; // 读取选择员工的记录

emp.GetInfo(m_Datagrid.GetItem(0));

CEmpEditDlg dlg; // 将员工数据读取到编辑对话框中

if(dlg.DoModal()==IDOK)

RefreshData();}

void CEmpManDlg::OnDelButton()// 删除按钮

{ CEmpInfo emp;

emp.SqlDelete(m_Datagrid.GetItem(0));

RefreshData();}

2.3 考勤管理模块

考勤管理模块主要实现了出勤信息管理,加班信息管理,请假信息管理和出差信息管理。

4.3.1 出勤信息管理

出勤信息编辑对话框中,首先单击选择部门按钮,在左侧的表格中将显示选择部门中的所有员工信息。选择一个员工,会在右侧下方显示他的出勤状态。选择出勤状态,然后单击确定按钮,可以保存指定员工的出勤情况。

出勤管理对话框中,根据左边的部门,列出各个部门中的员工及其员工的出勤信息,出勤时间,是否全勤,是否出差,是否迟到,是否早退,是否旷工等。用户可以根据实际的情况进行具体的操作,添加,修改和删除。

图6 出勤信息

主要代码如下:

void COnDutyManDlg::RefreshData()

{ UpdateData(TRUE);

int iDepId; //从Tree控件中读取部门编号信息

HTREEITEM node;

node = m_tree.GetSelectedItem();

iDepId = m_tree.GetItemData(node);

CString cDepId; //根据部门编号设置SELECT语句

cDepId.Format("%d", iDepId);

// 设置SELECT语句

CString cSource = "SELECT c.EmpId AS 员工编号, e.Name AS 姓名, c.CheckDate AS 出勤日期," " c.QuanQin AS 是否全勤, c.XiuXi AS 是否休息, c.KuangGong AS 是否旷工," " c.ChiDao AS 是否迟到, c.ZaoTui AS 是否早退 FROM CheckInfo c, EmpInfo e, DepInfo d"" WHERE c.EmpId = e.EmpId AND e.DepId = d.DepId";

m_Adodc.SetRecordSource(cSource); //刷新ADO Data控件的记录源

m_Adodc.Refresh();}

void COnDutyManDlg::OnAddButton()// 添加按钮{...}

void COnDutyManDlg::OnModiButton()//修改按钮{…}

void COnDutyManDlg::OnDelButton()//删除按钮{…}

程序调用m_tree.GetSelectedItem()函数获取当前选择的部门接点数据,并使用GetItemData(node)函数获取部门编号。然后根据选择的部门编号设置SELECT语句,从表CheckInfo,表EmpInfo和表DepInfo中获取部门中所有员工的出勤记录。

4.3.2 加班信息管理

加班信息编辑对话框主要是对员工的加班情况的添加和修改。首先点击选择部门,在左侧则列出所有部门及其员工信息,选择一个员工,会在右侧下方显示他的加班状态。选择加班状态,包括加班时数,加班原因和加班类型,然后单击确定按钮,可以保存指定员工的加班情况。

加班信息管理对话框中,通过点击左边的部门,列出各个部门中的员工及其员工的加班信息,加班时间,加班时数,加班原因和加班类型等。用户可以根据实际的情况进行具体的操作,添加,修改和删除。

图7 加班信息框

部分代码如下:

void COvertimeManDlg::OnAddButton() //添加按钮

{ COvertimeEditDlg dlg;

CurrentTime = CTime::GetCurrentTime();

dlg.otDate = CurrentTime.Format("%Y-%m-%d");

if (dlg.DoModal() == IDOK)

RefreshData();}

void COvertimeManDlg::OnModiButton()// 修改按钮

{ if (m_Adodc.GetRecordset().GetEof())

{ MessageBox("请选择要修改的记录!");

return; }

CEmpInfo emp; // 根据员工编号得到员工信息

emp.GetInfo(m_Datagrid.GetItem(0));

CString cDepId; // 根据部门编号得到部门信息

cDepId.Format("%d", emp.DepId);

dep.GetInfo(cDepId);

COvertimeEditDlg dlg;

if(m_Datagrid.GetItem(4) == "法定节假日加班")

dlg.m_overtime = 0;

else if(m_Datagrid.GetItem(4) == "周六日加班")

dlg.m_overtime = 1;

else if(m_Datagrid.GetItem(4) == "日常加班")

dlg.m_overtime = 2;

dlg.otDate = m_Datagrid.GetItem(2); // 日期

dlg.m_describe = m_Datagrid.GetItem(5);

if (dlg.DoModal() == IDOK)

RefreshData();}

void COvertimeManDlg::OnDelButton()//删除按钮

{cur.SqlDelete(m_Datagrid.GetItem(2), m_Datagrid.GetItem(0));}

4.3.3 请假信息管理

请假信息编辑对话框中,首先点击选择部门,在左侧则列出所有部门及其员工信息,选择一个员工,会在右侧下方显示他的请假状态。选择出勤状态,请假分为病假和事假,并且需要输入请假原因,然后单击确定按钮,可以保存指定员工的请假情况。

请假信息管理对话框中,通过点击左边的部门,列出各个部门中的员工及其员工的信息,选中员工的姓名则可以进行员工的请假信息的编辑。用户可以根据实际的情况进行具体的操作,添加,修改和删除。

图8 请假信息图

主要代码如下:

void CLeaveEditDlg::OnOK()

{ UpdateData(TRUE);

if(m_Adodc.GetRecordset().GetEof())// 是否选择人员

{ MessageBox("请选择人员");

return; }

if(m_shijia == -1) // 是否进行添加考勤状态

{ MessageBox("请选择出勤状态");

return; }

CCheckInfo cur;

cur.CheckDate = CheckDate; // 赋值到CCheckInfo对象中

cur.EmpId = atol(m_Datagrid.GetItem(0));

switch(m_shijia)

{cur.Memo = m_memo;

if(EmpId == "")

{ // 在添加时,若人员有出勤记录,则不允许添加

if(cur.HaveEmp(CheckDate, m_Datagrid.GetItem(0)))

{ MessageBox("已经有此员工的出勤信息,不能添加");

return; }

cur.SqlInsert();// 插入记录}

else

{ cur.UpdateLeave(cur.CheckDate, EmpId); // 修改CheckInfo表记录}

CDialog::OnOK();}

请假信息保存在表CheckInfo中,如果在出勤信息管理模块中输入了出勤信息,则不能再输入请假信息。如果修改记录,则程序调用Update Leave()函数,更新表CheckInfo中的Shijia ,Bingjia和Memo等字段的值。

4.3.4 出差信息管理

出差信息管理编辑对话框主要是对员工的出差情况的添加和修改。首先点击选择部门,在左侧则列出所有部门及其员工信息,选择一个员工,会在右侧下方显示他的出差状态。选择出差状态,写出出差原因,然后单击确定按钮,可以保存指定员工的出差情况。

出差信息管理对话框中,通过点击左边的部门,列出各个部门中的员工及其员工的出差信息。用户可以根据实际的情况进行具体的操作,添加,修改和删除。

图9 出差信息

主要代码如下:

void CErrandEditDlg::OnOK()

{UpdateData(TRUE);

if(m_Adodc.GetRecordset().GetEof())// 是否选择人员

{ MessageBox("请选择人员");

return; }

CCheckInfo cur;

cur.CheckDate = CheckDate; // 赋值到CCheckInfo对象中

cur.EmpId = atol(m_Datagrid.GetItem(0));

cur.ChuChai = "是";

cur.QuanQin = "否";

cur.BingJia = "否";

cur.ShiJia = "否";

cur.KuangGong = "否";

cur.XiuXi = "否";

cur.ChiDao = "否";

cur.ZaoTui = "否";

cur.Memo = m_memo;

if(EmpId == "")

{// 在添加时,若人员有出勤记录,则不允许添加

if(cur.HaveEmp(CheckDate, m_Datagrid.GetItem(0)))

{ MessageBox("已经有此员工的出勤信息,不能添加");

Return;}

cur.SqlInsert();// 插入记录}

else

{ cur.UpdateErrand(cur.CheckDate, m_Datagrid.GetItem(0)); // 修改CheckInfo表记录}

CDialog::OnOK();……}

2.4 统计查询模块

统计查询模块主要是实现了日考勤统计表,月考勤统计表,当日缺勤人员列表3个功能。

4.4.1 日考勤统计表

日考勤统计表按日查询所有员工的出勤,加班,请假和出差等信息。首先选择要查询的日期,在点击查询按钮,即列出这日期的员工信息,包括员工编号,员工姓名,出勤日期,是否全勤,是否出差,是否请假,是否加班等等。

图10 日考勤统计图

主要代码如下:

void CTimeSelDlg::RefreshData()

{UpdateData(TRUE);

CString cTime; //根据部门编号设置SELECT语句

cTime = m_time.Format("%Y-%m-%d");

// 设置SELECT语句

CString cSource = "SELECT c.EmpId AS 员工编号, e.Name AS 姓名, c.CheckDate AS 出勤日期," " c.QuanQin AS 是否全勤, c.ChuChai AS 是否出差, c.ShiJia AS 是否事假," " c.BingJia AS 是否病假, c.KuangGong AS 是否旷工, c.XiuXi AS 是否休息," " c.ChiDao AS 是否迟到, c.ZaoTui AS 是否早退, c.Memo AS 备注"" FROM CheckInfo c, EmpInfo e WHERE c.EmpId = e.EmpId AND c.CheckDate = '" + cTime + "'";

//刷新ADO Data控件的记录源

m_Adodc.SetRecordSource(cSource);

m_Adodc.Refresh();}

程序执行SELECT语句,从表CheckInfo和EmpInfo中读取选择日期中各员工的考勤信息。

4.4.2 月考勤统计表

月考勤统计表是按月统计所有员工的出勤天数,请假天数,出差天数等信息。为了对各种考勤天数进行统计,需要创建一组视图,分别按月统计所有员工的全勤天数,休息天数,旷工天数,迟到次数,早退次数,病假天数,事假天数和出差天数。在表CheckInfo中,CheckDate字段保存考勤日期,LEFT(CheckDate)返回考勤日期的年份和月份信息,使用COUNT()函数和GROUP BY子句统计考勤月份和员工分组的各种考勤天数。

图11 月考勤统计图

主要代码如下:

void CDepDlg::RefreshData()

{ UpdateData(TRUE);

//根据部门编号设置SELECT语句

CString cStrCnd,cDepId;

cDepId.Format("%d", iDepId);

if ( iDepId >0 )

cStrCnd = " And d.DepId=" + cDepId;

else

cStrCnd = "";

CString cTime; // 查询日期

// 得到年份和月份

m_year.GetLBText(m_year.GetCurSel(), cYear);

m_month.GetLBText(m_month.GetCurSel(), cMonth);

cTime = cYear + "-" + cMonth; // 得到日期

// 设置SELECT语句

CString cSource = "SELECT e.Name AS 姓名,"

" ISNULL(v1.CountQuanQin,0) AS 全勤天数, ISNULL(v2.CountChuChai,0) AS 出差天数,"

" ISNULL(v3.CountShiJia,0) AS 事假天数, ISNULL(v4.CountBingJia,0) AS 事假天数,"

" ISNULL(v5.CountKuangGong,0) AS 旷工天数, ISNULL(v6.CountXiuXi,0) AS 休息天数,"

" ISNULL(v7.CountChiDao,0) AS 迟到次数, ISNULL(v8.CountZaoTui,0) AS 早退次数"

" FROM v_QuanQin v1, v_ChuChai v2, v_ShiJia v3, v_BingJia v4,DepInfo d, "

" v_KuangGong v5, v_XiuXi v6, v_ChiDao v7, v_ZaoTui v8, EmpInfo e"

" WHERE e.EmpId *= v1.EmpId AND e.EmpId *= v2.EmpId And e.DepId=d.DepId"

" AND e.EmpId *= v3.EmpId AND e.EmpId *= v4.EmpId AND e.EmpId *= v5.EmpId"

" AND e.EmpId *= v6.EmpId AND e.EmpId *= v7.EmpId AND e.EmpId *= v8.EmpId"

" AND v1.CheckMonth = '" + cTime + "' AND v2.CheckMonth = '" + cTime +

"' AND v3.CheckMonth = '" + cTime + "' AND v4.CheckMonth = '" + cTime +

"' AND v5.CheckMonth = '" + cTime + "' AND v6.CheckMonth = '" + cTime +

"' AND v7.CheckMonth = '" + cTime + "' AND v8.CheckMonth = '" + cTime + "'" + cStrCnd;

//刷新ADO Data控件的记录源

m_Adodc.SetRecordSource(cSource);

m_Adodc.Refresh();…}

程序执行SELECT语句,从表EmpInfo和其他视图中读取选择月份中各员工的考勤信息,ISNULL()函数是SQL Server的内部函数,它的功能是当第一个参数为NULL时,将第二个参数作为结果返回。

4.4.3 当日考勤人员列表

当日考勤人员列表查询当前系统日期中所有缺勤的员工信息,缺勤指病假,事假和旷工等情况。

图12 当日缺勤人员图

主要代码如下:

void CAbsenceDlg::RefreshData()

{ UpdateData(TRUE);

CString cTime; //根据部门编号设置SELECT语句

cTime = CurrentTime.Format("%Y-%m-%d");

// 设置SELECT语句

CString cSource = "SELECT e.EmpId AS 员工编号, e.Name AS 姓名, d.DepName AS 部门名称,"

" e.Mobile AS 联系电话 FROM DepInfo d, EmpInfo e"

" WHERE e.DepId = d.DepId AND e.EmpId IN"

" (SELECT EmpId FROM CheckInfo WHERE (ShiJia='是' OR BingJia='是' OR KuangGong='是')"

" AND CheckDate = '" + cTime + "')";

m_Adodc.SetRecordSource(cSource); //刷新ADO Data控件的记录源

m_Adodc.Refresh();…}

程序中使用了嵌套查询语句,即在一个SELECT语句中嵌套使用了另外一个SELECT语句。主SELECT语句显示员工和部门信息,在其查询条件中使用IN子句嵌套另一个SELECT语句。从SELECT可以返回表CheckInfo中当日事假,病假和旷工的记录。

2.5 用户管理模块

根据用户类型的不同,用户管理模块的功能也不相同,主要包括Admin用户可以创建其他用户,修改用户的密码,删除其他用户,而其他用户只能修改自身的用户信息。

这个模块包括了用户管理和密码修改两个功能。在用户管理中只有Admin用户才可以进行操作,可以添加删除其他用户信息。

图13 用户管理框图

主要代码如下:

void CUserManDlg::RefreshData()

{ UpdateData(TRUE);

// 设置Select语句

CString cSource = "SELECT UserName AS 用户名, Passwd,"

" (CASE When UserType=1 Then '系统管理员' ELSE '普通用户' END) AS 用户类型,"

"UserType FROM UserInfo";

//刷新ADO Data控件的记录源

m_Adodc.SetRecordSource(cSource);

m_Adodc.Refresh();……}

void CPasswdDlg::OnOK()

{ //将对话框中编辑框的数据读取到成员变量中

UpdateData(TRUE);

//检查数据有效性

if (m_old == "")

{ MessageBox("请输入旧密码");

GetDlgItem(IDC_OLD_EDIT)->SetFocus();

return;}

if (m_new == "")

{ MessageBox("请输入新密码");

GetDlgItem(IDC_NEW_EDIT)->SetFocus();

return; }

if (m_confirm != m_new)

{ MessageBox("两次输入的新密码不同");

UpdateData(FALSE);

GetDlgItem(IDC_NEW_EDIT)->SetFocus();

return; }

//定义CUserInfo对象,用于从表UserInfo中读取数据

CUserInfo cur;

cur.GetInfo(m_user);

//如果读取的数据与用户输入数据不同,则返回

if (cur.Passwd != m_old)

{ MessageBox("用户密码不正确!");

UpdateData(FALSE);

GetDlgItem(IDC_OLD_EDIT)->SetFocus();

return;}

cur.Passwd = m_new;

cur.SqlUpdate(m_user);

MessageBox("密码修改成功,下次登录请使用新密码");

CDialog::OnOK();}

SELECT语句中使用了3个表,表UserInfo,表DepInfo和EmpInfo。为了防止因为表UserInfo中的EmpId字段找不到表EmpInfo中对应的EmpId字段值而造成用户记录无法显示问题,在表之间连接关系时使用了LEFT JION关键字,即只要是UserInfo中存在的记录都将出现在结果集中,无论它在其他两个表中是否存在对应的记录。

程序将对用户输入的密码进行验证,包括旧密码是否为空,新密码是否为空,两次输入的新密码是否相同,旧密码是否通过密码验证,通过验证后,程序调用CUsers::sql_updatePassword()函数,更新用户密码。


下载说明书及源码C++ 员工考勤管理系统.zip

,

1 考勤管理系统的设计

1.1 需求分析

考勤管理系统的用户是各单位负责考勤管理的员工和领导,它可以有效的管理公司单位员工的出勤情况,规范人事制度的管理。管理员可以创建用户,修改用户信息以及删除用户,和对公司一些员工信息的编辑等。该系统包括基本信息管理,考勤信息管理,统计查询和用户管理等主要模块。每一个功能模块都需要针对不同的表来完成相同的数据库操作,即添加记录,修改记录,删除记录以及查询显示记录信息。具体功能有以下几个方面。

1、基本信息的添加,修改,删除和查询。节本信息管理包括节假日日期设置,部门信息管理和员工信息管理。

2、考勤信息管理包括出勤管理,加班管理,请假管理和出差管理等功能。

3、统计查询功能包括日考勤统计表,月考勤统计表和当日缺勤人员列表。

4、用户管理包括Admin用户管理和其他用户管理。

1.2 功能模块构成

考勤管理系统由基本信息管理模块、考勤信息模块、统计查询模块和用户管理模块四个主要功能模块构成。

基本信息管理模块,包括节假日日期设置,部门信息管理缓和员工信息管理。节假日日期信息只包括具体的日期数据,部门信息包括部门名称和部门功能的描述,员工信息包括员工姓名,性别,生日,身份证号等。

考勤信息包括出勤,加班,请假,出差等信息。出勤信息包括全勤,休息,旷工,迟到和早退等信息;加班信息包括员工信息,加班时间,加班类型和加班描述;请假信息包括员工信息,请假类型和原因;出差信息包括员工信息和出差原因。

统计查询模块包括日考勤统计表,月考勤统计表和当日缺勤人员列表。日考勤统计表包括员工姓名,考勤日期,是否全勤,是否请假等信息,月考勤统计表包括员工姓名,考勤月份,全勤天数,出差天数等信息,当日缺勤人员列表包括系统当前日期缺勤员工的姓名,所在部门和联系电话等信息。

用户管理模块用户包括Admin用户和普通用户。Admin用户可以修改自己的密码,创建修改和删除普通用户信息。普通用户只能修改自身的信息

功能模块构成如图1:

图1 功能模块

1.3 数据库结构设计

考勤管理系统数据库采用Microsoft SQL SERVER 2000,在使用数据库过程中,接触最多的就是数据库中的表,表是数据存储的地方,是数据库最重要的部分。这个系统数据库表由6个表构成,具体如下。

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

备注

DepInfo表是记录部门信息的。DepId为主键。

表2 DepInfo

字  段

数据类型

长 度

是否允许为空

字段描述

DepId

int

4

部门编号

DepName

varchar

50

部门名称

Describes

varchar

250

描述

UID

int

4

总的编号

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

备注信息

HolidaySet表是设置节假日信息的。Id为主键。

表4  HolidaySet

字  段

数据类型

长 度

是否允许为空

字段描述

Id

int

4

编号

HolidayDate

char

10

节假日期

HolidayName

varchar

50

节假名称

OverTime表是记录加班信息的。

表5  OverTime

字  段

数据类型

长 度

是否允许为空

字段描述

otDate

Char

10

加班日期

EmpId

int

4

员工编号

otHour

smallint

2

加班时间

otType

varchar

50

加班类型

Describes

varchar

200

描述

UserInfo表是记录用户信息的,包括用户名和密码。

表6 UserInfo

字  段

数据类型

长 度

是否允许为空

字段描述

UserName

varchar

40

用户名

Passwd

varchar

40

密码

UserType

int

4

用户类型

2 考勤管理系统的实现

2.1 系统登陆功能的实现

用户要使用本系统,首先必须通过系统的身份认证。如果用户名错误或者不存在,密码错误3次后,对话框自动关闭。

图2 登陆对话框

具体代码如下:

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);}}

  全套毕业设计论文现成成品资料请咨询微信号:biyezuopin QQ:2922748026     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
本类最新文章
选择榨汁机的诚实指南 通用回归神经网络在声呐目标分类中 工艺规程制订与并行工程
储油罐的变位识别与罐容表标定 DVD租赁优化方案 车灯线光源的优化设计方案
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopin QQ:2922748026  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!