基于指纹识别的考勤管理系统毕业论文

上传人:无*** 文档编号:99977948 上传时间:2022-06-01 格式:DOC 页数:41 大小:377KB
收藏 版权申诉 举报 下载
基于指纹识别的考勤管理系统毕业论文_第1页
第1页 / 共41页
基于指纹识别的考勤管理系统毕业论文_第2页
第2页 / 共41页
基于指纹识别的考勤管理系统毕业论文_第3页
第3页 / 共41页
资源描述:

《基于指纹识别的考勤管理系统毕业论文》由会员分享,可在线阅读,更多相关《基于指纹识别的考勤管理系统毕业论文(41页珍藏版)》请在装配图网上搜索。

1、. . . . 目录第一章绪论11.1 研制背景11.2 课题研究的主要容21.3 本文的主要工作3第二章指纹识别的基本原理42.1 指纹识别系统的工作原理42.2 指纹识别系统的工作模式7第三章指纹识别考勤系统的设计83.1系统功能需求83.1.1 系统体系结构83.1.2 系统功能模块设计83.2 数据流程图103.3 系统结构图123.4 系统流程图133.5 小结15第四章数据库设计164.1 数据库概述164.2 数据流图164.3 数据需求分析174.4 数据库逻辑结构设计174.5 数据库表的建立184.6 系统思路19第五章系统实现205.1 开发平台与系统配置205.2 开始

2、界面的制作205.3 系统主要功能实现215.3.1 指纹图象采集功能的实现215.3.2 指纹比对算法的功能实现215.3.3 系统管理功能的实现245.3.4 考勤结果分析功能的实现32第六章系统测试366.1 测试的目的366.2 用例测试366.3 测试结果37结论38致39参考文献4039 / 41第一章 绪 论1.1 研制背景随着网络与通信技术的飞速发展和人类物理与虚拟活动空间的不断扩大,现代社会对于人类自身身份识别的准确性、安全性与实用性提出更高要求。传统的身份识别方法已经远远不能满足这种要求,人类必须寻求更为安全可靠、使用方便的身份识别新途径。于是,生物识别技术悄然兴起,并应运

3、而生为一种新的身份识别技术。生物识别技术(Biometric Identification Technology)是利用人体生物特征进行身份认证的一种技术。生物特征是唯一的(与他人不同),可以测量或可自动识别和验证的生理特性或行为方式,分为生理特征和行为特征。生物识别系统对生物特征进行取样,提取其唯一的特征并且转化成数字代码,并进一步将这些代码组成特征模板,人们同识别系统交互进行身份认证时,识别系统获取其特征并与数据库中的特征模板进行比对,以确定是否匹配,从而决定接受或拒绝该人。生物识别技术是目前最为方便与安全的识别技术,它不需要记住复杂的密码,也不需随身携带钥匙、智能卡之类的东西。生物识别技

4、术认定的是人本身,没有什么能比这种认证方式更安全、更方便了。由于每个人的生物特征具有与其他人不同的唯一性和在一定时期不变的稳定性,不易伪造和假冒,所以利用生物识别技术进行身份认定,安全、可靠、准确。此外,生物识别技术产品均借助于现代计算机技术实现,很容易配合电脑和安全、监控、管理系统整合,实现自动化管理。常见的生物识别技术主要有九种:指纹、脸形、虹膜、视网膜、手写体、声音、掌纹、手形和脸部热谱图等,指纹识别是生物识别技术的一种。迄今为止,最为人们所关注、最为成熟的生物识别技术就是指纹识别。近年来,国外学者对自动指纹识别技术进行了深入和广泛的研究,取得了较大的进展人事考勤制度是公司管理制度的重要

5、组成部分。员工准时出勤和公平合理的考勤管理制度影响到公司的形象、员工的士气,进而影响公司员工的工作效率、公司的经济效益。现在许多公司采用的考勤方式有:打卡钟、磁卡、IC卡、非接触式卡、ID卡等。虽然能起到一定的作用,但问题也很突出:打卡费人费事、需要好几个文员做统计和定时更换卡,而磁卡等则存在易忘带、遗失、被盗、制作新卡等问题。从根本上来说,以上考勤方法在验证员工的身份时并不是验证员工本身,而是验证物的有效性,因此存在无法避免的代打卡的可能,管理上的漏洞是先天性。随着生物识别技术的日臻完善,市场上相继出现了识别人体生物特征的设备,比如指纹、掌形、虹膜等生物识别系统,这些高科技的出现为考勤管理更

6、添一道保障和规管理。综观所有生物识别考勤系统,性价比最高的还是指纹考勤系统。它应用面广,成熟,使用便利,至今在多个行业得到应用。指纹考勤系统实现人、地、时三者合一,去除人情管理和考勤虚假,为公司省去不必要的员工加班费,对公司职员的人事出勤进行公正合理并有效、科学地管理。人体指纹有两大生物特征:人人不同和终生不变,并具有随身携带的便利性和不可仿冒的安全性,指纹生物识别技术正是利用这两大特点进行身份识别的,它具有快捷方便、准确可靠和安全的优点。工作人员不必保管和携带各种证件(如纸卡或IC卡等等),只要轻轻一按,就可完成身份识别。指纹考勤系统是利用人体手指生物识别技术,集成考勤软件的最先进的考勤设备

7、1。1.2 课题研究的主要容本文的研究任务是设计基于指纹识别的考勤管理系统,并通过系统的具体实现,讨论应用系统的开发,并对系统的安全性和稳定性进行分析。对系统所要求的指纹识别技术进行了解,主要从硬件方面和软件方面来保证系统安全稳定的运行。指纹识别技术应用最早,也最为成熟,价格成本低廉。传统的机械钥匙,“口令+密码”以与智能卡等的保护措施存在着丢失,遗忘,复制与被盗的隐患,在这种情况下指纹识别可以更好的提供用户的需求。确定系统设计的总体方案,合理的采用指纹采集设备,建立数据库,制定出合理的考勤管理办法。l 合理的采用指纹采集设备,其主要目的是使用指纹来登陆考勤管理系统,防止老式打卡考勤设备的找人

8、带打卡或找人代签的弊端。l 建立数据库,根据考勤管理系统的需求,建立完善的数据库。l 制定出合理的考勤管理办法,主要包括出差,请假,加班等考勤方案。使得考勤细节划分明确。1.3 本文的主要工作目前利用指纹识别技术的应用系统常见有两种方法,即嵌入式系统和连接PC的桌面应用系统。嵌入式系统是一个相对独立的完整系统,它不需要连接其他设备或计算机就可以独立完成其设计的功能,像指纹门锁、指纹考勤终端就是嵌入式系统。其功能较为单一,应用于完成特定的功能。而连接PC的桌面应用系统具有灵活的系统结构,并且可以多个系统共享指纹识别设备,可以建立大型的数据库应用。本文的主要包括以下容:第二章介绍了指纹识别技术的原

9、理,系统的分类。第三章提出了基于指纹识别考勤系统的设计。第四章阐述了考勤管理系统后台数据库的设计。第五章阐述了考勤管理系统的实现。第二章 指纹识别的基本原理2.1 指纹识别系统的工作原理一般来讲,自动指纹识别算法体系大致由指纹图像采集、指纹图像预处理、特征提取、指纹分类和指纹比对几个部分组成。如图2-1所示:指纹图像输入预处理特征提取特征比对结果输出图2-1 指纹识别系统框图1)指纹图像采集较早出现的活体指纹采集设备是光电式的,现在仍为大多数自动指纹识别系统所使用。后来出现的电容式和电感式的采集设备,在某些条件下可提高指纹采集的质量,但在耐磨性和稳定性等方面还存在一些问题。对干、湿、脏的指头或

10、磨损严重的指纹均能可靠、正确的进行采集和尽量减少采集时的变形是指纹采集技术需要解决的主要问题。到目前为止,光学采集头提供更加可靠的解决方案。通过改进原来的光学取像技术,新一代的光学指纹采集器更是以无可挑剔的性能与相对非常低的价格使电容方案相形见绌。光学技术需要一个光源从棱镜反射到按在取像采集头上的手指,光线照亮指纹从而采集到指纹。光学取像设备依据的是光的全反射原理(FTIR)。光线照到压有指纹的玻璃表面,反射光线由CCD去获得,反射光的量依赖于压在玻璃表面指纹的脊和谷的深度和皮肤与玻璃间的油脂和水分。光线经玻璃射到谷的地方后在玻璃与空气的界面发生全反射,光线被反射到CCD,而射向脊的光线不发生

11、全反射,而是被脊与玻璃的接触面吸收或者漫反射到别的地方,这样就在CCD上形成了指纹的图像。2) 预处理通常,指纹采集器采集到的指纹是低质量的,存在的噪声较多。通过预处理,将采集到的指纹灰度图像通过预滤波、方向图计算、基于方向图的滤波、二值化、细化等操作转化为单像素宽的脊线线条二值图像,基于此二值图像对指纹的中心参考点以与细节特征点特征等进行提取。指纹图像预处理是自动指纹识别系统基础,是进行指纹特征提取和指纹识别不可缺少的重要步骤。好的预处理方法可以使得到的单像素宽脊线线条二值图像更接近被提取者的指纹,更准确地反映被提取指纹的特征。因此可以使后续处理中提取的指纹特征更准确,特征提取更迅速2。指纹

12、图像预处理的一般过程如图2-2所示。指纹图像的预处理一般采用图像增强、二值化和细化的方法来抽取脊的骨架。这类方法受指纹图像质量的影响比较大,难以得到令人满意的结果。很多研究者提出了不同的预处理方法,这些方法是用局部脊方向和局部自适应阈值来增强指纹图像,但各自都有一些局限性。例如,用分块的方法实现局部自适应阈值并得到该块的脊方向。这些预处理预滤波方向图方向滤波二值化细化方法通常是分别得到骨架和方向流结构,缺乏相关性。图2-2 预处理框图3) 特征提取指纹的特征点分为全局特征和和局部特征。在考虑局部特征的情况下,有学者认为,在比对时只要13个特征点重合,就可以确认是同一个指纹,对于不同的应用情况,

13、要求匹配的特征点的个数会有所不同,如:用在公安刑侦时要求匹配特征点的个数就要比用在指纹考勤时多。指纹的细节特征可以有150种之多,但这些特征出现的概率并不相等,很多特征是极其罕见的。一般在自动指纹识别技术中只使用两种细节特征:纹线端点与分叉点。纹线端点指的是纹线突然结束的位置,而纹线分叉点则是纹线突然一分为二的位置。大量统计结果和实际应用证明,这两类特征点在指纹中出现的机会最多、最稳定,而且比较容易获取。更重要的是,使用这两类特征点足以描述指纹的唯一性。通过算法检测指纹中这两类特征点的数量以与每个特征点的类型、位置和所在区域的纹线方向是特征提取的任务。4) 指纹分类指纹分类的主要目的是方便大容

14、量指纹库的管理,减小搜索空间,加速指纹匹配过程。指纹分类技术越完善,能够划分的类型越细,样本数据库每个类别中所包含的样本数量就会越少,对一次识别任务来讲,需要比对的次数和时间开销就会越少。在大部分研究中,指纹一般分为五类:漩涡型、左环型、右环型、拱型、尖拱型。对于要求严格的指纹识别系统,仅按此分类是不够的,还需要进一步更加细致的分类。 5) 指纹比对指纹比对指的是通过对两枚指纹的比较来确定它们是否同源的过程,即两枚指纹是否来源于同一个手指。指纹比对主要是依靠比较两枚指纹的局部纹线特征和相互关系来决定指纹的唯一性。指纹的局部纹线特征和相互关系通过细节特征点的数量、位置和所在区域的纹线方向等参数来

15、度量。细节特征的集合形成一个拓扑结构,指纹比对的过程实际就是两个拓扑结构的匹配问题。由于采集过程中的变形、特征点定位的偏差、真正特征点的缺失和伪特征点的存在等问题,即使是两枚同源的指纹,所获得的特征信息也不可能完全一样,指纹比对的过程必然是一个模糊匹配问题。6) 可靠性问题计算机处理指纹图像时,只是涉与了指纹有限的信息,而且比对算法不是精确的匹配,因此其结果不能保证100%准确。指纹识别系统的重要衡量标志是识别率,它主要由两部分组成:拒判率和误判率。我们可以根据不同的用途来调整这两个值,FRR和FAR是成反比的,可以用 11.0的数或百分比来表示。尽管指纹识别系统存在可靠性问题,但其安全性也比

16、一样可靠性级别的“用户ID十密码”方案的安全性高得多。例如采用四位数字密码的系统,不安全概率为0.01%,如果同采用误判率为0.01%指纹识别系统相比,由于不诚实的人可以在一段时间试用所有可能的密码,因此四位数密码并不安全,但是他绝对不可能找到一千个人去为他把所有的手指(十个手指)都试一遍。正因为如此,权威机构认为在应用中1%的误判率就可以接受。FRR实际上也是系统易用性的重要指标。由于FRR和FAR是相互矛盾的,这就使得在实际应用系统的设计中,要权衡易用性和安全性。一个有效的办法是比对两个或更多的指纹,从而在不损失易用性的同时,最大限度地提高了系统的安全性。2.2 指纹识别系统的工作模式自动

17、指纹识别系统的工作模式可以分为两类:验证模式和辨识模式。验证就是通过把一个现场采集到的指纹与一个已经登记的指纹进行一对一的比对,来确认身份的过程。作为验证的前提条件,员工的指纹必须在指纹库中已经注册。指纹以一定的压缩格式存储,并与其或其标识联系起来。随后在比对现场,先验证其标识,然后,利用系统的指纹与现场的指纹比对来证明其标识是否是合法的。所以指纹考勤系统属于验证3。验证过程如图2-3所示:指纹库6用户指纹指纹特征值指纹特征值比对用户ID登记图2-3 指纹验证过程辨识则是把现场采集到的指纹同指纹数据库中的指纹逐一对比,从中找出与现场指纹相匹配的指纹,这也叫“一对多匹配”。辨识过程如图2-4所示

18、:用户ID比对指纹库指纹特征值用户指纹指纹特征值用户ID6登记图2-4 指纹辨识过程第三章指纹识别考勤系统的设计3.1系统功能需求3.1.1 系统体系结构本文所设计的指纹识别考勤系统依托于指纹采集器和个人计算机实现对员工的考勤管理。本系统严格的按照考勤的规则和安全性来设计的,充分的考虑到不同单位的考勤制度的通用性和不同之处,指纹信息库的增大,安全性高等。在设计上基本遵循了以下几点:l 可靠性:可靠性是整个应用系统的基础。主要从应用软件的稳定可靠和所选设备的可靠稳定两方面来保证的。l 综合性:系统基于员工的基本信息管理,考勤方案等。主要完成采集并登记员工的指纹数据,在考勤时验证指纹身份,就可查询

19、到员工当日的上下班时间以与一些基本信息,可以和以前的考勤管理系统在一定程度上融合为一体。l 先进性:系统采用先进的活体指纹技术,只要第一次指纹采集的正确性。就能保证在考勤过程中的数据与人的一致,从而克服了以往考勤系统对身份验证的不足,造成企业不必要的损失。这也保证了本系统在整个考勤环节中具有先进性。3.1.2 系统功能模块设计基于指纹识别的考勤系统是先将员工的指纹先记录存储到指纹数据库中,员工在签到时系统会自行验证。核实当前员工的身份,之后实行当日的考勤方案。经后台管理员核实,最终显示考勤结果45。所以软件功能模块设计如图3-1所示:指纹数据库指纹识别考勤系统统计结果显示指纹图象采集处理指纹比

20、对算法考勤管理图3-1软件总体功能结构图指纹图像采集模块主要是职员进行签到时,指纹采集器对职员的指纹进行预处理,特征提取。员工上下班进行指纹登陆的数据可以作为原始考勤数据的来源,指纹采集器采集到指纹图像后,才能被计算机进行识别、处理。指纹图像的质量会直接影响到识别的精度以与指纹识别系统的处理速度,因此指纹采集技术是指纹识别系统的关键技术之一。指纹的表面积相对较小,日常生活中手指常常会受到磨损,所以获得优质的指纹细节图像是一项十分复杂的工作。指纹比对算法模块主要对提取到的指纹特征与指纹数据库的指纹进行辩识和验证两种不同的比对算法。进而核实身份。管理模块是供指纹管理员使用,用于设置用户信息,设置考

21、勤参数,处理特殊考勤,备份考勤数据等。该模块允许系统管理员进行系统设置。系统设置包括每次刷卡的有效时间段设置,迟到、早退、旷工的时间设置等。该模块可以根据公司实际情况设置作息时间、定义迟到、早退、出入等考勤规则。提供多种考勤管理功能系统提供了考勤管理功能,如请假、出差、加班、考勤等。结果统计模块是用户统计考勤数据,如按月统计职员出勤情况。统计系统将各考勤机采集到的信息进行过滤处理,只保留每天考勤记录,然后按员工、部门、日期或其他分类方式进行统计。3.2 数据流程图职员出勤的原始记录来源于指纹识别考勤系统,并且以固定的格式保存在数据库中,本文所说的指纹识别考勤管理系统的主要任务是如何处理这些数据

22、。为了用计算机对信息进行控制和管理,还必须进一步的设计出数据流程图。在对基于指纹识别考勤系统深入了解之后,我认为所做的数据流程图是切实可行的,同时更便于计算机管理与提供更多的辅助决策,以满足不同人的需求。考勤系统开始运行,首先系统初始化,包括考勤时间,员工信息等系统模块一并初始。同时指纹采集器开始工作,如果没有员工进行指纹登录,则系统等待;员工使用指纹进行登录后,系统开始调用数据库中的指纹与该员工的指纹进行比对,经过比对后,如果该员工的指纹在数据库中存在,则系统显示登录成功,并显示员工信息,这时需要员工对自己的信息进行确认,系统对此时的信息进行记录,此时完成一个员工指纹登录的过程6。如果在比对

23、过程中,数据库中没有该员工的指纹信息,则系统需要管理员将这个新的指纹添加到数据库中。管理员在添加新指纹的时候需要输入管理员密码对管理员身份进行核实。密码正确则可以添加当前指纹进入到指纹数据库中。所有员工登录完成后,则退出该系统。如图3-2所示:开始系统初始化否指纹采集器是员工输入指纹不存在输出出错信息比对存在新指纹添加进数据库中显示员工信息员工确认否否输入管理员密码是是记录信息添加信息存在下个员工进行输入指纹不存在退出系统图3-2 指纹识别系统流程图3.3 系统结构图考勤系统设置如图3-3所示:员工信息浏览正常出勤加班资料设定考勤制度设置请假,出差资料设定考勤人员设置考勤考勤处理统计查询考勤记

24、录查询图3-3 系统结构图员工信息浏览:该模块可以浏览公司员工的基本信息,可以按部门,指纹进行查询,按部门,指纹导出数据。正常出勤:用户在该模块根据需要可以设置正常出勤规则。上班: 在提前时间到延迟时间登录指纹有效,从提前时间到迟到围外登录指纹为正常,迟到围到延迟时间登录指纹算做迟到,超过延迟时间算为矿工。下班:在提前时间到延迟时间登录指纹算正常下班。早退:从早退设定时间到下班提前时间围登录指纹算早退。迟到:从迟到设定时间到延迟时间围登录指纹算迟到,设定时间不能大于延迟时间。请假出差设置:该模块主要设定考勤人员的请假出差有关的日期时间资料,当员工请假出差情况下不能按时登录指纹,只有在输入请假出

25、差资料的前提下,考勤系统才能给予请假考核,否则将按旷工处理。3.4 系统流程图启动系统后,员工进行登录指纹,如果登录成功则进入系统主界面,如果指纹输入有错则返回登录窗口。员工成功登录指纹并进入考勤系统主界面中,考勤系统主界面有5个按键,分别是设置,出勤记录,统计,重新登录,退出。管理员分别使用5个不同的按键,便有5个不同的功能。设置:管理员使用此按键后会出现上下班时间设置对话框,在这个对话框中管理员可以对一天上午,中午,下午的工作时间进行修改。已经修改的时间保存起来,下次系统将调用设置的上下班时间。出勤记录:管理员使用此按键后会出现考勤修改对话框,管理员可以分别对“考勤修改记录”,“加班记录”

26、,“请假记录”,“出差记录”四个页面进行编辑,编辑完成后分别把这四个页面的数据保存到数据库当中。统计:管理员使用此按键后会出现考勤统计的对话框,管理员可以对“考勤统计”页面进行编辑,编辑完成后将数据保存到数据库中。退出:管理员使用此按键后将会退出该系统模块12。考勤管理系统的系统流程图,如图3-4所示:指纹登陆考勤系统 重新登录,提示错误成功进入主界面考勤管理软件主界面:设置,出勤记录,统计,重新登录,退出。按下“出勤记录”按钮按下“统计”按钮按下“重新登录”按钮按下“退出”按钮按下“设置”按钮“考勤统计”对话框回到“用户登录”对话框退出该考勤管理系统“考勤修改”对话框“上下班时间设置”对话框

27、对“考勤统计”该页面进行编辑分别对“考勤修改出勤记录”,“加班记录”,“请假记录”,“出差记录”四个页面进行编辑对一天上午,中午,下午的工作时间进行修改将该页面的操作结果保存到数据库当中分别把这四个页面编辑好的数据保存到数据库当中将修改的时间记录以*.ini的形式保存,下次将调用该文件的时间图3-4 系统流程图3.5 小结在本章节中,介绍了指纹考勤系统的总体设计,整个系统由硬件部分和软件部分组成。其中,硬件部分主要由通用的计算机,指纹采集器等组成;软件部分由前台系统和后台管理系统两大部分。其中前台系统包含指纹登记与指纹签到两大子系统;后台管理系统包含考勤管理,人事管理两大子系统。综上,主要过程

28、为本软件对质问采集器采集的指指纹图象进行分析处理,为考勤和认识管理提供依据。本系统的系统功能主要为员工通过指纹来登陆该考勤管理系统。上班时间的设定。上下班时间的相对固定,可保存在客户端的设置文件中。员工出入单位的情况记录。出入情况主要由考勤系统来记录,但是需要设置人工添加的功能,已备特殊情况的处理,请假,加班和出差情况的记录,每个月底进行整个月的出勤情况统计。第四章 数据库设计4.1 数据库概述随着数据库应用技术的发展,越来越多的软件开发人员和爱好者希望了解并掌握管理,开发数据库应用程序的方法。SQL server是微软公司推出的数据库管理系统,是当前非常流行的数据库管理系统之一,拥有较大的市

29、场占有率和广泛的用户群体。SQL server提供了很多使用的管理和开发工具,使用它们可以方便的对数据库精心管理和维护。本文所说的指纹识别考勤系统采用SQL server作为数据库开发工具,在系统中与数据库交互的部分均采用标准的SQL语言,这样可以提供系统的通用性,从而使后台数据库可以采用多种数据库系统,可以根据用户自己的需求来进行选择。之所以在这里使用SQL server作为数据库系统,以为在后期的使用中指纹会越来越多,所以对数据库的要求也越高。设计数据库时,应先确定需要什么样的表,各表中都有哪些数据以与各个表的存取权限等等。在创建和操作表的过程中,将对表进行更为细致的设计。4.2 数据流图

30、出勤的原始记录主要来源于考勤机,并且以固定格式保存在数据库中。基于指纹识别考勤管理系统的任务是如何处理这些数据。系统的数据流图如图4-1所示:登陆指纹经理请假出差员工审批记录出勤时间出勤记录上下班请假记录考勤管理员月度员工考勤统计表各种统计信息管理人员图4-1 数据流图在本指纹考勤管理系统中,员工上下班依据指纹来识别每个员工的身份,登陆成功后,系统会记录当时员工的出勤时间,并保存出勤记录数据信息;当员工有请假出差时必须通过经理审批,经理审批通过后,考勤管理员将该员工的出差请假信息保存,另外考勤管理员也可以设置上下班的时间安排。以上各种信息经过管理员的统计导出月度员工考勤统计表。4.3 数据需求

31、分析 根据数据流图,可以列出以下数据项和数据结构:l 出勤记录:记录号,员工、出入情况和出入时间l 月度考勤统计:记录号、员工、年月、累计正常工作时间、累计请假时间、累计加班时间、累计出差时间、迟到次数、早退次数和旷工次数l 请假记录:记录号、员工、假期起始时间/结束时间和请假缘由l 加班记录:记录号、员工、加班时间长度和日期l 出差记录:记录号、员工、出差起始时间/结束时间和具体描述l 人员信息:记录号、员工指纹、密码、权限、部门和当前状态等l 部门设置:部门编号、名称等4.4 数据库逻辑结构设计进行数据库设计的首要任务是考虑信息需求,也就是数据库要存入什么样的数据。当然,创建数据库并非仅仅

32、的为了存储数据,更主要的目的是从中提取有用信息。所以除了考虑数据库存储什么数据外,还应该考虑数据的存储方式,目的,用途以与性能要求。如图4-2所示:员工员工信息员工ID号员工指纹员工部门1:N1:N1:N1:N1:N考勤结果统计加班记录请假记录出勤记录出差记录记录编号加班时间日期记录编号起始时间结束时间记录编号累计工作时间累计出差时间累计请假时间累计加班时间记录编号出入状态出入时间记录编号起始时间结束时间图4-2 数据库概念结构设计(E-R图)4.5 数据库表的建立表是数据库中存储数据的基本对象,它是由行和列组成,是一个二维结构的表,每行数据称为一条记录,每列数据称为一个字段。表是包含数据库中

33、所有数据的数据库对象。表定义为列的集合,与电子表格相似,数据在表中是按行和列的格式组织排列的。每行代表唯一的一条记录,而每列代表记录中的一个域。在本系统中需要在数据库中创建表以便保存考勤信息数据。创建一个表的最有效的方法是将表中所需的信息一次定义完成,包括数据约束和附加成分。也可以先创建一个基础表,想其中添加一写数据并使用一段时间。这种方法可以在添加各种约束,索引,默认设置,规则和其他对象形成最终设计之前,发现哪些事物最常用,那些数据经常输入。最好在创建表与其对象时预先将设计写在纸上。设计时应注意:表所包含的数据的类型;表的各列与每一列的数据类型;哪些列允许空值得;是否要使用以与何时使用约束,

34、默认设置或规则;所需索引的类型,那里需要索引,哪些列是主键,哪些是外键。l 部门表:包括部门编号,部门名称,部门经理,描述。l 出差记录表:员工ID,员工信息,出差开始时间,出差结束时间,描述。l 正常上下班时间表:员工ID,员工信息,上班时间,下班时间,原因。l 加班表:员工ID,员工信息,工作时间,工作日期。l 员工信息表:员工指纹,员工ID,员工,权限等级,性别,出生日期,部门,工作,受教育程度,家庭住址,专业,电子地址,备注。l 月度统计表:员工ID,年月,员工信息,工作小时,超出小时,上班天数,出差天数,迟到时间,早退时间,旷工时间。4.6 系统思路整个系统模块可根据功能划分为2类,

35、考勤和管理。因为用户签到和和管理在功能上是相对独立的,用户在使用时一般不会一起使用。可以将考勤模块和管理模块分装成2个独立的应用程序,这样管理和考勤就能分开运行,同时就能十分轻松的完成考勤和管理工作了。新型的指纹识别考勤系统在考勤的速度和准确性上能较好的满足普通单位的考勤要求。同时因为不需要记忆输入密码,还可避免携带卡片而带来的麻烦,用户因该对新型的指纹考勤系统接受程度更快于传统的考勤系统。设计数据库中的表时首先要为每列指派数据类型。数据类型定义了各列所允许的数据值,若要为列指派数据类型,在SQL server的基本数据类型,或基于这些系统数据类型创建自己定义的数据类型。因此,如果列中只含有数

36、值,就可以将该列定义为数字数据类型。当多个表的列中要存储同样类型的数据,并且想确保这些列具有完全一样的数据类型,长度和为空性时,可使用用户定义数据类型。第五章 系统实现5.1 开发平台与系统配置软件:Windows xp sp2、VC+6.0硬件:PC计算机(CPU为赛扬D2.4G,存为512MB) 指纹识别器:中控科技指纹采集器5.2 开始界面的制作在设计初始截面时,我参考了许多考勤管理系统的操作界面,以下是系统登陆界面,如图5-1所示:图5-1指纹签到窗口此界面为系统操作的总界面,用户在此界面进行系统所需要的使用指纹进行登陆。登录成功后出现的主界面由“设置”,“出勤记录”,“统计”,“重新

37、登录”,“退出”五个功能按钮组成。5.3 系统主要功能实现5.3.1 指纹图象采集功能的实现指纹考勤系统在使用时需要注意以下几点:l 指纹采集仪的镜头表面需保持清洁,不可太脏。避免粘附过多的汗渍、水迹、油污或灰尘等,出现这种情况时,请用干净的镜头纸或柔布等擦拭干净。避免故意用力按压和旋转挤压,并注意不要使指甲划伤镜头表面。l 在按捺指纹时,请尽量选用质量好的指纹进行注册和识别。质量好的指纹表面无大面积的伤痕(烫伤、划伤、刀疤等)、无大面积褪皮、褶皱少、纹线清晰等。推荐使用拇指、食指、中指,指纹质量较好,并且使用起来比较方便78。l 按捺指纹时,应将手指的第一关节上的指肚(有指纹的表面)水平放置

38、在指纹采集仪镜头的表面上,尽量使指纹的纹形中心与采集区域的中心重合,轻微用力,并使指纹尽可能多地贴近镜头,避免故意的用力扭曲,按下手指后采集区域的光线会变强,这时即可抬起手指,不可长时间的按压。5.3.2 指纹比对算法的功能实现指纹比对算法功能在指纹识别考勤系统中非常重要,指纹取像为数字图像后才能被计算机识别,指纹图像的质量直接影响到识别的精度以与指纹识别系统的处理速度,这样才能更好的提高考勤的效率。在进行指纹比对之前,一定要存在指纹数据库。建立指纹数据库,一般要采集同一枚指纹的35个样本,分别对这些样本进行预处理和特征抽取,由特征点间的相互位置关系确定样本图像是否两两匹配,根据特征点被匹配上

39、的次数,确定该特征点的匹配权值,从所有样本图像中找出权值大于给定阈值的特征点,以这些特征为模板建立指纹数据库样本。对于待匹配的指纹图像,经预处理和特征提取后,形成一个坐标链码记录,根据这些特征的相互位置关系与指纹数据库中的样本做图形匹配,得到最终的识别结果9。指纹识别管理模块负责建立,维护,查找指纹数据库,为用户提供有关质问档案的各项基本操作,指纹数据库用语存储用户的指纹档案。在指纹比对算法方面,主要有两个概念,验证和辩识;验证也就是我们所常说的1:1算法,辩识就是1:N算法。同时对指纹比对算法还有两个重要的参数误识率和拒真率。如图5-2所示:指纹特征值用户指纹指纹特征值指纹库比对用户ID图5

40、-2 指纹比对算法过程图 验证,验证就是把一个现场采集到的指纹与一个己经登记的指纹进行一对一的比对,来确认身份的过程。作为验证的前提条件,指纹必须在指纹库中已经注册。指纹以一定的压缩格式存储,并与其或其标识联系起来。随后在比对现场,先验证其标识,然后,利用系统的指纹与现场采集的指纹比对来证明其标识是合法的。这是应用系统中使用得较多的方法。 辨识,辨识则是把现场采集到的指纹同指纹数据库中的指纹逐一对比,从中找出与现场指纹相匹配的指纹,也叫“一对多匹配”。 误识率和拒真率由于计算机处理指纹时,只是涉与了指纹的一些有限的信息,而且比对算法并不是精确匹配,其结果也不能保证100%准确。指纹识别系统的特

41、定应用的重要衡量标志是识别率。主要由两部分组成,拒真率和误识率。我们可以根据不同的用途来调整这两个值,拒真率和误识率是成反比的,用百分比来表达这个数1011。指纹比对代码实现:BOOL CZKFPEngX:VerFinger(VARIANT* regTemplate, const VARIANT& verTemplate, BOOL ADoLearning, BOOL* ARegFeatureChanged)BOOL result;static BYTE parms =VTS_PVARIANT VTS_VARIANT VTS_BOOL VTS_PBOOL;InvokeHelper(0x8, D

42、ISPATCH_METHOD, VT_BOOL, (void*)&result, parms,regTemplate, &verTemplate, ADoLearning, ARegFeatureChanged);return result;void CDemoDlg:OnOnCaptureZkfpengx2(BOOL ActionResult, const VARIANT FAR& ATemplate) long fi; long Score, ProcessNum; BOOL RegChanged; char buffer80; SetDlgItemText(IDC_EDHint, 取得指

43、纹特征模板); if (FMatchType = 1) if (m_zkfp.VerFinger(&FRegTemplate, ATemplate, FALSE, &RegChanged) MessageBox(指纹比对成功!); else MessageBox(指纹比对失败!); else if (FMatchType = 2) /1:NScore = 8;fi = m_zkfp.IdentificationInFPCacheDB(fpcHandle, ATemplate, &Score, &ProcessNum); if (fi = -1) MessageBox(指纹比对失败!);else

44、 sprintf(buffer, 指纹比对成功!Name = %s Score = %d Processed Number = %d, FFingerNamesfi, Score, ProcessNum); MessageBox(buffer); 5.3.3 系统管理功能的实现员工通过指纹,登陆成功后,则进入考勤管理系统,进行考勤管理。图5-3 考勤管理主页图图5-3中的“设置”实现代码如下:void CXieyuyingDBDlg:OnBtnConfig() CWorkplanDlg dlg;dlg.DoModal();图5-3中的“出勤记录”代码实现如下:void CXieyuyingDB

45、Dlg:OnBtnRecord() if(!m_pAttDlg) / 指针为空,创建对话框 m_pAttDlg=new CAttDlg();m_pAttDlg-Create(IDD_DLG_XieyuyingDB, this);m_pAttDlg-ShowWindow(SW_SHOW);else / 对话框已创建m_pAttDlg-ShowWindow(SW_SHOW); / 显示窗口管理员可以对考勤管理系统的考勤时间进行设置,修改等权限。考勤时间设置的界面如图5-4所示:图5-4 上下班时间设置图上下班时间对话框在系统中以模态对话框形式弹出,因此在没有退出此对话框时,所有其他的窗口都无法使用

46、。上下班的时间包括两对时间值,可根据需要设置。最后单击“修改”按钮。单击“恢复默认设置”按钮,系统会用程序中默认的时间来代替。图5-4中的“修改”实现代码如下:void CWorkplanDlg:OnWorkplanModify() CString strFileName=.workplan.ini; / INI文件名UpdateData(); / 更新数据WritePrivateProfileString(WorkPlan, Time1,m_Time1.Format(%H:%M:%S), strFileName);WritePrivateProfileString(WorkPlan, Tim

47、e2,m_Time2.Format(%H:%M:%S), strFileName);WritePrivateProfileString(WorkPlan, Time3,m_Time3.Format(%H:%M:%S), strFileName);WritePrivateProfileString(WorkPlan, Time4,m_Time4.Format(%H:%M:%S), strFileName);WritePrivateProfileString(WorkPlan, 书名,m_wenben, strFileName);点击图5-3中的“出勤记录”会出现考勤修改对话框。考勤修改界面如图5

48、-5所示:图5-5 考勤修改图考勤修改窗口包括4项记录修改功能,分别对应出勤记录,加班记录,请假记录和出差记录。系统实现了对员工的考勤操作:主要是针对某一个员工在其需要考勤的进段进行考勤,记录其某一个时段的考勤状况,并对考勤操作留下来的数据进行管理。对员工的加班操作:主要是记录某一个员工开始加班时间和结束加班时间,并根据这两个时间数值计算出其加半时长,同时也对加班操作留下来的数据进行管理。这4项记录的显示使用同一个检索条件。检索条件包括时间围和员工,可根据需要设置。出勤记录的添加是为了防止考勤出故障时,保证记录的完整性,在批量输入时,进度条会显示当前完成的进度。在出勤记录列表的上方有两个按钮。

49、一个用来删除当前的记录,另一个用来激活检索条件。考勤修改对话框中其他三项记录的添加和修改基本与出勤记录类似。 “添加出勤修改记录”界面如图5-6所示:图5-6 添加出勤修改记录图图5-6中“按条件检索”实现代码:void CPage1:OnBtnSeekio() CXieyuyingDBRS rs(&db); / 构造出勤记录表CAttDlg *pDlg; / 指向包含本对象的CAttDlg的指针CString strFilter; / 用于保存过滤字符串CString strSTime,strETime; / 起始,结束时间pDlg=(CAttDlg*)GetParent()-GetPare

50、nt(); / 得到指针pDlg-UpdateData(); / 更新数据strSTime=pDlg-m_StartTime.Format(%Y-%m-%d);strETime=pDlg-m_EndTime.Format(%Y-%m-%d);if(pDlg-m_bSeekbyperson) / 判断是否根据员工号检索strFilter=PERSON= + pDlg-m_strPersonID + ; / 添加过滤条件if(pDlg-m_bSeekbytime) / 判断是否有时间围 if(strFilter.GetLength()0) / 判断是否已有过滤条件strFilter += and

51、; /如果是,需要添加and连接符strFilter += IO_TIME + strSTime + ; / 添加开始时间过滤strFilter += and IO_TIME0) / 判断是否有过滤条件rs.m_strFilter=strFilter; / 设置FilterUpdateList(rs); “加班记录”运行界面如图5-7所示:图5-7 加班记录图图5-7中“添加”实现代码如下:void CPage2:OnBtnOvertimeAdd() int counter; / 用于保存计数CCounterRS rs_counter(&db); / 构造计数器记录表UpdateData();

52、 / 更新数据if(m_strPersonName.IsEmpty() return; / 判断员工号是否正确rs_counter.m_strFilter = ID=O; / 设置过滤器,提取计数值rs_counter.Open(); / 打开计数器记录表counter=rs_counter.m_COUNTER_VALUE; / 提取计数值counter+; / 计数值加1rs_counter.Edit(); / 编辑计数器rs_counter.m_COUNTER_VALUE=counter; / 保存当前计数rs_counter.Update(); / 提交修改rs_counter.Clos

53、e(); / 关闭计数器记录表COvertimeRS rs_overtime(&db); / 构造加班记录表rs_overtime.Open(); / 打开表rs_overtime.AddNew(); / 新增一项记录rs_overtime.m_ID=counter;rs_overtime.m_PERSON=m_strPersonID;rs_overtime.m_WORK_HOURS=m_nHour;rs_overtime.m_WORK_DATE=m_Date;rs_overtime.Update(); / 更新数据库rs_overtime.Close(); / 关闭加班记录表UpdateLi

54、st(rs_overtime); / 更新列表框图5-7中“保存”实现代码如下:void CPage2:OnButton1() CString strFileName=.workplan.ini; / INI文件名UpdateData(); / 更新数据/CString m_cList;CString str1,str2,str3,str4;str1 = m_cList.GetItemText(0, 0);WritePrivateProfileString(WorkPlan, 书名,str1, strFileName);str2 = m_cList.GetItemText(0, 1);Writ

55、ePrivateProfileString(/tWorkPlan, 书名,str2, strFileName);str3 = m_cList.GetItemText(0, 2);WritePrivateProfileString(WorkPlan, 书名,str3, strFileName);str4 = m_cList.GetItemText(0, 3);WritePrivateProfileString(/tWorkPlan, 书名,str4, strFileName); “请假记录”运行界面如图5-8所示:图5-8 请假记录图图5-8中“添加”实现代码如下:void CPage3:OnB

56、tnLeaveAdd() int counter; / 用于计数CCounterRS rs_counter(&db); / 构造计数器记录表UpdateData(); / 更新数据,记录编号rs_counter.m_strFilter = ID=L; / 设置过滤器,提取计数值rs_counter.Open(); / 打开计数器记录表counter=rs_counter.m_COUNTER_VALUE; / 提取计数值counter+; / 计数值加1rs_counter.Edit(); / 编辑计数器rs_counter.m_COUNTER_VALUE=counter; / 保存当前计数rs

57、_counter.Update(); / 提交修改rs_counter.Close(); / 关闭计数器记录表,添加记录int nYear,nMonth,nDay,nHour,nMinute; / 年,月,日,时,分sscanf(m_strSTime.Left(4), %d, &nYear); / 得到年sscanf(m_strSTime.Mid(5,2), %d, &nMonth); / 得到月sscanf(m_strSTime.Mid(8,2), %d, &nDay); / 得到日sscanf(m_strSTime.Mid(11,2), %d, &nHour); / 得到时sscanf(m

58、_strSTime.Mid(14,2), %d, &nMinute); / 得到分/ 得到起始时间CTime S_time(nYear,nMonth,nDay,nHour,nMinute,0);/ 转换结束时间类型sscanf(m_strETime.Left(4), %d, &nYear); / 得到年sscanf(m_strETime.Mid(5,2), %d, &nMonth); / 得到月sscanf(m_strETime.Mid(8,2), %d, &nDay); / 得到日sscanf(m_strETime.Mid(11,2), %d, &nHour); / 得到时sscanf(m_

59、strETime.Mid(14,2), %d, &nMinute); / 得到分/ 得到结束时间CTime E_time(nYear,nMonth,nDay,nHour,nMinute,0);CLeaveRS rs_leave(&db); / 构造请假记录表rs_leave.Open(); / 打开请假记录表rs_leave.AddNew(); / 追加请假记录rs_leave.m_ID=counter;rs_leave.m_PERSON=m_strPersonID;rs_leave.m_START_TIME=S_time;rs_leave.m_END_TIME=E_time;rs_leave.m_REASON=m_strReason;rs_leave.Update();rs_leave.Close(); / 关闭请假记录表UpdateList(rs_leave); / 更新列表框“出差记录”运行界面如图5-9所示:图5-9 出差记录图5.3.4 考勤结果分析功能的实现系统管理员可以通过此模块对任意时间的考勤结果进行统计。考勤统计对话框分别为月度统计,检索条件和记录列表3部分。月度统计需要设定统计的时间围。同样,进度条将显示统计的进度。检索条件和“检索”按钮用于快速定位录,便于查询和修改。点击统计会出现考勤统计对话框,如图5-10

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!