当前位置:首页 > 考勤管理系统设计报告
VFP课程设计报告
理工大学 继续教育学院 计算机网络技术专业 张华
开发背景:随着信息技术的高速发展,各行各业都充分利用信息平台提高自己的管理效率。当今国内各企业已纷纷建立考勤制度,依托考勤管理系统,使管理效率显著提高。
课题:考勤管理系统
时间:2011年12月24日——2012年1月5日
计算机综合实践说明书
数据库部分
设计总任务:
这次设计的程序是考勤管理系统,主要用于企事业单位的考勤,便于统计员工
的出勤情况。
用户需求(程序功能)分析及程序流程图: (1)系统功能:
? 上班时间的设定。上下班时间相对固定,可保存在客户端的设置文件
中
? 员工出入单位的情况记录。出入情况主要由考勤机来记录,但是需要
设置人工添加的功能,已备特殊情况的处理 ? 请假、加班和出差情况的记录
? 每个月底进行整个月的出勤情况统计
(2)系统功能模块设计:
根据系统功能的要求,可以将系统分解成几个功能模块来分别设计,功能模块如图所示
(3)系统的数据流程图如图所示,出勤的原始记录主要来源于考勤机,并且以固定格式保存在数据库中。考勤管理系统的任务是如何处理这些数据。
(4)数据需求分析
根据数据流程图,可以列出以下数据项和数据结构: ? 出勤记录:记录号、员工、出入情况和出入时间
? 月度考勤统计:记录号、员工、年月、累计正常工作时间、累计请假时
间、累计加班时间、累计出差时间、迟到次数、早退次数和旷工次数 ? 请假记录:记录号、员工、假期起始时间/结束时间和请假缘由 ? 加班记录:记录号、员工、加班时间长度和日期
? 出差记录:记录号、员工、出差起始时间/结束时间和具体描述 ? 人员信息:员工号、密码、权限、姓名、部门和当前状态等 ? 部门设置:部门编号、名称等
(5)数据库概念结构设计(E-R图)
(6)程序流程图
登录考勤管理软件输入 (ODBC数据源,用户 名,密码) 失败返回(重新登录) 成功进入主界面 考勤管理软件主界面:设置,出勤记录,提示输入错 统计,重新登录,退出。 误 下“设按按下“出勤按下“统按下“重新按下“退 置”按钮 记录”按钮 计”按钮 登录”按钮 出”按钮 “上下班时间“考勤修“考勤统回到“用户登退出该考勤 设置”对话框改”对话框 计”对话框 录”对话框 管理系统 对一天上午,中分别对“考勤修改出勤记录”,对“考勤统 午,下午的工作“加班记录”,“请假记录”,“出计”该页面时间进行修改 差记录”四个页面进行编辑 进行编辑 分别把这四个页面将该页面的操 将修改的时间记录以下次编辑好的数据保存作结果保存到 *.ini的形式保存,到数据库当中 数据库当中 将调用该文件的时间
软件测试结果:
在该考勤管理系统软件中经过测试可以达到预期的目标,即可以满足用户对该考勤软件的基本要求;用户可以通过我们程序员事先为他们准备好的SQL数据库语言在SQL Server中把自己所要建立的数据库建立好;并通过数据源 (ODBC)建立想要建的数据源;之后用户便可以顺利的通过考勤管理软件对员工的出勤情况进行管理。打开考勤管理软件,首先出现的是考勤管理系统登录的对话框:它由数据源 (ODBC)名称,用户名和密码三个输入框组成,用户只要将先前建好的数据源的名称,用户名和密码正确的输入编辑框即可登录考勤管理的主界面,如果不匹配,会弹出对话框提示。
登录成功后出现的主界面由“设置”,“出勤记录”,“统计”,“重新登录”,“退出”五个功能按钮组成。
单击主对话框中的各个按钮即可显示相应的对话框。其中“重新登录”按钮用于回到登录对话框,并且隐藏主对话框;“退出”按钮直接退出应用程序;“设置”按钮用来弹出上下班时间设置对话框;“出勤记录”按钮用来弹出考勤修改对话框。单击“统计”按钮会出现统计对话框。
上下班时间对话框在系统中以摸态对话框形式弹出,因此在没有退出此对话框时,所有其他的窗口都无法使用。上下班的时间包括两对时间值,可根据需要设置。最后单击“修改”按钮,见时间设置保存到“work_plan.ini”文件中。单击“恢复默认设置”按钮,系统会从“work_plan.ini”文件中读取保存的时间设置。如果该配置文件不存在,则用程序中默认的时间来代替。
考勤修改窗口包括4项记录修改功能,分别对应出勤记录,加班记录,请假记录和出差记录。这4项记录的显示使用同一个检索条件。检索条件包括时间范围和员工,可根据需要设置。出勤记录的添加是为了防止考勤出故障时,保证记录的完整性,在批量输入时,进度条会显示当前完成的进度。在出勤记录列表的上方有两个按钮。一个用来删除当前的记录,另一个用来激活检索条件。考勤修改对话框中其他三项记录的添加和修改基本与出勤记录类似。
考勤统计对话框分别为月度统计,检索条件和记录列表3部分。月度统计需要设定统计的时间范围。最后统计结果保存到ATTENDANCE_STAT数据表中。同样,进度条将显示统计的进度。检索条件和“检索”按钮用于快速定位记录,便于查询和修改。
代码简述:
用到的类:CaboutDlg, CattDlg, CcounterRS, Ccrypt, CdepartRS, CerrandRS, CleaveRS, ClinkButton, CloginDlg, CovertimeRS, CPage1, CPage2, CPage3, CPage4,
CpersonRS, CstatDlg, CstatRS, Ctest, CworkplanDlg, CXieyuyingDBApp, CXieyuyingDBDlg, CXieyuyingDBRS. 成员函数:
OnChangeEdtSeekpersonid(),Encrypt(CString S, WORD Key), Decrypt(CString S, WORD Key), DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct), OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message), OnTimer(UINT nIDEvent), OnCreate(LPCREATESTRUCT lpCreateStruct), OnLButtonUp(UINT nFlags, CPoint point), OnLButtonDown(UINT nFlags, CPoint point), OnOK(),OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor), WindowProc(UINT message, WPARAM wParam, LPARAM lParam), OnChangeEdtDepartid(),OnChangeEdtPersonid(),IO_Add(CString OnBtnAddperson(),OnBtnAddall(),UpdateList(CXieyuyingDBRS& OnBtnDeleteattend(),OnBtnSeekio(),UpdateList(CLeaveRS
strPersonID),
rs), &rs),
OnBtnLeaveAdd(),OnBtnLeaveDeleteattend(),OnBtnLeaveSeekio(),UpdateList(CErrandRS &rs), OnChangeEdtErrandPersonid(),OnBtnErrandAdd(),OnBtnErrandDeleteattend(),OnBtnErrandSeekio(),OnChangeStatEdtSeekpersonid(),OnStatBtnSeek(),UpdateList(CStatRS&rs),
OnStatBtnStat(),OnWorkplanReset(),OnWorkplanModify(),ExitInstance(),OnInitDialog(),OnBtnExit(),OnBtnRelogin(),OnBtnConfig(),OnBtnRecord(),OnBtnStatistics(),Ctime, Cstring, BOOL.
相关的变量:
m_StartTime, m_INTRO,
m_EndTime,,
m_strPersonID,
m_strName
m_bSeekbyperson, m_DESCRIPTION,
m_bSeekbytime, m_COUNTER_VALUE, m_DESCRIPTION, m_ID, m_NAME, m_MANAGER,
m_PERSON,
m_START_TIME,
m_END_TIME,
m_START_TIME, m_END_TIME, m_REASON, m_strDSN, m_strUser, m_strPasswd, m_WORK_DATE, m_WORK_HOURS, m_cList, m_cProgress, m_strIOTime, m_strDepartID, m_strDepartName, m_strPersonID, m_strPersonName, m_nHour, m_Date, m_strSTime, m_strETime, m_strReason, m_BIRTHDAY, m_PASSWD, m_AUTHORITY, m_NAME, m_SEX, m_DEPARTMENT, m_JOB, m_EDU_LEVEL, m_SPECIALTY, m_ADDRESS, m_TEL, m_EMAIL, m_REMARK, m_bSeekbytime, m_bSeekbyperson, m_strSeektime, m_Stime, m_ETime, m_ERRAND_HDAY, m_ERRAND_HDAY, m_LATE_TIMES, m_EARLY_TIMES, m_ABSENT_TIMES, m_YEAR_MONTH, m_Time1, m_Time2, m_Time3, m_Time4, m_brush, m_pStatDlg, m_pAttDlg, m_nWidth,m_nHeight, m_nDx, m_nDy, m_IN_OUT, m_IO_TIME.
编程感想:
1.通过程序设计,使我能够进一步掌握用程序设计语言解决实际问题的方法,在操作当中把所学到的用于实际的编程里去。
2.通过程序设计,使我能够提高分析问题、查阅资料、吸收新知识的能力,在分析解决问题时比以前有了很大的进步,一些常用的知识和一些常规的错误都能够解决。
3.我认为程序设计是给我们学习的一个大好机会,使我们在这样的机会里学到了一定的知识,毕竟理论要通过实践来锻炼,也只有自己参与了这样的一个锻炼,才能更好的发现自己的不足并加以改进和完善!
共分享92篇相关文档