毕业设计(论文)-基于VC++的考勤系统设计.doc_第1页
毕业设计(论文)-基于VC++的考勤系统设计.doc_第2页
毕业设计(论文)-基于VC++的考勤系统设计.doc_第3页
毕业设计(论文)-基于VC++的考勤系统设计.doc_第4页
毕业设计(论文)-基于VC++的考勤系统设计.doc_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

教学单位 学生学号 XXX大学(学院)毕 业 设 计 (论文)题 目: 基于VC+的考勤系统 年 级: 学 号: 姓 名: 专 业: 指导教师: 2011 年 6 月 19 日基于VC+的考勤系统摘要:随着现代科学技术的发展,越来越多的公司和企业对职工的考勤都实行了信息化管理,使用计算机系统代替复杂的手工方式来管理考勤事务。考勤系统可以有效地管理公司员工的出勤情况,规范人事制度管理,保证公司正常的工作,是人力资源管理的重要组成部分。因此,考勤管理系统的设计与实现有着十分重要的意义。系统的开发主要包括后台数据库的建立,维护以及前端应用程序的开发两个方面,主要模块包括基本信息管理模块,考勤信息管理模块,统计查询模块和系统用户管理模块。系统是使用Visual C+开发语言,使用Microsoft Visual Studio 6.0作为工具软件,数据库为Access 2003。系统采用目前比较流行的ODBC数据访问技术,并将每个数据库表的字段和操作封装到类中,它使应用程序的各个窗口都能够共享对表的操作,不需要重复编码,使程序更加易于维护,从而将面向对象的程序设计思想应用到数据库应用程序中。关键字: Visual C+,Access,MFC,考勤管理,ODBC数据访问技术。VC + + based on the attendance systemAbstract:With the development of modern science and technology, an increasing number of companies and enterprises of the attendance of all employees to implement the information management, the use of complex computer systems to replace manual methods to manage time and attendance matters. Attendance system can effectively manage staff attendance and standardize the management of the personnel system to ensure that normal work is an important human resource management component. Therefore, the Attendance Management System Design and Implementation is very important. System mainly includes the establishment of the background database, front-end application maintenance and development of two main modules, including basic information management module, attendance information management module, statistics module and system queries the user management module. System is to use Visual C + + development language, the use of Microsoft Visual Studio 6.0 as a tool for software, database for Access 2003. System is currently more popular ODBC data access technology, and database tables for each of the field and operation of the class package, which allows applications to share all the various windows on the operation table, do not need to duplicate code, so that procedures more easy to maintain, so that object-oriented programming design concepts applied to database applications.Key words:Visual C + +, Access, MFC, attendance management, ODBC data access technology.前 言二十一世纪人类已进入到了一个高速发展的信息时代。社会的高度信息化要求各企事业单位不停的提高信息管理技术以适应社会的发展。 我国当前考勤管理在许多企业中还是停留在手工记录的方式,其操作相当繁杂。考勤工作需要管理者深入到企业的各个部门中去统计员工的出勤情况。由于企业部门繁多,导致经常会出现记录错误的情况发生。极大的影响了企业对员工的管理。本设计运用 Access 2003数据库设计软件与Visual C+程序语言设计了一个考勤管理软件。使用该软件,管理者可以快速记录公司全体员工当日的出勤状况。并可按月份统计员工出勤,出差,请假状况及正常工作时间。很好的解决了前者在管理方面所存在的弊端。且操作非常简单,用户只需要懂得操作Windows系统便可,无需再进行其他任何培训,方便用户使用。在本软件的开发过程中主要使用了Visual C+中的MFC库来完成用户界面设计和求值、统计的算法设计。运用 Access 2003来建立系统数据库,并通过ODBC实现两者的连接。 目 录一 引 言5(一) 课题背景5(二) 本课题的研究意义6(三)本课题研究方法6二 开发工具6(一) Visual C+ 6.06(二) ACCESS 2003数据库7(三) ODBC数据访问技术7三 考勤系统的设计9(一) 需求分析91 系统需求92 功能需求9(二) 功能模块构成10(三) 数据库结构设计10四 考勤系统的实现13(一) 系统登录功能的实现13(二) 系统管理14(三) 考勤管理141 加班信息管理142 出差信息管理153 请假信息管理16(四) 修改查询管理161 添加修改172 查询统计17(五) 系统设置18一 引 言在当今社会,随着计算机的普及及网络技术的应用,考勤管理工作应该从繁琐的日常事务中解放出来,比工作效率。并且,使用计算机对员工信息进行考勤管理,具有手工所无法比拟的优点。例如:查询迅速查找方便、可靠性高成本低高效率等。(一) 课题背景长期以来,繁琐的考勤记录整理,统计,查询等工作,一直困扰着企业行政部门的工作人员。因此考勤管理在生产管理过程中充当着一个十分重要角色,考勤管理的效率对企业工作效率的提高起着举足轻重的作用。随着现代科学技术的发展,越来越多的公司和企业对职工的考勤管理都实行了信息化管理,使用计算机系统代替繁琐冗余的手工方式来管理考勤事务。基于此,开发了一套考勤管理系统,不仅能够很好的管理员工考勤信息,也能更好的提高企业的工作效率,并且这些信息也将直接作为公司对员工的奖惩、提升以及培训的一个重要依据。(二) 本课题的研究意义随着计算机的普及和计算机科学技术的飞速发展,人们开始越来越多地利用计算机解决实际问题。考勤管理是商业信息管理的重要部分,面对大量的商品信息,采用人力处理将浪费大量的时间、人力和物力,而且统计数据麻烦。因此,开发一个界面友好,易于操作的考勤管理软件进行自动化处理变得十分重要,这正是本系统开发的目的和意义。通过此考勤管理系统的开发锻炼了学生的实际动手能力对以后的学习和工作能力的培养也具有重要意义。(三)本课题研究方法开发考勤管理系统需要选择两种工具,即前台开发语言和后台数据库。一般开发C/S结构的应用程序时,前台开发语言通常可以选择Visual Basic、Visual C+、Delphi和Power Builder等,如果开发网络应用程序,则需要选择一个网络数据库系统,如Access、Oracle、 SQL Server 2000和IBM DB2等。本设计是使用Visual C+ 6.0的开发工具,使用Access 2003作为后台数据库开发,采用了比较流行的数据库访问技术ODBC(Open Database Connectivity),是提供对各种数据库的标准接口。本次毕业设计应首先分析考勤管理系统的相关功能,结合本次毕业设计的相关要求写出需求分析;其次,综合运用以前所学的相关知识,在设计中以需求分析为基础,写出系统开发计划、实现流程及相关问题的实现方法;同时,在开发设计与实现中,要保存好相关的设计文档。二 开发工具(一) Visual C+ 6.0Visual C+6.0 是微软公司1998年推出的产品,是基于Windows操作系统的编程工具,是Microsoft Visual Studio 6.0的组件之一,具有功能强大的可视化开发环境,为程序员开发软件提供了方便的条件,并且VisualC+6.0集程序的代码编辑、编译、连接、调试等功能与一体,给程序员提供一个完整、全面而又方便的开发环境。它采用一种巧妙的方法将Windows的编程复杂性封装起来,编程者可以比较轻松地进行Windows应用程序的设计。Visual C+ 6.0继承了以前版本的优点,为用户提供了更为友好的可视化开发环境。它提供了强大的编译能力以及良好的界面操作性,具有功能强大、通用性强和易于扩充等特点,越来越多的被用来当作客户/服务器应用程序的前台应用工具,而且能够对Windows NT、Windows 2000 以及Windows XP 下的C+程序设计提供完善的编程环境。同时Visual C+6.0 对网络、数据库等方面的编程也都提供相应的环境支持。随着可视化编程的蓬勃发展,越来越多的程序员开始使用可视化编程技术。Visual C+6.0拥有两种编程方式: 一种是传统的基于WindowsAPI的C编程方式,虽然代码效率较高,但开发难度与开发工作量也随着增高,目前使用这种编程方式的用户已经很少。另一种是基于MFC的C+编程方式,虽然代码运行效率相对较低,但开发难度小,开发工作量小,源代码效率高,已经成为Visual C+开发windows应用程序的主流。本系统选择的就是基于MFC的C+编程方式。(二) ACCESS 2003数据库Access 2003是微软Office 2003系列软件的组件之一,是目前比较流行的、面向对象的中小型桌面关系型数据库系统软件。Access 2003是一种关系式数据库,Access 2003数据库由七种对象组成,它们是表、查询、窗体、报表、宏、页和模块。表(Table) 表是数据库的基本对象,是创建其他5种对象的基础。表由记录组成,记录由字段组成,表用来存贮数据库的数据,故又称数据表。查询(Query)查询可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。 窗体(Form)窗体提供了一种方便的浏览、输入及更改数据的窗口。还可以创建子窗体显示相关联的表的内容。窗体也称表单。 报表(Report)报表的功能是将数据库中的数据分类汇总,然后打印出来,以便分析。 宏(Macro)宏相当于DOS中的批处理,用来自动执行一系列操作。Access列出了一些常用的操作供用户选择,使用起来十分方便。模块(Module)模块的功能与宏类似,但它定义的操作比宏更精细和复杂,用户可以根据自己的需要编写程序。模块使用Visual Basic编程。页是一种特殊的直接连接到数据库中数据的一种WEB页。通过数据访问页将数据发布到Internet 或Intranet上,并可以适用浏览器进行数据的维护和操作。(三) ODBC数据访问技术ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access、SQL还是Oracle数据库,均可用ODBC API进行访问。ODBC的体系结构由以下几个部分组成: 应用程序:就是我们使用ODBC访问数据库的应用系统 ODBC API:Windows提供的使用ODBC访问数据库的接口函数,应用程序通过调用API中提供的函数,最终依靠SQL语句实现数据库的操作。 驱动程序管理器(Driver Manager):驱动程序管理器存放在ODBC32.DLL中,它主要负责装载和卸载ODBC驱动程序,并将ODBC API函数的调用转交给ODBC驱动程序。 数据源:其中记录了应用程序要访问的数据库的一些信息,比如数据库的位置和名称、数据库的类型等。 ODBC驱动程序:是DBMS系统提供的使用ODBC进行数据库访问的驱动,也就是ODBC和数据库之间的接口,以DLL的形式提供。不同的数据库厂商提供的驱动是不同的,也就是说,不能使用一种数据库的ODBC驱动来访问另外一种数据库,比如不能使用SQL Server的ODBC驱动来访问Oracle数据库。 ODBC数据源管理器(Administrator):在Windows的控制面板中,我们可以找到该程序,它主要管理已经安装的ODBC驱动程序,并管理数据源(建立和删除等)。各部件之间的关系如图下图所示:图1ODBC体系结构图应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。 在ODBC中,ODBCAPI不能直接访问数据库,必须通过驱动程序管理器与数据库交换信息。驱动程序管理器负责将应用程序对ODBCAPI的调用传递给正确的驱动程序,而驱动程序在执行完相应的操作后,将结果通过驱动程序管理器返回给应用程序。 在访问ODBC数据源时需要ODBC驱动程序的支持。用Visual C+6.0安装程序可以安装SQLServer、Access、Paradox、dBase、FoxPro、Excel、Oracle和Microsoft Text等驱动程序 三 考勤系统的设计(一) 需求分析1 系统需求考勤管理系统需要满足:使用者通过计算机来管理每日工作的信息,对各个信息能进行及时的操作如删除、查询等。2 功能需求基于系统需求分析,该系统需要实现以下基本功能: 签到功能这个功能是本系统的核心功能。当员工上班到公司后,通过输入自己的员号然后进行某个操作,就可以把到达公司的时间记录下来,并且要求保存到数据库中,以备查询。在记录下来的信息中应该包括员工的唯一号,以及签到的日期和签到的具体时间,这包括上班时间和下班时间的签到情况。当然,这并不能全部反映员工出勤的情况,比如有些员工因为出差而不能签到,因为请假而不能签到等,因此对于当天不能按时签到的员工,需写明未签到原因,并将数据保存到数据库中,以备查询。 查询功能签到功能中要求将员工上班的签到情况记录下来,也就是供以后查看而用。查询某个员工在某段时间或者某天的出勤情况,只要输入员工的唯一号码,并输入要查询的日期,即可将此员工在给定日期内的出勤情况显示出来。 修改功能对于出勤到公司的员工来说,通过签到即可将签到信息记录下来。可是对于因为某种原因不能到公司的员工来说,由于不能签到当天的出勤记录就没有。这样做对于公司的管理不利,应该把每位员工工作日的出勤情况记录下来,以备管理使用。另外,可能发生修改出勤结果的情况时,可能迟到是由于某种合理的理由时,可以到公司有关部门进行修改。 系统配置功能要想考勤,必须确定合法的上班时间,对于不同的公司有着不同的规定,因此本系统将提供用户自行设定的功能。自行设定的数据包括:上午上班时间、上午下班时间、下午上班时间和下午下班时间。 员工维护对于一个公司要考勤,显然是对属于这个公司的员工进行的,那么员工的信息就必须记录下来,包括员工的姓名、与昂共在这个公司的唯一员工号。增加员工:当某个新人加入员工后,人事部分应该给他分配员工号,这样可以用此来签到,并且需要把此员工的信息增加到公司的员工信息库中。删除员工:当某个员工离开这家公司后,应该把这个员工的信息删除,并且要求把他的所有的签到信息也删除。修改员工信息:由于某种原因需要修改员工的信息,比如员工号重新分配,这时就需要提供修改功能,以便能够及时对员工信息的更新。 用户登录做为考勤系统来讲首先应该不是人人都可以进入的。因此,应该通过输入用户名和用户密码后再进入,并且要根据不同的权限进行功能提供方面的区分。这里,要求分为两种权限的用户:一种是超级用户,一种是普通用户。超级用户拥有系统提供的所有功能,包括“修改出勤”、“查询”、“员工维护”、“系统配置”、“用户维护”、“签到”功能;而对于普通用户来说只有“签到”功能。(二) 功能模块构成 系统登录:使用时输入用户名和密码进入考勤系统。 系统管理:主要用于用户进入考勤系统后,可以选择重新登录或退出系统。 考勤管理:主要用于员工非正常上班的情况下,做好统计记录,必备查询。 修改查询管理:用于修改员工上班情况以及查询某个员工某个时间段的考勤情况。 系统设置:设定上下班时间,对于不同的企业,可以根据各自的规定,自行设定。(三) 数据库结构设计根据用户的需求,对需要保存的信息进行分析,然后,设计出合理的表。下面是本系统数据库的设计。为了运行程序的方便,本系统选择了Access 2003数据库。数据库:Misdb.mdb基于功能模块分析,为考勤系统创建16个数据表。其数据库的设计如下:表3.3.1 考勤表(ATTENDANCE)字段名称字段数据类型字段描述PERSON文本员工号,唯一标志,外键 ID数字考勤统计编号IN_OUT文本考勤出入类型IO_TIME日期/时间上下班时间要求:每个员工每天的出勤记录只有一条,因此员工号和出勤时间作为唯一标志。外键:员工号必须在数据库表中已经存在。表3.3.2 考勤统计表(ATTENDANCE_STAT)字段名称字段数据类型字段描述ID数字序列号YEAR_MONTH日期/时间统计时间PERSON文本员工号,外键WORK_HOUR数字工作时间OVER_HOUR数字加班时间LEAVE_HDAY文本请假情况ERRAND_HDAY文本出差情况LATE_TIMES数字迟到次数EARLY_TIMES数字早退次数ABSENT_TIMES数字缺勤次数表3.3.3 考勤记录表(COUNTER)字段名称字段数据类型字段描述ID文本考勤类型编号COUNTER_VALUE数字次数统计DESCRIPTION文本考勤类型注:此表没有关键字。表3.3.4 部门表(DEPARTMENT)字段名称字段数据类型字段描述ID文本部门简称NAME文本部门名称MANAGER文本部门经理INTRO文本部门简介注:此表没有关键字。表3.3.5 教育水平表(EDU_LEVEL)字段名称字段数据类型字段描述CODE数字教育情况编号DESCRIPTION文本学历注:此表没有关键字。表3.3.6 出差表(ERRAND)字段名称字段数据类型字段描述ID数字序列号PERSON文本员工号,外键START_TIME日期/时间开始时间END_TIME日期/时间结束时间DESCRIPTION文本出差情况描述表3.3.7 岗位表(JOB)字段名称字段数据类型字段描述CODE文本职称简写DESCRIPTION文本岗位描述注:此表没有关键字。表3.3.8 请假表(LEAVE)字段名称字段数据类型字段描述ID数字序列号PERSON文本员工号,外键START_TIME日期/时间开始时间END_TIME日期/时间结束时间REASON文本请假原因描述表3.3.9 非正常工资类型表(OTHER_TYPE)字段名称字段数据类型字段描述CODE数字类型编号DESCRIPTION文本非正常工资类型注:此表没有关键字。表3.3.10 加班表(OVERTIME)字段名称字段数据类型字段描述ID数字序列号PERSON文本员工号,外键WORK_HOURS数字加班时间WORK_DATE日期/时间加班日期表3.3.11 员工信息表(PERSON)字段名称字段数据类型字段描述ID文本员工号,唯一标志PASSWD文本员工密码AUTHORITY数字权限设置NAME文本员工姓名SEX文本性别BIRTHDAY日期/时间出生年月DEPARTMENT文本部门简称JOB文本岗位职称EDU_LEVEL文本教育水平SPECIALTY文本专业ADDRESS文本地址TEL文本联系方式EMAIL文本电子邮箱STATE文本工作状态REMARK文本备注关键字:ID表3.3.12 员工登记表(PERSONNEL)字段名称字段数据类型字段描述 ID数字序列号 PERSON文本员工号 CHANGE文本变化 RECORD_TIME日期/时间记录时间 表3.3.13 员工变动表(PERSONNEL_CHANGE) 字段名称字段数据类型字段描述 CODE 数字编号 DESCRIPTION 文本描述 表3.3.14 工资表(SALARY)字段名称字段数据类型字段描述ID数字序列号YEARMONTH日期/时间年月PERSON文本员工名BASIC数字基本工资BONUS数字奖金ADD_DETAIL数字加班费ADD_TOTAL数字总共费用SUB_DETAIL数字误工费SUB_TOTAL数字减少统计TOTAL数字总体统计 表3.3.15 福利奖金表(SALARY_OTHER)字段名称字段数据类型字段描述ID数字序列号YEARMONTH日期/时间年月PERSON文本员工号TYPE文本类型NAME文本员工姓名MONEY数字工资DESCRIPTIONL文本描述 表3.3.16 工资创建表(SALARY_SET)字段名称字段数据类型字段描述PERSON文本员工号SALARY数字工资此系统中将使用MFC ODBC进行编程,并用MFC提供的动态数据交换机制(record field exchange,RFX),这将会给我们访问表中各个字段的值带来很大的方便,同时也方便系统升级为其他的数据库系统。四 考勤系统的实现(一) 系统登录功能的实现首先给出登录对话框,如图2所示: 图2 登录对话框用户要使用本系统,首先必须通过系统的身份认证。如果用户名错误或者不存在,将无法进入系统。(二) 系统管理系统管理功能包括:重新登录和退出系统。如图3所示: 图3 系统管理(三) 考勤管理考勤管理中负责对加班、出差和请假情况记录。如图4所示: 图4 考勤管理1 加班信息管理加班信息管理主要是对加班员工的加班时间以及加班日期进行管理。包括添加,删除加班信息。如图5所示: 图5 加班信息管理2 出差信息管理出差信息管理主要是对出差员工信息进行管理。包括添加,查询,删除出差信息。信息包括出差时间、员工号、员工名称以及出差原因。如图6所示:图6 出差信息管理3 请假信息管理请假信息管理主要是对请假员工信息进行管理。包括添加,删除请假信息。信息包括请假时间、员工号、员工名称以及请假原因。如图7所示:图7 请假信息管理(四) 修改查询管理修改查询管理包括添加修改和查询统计两个功能。如图8所示:图8 修改查询管理1 添加修改添加修改包括分别对全体员工的出勤情况进行添加,修改,删除。如图9所示:图9 添加修改2 查询统计查询统计功能可以对某个月某个时间段的全体员工出勤情况进行统计,并且能够查询单个员工当月出勤情况。如图10所示:图10 查询统计(五) 系统设置系统设置主要对上下班时间进行设定,可以根据不同情况自行设定。如图11所示:图11 系统设置结论经过一个学期的设计,“考勤信息管理系统” 已经基本设计完成。在这几个月的开发过程中,学到了许多有关数据库管理软件设计的东西。另外,通过对VC+6.0的使用,我也对软件有了一些认识,学到了很多关于该软件可视化编程的东西;也深深体会到了VC+6.0的功能强大,使用和操作简单。基于该系统的一些设计,下面对系统做一个总结。 在整个设计过程中,主要的工作有: 系统的权限及安全设计,包括用户权限的个人设定,密码保护与修改。 员工信息、出勤信息、员工工资、相关查询、密码修改、帮助说明和退出系统模块的页面设计及功能的设计实现。设计中力求界面友好、简洁,易于操作。代码部分尽量避免逻辑错误,算法设计简单合理,尽量使程序具有较好的可读性,有利于其他的设计者对程序的阅读。 力求对数据库操作的安全与稳定,尽量避免数据库操作异常,并要保证查询的快速无误。 当然在设计中还有很多不足的地方。对于这样的软件开发,由于没有相应的切合实际的需求分析,所以在开发过程中遇到了许多棘手的问题。现在开发出来的软件对数据库的操作还不够稳定常会出现非法操作,异常处理做的还很欠缺。程序代码中还存在不少的Bug,这些在最后的测试过程中还有必要做较多的修改和完善。在设计时,由于时间和能力有限还有部分的功能没有实现,希望系统能在以后升级成更高版本时得以实现。致 谢在论文完成之际,我要特别感谢我的指导老师的热情关怀和悉心指导。在我撰写论文的过程中,老师倾注了大量的心血和汗水,无论是在论文的选题、构思和资料的收集方面,还是在论文的研究方法以及成文定稿方面,我都得到了杨婧老师悉心细致的教诲和无私的帮助,特别是她广博的学识、深厚的学术素养、严谨的治学精神和一丝不苟的工作作风使我终生受益,在此表示真诚地感谢和深深的谢意。 在论文的写作过程中,也得到了许多同学的宝贵建议,在此一并致以诚挚的谢意。 感谢所有关心、支持、帮助过我的良师益友。 最后,向在百忙中抽出时间对本文进行评审并提出宝贵意见的各位专家表示衷心地感谢! 参考文献: 刘瑞,吴跃进 ,王宗越. Visual C+项目开发实用案例. 科学出版社.2006 孙鑫 余安萍. VC+深入详解. 电子工业出版社.2006 陈清华等.Visual C+课程设计案例精选与编程指导.东南大学出版社.2004 刘长明等.VISUAL C+实践与提高-多媒体篇 .中国铁道出版社.2003 龙马工作室.VISUAL C+管理信息系统完整项目实例剖析.人民邮电出版社.2004 訾秀玲等.Access数据库技术及应用教程. 清华大学出版社.2007 李闽溟等 .Visual C+6.0数据库系统开发实例导航. 人民邮电出版社.2004 严华峰等.VISUAL C+课程设计案例精编(第二版).中国水利水电出版社 2004 张荣梅,梁晓林.Visual C+实用教程.冶金工业出版社.2004 魏亮,李春葆编著.Visual C+程序设计例学与实践.清华大学出版社.2006附录:部分代码如下:void CAttendanceDlg:OnAgainlogin() / 隐藏主对话框ShowWindow(SW_HIDE);/ 显示登录对话框CLoginDlg dlg;if(dlg.DoModal()=IDOK)ShowWindow(SW_SHOW); / 显示对话框else EndDialog(IDCANCEL); / 退出程序/ TODO: Add your command handler code hereCAttDlg:CAttDlg(CWnd* pParent /*=NULL*/): CDialog(CAttDlg:IDD, pParent)/ 设置起始时间CTime End_t=CTime:GetCurrentTime(); / 当前时间CTimeSpan tp(30,0,0,0); / 时间间隔为30天/AFX_DATA_INIT(CAttDlg)m_StartTime = End_t-tp;m_EndTime = End_t;m_strPersonID = _T();m_strName = _T();m_bSeekbyperson = FALSE;m_bSeekbytime = FALSE;/AFX_DATA_INITint CAttendanceApp:ExitInstance() if(db.IsOpen() db.Close();/ 关闭数据库return CWinApp:ExitInstance();/ 全局函数,将时间串转换为CTime型变量CTime StrToTime(CString str)/ 时间串格式 %Y-%m-%d %H:%M:%S,如1999-01-01 11:11:11int nYear,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); / 得到分/ 构造CTime变量CTime result(nYear,nMonth,nDay,nHour,nMinute,nSecond);return result;void CAttendanceDlg:OnBtnConfig() / 显示工作时间设置对话框CWorkplanDlg dlg;dlg.DoModal();void CAttendanceDlg:OnBtnRecord() / 非模态显示出勤记录对话框if(!m_pAttDlg) / 指针为空,创建对话框m_pAttDlg=new CAttDlg();m_pAttDlg-Create(IDD_DLG_ATTENDANCE, this);m_pAttDlg-ShowWindow(SW_SHOW);else / 对话框已创建m_pAttDlg-ShowWindow(SW_SHOW); / 显示窗口void CAttendanceDlg:OnBtnStatistics() / 非模态显示考勤统计对话框if(!m_pStatDlg) / 指针为空,创建对话框m_pStatDlg=new CStatDlg();m_pStatDlg-Create(IDD_DLG_STAT, this);m_pStatDlg-ShowWindow(SW_SHOW);else / 对话框已创建m_pStatDlg-ShowWindow(SW_SHOW); / 显示窗口CAttendanceDlg:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) pDC-SetBkMode(TRANSPARENT); / 设置背景模式return m_brush; / 返回画刷void CAttendanceDlg:OnAgainlogin() / 隐藏主对话框ShowWindow(SW_HIDE);/ 显示登录对话框CLoginDlg dlg;if(dlg.DoModal()=IDOK)ShowWindow(SW_SHOW); / 显示对话框else EndDialog(IDCANCEL); / 退出程序/ TODO: Add your command handler code hereBOOL CLoginDlg:OnInitDialog() CDialog:OnInitDialog();/ 改变登录人事管理系统字体大小LOGFONT LogFont;GetFont()-GetLogFont(&LogFont);LogFont.lfHeight+=LogFont.lfHeight/2;LogFont.lfWidth+=LogFont.lfWidth/2;m_font.CreateFontIndirect(&LogFont);GetDlgItem(IDC_STATIC_LOGINTEXT)-SetFont(&m_font);/ 如数据库为打开状态,则关闭if(db.IsOpen() db.Close();return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid CLoginDlg:OnOK() BOOL bLogin=FALSE;CString strPasswd,strCount;UpdateData(); / 更新数据变量if(!db.Open(m_strDSN) return; / 连接数据库strPasswd=CCrypt:Encrypt(m_strPasswd, 123); / 加密密码CRecordset rs(&db); / 构造记录集rs.Open(CRecordset:forwardOnly,select COUNT(ID) as COUNT from PERSON where ID= + m_strUser+ and PASSWD= + strPasswd + and AUTHORITY=4); / 执行查询rs.GetFieldValue(COUNT,strCount);rs.Close(); / 关闭数据集if(strCount=1) / 判断认证是否通过EndDialog(IDOK); / 结束对话框,返回IDOKelseMessageBox(请确认用户名和密码,注意大小写!,认证失败);db.Close(); / 关闭数据库BOOL CPage1:OnInitDialog() CDialog:OnInitDialog();/ 出入情况缺省为出(CButton*)GetDlgItem(IDC_RADIO_OUT)-SetCheck(TRUE);/ 为List添加网格m_cList.SetExtendedStyle(LVS_EX_GRIDLINES);m_cList.SetExtendedStyle(LVS_EX_FULLROWSELECT);/ 设置List的列int nWidth=110;m_cList.InsertColumn(0, 记录编号, LVCFMT_LEFT, nWidth);m_cList.InsertColumn(1, 员工号, LVCFMT_LEFT, nWidth);m_cList.InsertColumn(2, 出入情况, LVCFMT_LEFT, nWidth);m_cList.InsertColumn(3, 时间, LVCFMT_LEFT, nWidth);CAttendanceRS rs(&db); / 构造出勤记录表UpdateList(rs); / 更新List/ TODO: Add extra initialization herereturn TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid CPage1:OnChangeEdtDepartid() UpdateData(); / 更新数据CDepartRS rs(&db); / 构造记录集rs.m_strFilter = ID= + m_strDepartID + ; / 设置过滤条件rs.Open(); / 打开记录集if(rs.GetRecordCount()=1) / 判断部门代码输入是否正确m_strDepartName=rs.m_NAME; / 提取部门名称else m_strDepartName.Empty(); / 清除部门名称rs.Close(); / 关闭记录集UpdateData(FALSE); / 更新界面数据/ TODO: If this is a RICHEDIT control, the control will not/ send this notification unless you override the CDialog:OnInitDialog()/ function and call CRichEditCtrl().SetEventMask()/ with the ENM_CHANGE flag ORe

温馨提示

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

评论

0/150

提交评论