基于VisualC的人事考勤管理系统.docx
论文题目 基于Visual C+的人事考勤管理系统 学 号 学生姓名 专业班级 指导教师 总评成绩 年 月 日目录目录I摘 要IIABSTRACTIII第一章 绪论11.1题目背景11.2人事管理系统的意义及特点21.3开发工具2第二章 系统概述42.1国内外发展现状42.2系统实现技术52.2.1 MFC窗口控件重绘52.2.2多线程编程62.2.3数据库82.3系统分析92.3.1需求分析92.3.2可行性分析10第三章 系统详细设计113.1程序流程设计113.2用户登录管理模块设计123.2.1 用户登陆模块概述123.2.2 用户登录技术分析123.2.3 用户登录实现过程123.2.4 用户管理实现过程133.3部门信息管理模块设计163.4员工信息管理模块设计193.5考勤管理模块设计223.5.1 考勤管理技术分析223.5.2 考勤管理实现过程223.5.3 考勤汇总查询实现过程25总 结27致 谢29参考文献30摘 要随着时代的发展,人们的生活更加的趋向于信息化,尤其在各个公司企业中,为了更加方便的有效的管理公司,对于员工信息以及公司运转的详细记录,各企业都广泛的运用一些相关的系统来进行有效的管理,在此需求之下各种相关的软件系统也都应运而生,并且的到极大的发展。任何一个企业都会从小到大发展,随着其的规模不断扩大,员工的数量急剧增加,员工的流动性增强,有关员工的各种信息成倍增长.面对庞大的信息量,单靠人力是无法有序而准确地处理的,也无法满足企业对人事管理各种信息的需求,因而开发人事管理系统从而提高公企业的人事管理工作效率是十分必要的.应用这种系统,能够把大量的人力从繁琐的工作中解脱出来,降低企业的人力成本。公司人事考勤管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性,完整性,安全性好的库。面对后者则要求应用程序功能完备,易使用等特点。本系统是为公司人事管理的各种工作而设计的。根据需求分析,需要实现对系统用户,基本信息,考勤考评的管理。经过分析,本系统使用SQL SERVER做为其后台数据库,采用ADO数据库连接技术,Visual C+作为开发工具。人事考勤管理系统就是有运用现代化的科学方法,对与一定物力相结合的人力进行合理的培训、组织和调配,使人力、物力经常保持最佳比例,同时对人的思想、心理和行为进行恰当的诱导、控制和协调,充分发挥人的主观能动性。关键词;人事 考勤 管理模块 系统设计 AbstractWith the development of the times, more people's lives tend to be information technology, especially in the various companies, in order to facilitate more effective management of the company, for the employees and the company running the information detailed records of all enterprises are widely used some of the relevant the system for effective management, this requirement under a variety of related software systems have also emerged, and of the great development.Any business will be small to large development, with its growing size, the number of employees increased dramatically, increasing mobility of staff, the staff of the various information grow exponentially. Given the large amount of information, manpower alone is not orderly and accurate processing, can not meet the business needs of all kinds of information personnel management, and thus the development of public personnel management system to improve the efficiency of enterprise personnel management is essential. applying this system, can put a lot of manpower from the tedious work out, and reduce labor costs.Company personnel attendance management system is a typical information management system, which mainly includes the establishment and maintenance of back-end database and front-end application development aspects. The former required data consistency, integrity, security and good libraries. The face of the latter requires the application fully functional, easy to use features.This system is a variety of personnel management for the company designed to work. According to requirements analysis, you need to realize the system users, basic information, attendance management evaluation. After analysis, the system uses SQL SERVER as its back-end database, using ADO database connection technology, Visual C + + as a development tool.Personnel attendance management system is to have the use of modern scientific methods, combined with certain human and material resources for a reasonable training, organization and deployment, so human, material keep the best ratio, while the human mind, psychology and behavior appropriate induction, control and coordination.Keywords : The personnel Check on work attendance Management module The system design II第一章 绪论1.1 题目背景 在电脑考勤系统自90年代从中国台湾引进大陆之前,国内的考勤管理先后经过人工考勤和机械打卡钟阶段,但是考勤数据采集不精确,请假等数据录入采集不方便,考勤统计报表错误多需要大量的人工修正,大量考勤工作集中在HR(人力资源部)一个部门处理,不论是基层员工还是HR部门和企业的各级主管对考勤系统都有怨言.引进以后就从条码卡发展到磁卡IC卡感应卡以至指纹考勤. 新的考勤管理系统的特征:报表准确,报表没有过多的异常数据需要HR部门二次干预;系统可以查询实时员工在岗情况,并可以提供集成请假记录;全员式参与考勤管理;员工考勤自助;考勤数据全员共享;具体日常考勤管理工作权限可以从HR部门下放到具体的各考勤群组. 新的考勤系统有两个重要意义:其一,可以将考勤事务交给基本部门处理,交个每个员工自己处理,交给系统自动处理,用IT技术推动人事考勤管理的变革;其二,新的考勤系统的实施,不仅把HR人员从考勤的具体事务中解放出来,而且也推动了全员对人事管理的参与和互动.HR人员的可以把工作重心可以放在服务员工、支持公司管理层的战略决策上,放在公司最重要的资产员工和员工的集体智慧的管理上等核心业务上来. 在此讨论的考勤管理系统的开发,旨在探索一种新的考勤模式.通过这种新的模式,为企业的传统考勤模式创造一种新的概念,提高考勤工作效率和标准化水平。 在人事管理中,企业对人的看法局限于人力是一种成本,在使用时以节约为目标;而人力资源管理将人视为可开发并能带来收益的资源进行开发和控制。这样,人力资源管理将工作重点放在以个人与组织的共同实现与发展为目标的人力资源开发上面。在人事管理中虽然有培训,这些培训也会给员工带来发展,但从企业的角度看来,这些培训只是为满足工作需要不得不作出的成本付出。而人力资源开发中的培训是以提高员工素质与能力,提高工作绩效为目标的主动培训。 人事部门经常陷于劳资纠纷的陷阱之中,他们被迫通过服务,保障,职工参与等手段缓和劳资关系。在人力资源管理中视人为可开发并能带来收益的资源,企业将主动建立互相信任,充分参与,合作的关系,是一种双赢游戏。 随着社会经济的不断发展,在竞争越来越激烈的今天,企业人事管理就越显示出其不可缺性,成为企业一个非常重要的模块。企业人事管理系统主要是用于员工个人相关信息的管理。使用人事管理系统,便于公司领导掌握人员的动向和人员的综合素质,及时调整人才的分配,使用计算机对人事劳资信息进行管理,具有检索迅速、查找方便、可靠性高、存储量大、保密性好、成本低等优点,能够极大地提高人事资源管理的效率,也是企业科学化、正规化管理的重要条件。特别是对于一些中小型的企业来说,人力资源管理成为企业发展的重要因素。有些企业还停留在用纸张档案管理的方式,这种方式效率低下,而且容易出错,极不适应现代企业发展和管理的要求。 1.2 人事管理系统的意义及特点 针对国内外企业人事管理系统发展现状,我设计了一个专业、实用性强、操作简便的企业人事信息管理系统,该系统为企业提供全面的人事管理解决方案提供一个以人为中心,各类人员之间、员工与公司之间的互动式人力资源管理平台。具体目标如下: 1.提高企业人事管理的效率,节约相关的管理成本,增强人事管理的安全性。 2.为企业建立规划化、人性化、实时互动化人事管理机制。 3.满足企业战略层、管理层、人事业务操作层和企业全体员工的不同层次和不同方面的需要,为企业将来的整体信息化建设提供必要的支持。 开发的系统将改变过去传统的人事档案保管室式的人事管理,使用计算机对人事劳资信息进行管理,具有检索迅速,查找方便,可靠性高,存储量大,保密性好成本低等优点,能够极大地提高人事资源管理的效率,也是企业科学化、正规化管理的重要条件。为实施企业集团化、多元化的远景发展战略提供有力保障。1.3 开发工具Visual C+是运行于Windows平台上的交互式的可视化集成开发环境,它是美国Microsoft公司开发的Microsoft Visual Studio 套件中的一部分。像其他可视化集成开发环境一样,Visual C+集程序的代码编辑、编译、连接和调试等功能于一体,给编程人员提供了一个完整方便的开发界面和许多有效的辅助开发工具。Visual C+的应用程序向导可以以很大一部分类型的程序提供框架代码,用户不用书写程序代码,只需按几个按钮就可以生成一些完整的可以运行的程序。Visual C+具有以下优点:(1) 面向对象、可视化开发。提供了面向对象的应用程序框架MFC(Microsoft Foundation Class:微软基础类库),大大简化了程序员的编程工作,提高了模块的可重用性。Visual C+还提供了基于CASE技术的可视化软件自动生成和维护工具AppWizard、ClassWizard、Visual Studio、WizardBar等,帮助用户直观的、可视地设计程序的用户界面,可以方便的编写和管理各种类,维护程序源代码,从而提高了开发效率。用户可以简单而容易地使用C/C+编程。(2) 众多的开发商支持以及业已成为工业标准的MFC类库。MFC类库已经成为 事实上的工业标准类库,得到了众多开发商和软件开发工具的支持;另外,由于众多的开发商都采用Visual C+进行软件开发,这样用Visual C+开发的程序就与别的应用软件有许多相似之处,易于学习和使用。(3) Visual C+封装了Windows的API(应用程序接口)函数、USER、KERNEL、GDI函数,帮助我们弄清了许多函数的组织方法,隐去了创建、维护窗口的许多复杂的例行工作,简化了编程。ADO(ActiveX Data Object)技术是基于OLE DB的访问接口,它继承了OLE DB技术的优点,并且,ADO对OLE DB的接口作了封装,定义了ADO对象,使程序开发得到简化,ADO技术属于数据库访问的高层接口。第二章 系统概述本系统报表准确,报表没有过多的异常数据需要HR部门二次干预;系统可以查询实时员工在岗情况,并可以提供集成请假记录;全员式参与考勤管理;员工考勤自助;考勤数据全员共享;具体日常考勤管理工作权限可以从HR部门下放到具体的各考勤群组. 在此讨论的考勤管理系统的开发,旨在探索一种新的考勤模式.通过这种新的模式,为企业的传统考勤模式创造一种新的概念,提高考勤工作效率和标准化水平. 2.1国内外发展现状 国外专家学者对人事管理系统的研究起步比较早,发达国家的企业非常注重自身人事管理系统的开发。特别是一些跨国公司,更不惜花费大量的人力和物力来开发相应的人事管理系统,通过建立一个业务流的开发性系统实现真正意义上的人事管理目标,挑选和留住最佳人才,同时不断提高这些人才的工作效益。例如:苹果公司的企业员工人事管理系统便是一个很好的典范。 我国的信息管理系统是九十年代初开始快速发展的。经过十余年的发展,我国的数据库管理技术也广泛的应用于各个领域,并且形成了产业化。但是,我们的工厂、企业对信息管理系统的应用比起世界先进水平还相当落后。主要表现在:人事管理系统范围使用相对狭窄、人事管理系统功能相对欠缺、稳定性较差、功能相对单一等。人事考勤管理系统主导21世纪,无论是发达国家还是发展中国家,对人力资源的战略性意义都有了深刻的认识,并开始付诸行动。世界公认,21世纪将是人力资源的世纪;人力资源问题将主导整个21世纪甚至更为遥远,这种状况的变化起因于竞争压力。目前,世界经济趋向全球化。世界经济的全球化过程和国家的开放过程,要求组织的管理部门降低管理成本以减少竞争压力和增强竞争能力。对于不同的组织,人力资源成本在总成本中的比例是不一样的。随着时代的发展,人们的生活更加的趋向于信息化,尤其在各个公司企业中,为了更加方便的有效的管理公司,对于员工信息以及公司运转的详细记录,各企业都广泛的运用一些相关的系统来进行有效的管理,在此需求之下各种相关的软件系统也都应运而生,并且的到极大的发展。任何一个企业都会从小到大发展,随着其的规模不断扩大,员工的数量急剧增加,员工的流动性增强,有关员工的各种信息成倍增长.面对庞大的信息量,单靠人力是无法有序而准确地处理的,也无法满足企业对人事管理各种信息的需求,因而开发人事管理系统从而提高公企业的人事管理工作效率是十分必要的.应用这种系统,能够把大量的人力从繁琐的工作中解脱出来,降低企业的人力成本,而且通过计算机管理信息可以做到信息的规范管理、科学统计和快速查询,从而更有效地为企业发展服务。人事考勤管理就是预测组织人力资源需求并作出人力需求计划、招聘选择人员并进行有效组织、考核绩效支付报酬并进行有效激励、结合组织与个人需要进行有效开发以便实现最优组织绩效的全过程。即运用现代化的科学方法,对与一定物力相结合的人力进行合理的培训、组织和调配,使人力、物力经常保持最佳比例,同时对人的思想、心理和行为进行恰当的诱导、控制和协调,充分发挥人的主观能动性,使人尽其才,事得其人,人事相宜,以实现组织目标。2.2系统实现技术2.2.1 MFC窗口控件重绘MFC(Microsoft Foundation Classes),是一个微软公司提供的类库(class libraries),以C+类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类3。的确,MFC给我们提供了很便捷的编程方式,我们几乎可以不需要写任何代码就能生成一个带有菜单,工具栏和视图的窗口,MFC也提供了丰富的控件类,在设计对话框的时候,我们也只需要直接将控件拖进对话框里,而不用写任何代码。 本程序就是典型的MFC应用程序,采用了MFC对话框设计框架,但是为了设计一个友好美观的操作界面,仅用微软提供的控件类库达不到预期的效果,因此,就必须重新绘制其对话框和控件的界面。而正由于微软将这些控件封装得很好,对于要修改它的属性,派生一些美观的子控件难度就显得比较大。一般来说,实现对控件的重绘技术主要有子类化,自绘和重绘技术,由于MFC框架太过于标准化,因此实现这些技术也是有一定的难度,这必须要对框架的结构有一定的了解。本程序采用了的窗体背景重绘,listctrl自绘,按钮贴图等方式实现了操作界面的美观。主要核心技术是GDI双缓冲绘图。双缓冲绘图就是将待绘制的图片保存到内存里,当需要绘制到屏幕上时,再一次性投递到设备描述表里,这样既避免了窗口重绘时的闪烁,又提高了绘制的速度和效率。BOOL CDC:CreatieCompatibleDC(CDC* pDC)函数用来创建一个兼容DC,即在内存里创建一个DC,以后的任何绘图所需的操作,如选用何种画笔,画刷,字体等,都将在内存中进行,而不是在真实设备上下文里11。随后可以创建一张兼容位图,需要绘制的图像将,函数原型如下BOOL CBitmap:CreateCiompatibleBitmap(CDC* pDC,int nWidth,int nHeight)。最后需要将兼容DC里的东西投射到真实的DC里, BOOL BitBlt(HDC hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, HDC hdcSrc, int nXSrc, int nYSrc,DWORD dwRop )函数可以实现该功能,具体用法可参考MSDN。对话框的绘制比较容易,MFC为对话框提供了OnPaint消息相应函数,但是在该函数下绘制并不能从根本上重绘对话框,因为该函数还会调用CDialog:OnPaint函数,在内部还会再去重绘背景,因此要实现完全意义上的重绘背景,就必须响应WM_ERASEBKGND消息,在消息响应函数里实现我们自己的绘制方法,然后直接返回TRUE,不再调用CDialog:OnEraseBkgnd()函数。为了实现像QQ那样的界面,必须将对话框的属性设置为None属性,即没有标题栏,因此只有自己去实现标题栏的功能。CListCtrl重绘的方法有两种,一种是采用微软提供的OWNERDRAW属性,通过重载DrawItem虚函数来进行重绘。另外一种就是Custom-draw属性,通过定义自绘消息响应函数来进行重绘。两种方式有不同之处,前者需要对整个ListCtrl绘制,必须考虑到每一个item项的绘制情况。而后者相对比较简便,系统会在四个状态的时候通知重绘,这四个状态分别是绘制前,绘制后,擦除前,擦除后,我们就可以按照自己的需要去绘制,并且我们只用考虑其中一项item的绘制方法,就可以应用于所有项。本程序采用了后者进行对列表控件的重绘,实现了好友列表控件,群列表控件类。对于VC6开发环境,微软提供的通用button控件的外观从现在看来的确不太美观,无法实现动态状态的效果。那么因此就必须重新创建一个派生于CButton的按钮类,由于该类将应用于本软件的所有按钮控件,因此做成可贴状态图的按钮控件最为合适。状态分为移出按钮,悬浮按钮,按下按钮,禁用按钮四种状态,我们只需要提供相应的状态的Bitmap就可以。具体重绘方法就是采用前面提到的OWNERDRAW属性,重载虚函数DrawItem。而捕获鼠标的移入移出消息可以使用_TrackMouseEvent函数,通过设置TRACEMOUSEEVENT结构体的值来捕捉该消息。其移出消息对应的是WM_MOUSELEAVE,移入按钮消息是WM_MOUSEHOVER,分别定义其消息相应函数,这样就能实现状态的更替,再进行相应的绘制。2.2.2多线程编程进程和线程都是操作系统的概念。进程是应用程序的执行实例,每个进程是由私有的虚拟地址空间、代码、数据和其它各种系统资源组成,进程在运行过程中创建的资源随着进程的终止而被销毁,所使用的系统资源在进程终止时被释放或关闭。线程是进程内部的一个执行单元。系统创建好进程后,实际上就启动执行了该进程的主执行线程,主执行线程以函数地址形式,比如说main或WinMain函数,将程序的启动点提供给Windows系统。主执行线程终止了,进程也就随之终止。每一个进程至少有一个主执行线程,它无需由用户去主动创建,是由系统自动创建的。用户根据需要在应用程序中创建其它线程,多个线程并发地运行于同一个进程中。一个进程中的所有线程都在该进程的虚拟地址空间中,共同使用这些虚拟地址空间、全局变量和系统资源,所以线程间的通讯非常方便,多线程技术的应用也较为广泛。多线程可以实现并行处理,避免了某项任务长时间占用CPU时间。要说明的一点是,目前大多数的计算机都是单处理器(CPU)的,为了运行所有这些线程,操作系统为每个独立线程安排一些CPU时间,操作系统以轮换方式向线程提供时间片,这就给人一种假象,好象这些线程都在同时运行。由此可见,如果两个非常活跃的线程为了抢夺对CPU的控制权,在线程切换时会消耗很多的CPU资源,反而会降低系统的性能5。Win32 SDK函数支持进行多线程的程序设计,并提供了操作系统原理中的各种同步、互斥和临界区等操作。Visual C+6.0中,使用MFC类库也实现了多线程的程序设计,使得多线程编程更加方便。MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等8。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的API编程而言,这两种线程是没有区别的,它们都只需线程的启动地址即可启动线程来执行任务。在MFC中,一般用全局函数AfxBeginThread()来创建并初始化一个线程的运行,该函数有两种重载形式,分别用于创建工作者线程和用户界面线程在本程序程序里,涉及了一些对线程的创建,管理和销毁工作。常用的创建线程函数为CreateThread和_beginthreadex,两函数功能几乎一样(在某些特殊地方,两者用法需注意,推荐用后者),在创建前必须定义一个按照线程函数原型的函数,将其地址传给创建线程函数,让操作系统知道即将从哪个地方运行线程。除此之外,还可以传递参数,供线程使用。若创建成功,该函数会返回一个HANDLE,这个句柄标示了刚创建的线程内核对象,当线程创建成功后,必须调用CloseHandle函数将其关闭,这是因为如果不关闭该内核句柄,当线程退出后,操作系统并没有销毁该线程,造成资源浪费,这是因为获取一个实内核句柄都会增加内核使用计数,只有当该内核对象的使用计数为0时,才会销毁该内核对象,线程也是如此。常用的销毁线程函数是ExitThread,TermelateThread函数,但推荐使用函数返回的方式结束进程,因为操作系统会自动调用ExitThread函数,并回收分配的内存资源。由于多个线程在同时运行的时候,会对共享数据进行访问或修改,那么就必须要注意数据同步,windows给我们提供了多种数据同步的方法,比如基于用户模式的原子锁,临界区,Slim读写锁等,还有基于内核模式的内核对象,如互斥对象,事件对象,信号量,条件变量等7。在本程序中,最常用的是临界区,原因是基于用户模式,同步效率快,服务器可以进行更多的操作,其次还用到了事件对象,由于临界区太过单一的功能,并不能满足有些数据同步的需要,因此用到了功能强大的事件对象,在MFC中,事件对象被封装成了CEvent类,在SDK下,可以用调用CreateEvent API函数创建一个事件对象。2.2.3数据库设计数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式1。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。严格地说,数据库是“按照数据结构来组织、存储和管理数据的仓库”。在经济管理的日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个"数据仓库"我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种"数据库",使其可以利用计算机实现财务、仓库、生产的自动化管理。本次课题中采用的是SQL Server 数据库,Microsoft按照客户/服务器体系结构的分布进行操作。这种方法产生不必要的代价和复杂性。多年以来,SQL Server 一直用在事务处理监视系统中,例如 BEA 的 Tuxedo 以及 Compaq 的 ACMSxp,这些系统早在二、三十年前就采用了典型的三层模型。三层模型在今天基于 Web 的应用系统中占据了支配地位,这类系统以 Microsoft 的 MTS 以及新的 COM+ 1.0 为代表2。从 SQL Server 的角度看,三层解决方案中的客户机程序是放在中间层的。中间层直接与数据库交互。实际的桌面,或瘦客户机(Thin Client),使用其他机制并通常直接与中间层交互,而不是直接与数据库系统交互。SQL Server 有两个接口可以认为是 SQL Server 7.0 的本机接口,即 OLE-DB 和 ODBC。ODBC 在五年之前就替代了 DB-Library,是新的 SQL Server应用程序更理想的 API。最上面的部分实现 API 的细节,例如行集和游标应该是什么样等等。TDS 格式化程序负责处理实际请求,例如 SQL 语句,并将其封装成 TDS 消息包,发送给 SQL Server,获得返回的结果,然后再把结果反馈到接口实现。结构化查询语言(Structured Query Language)简称SQL,是一种介于关系代数与关系演算之间的结构化查询语言。它的主要功能就是同各种数据库建立联系,进行沟通。ANSI规定SQL是关系型数据库系统管理的标准语言5。SQL语句可以用来执行各种各样的操作,例如更新数据库中得数据,从数据库中提取数据等。SQL语言之所以能够为用户及业界所接受,并成为国际标准,是因为他是一个综合的,功能极强同时又简洁易学的语言。在考勤管理系统中系统的操作都要用到数据库,在数据库应用中使用SQL可以使得开发程序更加的有效,在考勤管理系统中的添加记录,删除记录,请假记录的使用都要使用SQL,这样的设计才可以使得开发出的系统高效,稳定,安全。总之SQL语言对于考勤管理系统的总的设计有非常重要的作用。人事考勤管理系统使用了Microsoft SQL Server 2000数据库来满足系统的要求,数据库名称为tb_person,在数据库中创建四张用于存储各种不同信息。规划出本软件中使用的数据库实体对象,分别为管理员实体、部门实体、员工实体和考勤实体等,如下图所示,为这几个实体的ER图。管理员实体:管理员实体包括编号、用户、密码。管理员实体如下图所示:编号用户密码管理员部门实体:部门实体包括部门编号、部门名称、备注信息和上级部门编号。部门实体E-R图如下图所示:备注信息部门名称上级部门编号部门实体部门编号 员工实体:员工实体包括自动编号、员工编号、员工姓名、照片、性别和生日等信息。员工实体E-R图如下图所示:员工编号自动编号员工姓名生日员工照片性别考勤实体:考勤实体包括人员姓名、考勤日期、上班时间、下班时间、上班考勤时间和下班考勤时间等信息。考勤实体E-R图如下图所示:下班时间上班时间上班考勤时间考勤日期 考勤下班考勤时间人员姓名2.3系统分析2.3.1需求分析人事考勤管理系统以实现员工日常出勤信息管理为设计目标,加以强大的数据库管理功能,可以方便对考勤信息进行管理,大大提高了人事部门的日常工作效率,本系统在设计时应该满足以下几点。1) 采用人机对话的操作方式,信息查询灵活、方便、快捷、准确,数据存储安 全可靠2) 对考勤信息的操作简单,可以方便的进行添加、修改和删除3) 可以录入员工信息、部门信息4) 对员工的考勤信息可按月进行汇总计算。5) 对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。6) 系统最大限度的实现了易维护性和易操作性7) 系统运行稳定,安全可靠2.3.2可行性分析1) 技术可行性本程序是基于windows平台下的应用软件。开发该软件,应具备一定的windows编成基础,熟悉常用的API函数,深入了解MFC框架和窗口重绘技术2)进度可行性和成本可行性因为本文只是探讨和学习Win32应用程序编程,因而其经济成本和效益可以忽略不计;在进度可行性方面,从选题到论文初稿完成的时间足以完成本次程序编写。、第三章 系统详细设计3.1程序流程设计图3-1 程序流程图1) 当用户启动程序根据用户在登录窗口内输入的用户名和密码进行验证;2) 验证通过后即可操作部门管理、员工考勤管理、用户管理、员工信息管理四个模块。3.2用户登录管理模块设计图3-2用户登录流程图3.2.1 用户登陆模块概述用户登录模块是所有管理系统所应具备的基础模块之一,此模块实现了对用户使用系统的检验工作,使没有权限的用户不能使用该系统,增加了系统的安全性,用户登陆界面如图3-3所示。图3-3 用户登录界面3.2.2 用户登录技术分析用户登录窗体是整个系统中创建并显示的第一个窗体,所以该窗体应在主窗体创建前创建并显示。在登录窗体创建的同时应该创建数据库连接。这些操作都应该在应用程序类的初始化方法中实现;3.2.3 用户登录实现过程(1)创建一个对话框,打开对话框属性窗口,将对话框的ID改为IDD_DLGLOGIN,将对话框标题改为登陆。(2) 向对话框中添加两个静态文本控件,一个文本框控件,一个列表框控件和两个按钮控件,分别设置两个静态文本控件的caption属性为用户名和密码,设置文本框控件的类型为Password。分别设置两个按钮的caption属性为确定和取消。(3) 在窗体的初始化方法中创建用户表的数据集,并将用户名添加到列表控件中。在“确定”按钮的事件中实现用户名和密码的验证。3.2.4 用户管理实现过程(1) 创建一个对话框,打开对话框属性窗口,将对话框的ID改为IDD_DLGUSER,将对话框标题改为“用户管理”(2) 定义UpdateGrid方法,用来更新列表视图中显示的用户信息。(3) 向对话框中添加OnInitDialog方法,在对话框的初始化方法中添加列表视图控件应显示的列头,并在下列表视图控件中添加数据。(4) 在“添加”按钮的事件中弹出“用户编辑”窗体,输入用户名后单击“确定”按钮,实现对用户的添加。(5) 在“修改”按钮的事件中弹出“用户编辑”窗体,输入用户名后单击“确定”按钮,实现对用户的修改。(6) 在“删除”按钮的单击事件中获取当前记录并进行删除操作。3.3部门信息管理模块设计(1) 创建一个对话框,打开对话框属性窗口,将对话框的ID改为IDD_DLGDEPT,将对话框标题改为“部门管理”。(2) 向对话框中添加一个树列表控件,四个按钮控件,各控件的属性设置如表所示。(3) 定义GetNode方法用来按层级关系获取部门表中的所有数据,并将其添加到树列表控件中。该方法由UpdateDept方法进行调用。(4) 当单击“添加”按钮时将弹出部门编辑窗体,输入部门信息后单击“确定”按钮将添加一个新的部门。(5) 当单击“修改”按钮时将弹出部门编辑窗体,输入部门信息后单击“确定”按钮将添加一个新的部门。 (6) 当单击“删除”按钮时将删除当前选中的节点。3.4员工信息管理模块设计(1) 创建一个对话框,打开对话框属性窗口,将对话框的ID改为IDD_DLGPERSON,将对话框标题改为“人员信息管理”;(2) 添加GetNode方法将获取部门表中得数据信息添加到树列表视图控件中。