【学生指纹考勤系统毕业论文】 优秀毕业论文

来源:五年级 发布时间:2020-03-16 点击:

  

 毕 业 设 计 论 文

  专业班级:计算机科学与技术·计专本 学生姓名:

 指导教师:

 密级:

  学生指纹考勤系统

 Student Fingerprint Attendance System

 系别名称:

  信息工程系

  专业班级:计算机科学与技术·计专本

 学生姓名:

 学

 号:

 指导教师:

 摘

 要

 在高校的日常工作中,考勤是一项重要的内容。学生的出勤率直接影响到学校的学风建设。那么,怎样监督学生的出勤率就成了问题的关键。以往对于学生出勤率的监督方法主要是教师上课时的点名,这种方式比较落后,一旦上课人数较多的话就可能出现冒名顶替的现象。而且,对于大学的大班化的教学方式来讲,教师点一次名可能需要浪费十几分钟甚至是一节课的时间。这极大的降低了教师上课的效率。所以,这种传统的点名方式不适合于学校的考勤需求。考勤的电脑化、网络化,是当代信息化的必然趋势。作为信息化的当代,考勤管理系统已经成功的应用于企业。同样考勤管理系统也可以应用于学校的日常管理中。考勤管理系统可以避免点名方式的种种弊端,强化学校对学生上课状态的监督力度及提高教师教学的质量。 相对于其他的生理特征,指纹的唯一性、不易丢失性和终身不变特点使得指纹识别在国家安全、门禁系统、考勤制度、身份管理等领域起着重要作用。本系统主要采用指纹验证的方式对上课的学生身份进行核实,开发方式是基于.NET的C/S的设计模式。实现了考勤指纹的动态更换,克服市面上考勤机的指纹数量的限制。以及根据用户的需求实现了对任意一时段的考勤结果的统计。提高了学校的考勤工作的效率,减轻了教师上课的负担。真正的做到了考勤工作的高效性、及时性。

 关键词

 指纹识别,.NET,C/S,考勤

  Abstract

 In university daily work, attendance is an important element.Student attendance directly reflect a school's education.So, how to monitor student's attendance became an important issue. In the past,Supervision of student's attendance by teacher's call in the class,it is a way of relatively backward,And it very easy to occur the impostor phenomenon in a large class.Moreover, for large classes of teaching methods of the University, teacher's name may need to waste ten minutes or one class period.This greatly reduces the efficiency of class for teacher's teaching.So, traditional way of naming is not suitable for School's attendance requirements. Attendance of computer, networking, is the inevitable trend of contemporary information. As contemporary information, attendance management system has been successfully applied to the enterprises. It can alse be used to school'daily work. It avoid the abuse of the traditional way of naming, strengthen the supervision of the school management and improve the quality of teachers' teaching. Relative to other physiological characteristics of the fingerprint is unique, easy to lose and life-long characteristic fingerprint in the field of national security, access control systems, time and attendance system, identity management plays a important role. This system used fingerprint verification the student status,Based on the .net’s c/s of design patterns to develop the system.It achieved the attendance fingerprint of the dynamic change and overcomed the restrictions on the number of fingerprint attendance. And count the results of any one time by the needs of users. Improve the efficiency of school attendance, reduce the burden of school teachers. Truly efficiency and timeliness for attendance work.

 Key Words

 Fingerprint identification, .NET, C/S, Attendance

 目

  录

 摘

 要 I Abstract II 第1章

 绪

 论 1 1.1 指纹验证的发展前景 1 1.2 系统研究的方向 2 第 2 章 相关技术及工具简介 3 2.1 考勤机简介 3 2.2 指纹验证技术简介 3 2.2.1 指纹总体特征 3 2.2.2 指纹识别技术 4 2.2.3 指纹特征的拾取、验证和辨别 4 2.3 USB通信协议 6 2.4 客户机/服务器(C/S)设计模式 8 2.5 Visual studio 2005 简介 8 2.6 SQLServer 数据库简介 11 第3章 系统设计 12 3.1 系统问题定义 12 3.2 可行性分析 13 3.3 系统概要设计 13 3.3.1 编写目的 13 3.3.2 背景 14 3.3.3 定义 14 3.3.4 总体设计 15 3.3.5 尚未解决的问题 16 3.4 系统详细设计 16 3.4.1 数据库设计 16 3.4.2 系统业务流程 24 3.5 系统实现 26 3.5.1 登录模块的实现 26 3.5.2 设备管理模块的实现 27 3.5.3 数据管理模块的实现 30 3.5.4 查询与统计模块的实现 32 3.5.5 学生管理模块的实现 32 第4章 系统测试 37 4.1 常用的测试方法 37 4.2 系统测试 38 4.2.1 登录模块的测试 38 4.2.2 数据管理模块测试 38 4.2.3 查询与统计模块测试 40 4.2.4 学生管理模块测试 41 结

 论 42 致

 谢 43 参考文献 44

  第1章

 绪

 论

 1.1 指纹验证的发展前景

 近几年来,我国在指纹识别技术方 面得到较大发展,除了引进技术外,还有国内公司独立研究开发出的自主知识产权的多项指纹识别类产品。目前国内产品多以指纹门禁作为主导产品,并开发出适合考勤、证券、保管箱、计算机开启等应用产品。有的产品还不太成熟,特别是应用到网络的产品L4J。考勤是高校教学工作中的一项重要内容,并且具有人数众多,分布分散的特点。该系统利用高校现有的校园网进行信息传输和数据共享,师生可方便登录系统查询集体和个人考勤情况,给学校教学和学生管理工作带来很大便利。同时,该系统还可扩展到银行、停车场、公司、小区等其他领域,应用前景广阔。 目前,市面上指纹考勤系统常见的有两种:一种是联机型产品,其工作时须有电脑支持,多个系统共享指纹识别设备,需要建立大型的数据库存储指纹信息,且指纹的比对需要由后台计算机支持,后台PC负担被大大加重。无论考勤机、传路、计算机出现任何故障,都会导致整个考勤系统的瘫痪。另一种是脱机型产品,单机就可完成考勤全部过程,使用方便,得以广泛应用。现有脱机型产品在对考勤信息进行统计时都是RS232/485网络与管理计算机连接起来,对于考勤地点比较分散、距离较远、需要多台考勤终端的单位来说,RS232/485串口通讯不能完成远距离的网络数据传输口。目前,基于TCP/IP协议的网络架构技术已经广泛应用于公司、校园、工厂等各种环境,编写TCP/IP应用程序,可方便地将设备连入以太网,实现实时数据的网络传输。目前,市场上销售的指纹考勤机一般都只限制注册指纹数1000~3000枚,限制100~200人使用。对于机关单位、中小型企业、服务娱乐行业等用户是比较适用的。但对于一些大型生产型企业,由于人数都远远超过这一限制,导致采用简单的脱机指纹考勤机实现人力资源管理凸现极大限制。采用脱机指纹考勤终端无法实现大型系统考勤应用还包括其它一些原因,具体列述如下。 ⒈ 对比速度无法保证 ⒉ 数据的稳定性无法保证 ⒊ 管理软件支持有限 ⒋ 功能无法扩展 而综观中国市场,生物特征识别技术进入中国也就短短15年左右的时间,但是已经得到快速的应用。据统计,2008年中国生物识别市场的销售收入约23亿,其中超过85%为指纹识别产品,国产指纹设备占主流,并有大量出口。从市场和产业的生命周期看,中国指纹识别市场和产业已经完成了导入期和大部分成长期的演化过程,正在向成熟期逼近。 未来,指纹技术将在各个行业得到越来越多的广泛应用,如指纹在医药行业对药剂师开处方药的身份验证已经开始试点应用,指纹考试系统也在教育部职称考试中开始应用;指纹银行、指纹支付的庞大市场;指纹硬盘、指纹U盘;指纹在景区游客门票管理,指纹验证领取保险金;指纹在海关、出入境管理方面、指纹身份证护照等管理将会得到越来越多的应用。未来的指纹技术将从物理通道代替钥匙逐步发展到代替密码的计算机逻辑通道上的广泛应用。

 1.2 系统研究的方向

 在高校的教学和学生工作管理过程中,考勤是一项重要的内容。目前教师对于上课考勤以及考试的身份认证主要采用人工纸笔登记的方法。有关部门对全校的考勤统计不但工作量大,容易出错,而且不能及时公布学生当天的考勤情况。在校园网已基本建成的前提下,开发基于校园网的学生网络考勤系统是一种好的方案。 考勤系统集完备的人员管理及高科技功能于一身,为企业提供低成本、高效益的出入管理方案。系统以创新的技术作为系统的发展平台,具备无限的扩展空间及增值功能。系统采用非接触读卡技术、加上先进的电脑软件操控,使高科技在系统中得以充分发挥,以确保动作简妥、高效快捷。 传统的教学考勤手段已不能当今学校管理的需要,所以为了满足学校的需求,解决传统考勤方式在考勤中出现的问题,更好地为学校决策提供依据,本文设计了一个基于C/S(客户机/服务器)模式的多终端考勤系统。它使用ASP.NET技术和SQLServer数据库技术,结合当前的指纹验证技术,以考勤机为客户端接口,为实现学校考勤提供了一个良好的平台。整体布局结构图如图1.1所示。

  图 1.1 系统布局结构

 第 2 章 相关技术及工具简介

 2.1 考勤机简介

 本系统所采用的考勤机为海君牌考勤机,型号为HJ-299。它采用海君科技独创的模糊神经数学细化点算法,识别效率国际领先,速度达至0.8S,高可靠的工业级元器件的国际上认可最为可靠的光学采集器,超稳性原理设计,COMS自动曝光和智能补偿,增强图像质量,光学采集器“增强膜”,提高图像质量,接受干、湿手指,支持手指360度识别,网格初始化校正图像畸变,保证指纹识别的一致性及指纹模板移植性。它采用数码技术,结合传统RS232/485通讯方式,采用USB线连接下载,无需驱动,即插即用。除了标配的压器供电外,还可由电脑USB接口直接供电(解决因电源变压器坏时,可以保证客户考勤的不间段,从而促使考勤数据的完整性,提高企业管理)。无需后备电源,办公场所停电时,可以让考勤机接在笔记本电脑中完成员工考勤。其性能如下。 ⒈ HJ-299是一款国内首创数码技术指纹考勤机,采用美国Intel公司高性能闪速存储器,保障长期可靠运行,USB线连接即可供电考勤,连接电脑可实时下载。 ⒉ 采用高可靠的工业级元器件的国际上认可最为可靠的光学采集器,超稳性原理设计国际知名品牌,每天有超过5,000万终端、65个国家使用,市场销售连续6年第一。 ⒊ 采用国际上性能优越的32位RISC嵌入式CPU。 ⒋ 采用海君科技独创的模糊神经数学细化点算法,识别效率国际领先,速度达至0.8S。 ⒌ 具有手指360°自动识别功能。 ⒍ 网格初始化校正图像畸变,保证指纹识别的一致性及指纹模板移植性。 ⒎ 具有CMOS自动曝光和只能补偿、增强图像质量的功能,光学采集器“增强膜”,能够高效的识别各种干湿指纹。 ⒏ 考勤机内设1000枚指纹、30000条记录,满足中小型企业的考勤需要,适合100人以内的企业考勤。 ⒐ 中文语音提示功能,支持24小时不间断工作,定时开机、关机、休眠等。

 2.2 指纹验证技术简介

 2.2.1 指纹总体特征

 总体特征是指那些用人眼直接就可以观察到的特征。包括纹形、模式区、核心点、三角点和纹数等。纹形:指纹专家在长期实践的基础上,根据脊线的走向与分布情况一般将指纹分为三大类——环型(loop,又称斗形)、弓形(arch)、螺旋形(whorl)。模式区:即指纹上包括了总体特征的区域,从此区域就能够分辨出指纹是属于哪一种类型的。有的指纹识别算法只使用模式区的数据,有的则使用所取得的完整指纹。核心点:位于指纹纹 路的渐进中心,它在读取指纹和比对指纹时作为参考点。许多算法是基于核心点的,即只能处理和识别具有核心点的指纹。三角点:位于从核心点开始的第一个分叉点或者断点,或者两条纹路会聚处、孤立点、折转处,或者指向这些奇异点。三角点提供了指纹纹路的计数跟踪的开始之处。纹数:即模式区内指纹纹路的数量。在计算指纹的纹路时,一般先连接核心点和三角点,这条连线与指纹纹路相交的数量即可认为是指纹的纹数。

 2.2.2 指纹识别技术

 每个人包括指纹在内的皮肤纹路在图案、断点和交叉点上各不相同,呈现唯一性且终生不变。据此,我们就可以把一个人同他的指纹对应起来,通过将他的指纹和预先保存的指纹数据进行比较,就可以验证它的真实身份,这就是指纹识别技术。

 指纹识别主要根据人体指纹的纹路、细节特征等信息对操作或被操作者进行身份鉴定,得益于现代电子集成制造技术和快速而可靠的算法研究,已经开始走入我们的日常生活,成为目前生物检测学中研究最深入,应用最广泛,发展最成熟的技术。

 2.2.3 指纹特征的拾取、验证和辨别

 一个高质量的图象被拾取后,需要许多步骤将它的特征转换到一个复合的模板中,这个过程,被称为特征拾取过程,它是手指扫描技术的核心。当一个高质量的图象被拾取后,它必须被转换成一个有用的格式。如果图象是灰度图象,相对较浅的部分会被删除,而相对较深的部分被变成了黑色。脊的像素有5~8个被缩细到一个像素,这样就能精确定位脊断点和分岔了。微小细节的图象便来自于这个经过处理的图象。在这一点上,即便是十分精细的图象也存在着变形细节和错误细节,这些变形和错误细节都要被滤除。

 除细节的定位和夹角方法的应用以外,也可通过细节的类型和质量来划分细节。这种方法的好处在于检索的速度有了较大的提高,一个显著的、特定的细节,它的唯一性更容易使匹配成功。还有一些生产商采用的方法是模式匹配方法,即通过推断一组特定脊的数据来处理指纹图象。

 就应用方法而言,指纹识别技术可分为验证和辨识。

 验证就是通过把一个现场采集到的指纹与一个已经登记的指纹进行一对一的比对来确定身份的过程。指纹以一定的压缩格式存储,并与其姓名或其标识(ID,PIN)联系起来。随后在对比现场,先验证其标识,然后利用系统的指纹与现场采集的指纹比对来证明其标识是合法的。验证其实回答了这样一个问题:“他是他自称的这个人吗?”。这是应用系统中使用得较多的方法。

 辨识则是把现场采集到的指纹同指纹数据库中的指纹逐一对比,从中找出与现场指纹相匹配的指纹。这也叫“一对多匹配”。辨识其实是回答了这样一个问题:“他是谁?”。

 指纹是人体独一无二的特征,其复杂度足以提供用于鉴别的特征。随着相关支持技术的逐步成熟,指纹识别技术经过多年的发展已成为目前最方便、可靠、非侵害和价格便宜的生物识别技术解决方案,对于广大市场的应用有着很大的发展潜力。

 指纹识别技术主要涉及四个功能:读取指纹图象、提取特征、保存数据和比对。在一 开始,通过指纹读取设备读取到人体指纹的图象,取到指纹图象之后,要对原始图象进行初步的处理,使之更清晰。接下来,指纹辨识软件建立指纹的数字表示——特征数据,一种单方向的转换,可以从指纹转换成特征数据但不能从特征数据转换成为指纹,而两枚不同的指纹不会产生相同的特征数据。有的算法把节点和方向信息组合产生了更多的数据,这些方向信息表明了各个节点之间的关系,也有的算法还处理整幅指纹图象。总之,这些数据,通常称为模板,保存为1K大小的记录。无论它们是怎样组成的,至今仍然没有一种模板的标准,也没有一种公布的抽象算法,而是各个厂商自行其是。最后,通过计算机模糊比较的方法,把两个指纹的模板进行比较,计算出它们的相似程度,最终得到两个指纹的匹配结果。

 我们手掌及其手指、脚、脚趾内侧表面的皮肤凸凹不平产生的纹路会形成各种各样的图案。这些纹路的存在增加了皮肤表面的摩擦力,使得我们能够用手来抓起重物。人们也注意到,包括指纹在内的这些皮肤的纹路在图案、断点和交叉点上各不相同,也就是说,是唯一的。依靠这种唯一性,我们就可以把一个人同他的指纹对应起来,通过对他的指纹和预先保存的指纹进行比较,就可以验证他的真实身份。这种依靠人体的身体特征来进行身份验证的技术称为生物识别技术,指纹识别是生物识别技术的一种。目前,从实用的角度看,指纹识别技术是优于其他生物识别技术的身份鉴别方法。这是因为指纹各不相同、终生基本不变的特点已经得到公认,近二三十年的警用指纹自动识别系统的研究和实践为保安指纹自动识别打下了良好的技术基础。特别是现有的指纹自动识别系统已达到操作方便、准确可靠、价格适中的阶段,是实用化的生物测定方法。

 指纹是指手指末端正面皮肤上凸凹不平产生的纹路。这些纹路的存在增加了皮肤表面的摩擦力,使得我们能够用手来抓起重物。尽管指纹只是人体皮肤的一小部分,但是,它蕴涵大量的信息。这些皮肤的纹路在图案、断点和交叉点上是各不相同的,在信息处理中将它们称作“特征”,这些特征每个手指都是不同的。依靠特征的唯一性,我们就可以把一个人同他的指纹对应起来,通过比较他的指纹特征和预先保存的指纹特征,就可以验证他的真实身份。

 指纹自动识别系统通过特殊的光电转换设备和计算机图象处理技术,对活体指纹进行采集、分析和比对,可以自动、迅速、准确地鉴别出个人身份。系统一般主要包括对指纹图象采集、指纹图象处理、特征提取、特征值的比对与匹配等过程。现代电子集成制造技术使得指纹图象读取和处理设备小型化,同时飞速发展的个人计算机运算速度提供了在微机甚至单片机上可以进行指纹比对运算的可能,而优秀的指纹处理和比对算法保证了识别结果的准确性。

 在计算机系统中,指纹识别可以用于开机登录身份确认,远程网络数据库的访问权限及身份的确认,银行储蓄防冒领及通存通兑的加密方法,保险行业中投保人的身份确认,期货证券提款人的身份确认,医疗卫生系统中医疗保险人的身份确认等等.如将指纹信息记录在特殊用途的卡上,通过现场比对,可以防止冒充等欺诈行为。例如:信用卡、医疗卡、会议卡、储蓄卡、驾驶证、准考证、护照防伪等。

  2.2.4 指纹识别技术的原理

 指纹其实是比较复杂的。与人工处理不同,许多生物识别技术公司并不直接存储指纹的图象。多年来在各个公司及其研究机构产生了许多数字化的算法(美国有关法律认为,指纹图象属于个人隐私,因此不能直接存储指纹图象)。但指纹识别算法最终都归结为在指纹图象上找到并比对指纹的特征。 指纹的特征 我们定义了指纹的两类特征来进行指纹的验证:总体特征和局部特征。总体特征是指那些用人眼直接就可以观察到的特征,包括: 基本纹路图案环型(loop),弓型(arch), 螺旋型(whorl)。其他的指纹图案都基于这三种基本图案。仅仅依靠图案类型来分辨指纹是远远不够的,这只是一个粗略的分类,但通过分类使得在大数据库中搜寻指纹更为方便。模式区(Pattern Area)模式区是指指纹上包括了总体特征的区域,即从模式区就能够分辨出指纹是属于那一种类型的。有的指纹识别算法只使用模式区的数据。Aetex 的指纹识别算法使用了所取得的完整指纹而不仅仅是模式区进行分析和识别。核心点(Core Point)核心点位于指纹纹路的渐进中心,它用于读取指纹和比对指纹时的参考点。三角点(Delta)三角点位于从核心点开始的第一个分叉点或者断点、或者两条纹路会聚处、孤立点、折转处,或者指向这些奇异点。三角点提供了指纹纹路的计数和跟踪的开始之处。式样线(Type Lines)式样线是在指包围模式区的纹路线开始平行的地方所出现的交叉纹路,式样线通常很短就中断了,但它的外侧线开始连续延伸。纹数(Ridge Count)指模式区内指纹纹路的数量。在计算指纹的纹数时,一般先在连接核心点和三角点,这条连线与指纹纹路相交的数量即可认为是指纹的纹数。局部特征局部特征是指指纹上的节点。两枚指纹经常会具有相同的总体特征,但它们的局部特征节点,却不可能完全相同节点(Minutia Points)指纹纹路并不是连续的,平滑笔直的,而是经常出现中断、分叉或打折。这些断点、分叉点和转折点就称为“节点”。就是这些节点提供了指纹唯一性的确认信息。

  2.3 USB通信协议

 数据通信协议部分是USB的核心内容。主要包括:以差模串行信号为载体传送二进制代码来传输信号;数据包作为最基本的完整信息单元,包含一系列数据信息。数据包可以分解为更小的单元—域;以包为基础,构成USB的三种事务。进而,组合不同的传输类型,传输各种类型的数据,实现USB的各种功能。 包是USB最基本的数据单元,每个包,基本包含一个完整的USB信息。按照其在整个USB数据传输中的作用不同,包分为三类:令牌包、数据包和握手包。他们之间的区别是由更小的单元—域来划分的。域又分为七类:同步序列域、包标识域、地址域、端点域、帧号域、数据域和CRC校验域。

 以包为基础,USB定义了四种数据的传输类型:控制传输、中断传输、批量传输和同步传输。每一种类型都由一定的包按照某种特定的格式组成。不同的传输类型的最大传输速度、占用USB总线的带宽、传输数据的总量和应用场合等都是不同的。传输是一种比较笼统的说法,在实际的数据传输中,往往还需要细分为多个数据交换过程,每一次的数据交换过程既不能叫做某种传输,也不是包,而是另外一个重要的概念—处理事务。每种传输方式都由多个处理事务来完成,每一笔处理事务由底层包组成。域、包、处理事务和传输的关系就是实现USB通信的过程。

 为了细化USB的通信机制,USB协议的开发者采用了分层的概念,每一层传输的数据结构对其他逻辑层是透明的,USB设备和USB主机通信的逻辑结构和每层的逻辑通道。为了便于理解USB协议,将USB通信逻辑上分成了三层:信号层、协议层和数据传输层。信号层用来实现在USB设备和主机的物理连接之间传输位信息流的信息。协议层用来实现USB设备和USB主机端的系统协议软件之间传输包字节流的信息,它们在信号层被编码成NRZI位信息后传送出去。数据传输层用来实现在USB主机端的客户端驱动程序和设备端的功能接口之间传输有一定意义的信息,这些信息在协议层被打包成包格式。协议将信号层传输的位信息流称为包,将协议层传输的包信息流称为处理事务,将数据传输层传输的信息流称为传输。所有的传输最终都以比特流的方式在信号层上实现通信。

 数据传输类型USB的传输,是USB面向用户的最高级的数据结构。USB定义了四种数据传输类型,即控制传输、中断传输、批量传输和同步传输,用以完成各种类型的数据传输。

 处理事务和传输的关系是核心。传输是由一个或多个处理事务组成的,而处理事务按照其特点分为三种类型:输入(In)处理事务、输出(Out)处理事务和设置(Setup)处理事务。任何一种传输都是由这三种处理事务组成,不同的只是这三种处理事务的组合和搭配情况。

 中断传输由In处理事务或Out处理事务组成,主要用于如鼠标、键盘等自ID设备的数据传输中。中断传输中,“中断”的概念并不等同于PC系统中硬件设备的中断,USB主机是以周期性的方式对设备进行轮询,以确定设备是否有数据发送。中断传输没有固定的传输速率,低速、全速和高速设备均支持中断传输,只是对传送的数据包的大小要求不同。 批量传输由In处理事务或Out处理事务组成,主要用于大容量数据的传输中,如硬盘、光盘刻录机及数码相机等。批量传输对传输速率和宽带没有固定的要求,当总线“忙”时,USB会优先考虑其他类型的数据传输,而暂停批量传输。低速设备不支持批量传输,只有全速和高速设备才支持批量传输。

 同步传输由In处理事务或Out处理事务组成,主要用于音频流恒定传输速率的数据传输中,如音箱、显示器和摄像头等设备。同步传输讲究的是数据传输速率的恒定,而对数据的准确性的要求不如批量传输严格。所以,同步传输中没有握手包,不对发送错误的数据进行重试。需要说明的是,与中断传输和批量传输不同的是,对于全速设备,同步传输不支持数据包的交替触发机制,只能以Data0发送。而高速设备在一定条件下支持触发机制,由于情况复杂,不予讨论。低速设备不支持同步传输,只有全速和高速设备才支持同步传输。

 控制传输是最复杂、最重要的传输类型,也是USB枚举阶段最主要的数据交换方式。当USB设备初次连接到主机之后,主机通过控制传输来交换信息、设备地址和读取设备的描述符来识别该设备,并安装相应的驱动程序,在此基础之上其余三种可能的传输方式才 能够使用。进行USB系统开发时,首要的任务就是利用控制传输实现设备的枚举过程,提供各种设备信息。控制传输由In处理事务、Out处理事务和Setup处理事务组成,其中核心是Setup处理事务。

 2.4 客户机/服务器(C/S)设计模式

 C/S(Client/Server,客户机/服务器)模式又称C/S结构,是20世纪80年代末逐步成长起来的一种模式,是软件系统体系结构的一种。C/S结构的关键在于功能的分布,一些功能放在前端机(即客户机)上执行,另一些功能放在后端机(即服务器)上执行。功能的分布在于减少计算机系统的各种瓶颈问题。C/S模式简单地讲就是基于企业内部网络的应用系统。与B/S(Browser/Server,浏览器/服务器)模式相比,C/S模式的应用系统最大的好处是不依赖企业外网环境,即无论企业是否能够上网,都不影响应用。

 服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如ORACLE、SYBASE、InfORMix或 SQL Server。客户端需要安装专用的客户端软件。

 传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件, 加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高,效率低。 C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。 C/S结构的缺点是客户端需要安装专用的客户端软件及对客户端的操作系统一般也会有限制。 C/S模式是继分布式系统后发展起来的基于计算机网络的一种计算机模式,它在网络系统上的计算机系统分成客户机和服务器两类。用户通过客户机在网络系统上向服务器提出服务请求,服务器根据请求向有关方面提供经过加工的信息。客户机本身也承担本地信息管理工作,和分布式系统相比,客户机/服务器将信息工作分解为两个部分,一部分由服务器来实现,另一部分由客户机自身来完成。本文中所研究的多终端考勤系统以主计算机作为服务器,其他各个系部的考勤机及其计算机作为客户机。从客户机上采集考勤信息,发送到服务器,进行统计,客户机也可以统计本系部的考勤信息。客户端和服务器通过局域网相互联系,各系部管理员可以通过网络查询到学校其他系部或整个学校的学生出勤状况。

 2.5 Visual studio 2005 简介

 Visual Studio 2005是基于.NET2.0框架的[1]。它同时也能开发跨平台的应用程序,如开发使用微软操作系统的手机的程序等。总体来说是一个非常庞大的软件,甚至包含代码测试功能。这个版本的Visual Studio 包含有众多版本,分别面向不同的开发角色。同时还永久提供免费的Visual Studio Express 版本。 当Microsoft 首先发布Visual Basic之时,就通过降低其复杂度从而使Windows 软件开发得以广泛应用[2]。利用Visual Basic 6.0,Microsoft 让数以百万计的开发人员能够快速开发客户端/服务器应用程序。最近,利用Visual Studio .NET,Microsoft 又为开发人员提供了轻松开发分布式应用程序的工具与技术。通过 Visual Studio 2005 Team System,Microsoft 正在解决日益增加的应用程序复杂性及其设计、开发和部署所必需的生命周期问题。这一点是通过提供必需的工具和指导从而能够预见、重复结果(无需付出生产效率和创新的代价)实现的[3]。

 信息交流:通过降低报告的运转开销和寻觅团队成员间新的交流渠道,Visual Studio Team System 着重于能够更好地进行交流。例如: 通过自动从团队成员使用的工具那里收集信息,可以简化报告过程。从Visual Studio Team System 采集到的数据保存在数据仓库中,这使项目状态报告和可见性能够面向软件开发团队的所有成员,甚至是项目组之外的联系人。

 项目经理能够将客户需求转化为开发团队中的工作项,然后跟踪工作项的状态以实现项目状态的监控。

 分布式系统设计器 (Distributed System Designer) 将应用程序开发和部署需求转化为能够让开发人员和操作进行交流的公共语言 (SDM) [4]。

 集成的工具:Visual Studio 的成功已被证实,即开发人员偏爱一个具备对他们需要的工具提供接口的集成开发环境。通过将开发人员在开发环境中需要的测试和性能工具(例如,单元测试、代码分析和性能分析)合并在一起,Visual Studio Team System 也期待着这种成功。这使开发人员能够在生命周期的较早阶段就改善其代码的质量,而无需中断他们的工作。通过尽早地为开发人员提供他们需要用于识别和解决质量问题的工具,更多的产品缺陷就能够在它们还未构成危害之前即被发现并解决。

 简化的、集成的工作流和过程:有了 Visual Studio Team System,那么过程就不仅仅是文档了。它还能将自己体现为实际的工具行为更改。当您在项目初期选择过程时,还需要选择工作流和工作产品,它们会驱动系统的行为方式[5]。对 SDLC 过程的支持是内置的,这使得对工作流的支持是无缝的。通过将过程集成到团队成员日常使用的基本工具中,Visual Studio Team System 大大消除了过程采纳的障碍,并使自动收集跨职能的项目标准成为可能,而无需实施人工报告的相关开销。

 增加的投资回报:利用信息交流和生产效率的改进,企业将明显地看到针对其在 SDL工具和过程方面的投资而增加的 ROI。Visual Studio Team System 提供一个具有成本效益的解决方案,从而通过使用跨所有 SDLC 工具的广泛集成,实现对软件开发生命周期的管理。通过提供集成的工具集并基于现有知识进行构建,Visual Studio Team System 提供一个友好的环境来帮助开发团队提高效率,而无需掌握不必要的、复杂的概念和僵化的工具。 通过将 SDLC 工具集成到 UI 级别的表面,Visual Studio Team System 提高了团队工作效率并增强了项目的可预见性,下面说明数据级别表面以及过程级别的项目上下文。

 用户界面集成:工具间的无缝集成是增强生产效率的关键。Visual Studio Team System 提供跨整个 SDLC 工具套件的、一致的用户体验。对于开发人员而言,可以在他们当前的开发环境中使用某些活动(例如,单元测试、工作项跟踪、代码剖析以及代码分析)。

 数据集成:通过使用一个公共的跨工具集的数据仓库,Visual Studio Team System 解决了在大多数 SDLC 工具中建立数据仓库这一问题,并启动了一个聚合的项目状态视图。团队根据能够收集到的规则来管理项目。今天,数据主要限于缺陷跟踪。Visual Studio Team System 中集成的数据将开创一条新路 — 通过平衡利用贯穿于 SDLC 的大量、多样的数据来管理项目规则。Visual Studio Team System 会收集精确的数据 — 不仅限于缺陷跟踪,而是包括测试结果、代码涵盖、代码生成、任务进度等这些贯穿于团队常规工作流程的数据。该数据以某些标准的报告方式呈现,客户和 Microsoft 内部团队已在报告中建立了成功项目管理的关键规则。此外,团队还能够创建自定义报告。仅当以项目的大范围上下文查看数据时,团队才能够精确地报告项目状态。

 过程集成:在 Visual Studio Team System 中,工具行为由项目开始时选择的过程决定。通过将过程与工具相集成,Visual Studio Team System 帮助确保在项目各阶段之间或各种项目角色之间避免丢失任何内容。通过自动处理团队成员之间的工作调整,可以提高团队效率。公司通过使过程标准化,能够纠正贯穿于过程改进中的系统问题,而无需增加团队的工作量。此外,过程集成并不增加工作量,而通常能够降低与 SDLC 中所采纳过程相关的开销。 尽管存在一些基本的工具可组成 SDLC 工具(例如,架构师工具、测试工具等),但是 SDLC 并未限制住工具的数量。当集成支持 SDLC 的工具时,团队会发现在提高团队效率,同时降低复杂性这些方面的好处。Visual Studio Team System 将提供基本的平台,让所有提供商能够以一种普通的、公众可理解的形式交换信息。这理所当然地铸造了一个充满活力的合作伙伴体系,合作伙伴能够构建完全集成的工具,简化构建 IT 解决方案的复杂性,以及推动信息交流和鼓励团队协作。要获得跨 UI、数据和过程集成的最大价值,就需要扩展性。扩展性促成交互性。

 Visual Studio Team System 设计基础是扩展性模型。Microsoft 提供的 SDLC 工具利用与第三方可用的扩展性功能相同的扩展性功能。扩展性体现在集成的三个层次:UI、数据和过程。

 用户界面扩展性:Visual Studio Team System 利用现有的 Visual Studio Industry Partner (VSIP) 计划,将补充的产品和服务插入到 Visual Studio 集成开发环境 (IDE) 之中。 数据扩展性:Visual Studio Team System 利用 Visual Studio Team Foundation Core Services (TFCS) 将这些工具集成在一起[6]。TFCS 提供一组能够将工具集成在一起的工具,无需工具间的紧密耦合。对于数据收集,TFCS 还能够将第三方工具用于由 Visual Studio Team System 使用的数据仓库。

 过程扩展性:Visual Studio Team System 使用方法论模板来定义每个项目将遵循的过程。不存在适用于所有组织、以至一个组织内的所有项目的通用过程。不要为此担心,Visual Studio Team System 是一个灵活的工具集,它采用即灵活又正规的过程。Microsoft 的 Global Solution Integrator 合作伙伴将提供他们自己的方法论模板产品;或者,您可以自己创建模板。过程扩展性允许自定义工作项类型、签入策略、自定义报告以及项目管理模板。

 2.6 SQLServer 数据库简介

 SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本[7]。Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。Microsoft SQL Server近年来不断更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2000是Microsoft公司于2000年推出,目前最新版本是2012年3月份推出的SQL SERVER 2012[7]。 SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。 SQL Server 数据库有如下的特点。 ⒈ 真正的客户机/服务器体系结构。 ⒉ 图形化用户界面,使系统管理和数据库管理更加直观、简单 。 ⒊ 丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地 。 ⒋ SQL Server与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等[7]。SQL Server也可以很好地与Microsoft BackOffice产品集成。 ⒌ 具有很好的伸缩性,可跨越从运行Windows 95/98的膝上型电脑到运行Windows 2000的大型多处理器等多种平台使用[8]。 ⒍ 对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。 ⒎ SQL Server提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有[9]。 SQL Server 2000与以前版本相比较,又具有以下新特性。 ⒈ 支持XML(Extensive Markup Language,扩展标记语言)。

 ⒉ 强大的基于Web的分析。 ⒊ 支持OLE DB和多种查询[9]。 ⒋ 支持分布式的分区视图[10]。

 第3章 系统设计

 3.1 系统问题定义

 传统的对于学生上课的监控手段主要是教师上课时的点名签到或学生手工签到的形式,这种方式比较落后,一旦上课人数较多的话就可能出现冒名顶替的现象。而且,对于现在大学的大班化的教学方式来讲,教师点一次名可能需要浪费十几分钟甚至是一节课的时间。并且,这种传统的点名方式不适合于在每堂课的使用。对于这种传统的学生签到方式不仅增加了教师的工作负担还使得教师授课的时间缩短了。 在信息化的现代很多企业在尽量降低成本的状态下,为了监控员工的出勤状态,常常采用指纹考勤的方式对员工进行考勤。这种考勤方式主要是通过员工的指纹生物特征对员工的身份进行验证。这种方式不仅廉价、高效而且可靠性高,是一种较理想的考勤方式。教师对于学生的签到方式同样可以延伸为企业考勤的模式,同样可以采用指纹考勤的方式来解决传统的签到方式的种种弊端,使得教师从繁琐的学生签到工作中解脱出来,减少教师的工作量,提高教师授课的质量。 传统的学生签到方式与企业的指纹考勤方式的区别在于,企业的考勤方式面对的用户少,指纹信息相对来说较固定,可以使用脱机的指纹考勤模式来实现,这种指纹考勤模式的成本较低。但学生的指纹考勤模式面对的考勤对象数量庞大,指纹信息较多,若采用脱机的模式来实现较困难,即使能够实现指纹验证的速度也得不到保证,这样容易造成考勤时间的瓶劲。采用联机的模式实现话,可以很容易得解决考勤时间的瓶劲问题,但随之而来的是考勤成本的增大。而且,联机的考勤模式考勤点相对来说较固定,不够灵活。 鉴于指纹考勤的联机与脱机模式的对比,本系统将结合两种考勤模式的优点来考虑,以节约成本前提下来实现学生的指纹考勤系统。 考虑到成本的问题,本系统主要以脱机的模式来实现学生指纹考勤,但相对于传统的脱机考勤模式又有所区别。本系统的脱机模式是通过普通的考勤机来实现的,为了适应学校的考勤对象的现象,本系统主要解决以下一些问题。 ⒈ 动态的、随时的更新考勤机中的指纹信息。 ⒉ 学生指纹信息的采集及存储。 ⒊ 突破联机方式采集地点的限制。 ⒋ 学生指纹信息的验证。 ⒌ 对考勤信息的相关处理。 ⒍ 对考勤记录的下载及存储的问题。 ⒎ 能够通过客户端对考勤记录进行统计。

  3.2 可行性分析

 经济方面:现在市面上销售的中档考勤机售价一般在500元左右,若批量采购的话售价能够相对的降低,学校可以根据每个教研室的授课老师的数量来配备2-5台考勤机,由于学生考勤系统选用一般计算机操作,对硬件设施没有较高要求,所以每个科室的可以配置一台计算机作为客户端,预计每台客户端的售价为3000左右,鉴于本系统对计算机的硬件要求不高,可以考虑采用一般低档的服务器,预计售价为10000左右。 技术可行性分析主要包括四个方面:目前有关的技术能否支持所开发的新系统;新系统开发人员的数量和水平,即人力资源;硬件和软件资源。 ⒈ 技术支持 首先根据新系统的目标,考虑目前有关的技术能否支持所开发的新系统。这里讨论的技术必须是已经普遍使用的,而不是待研究的或正在研究的。 ⒉ 硬件资源 开发管理信息系统所需的硬件资源包含以下两个方面。 系统开发人员在管理信息系统的开发过程中所需要的计算机设备及其有关的外部设备;管理信息系统开发成功投入使用后,使用单位所应具备的计算机设备及其有关的外围设备。对硬件资源进行可行性分析时主要考虑计算机的主机内存、类型、功能、联网能力、安全保护措施以及输入/输出设备,外存储器和联网数据通信设备的配置、功能、效率等指标是否符合系统方案设计要求,同时还要考虑计算机的性能/价格比。 ⒊ 软件资源 软件资源的可行性分析主要考虑以下几点是否满足使用者,即学校的要求。 ⑴ 操作系统的选择。 ⑵ 编译系统的选择。 ⑶ 数据库管理系统的选择。 ⑷ 高级编程语言的选择。 ⑸ 汉字处理系统的选择。 ⑹ 应用软件包的选择。 本系统在开发前,与老师和部分同学密切沟通,认真听取他们的意见,并吸收他们的积极观点,使本系统的开发在相当大的程度上具有一定的先进性和合理性。

  3.3 系统概要设计

 3.3.1 编写目的

  本章节编写的目的主要是解释系统(学生指纹考勤系统)的概要设计,对系统的一些功能模块做简要的设计以及说明整个系统的业务流程。本章节预期的读者是本系统的开发人 员、系统的后期维护人员以及对本系统的做二次开发的人员。

 3.3.2 背景

 在高校的教学和学生工作管理过程中,考勤是一项重要的内容。目前教师对于上课考勤以及考试的身份认证主要采用人工纸笔登记的方法。有关部门对全校的考勤统计不但工作量大,容易出错,而且不能及时公布学生当天的考勤情况。在校园网已基本建成的前提系,开发基于校园网的学生网络考勤系统是一种好的解决方案。 相对于其他的生理特征,指纹的唯一、不易丢失和终身不变特点使指纹识别在国家安全、门禁系统、考勤制度、身份管理等领域起着鉴定和记录身份的作用。 目前,市面上指纹考勤系统常见的有两种:一种是联机型产品,其工作时须有电脑支持,多个系统共享指纹识别设备,需要建立大型的数据库存储指纹信息,且指纹的比对需要由后台计算机支持,后台PC负担被大大加重。无论考勤机、传路、计算机出现任何故障,都会导致整个考勤系统的瘫痪。另一种是脱机型产品,单机就可完成考勤全部过程,使用方便,得以广泛应用。现有脱机型产品在对考勤信息进行统计时都是RS232/485网络与管理计算机连接起来,对于考勤地点比较分散、距离较远、需要多台考勤终端的单位来说,RS232/485串口通讯不能完成远距离的网络数据传输口。目前,基于TCP/IP协议的网络架构技术已经广泛应用于公司、校园、工厂等各种环境,编写TCP/IP应用程序,可方便地将设备连入以太网,实现实时数据的网络传输。

  3.3.3 定义

 USB:Universal Serial BUS(通用串行总线),是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。 指纹:表皮上突起的纹线。由于人的遗传特性。虽然指纹人人皆有,但各不相同。在现代的身份识别中常常采用指纹来识别某人的身份。 C/S:client/server,是传统意义上的拥有客户端和服务器端的网络软件或系统。 指纹识别:即指通过比较不同指纹的细节特征点来进行鉴别。 SQL Server:是一个关系数据库管理系统。 ASP.NET:ASP.NET的前身ASP技术,是在IIS 2.0上首次推出(Windows NT 3.51),当时与 ADO 1.0 一起推出,在IIS 3.0 (Windows NT 4.0)发扬光大,成为服务器端应用程序的热门开发工具。 Visual Studio:Visual Studio 是微软公司推出的开发环境,Visual Studio 可以用来创建Windows 平台下的Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office插件。 考勤:顾名思义,就是考查出勤,也是就通过某种方式来获得员工或者某些团体、个人在某个特定的场所及特定的时间段内的出勤情况。

 3.3.4 总体设计

  ⒈ 需求规定 系统分析是开发管理信息系统的关键性阶段,是一个从不断认识和逐步细化的过程,是下一阶段的工作基础,是为下一阶段进行物理方案设计、解决“怎么做”提供依据,基关键性主要体现在“理解需求”和“表达需求”两方面[11]。 通过对现行系统的详细调研,主要是从系统的角度理解用户的需要,确定新系统的综合要求,并提出这些需求的实现条件以及需求应达到的标准,也就是确定新系统要做什么,做到什么程度。本系统总体模块如图3.1所示。

  图3.1 系统总体模块图

 本系统为学生指纹考勤系统主要实现以下功能。 ⑴ 学生指纹的采集。 ⑵ 学生指纹信息的存储。 ⑶ PC机与考勤机的通信。 ⑷ 实现PC机对考勤机的控制(主要是通过客户端完成考勤机中指纹信息的动态更新及从考勤机中下载考勤记录)。 ⑸ 对下载后的考勤信息进行相应的处理。 ⑹ 学生信息的管理。 ⑺ 班级信息的管理。 ⑻ 用户信息的管理。 ⑼ 课程信息的管理。 ⒉ 运行环境 ⑴ 后台数据库服务器 因为服务器为数据库服务器,且要完成高密度的运算量,所以应采用较高档的服务器。考虑到与软件的兼容性,建议采用这款双路四核的服务器,标配一颗至强E5620四核处理器,英特尔5500芯片组服务器主板,2G DDR3 REG ECC内存,SSD 80G固态硬盘,双千兆网卡。 产品型号:I2496194S-H

 产品类型:双路四核机架式服务器 处 理 器:Xeon E5620 内

 存:2G DDR3 REG ECC 硬

 盘:SSD 80G 机

 构:1U机架式 ⑵ 客户机 建议采用Intel Pentium 4 多处理器系统、512MB RAM、80GB以上硬盘。(该配置为最低配置要求) ⑶ 操作系统的选择 数据库服务器:因为服务器为数据库服务器,特别对稳定性有极高的要求,且支持多CPU。所以应采用Windows 2000 Server,因为它有优良的稳定性和操作性。 ⑷ 数据库的选择 因大部分情况下软件都是在Windows系统下使用的,考虑SQL Server的优势在于中 国普遍使用的免费数据库软件并且与Windows操作系统同属Microsoft的产品,在兼容度应不存在任何问题,并支持集成性安全检测,且对系统的资源消耗较小。相比之下,Oracle数据库虽然性能较高,但由于其可操作性和方便性不如SQL Server好,并且服务器没有使用磁盘阵列和多处理器,无法发挥Oracle数据库设计上的性能优势,并且对系统性能要求较高。至于Access之类的数据库,由于其性能较低,且并发度太低又不具安全性,故不予考虑。最终决定后台数据库用SQL Server 2000。当然整个系统只能在Windows下运行。 ⒊ 系统结构 在这一阶段中根据系统调查与分析阶段的结果,进行系统的设计。系统设计包括两个方面的工作,首先是系统总体结构的设计,即把系统的功能分解成许多基本的功能模块,确定它们之间的联系,规定它们的功能和处理流程;其次是具体的物理设计,即对实现系统的各项功能,选择具体的技术手段和处理方式[12]。因此,如果说系统研制人员在系统调查与分析阶段的任务是在逻辑上弄清楚系统“做什么”的话,在系统设计阶段的任务则是在物理上确定系统“如何去做”。 从学生指纹考勤系统的整体出发,根据系统的目标将其分解成一系列子系统,各个子系统既相互配合,又各自具有一定的独立功能,共同实现整个系统的目标。上层的子系统其功能越笼统、越抽象,越下层的子系统其功能越简单、越优越,越具体。对于每一个子系统或系统模块,都应该尽量使其相对独立,要尽可能减少各个子系统之间的联系。

 3.3.5 尚未解决的问题

 本系统主要存在以下几个问题。 ⒈ 学生学号长度做多能为5位。 ⒉ 现仅支持USB的通信方式,TCP/IP和RS232通信方式暂未提供接口。 ⒊ 不能区分多次采集的考勤记录。 ⒋ 指纹考勤机种的指纹信息过多时会影响指纹验证的速度。

 3.4 系统详细设计

 3.4.1 数据库设计

 ⒈ 实体E-R图 在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,才能更好的更准确的用数据库管理系统实现这些需求[13]。根据需求分析画出E-R图。本系统的E-R图如图3.2~3.8所示。

 图3.2 设备信息实体

 图3.3 课程信息实体

 图3.4 教师信息实体

 图3.5 班级信息实体

 图3.6 学生信息实体

  图3.7 考勤记录实体

 ⒉ E-R图向关系模型的转换 关系模型的逻辑结构是一组关系模式的集合[13]。E-R图则是由实体,实体的属性和实体间的联系三个要素组成。所以将E-R图转换为关系模型实际上就是要将实体,实体的属性和实体间的联系转换为关系模式。转换原则如下。 ⑴ 实体类型的转换:将每个实体类型转换成一个关系模式,实体的属性及实体间的联系的属性为关系模式的属性,实体标识符及为关系模式的键[13]。 ⑵ 若实体间的联系是1:1,可以在两个实体类型转换成的两个关系模式中的任意一个关系模式的属性中加入另一关系模式的键和联系类型的属性[14]。 ⑶ 若实体间的联系1:N,则在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的属性[14]。 ⑷ 若实体间的联系是M:N,则将联系类型也转换成关系模式,其属性为两端实体类型的键加上关系类型的属性,而键为两端实体间的组合[14]。

 图3.8 管理员信息实体

 ⒊ 关系模式设计 根据学生指纹考勤系统的实体关系E-R图转换成关系模式如下。 ⑴ deviceInfo(id,deviceName,deviceStyle,deviceNumber,deviceInstruction, connectMethod,deviceState ) 设备信息(编号、仪器名称、仪器型号、机器号、仪器说明、通信方式、仪器状态) ⑵ stuInfo(id,stu_num,stu_name,stu_gender,stu_birthplace,stu_birthday,stu_class, stu_id_card,stu_admission_day,stu_education,stu_type,stu_fingerInfo,stu_fingerInfo_backUp ) 学生信息(编号、学号、姓名、性别、籍贯、出生日期、班级号、身份证号、入学日期、 学历、学制、指纹信息、备份指纹信息) ⑶ course(id,course_num,course_name,staff_num,course_type,course_score) 课程信息(编号、课程号、课程名称、授课老师、课程类型、学分) ⑷ record(id,stu_num,course_num,class_num,state,check_date,check_person) 考勤记录(编号、学号、课程号、班级号、出勤状况、考勤时间、考勤人) ⑸ staffInfo(id,staff_num,staff_name,staff_gender,staff_birthplace,staff_birthday, staff_id_card,staff_position,staff_education,staff_belong ,Staff_pwd) 教师信息(编号、职工号、姓名、性别、籍贯、出生日期、身份证号、职称、学历、所在系部、密码) ⑹ admissionInfo(id,admin_num,admin_name,admin_gender,admin_birthplacr, admin_birthday,admin_id_card,admin_position,admin_education,admin_power) 管理员信息(编号、职工号、姓名、性别、籍贯、出生日期、身份证号、职称、学历、 权限、密码) ⑺ class(id,class_num,class_name,class_belong,class_leader) 班级信息(编号、班级号、班级名称、所属系部、辅导员)

 各个实体间的关系如图3.9所示。

  图3.9 关系模型图

 ⒋ 数据表结构 ⑴ 班级信息表,如表3.1所示。

 表3.1 班级信息表 字段名 中文名称 类型 长度 备注 Id 编号 Int

 主键,标识列自动增长 Class_num 班级号 varchar 10

 Class_name 班级名称 Varchar 20

 Class_belong 所属系部 varchar 12

 Class_leader 辅导员 Varchar 10

  ⑵ 设备信息表,如表3.2所示。

 表3.2 设备信息表 字段名 中文名称 类型 长度 备注 Id 编号 Int

 主键,标识列自动增长 DeviceName 仪器名称 varchar 20

 DeviceStyle 仪器型号 Varchar 50

 DeviceNumber 机器号 Int

  DeviceInstruction 仪器说明 Varchar 100

 ConnectMehtod 通信方式 Varchar 10

 DeviceState 仪器状态 Varchar 10

  ⑶ 学生信息表,如表3.3所示。

 表3.3 学生信息表 字段名 中文名称 类型 长度 备注 Id 编号 Int

 主键,标识列自动增长 Stu_num 学号 varchar 12

 Stu_name 姓名 Varchar 50

 Stu_gender 性别 varchar 2

 Stu_birthplace 籍贯 Varchar 100

 Stu_birthday 出生日期 Varchar 20

 Stu_class 班级号 Varchar 10 与班级表中的主键关联 Stu_ID_card 身份证号 Varchar 20

 Stu_admission_day 入学日期 varchar 20

 Stu_education 学历 varchar 10

 Stu_type 学制 varchar 10

 Stu_fingerInfo 指纹信息 Varchar 800

 stu_fingerInfo_backUp 指纹信息 Varchar 800 备份的指纹信息

 ⑷ 考勤记录表,如表3.4所示。

 表3.4 考勤记录表 字段名 中文名称 类型 长度 备注 Id 编号 Int

 主键,标识列自动增长 Stu_num 学号 varchar 10

 Course_num 课程号 Varchar 20

 Class_num 班级号 varchar 12 与用户表中的职工号关联 State 出勤状况 Varchar 10

 Check_date 考勤时间 Datetime 8 考勤时间 Check_person 考勤人 Varchar 10

  ⑸ 教师信息表,如表3.5所示。 表3.5 教师信息表 字段名 中文名称 类型 长度 备注 Id 编号 Int

 主键,标识列自动增长 Staff_num 职工号 varchar 12

 Staff_name 姓名 Varchar 50

 Staff_gender 性别 varchar 2

 Staff_birthplace 籍贯 Varchar 100

 Staff_birthday 出生日期 Varchar 20

 staff_id_card 身份证号 Varchar 20

 Staff_position 职称 varchar 20

 Staff_education 学历 varchar 10

 Staff_belong 所在系部 varchar 10

 Staff_pwd 密码 varchar 20

  ⑹ 课程信息表,如表3.6所示。

 表3.6 课程信息表 字段名 中文名称 类型 长度 备注 Id 编号 Int

 主键,标识列自动增长 Course_num 课程号 varchar 10

 Course_name 课程名称 Varchar 20

 Staff_num 授课老师 varchar 12 后改为存教师姓名 Course_type 课程类型 Varchar 10

 Course_score 学分 Varchar 5

  ⑺ 管理员信息表,如表3.7所示。

 表3.7 管理员信息表 字段名 中文名称 类型 长度 备注 Id 编号 Int

 主键,标识列自动增长 Admin_num 职工号 varchar 12

 Admin_name 姓名 Varchar 50

 Admin_gender 性别 varchar 2

 admin_birthplace 籍贯 Varchar 100

 Admin_birthday 出生日期 Varchar 20

 Admin_ID 身份证号 Varchar 20

 Admin_position 职称 varchar 20

 Admin_power 权限 Int

 1超级管理员,2普通管理员 Admin_pwd 密码 Varchar 20

 3.4.2 系统业务流程

 ⒈ 本系统的指纹采集的业务流程如图3.10所示。

  图3.10 指纹采集业务流程

 图3.10中符号的说明如下所示。 ① 上传的学生学号信息。 ② 考勤机采集到的学生指纹信息和学生学号。 ③ 学生的完整信息。 ⒉ 学生考勤的业务流程图3.11所示。

  图3.11 考勤业务流程图

 图3.11中符号说明如下所示。 ① 教师上传学生登记的指纹信息、所上课程信息、指纹采集时间。 ② 学生比对的指纹信息。 ③ 考勤记录。 ④ 教师处理考勤记录请求。 ⑤ 处理后的考勤记录。 ⑥ 存储的考勤记录。 ⑦ 查看考勤请求。 ⑧ 响应请求的考勤记录。 ⒊ 系统的总体流程如图3.12所示。

  图3.12 系统流程图

 图3.12中符号说明如下所示。 ① 学生指纹信息。 ② 采集到的指纹信息。 ③ 学生的基本信息包括指纹信息。 ④ 采集到的指纹信息。 ⑤ 学生现场提供的指纹信息。 ⑥ 指纹比对后形成的考勤记录。 ⑦ 需要处理的考勤记录。 ⑧ 考勤记录。

 3.5 系统实现

 3.5.1 登录模块的实现

 ⒈ 登录模块的主体思想 用户登录模块最基本的作用是为了限制一些非法用户对考勤系统的使用,只有经过身份确认的合法用户才能对考勤管理系统进行相关操作。其基本过程是,在登录界面载入时程序同时读取根目录下的数据库配置文件,为系统连接数据库做好准备。系统将用户输入的账号与密码同数据库中的用户信息相比较,正确则为合法用户,正常进入系统。否则,为非法用户,无法登录系统。系统的登录界面如图3.13所示。

  图3.13 系统登录界面

 ⒉ 登录模块需要解决的问题 在登录模块需要解决的问题有以下几点。 ⑴ 怎样来确定合法的用户。 ⑵ 怎样来区分用户的类型。 ⑶ 怎样根据用户的类型来分配权限。 ⑷ 怎样回应非法用户的登录请求。 ⒊ 登录模块问题解决的方法 ⑴ 确定合法的用户首先是根据用户登录时提供的类型来查找相应的用户,查找到相应 的用户后,再将用户登录时提供的账号和密码与数据库中用户登记的账号和密码进行比对,若完全正确则视为合法的用户。反之,则为非法用户。如果用户提供正确的账号和密码信息,但提供一个错误的登录类型,也将被视为非法用户。 ⑵ 区分用户类型是根据登录界面提供的两个单选按钮来确定。 ⑶ 用户的权限分配是当用户正确登录后,根据用户表中的power字段提供的值来确定用户所拥有的权限的。并根据权限的不同在系统中生成不同功能菜单的组合。1为超级管理员(系统默认提供一个且仅有一个),2为普通管理员,3为普通用户。 ⑷ 对于非法的用户系统都回应一个登录错误的提示对话框。 ⒋ 登录模块的业务流程图,如图3.14所示。

  图3.14 登录模块业务流程图

 图3.14中符号说明如下。 ① 用户提供的登录信息。 ② 非法登录的回应信息。 ③ 用户的账号和密码信息。 ④ 非法登录的回应信息。 ⑤ 合法用户的信息。 ⑥ 用户登记信息(用户登记的账号和密码)。

 3.5.2 设备管理模块的实现

 ⒈ 设备管理模块主体思想 在本模块中主要实现对客户端的考勤机进行管理,包括考勤机信息的添加、修改、删除以及系统与考勤机的联机与断开。考勤机信息的管理主要是通过一个dataGrid的数据控件将考勤机的信息展示给用户。用户可根据需要选择需要删除的信息,当需要修改信息时,用户选择修改操作后,系统会通过一个共享变量将需要修改信息的ID传递给添加信息窗体,在添加信息窗体载入时会查看共享变量是否有值,若有值则表示该次载入是由修改操作触发的,继而会根据共享变量中的ID查询出相应的信息,用户可根据需要更改信息,更改信息后系统会自动将共享变量中的ID清空。若无值,则表示该次载入是由添加操作触发的,系统会将一个空白添加窗体呈现给用户,供用户添加考勤机信息。系统与考勤机的联机与断开则通过厂商提供的动态库调用相应的联机与断开的方法来实现。考勤机信息管理界面如图3.15所示。

  图3.15 考勤机信息管理

 ⒉ 设备管理模块需要解决的问题 在设备管理模块需要解决以下几点。 ⑴ 添加新的设备信息并存储。 ⑵ 删除和修改设备信息。 ⑶ 实现PC机与考勤设备的连接。 ⑷ 实现PC机与考勤设备连接的断开。 ⒊ 设备管理模块问题解决的方法 ⑴ 添加设备信息主要是用户在设备信息添加窗体中填写设备信息,信息填写完成后点 击确定系统首先判断用户填写的机器号是否与数据库中存储的设备的机器号重复,若重复则将错误信息返回给用户,并要求用户重新填写。若不重复,则直接将用户填写的设备信息存储到数据库中。 ⑵ 删除设备信息的实现是用户在设备信息列表窗体中选中需要删除设备信息选择删除操作,系统获取选中设备信息的ID并根据ID将数据库中相应的信息删除。修改设备信息的实现是用户在设备信息列表窗体中选中需要修改设备信息选择修改操作,系统获取选中设备信息的ID并将其赋值给对应共享变量,然后窗体跳转到设备信息添加窗体,在添加窗体加载时会判断对应的共享变量是否有值,如果有值,则表示该次窗体加载是由修改操作触发的,窗体则根据共享变量的ID查找出相应的设备信息,并呈现给用户,用户根据需要修改相应的信息,提交即可。当修改后的信息提交成功后或窗体关闭时,系统自动回清空共享变量中的ID值。 ⑶ PC机与考勤机的连接和断开是通过厂商提供的动态库中的Connect_USB(long machineNumber)和Disconnect(long machineNumber)来实现。 ⒋ 设备管理模块的业务流程图,如图3.16所示。

 图3.16 设备管理模块业务流程图

 图3.16中的符号说明如下所示。 ① 设备信息。 ② 用户所填的机器号重复的提示信息。 ③ 确认后的设备信息。 ④ 用户的修改和删除请求。 ⑤ 要删除设备信息的ID。 ⑥ 要修改设备信息的ID。 ⑦ 存储要修改设备信息ID的共享变量。 ⑧ 原始的设备信息。 ⑨ 修改后的设备信息。 ⑩ 要删除设备信息的ID。

 3.5.3 数据管理模块的实现

 ⒈ 数据管理模块主体思想 该模块主要实现与客户端考勤机的通信,它主要包括上传考勤对象的信息及下载考勤记录。上传信息时,首先与客户端考勤机建立连接,再通过连接时创建的机器号进行通行。上传信息时,先查询出符合条件的用户信息,再将用户信息上传到考勤机中。当用户信息上传成功时,再上传该用户的指纹信息。考勤结束后在通过客户端下载考勤机中的考勤记录,下载后的考勤记录系统能够自动判别用户的签到和迟到两种状态,默认上课后10分钟内属于签到,20分钟内属于迟到,其余的先默认为旷课。对于病假和事假的状态由教师下载考勤记录后手动进行更正。当确定考勤记录无误后,即可保存考勤记录到数据库中。存入到数据库的考勤记录若需要修改,则应由管理员来修改。上传用户信息的界面如图3.17所示,下载考勤记录的界面如图3.18所示。

 图3.17 上传用户信息

  图3.18 下载考勤记录

 ⒉ 数据管理模块需要解决的问题 数据管理模块需要解决以下几个问题。 ⑴ 将学生信息上传到考勤机中。 ⑵ 怎样实现单个上传及批量上传。 ⑶ 实现考勤信息的下载。 ⑷ 区分考勤信息的状态。 ⒊ 数据管理模块问题解决的方法 ⑴ 上传学生信息分为两步。首先,上传学生的一些基本信息,主要包括学生学号和所上课的课程号。再上传学生的指纹信息。这部分的实现先是查询出符合条件的学生信息,然后取得学生的学号和所上课的课程号,再通过厂商提供动态库中的SetUserInfo(deviceConnectNum, idNum, stuName, classNo, 0, True)方法来实现学生信息的上传,当学生信息上传成功后再通过SetUserTmpStr(deviceConnectNum, idNum, fingerIndex, stuFingerStr)方法上传学生的指纹信息。 ⑵ 单个学生信息上传和多个学生信息上传实现的思想是一样的,它们调用的都是同一个上传信息的方法UpLoadFinger(ByVal condition As String),只是提供给该方法的条件不 同。单个学生信息上传提供给UpLoadFinger(ByVal condition As String)方法的条件是查询出单个学生信息的条件,而多个学生信息上传提供给UpLoadFinger(ByVal condition As String)方法的条件是查询出一个结果集的条件。 ⑶ 考勤信息的下载主要是通过厂商动态库中提供的GetGeneralLogData(…)和ReadAllUserID(deviceConnectNum)两个方法来实现的。 ⑷ 考勤信息的状态分为签到、迟到、旷课、事假和病假五种。系统会根据学生指纹登记的时间来判断为签到、迟到和旷课三种。对于上课后10分钟内登记的信息为签到状态,10分钟到20分钟内的信息为迟到状态20分钟以后则为旷课状态。鉴于事假和病假状态没有事件的触发源程序无法判断,程序先默认为旷课状态,上传数据库时由教师根据相应的证明来更改成相应的状态。程序中只提供旷课、事假和病假3中状态的修改,对于签到和迟到状态是由程序自动判别无法修改。对于未登记的学生处理是,下载登记信息时系统会记录下来每个有过登记信息的学生的学号,然后系统会根据记录下来的学生学号去相应的班级里查找出未有过登记记录的学号,并向系统中添加相应的考勤记录,其考勤状态为旷课。 ⒋ 数据管理模块的业务流程图 数据管理模块的业务流程图如图3.19所示,图3.19中的符号说明如下。 ① 学生信息。 ② 考勤所需的学生信息。 ③ 考勤所需的学生信息包括课程信息。 ④ 指纹信息。 ⑤ 学生登记的指纹信息和现场提供的指纹信息。 ⑥ 考勤记录。 ⑦ 考勤记录修改信息。 ⑧ 考勤记录。

  图3.19 数据管理模块业务流程图

 3.5.4 查询与统计模块的实现

 ⒈ 查询与统计模块主体思想 查询功能的实现主要是通过用户提供的查询条件,对record表查询出符合用户提供条件的数据,再将符合条件的数据组装成一个dataTable,最后将组装完成的dataTable作为dataGridView的数据源与其绑定,最终呈现在用户的面前。统计模块的实现是先将record表中符合用户需求的数据查询出来,再利用SQL的统计函数将符合要求的数据按签到记录的状态(签到状态分为签到、迟到、旷课、病假、事假)统计出来。最后将统计的结果组装成一个dataTable,并将其设定为dataGridView的数据源,最终呈现在用户的面前。查询模块如图3.20所示,统计模块如图3.21所示。

 图3.20 查询考勤记录

 图3.21 统计考勤记录

 ⒉ 查询与统计模块需要解决的问题 查询与统计模块需要解决的问题有以下几点。 ⑴ 能够统计出一个班级中所有成员在一个时间段内的签到、迟到、旷课、请假的次数。 ⑵ 能够查询出某个人在一个时间段内考勤的详细记录。 ⒊ 查询与统计模块解决问题的方法 ⑴ 统计功能的实现是根据用户提供的时间段和班级信息先把所有符合条件的考勤记录给查询出来,再利用SQL语句把查询出来的记录根据状态进分类汇总,最后系统把统计出来的结果组合成一张临时表,并将该表作为dataGridView的数据源,呈现给用户。 ⑵ 查询详细记录是有系统提供条件组合,用户根据自己的需要填写条件组合,然后由系统根据用户填写的条件组合成相应的条件,并根据该条件查询出相应的记录,最终同过dataGridView控件将记录呈现给用户。

 3.5.5 学生管理模块的实现

 ⒈ 学生管理模块实现的主体思想 学生管理模块的实现分为两部分,一部分是学生信息的添加和修改,另一部分是学生信息的列表。学生信息的添加和修改时通过同一个窗体来实现的,添加和修改的操作是根据共享变量stuId来区分的,stuId默认值为空,当该值为零时表示进行的是添加操作。当用户需要对学生信息进行修改时,首先进入学生信息的列表窗体查询出对应的学生选择修改操作。此时,要修改学生信息的学生学号将赋值给stuId,然后跳转到学生信息添加窗体,在该窗体载入时会查询stuId是否为空,若为空表示是添加操作不做任何处理,若不为空则表示修改操作,窗体继而根据stuId查询出相应的学生并将信息呈现在窗体中,当用户修改操作完成后stuId将重新置为空,当用户已修改操作进入该窗体然后直接关闭窗体时,在窗体的关闭事件中也会将stuId置为空。避免了该种操作下下一操作默认为修改操作的 情况。学生信息的删除操作直接是在学生信息列表窗体中实现的。教师管理、班级管理、课程管理、管理员管理模块的实现与此相同,在此就不一一做介绍。学生信息的添加和修改如图3.22所示,学生信息的列表如图3. 23所示。 ⒉ 学生管理模块需要解决的问题 学生管理模块需要解决一下几个问题。 ⑴ 如何实现学生信息的添加。 ⑵ 怎样实现学生信息的更新包括删除和修改。 ⑶ 学生指纹信息的采集。 ⑷ 怎样回应指纹采集后的结果,包括学生和登记者的回应。

  图3.22 添加和修改学生信息

  图3.23 学生信息列表

 ⒊ 学生管理模块解决问题的方法 ⑴ 学生信息添加的实现是系统提供一个添加窗体给登记者,登记者将学生的信息录入进去就可以了。 ⑵ 学生信息更新的实现是系统提供一个学生信息列表窗体,此窗体还向用户提供了查询功能,方便用户查找相应的信息。用户选中需要更新的学生信息,当选择删除操作时,系统获取选中学生信息的ID,并根据ID将数据库中的学生信息删除。当选择修改操作时,系统获取选中学生信息的ID,并将该ID保存到相应的共享变量中,然后窗体跳转到学生信息添加窗体,该窗体加载时会判断相应的共享变量中是否有值。若有值,则判定该操作是由修改操作触发的,然后根据共享变量中的ID值查询出相应的信息并呈现给用户,用户根据自己的需求更改相应的信息就可以了。 ⑶ 学生指纹信息的采集是通过厂商提供的动态库中的StartEnroll(stuNum, index)、ReadAllTemplate(deviceConnectNum)和GetUserTmpStr(deviceConnectNum, stuNum, ComboBox1.Text, fingerTemplete, fingerLength)3个方法实现的,其具体过程是系统先向仪器发出指纹登记操作的指令(通过StartEnroll(…)方法实现),指纹登记完成后通过ReadAllTemplate(deviceConnectNum)将考勤机中的登记信息读取到PC机的内存中,再使用GetUserTmpStr(…)方法获取到PC机内存中的指纹信息。 ⑷ 指纹登记的回应,系统中提供了相应的语音提示。方便学生得知指纹采集结果,提高了登记工作的效率。 ⒋ 学生管理模块的业务流程图

  图3.24 学生管理模块业务流程 学生管理模块的业务流程图如图3.24所示,图3.24中的符号说明如下。 ① 学生基本信息。 ② 学生指纹。 ③ 采集到的指纹信息。 ④ 学生信息。 ⑤ 更新操作(包括删除和修改)。 ⑥ 更新完的学生信息。

 第4章 系统测试

 4.1 常用的测试方法

 测试在整个软件开发过程中起着至关重要的作用,软件测试对于保证一个软件的可靠性是极为重要的。测试占据整个软件生命周期的75%左右,可见它的重要性。特别是在面对一个庞大而复杂的系统,软件测试就能充分的发挥它的作用,因为伴随着测试,我们会发现软件中存在的各种各样的问题。从而,尽快地解决问题。在开发一个系统的各个阶段都不可避免地会发生这样或那样的问题,所以在每一个开发的过程中的各个阶段都要对软件进行测试,软件测试的目标是尽可能地发现软件中的错误,以便对其进行修改。 测试包括单元测试和集成测试。单元测试是把一个模块作为独立的程序单元进行测试,以保证它能够正确执行规定的功能,单元测试是编码和单元测试阶段的任务。集成测试是将已经通过彻底测试的模块组装起来,以形成一个系统或软件产品,集成测试主要使用黑盒测试法对系统进行功能测试,集成测试的主要任务是检查和排除模块接口错误。全局数据结构错误。模块中某些遗漏的错误;集成测试是系统集成阶段的任务;集成测试可分为自顶向下集成测试、自底向上集成测试、自顶向下和自底向上综合的集成测试、回归测试、测试工作能否成功,主要取决于测试案例设计是否科学合理。测试案例系指测试输入数据及其对应的输出,其设计依赖于所采用的测试方法:白盒测试与黑盒测试。 ⒈ 白盒测试:使用白盒方法导出测试案例是依据模块的编码,即模块的内部逻辑对测试者是可见的,故称为白盒测试,有时也称为玻璃盒测试。测试的目的在于用最少的测试案例,检测出最多的错误。使用白盒测试方法所导出的测试案例能保证模块中所有独立途径至少要测试一次。测试所有逻辑决策真和假两个方面。在所有循环的边界内部和边界上执行循环体。检查内部数据结构以保证其有效性。白盒测试又包含基本路径测试、条件测试、数据流测试和循环测试。 ⒉ 黑盒测试:黑盒测试集中在软件的功能需求上,黑盒测试是在程序或模块的接口级进行,而不考虑该程序的内部逻辑。黑盒测试能够用于检测程序中下列类型的错误。 ⑴ 不正确或漏掉的功能,这往往是由于程序算法中的问题所造成。 ⑵ 接口错误。 ⑶ 数据结构或外部数据库存取中的错误。 ⑷ 性能方面的问题,这类问题通常也与算法有关。 ⑸ 初始化或结束错误。

  4.2 系统测试

 4.2.1 登录模块的测试

 测试用例如表4.1所示。 表4.1 登录模块测试用例 ID 类型 测试步骤 期望结果 真实结果 说明 1 登录 输入正确的用户名,错误的的登录类型和密码 弹出账号或密码错误提示框 弹出账号或密码错误提示框 登录错误未对登录类型错误做提示 2 登录 输入正确的用户名,错误的登录类型,正确的密码 弹出账号或密码错误提示框 弹出账号或密码错误提示框

 3 登录 输入错误的用户名,正确的登录类型,错误的密码 弹出账号或密码错误提示框 弹出账号或密码错误提示框

 4 登录 输入错误的用户名,正确的登录类型,正确的密码 弹出账号或密码错误提示框 弹出账号或密码错误提示框

 5 登录 输入错误的用户名,错误的登录类型,错误的密码 弹出账号或密码错误提示框 弹出账号或密码错误提示框

  4.2.2 数据管理模块测试

 测试用例如表4.2所示。

 表4.2 数据管理模块测试用例 ID 类型 测试步骤 期望结果 真实结果 说明 1 上传数据 在不连接仪器的状态下,直接选择数据上传功能 弹出未连接仪器提示框,并跳转到仪器连接窗体 弹出未连接仪器提示框,并跳转到仪器连接窗体

 2 上传数据 在不连接仪器的状态下,直接选择数据上传功能,并不理会系统提示,多次尝试。 弹出未连接仪器提示框,并跳转到仪器连接窗体 弹出窗体句柄创建错误,窗体调用close事件 暂未解决 3 上传数据 在不连接仪器的状态下,直接选择数据上传功能,并按照系统提示操作连接仪器 正常进入上传数据窗体界面 正常进入上传数据窗体界面

 4 上传数据 在连接仪器的状体下,选择数据上传功能。 正常进入上传数据窗体界面 正常进入上传数据窗体界面

  续表 4.2 5 下载数据 在不连接仪器的状态下,直接选择数据下载功能 弹出未连接仪器提示框,并跳转到仪器连接窗体 弹出未连接仪器提示框,并跳转到仪器连接窗体

 6 下载数据 在不连接仪器的状态下,直接选择数据下载功能,并不理会系统提示,多次尝试。 弹出未连接仪器提示框,并跳转到仪器连接窗体 弹出窗体句柄创建错误,窗体调用close事件 暂未解决 7 下载数据 在不连接仪器的状态下,直接选择数据下载功能,并按照系统提示操作连接仪器 正常进入下载数据窗体界面 正常进入下载数据窗体界面

 8 下载数据 在连接仪器的状体下,选择数据下载功能。 正常进入下载数据窗体界面 正常进入下载数据窗体界面

 9 单个上传数据 输入错误的学号 弹出未有相应信息的提示框 弹出未有此人信息的提示框 课程信息为下拉框,用户无法手动输入 10 单个上传数据 输入正确的学号 提示上传成功 提示上传成功

 11 单个上传数据 不输入学号 提示学号不能为空 提示学号不能为空

 12 单个数据上传 不输入课程号 提示请输入课程号 提示请输入课程号

 13 单个数据上传 学号、课程号都不输入 提示学号不能为空 提示学号不能为空

 14 单个上传数据 不输入任何信息 弹出未有此人信息的提示框 弹出未有此人信息的提示框

 15 批量上传数据 不输入任何信息 提示请选择班级 提示请选择班级 班级号、课程号为下拉列表形式,用户无法手动输入信息 16 批量上传书 只输入班级信息 提示请选择班级 提示请选择班级

 17 批量上传 只输入课程信息 提示请选择课程 提示请选择课程

 18 批量上传数据 正确选择要上传的信息 提示上传成功 提示上传成功

  4.2.3 查询与统计模块测试

 测试用例如表4.3所示。

 表4.3 查询与统计模块测试用例 ID 类型 测试步骤 期望结果 真实结果 说明 1 查询 不输入任何信息 查询出窗体时间控件默认时间内的记录 查询出窗体时间控件默认时间内的记录

 2 查询 只输入学号 查询出符合学号和时间条件的记录 查询出符合学号和时间条件的记录

 3 查询 只输入状态 查询出符合状态和时间内的记录 查询出符合状态和时间内的记录 状态为下拉列表形式 4 查询 只输入课程 查询出符合课程和时间条件的记录 查询出符合课程和时间条件的记录

 5 查询 只输入班级 查询出符合班级和时间条件的记录 查询出符合班级和时间条件的记录

 6 查询 输入学号、状态、课程、班级 查询出符合学号、状态、课程、班级和时间条件的记录 查询出符合学号、状态、课程、班级和时间条件的记录

 7 查询 输入错误的时间范围 提示时间范围错误 提示时间范围错误

 8 查询 输入学号、课程、班级任意组合的错误数据 窗体显示查询到0条记录 窗体显示查询到0条记录

 9 查询 分别以管理员和教师账号登录系统 只有以管理员身份登录才能修改记录状态 只有以管理员身份登录才能修改记录状态

 10 统计 输入错误的时间范围 提示时间范围错误 提示时间范围错误

 11 统计 输入正确的班级信息 查询出符合时间和班级条件的记录并统计 查询出符合时间和班级条件的记录并统计

 12 统计 输入错误的班级信息 提示班级不存在 提示班级不存在

  4.2.4 学生管理模块测试

 测试用例如表4.4所示。

 表4.4 学生管理模块测试用例 ID 类型 测试步骤 期望结果 真实结果 说明 1 新增 输入一个已经存在的学号信息 提示该学生已经存在 提示该学生已经存在

 2 新增 输入一个超出规定范围的学号 提示学号长度过长 提示学号长度过长

 3 新增 不输入任何信息 提示学生学号不能为空 提示学生学号不能为空

 4 新增 在学号一栏输入非数字字符 非数字字符无法输入 非数字字符无法输入

 5 新增 输入学生信息但不采集指纹 提示指纹未采集 提示指纹未采集

 6 新增 输入一个错误的班级信息 提示该班级不存在 提示该班级不存在

 7 更新 输入一个不存在的学号信息 提示没有查询到相应的信息 提示没有查询到相应的信息

 8 更新 输入一个不存在的班级信息 提示没有查询到相应的信息 提示没有查询到相应的信息

 9 更新 选中学生信息并删除 提示是否删除选中的学生 提示是否删除选中的学生 删除时只能先查询出相应的信息再进行删除 10 更新 选中学生信息并修改 跳转到添加窗体并查询出相应的信息 跳转到添加窗体并查询出相应的信息 修改时只能先查询出相应的信息再进行修改

  结

 论

 经过不懈努力,学生指纹考勤系统终于开发完成了。系统的开发采用了Visual Studio开发工具和SQL Server数据库,按照可行性分析、需求分析、总体设计、详细设计、系统测试的步骤进行开发。在需求分析阶段对整个系统共能进行了严格仔细的分析;在总体设计阶段设计了系统的框架结构并根据需求进行数据库设计;在详细设计阶段按照从后台到前台程序的顺序进行开发。

 在本次程序的开发中,遇到了许许多多的问题。如在指纹登记时,前期由于登记号过长而造成指纹登记失败(开发文档指明登记号的长度最大为11位),经过对指纹考勤仪的反复测试及查阅相应的文献,推导出指纹登记失败是由于登记号过长(指纹登记号不能超过5位)。在指纹登记时,怎样确保指纹下载时指纹考勤仪已经完成指纹的登记。刚开始时采用的是根据厂商提供的动态库中的方法来判断指纹登记的完成,但由于指纹登记时考勤仪与系统是脱机的造成指纹登记完成的状态无法捕捉。最后,采用的方式是将系统进程挂起足够的时间(该时间大于仪器采集指纹的时间)后,再下载指纹信息。在考勤记录的处理过程中,区分旷课、病假以及事假这3中状态也是一大难题。旷课状态分为没有登记的和登记时间超过迟到规定的时间。对于旷课(没有进行指纹登记)、病假、事假这3种状态事件的触发源都是由于没有登记指纹信息而产生的,程序无法区分。所以,将未登记的状态都先默认为旷课状态,在考勤记录上传至数据库时,程序提供一个可以修改状态的接口供教师将未进行指纹登记学生的考勤记录修改成相应的状态。对于怎样获取未进行指纹登记的学生的考勤记录也是一个难题。按照正向的思维,没有登记的学生是无法获取考勤记录的。但按照反向的思维,我们已经确定了考勤的范围以及参加了登记的人员,那么将考勤范围去除已经登记了的人员就可以得到未登记的人员。在系统中是这样实现的,每从考勤仪上下载一条记录都会记录产生该条记录的学生学号及所在的班级,并将其保存到相应的变量中,再以此为条件,通过SQL语句查询出未进行登记的学生。并形成相应的旷课记录上传到数据库中。对于系统遇到的其他一些问题就不在此一一列取了。 为了设计出学生指纹考勤系统,参阅了大量的资料,在测试和调试阶段走了不少的弯路,但经过认真的学习和思考,最终完成了作品。在整个系统中把系统分析放在最为重要的位置,如果在开发前对整个开发工作做出全方位的规模化系统分析,开发过程就是事半功倍,否则就会遇到许多意想不到的问题,延缓开发进度。总体上来说,这次的设计对本人是一次非常难得的锻炼机会,使得自己对大学里所学的专业课有了更深刻的认识,使知识得到了融会贯通。与以往分组做的课程设计不同,在这次设计中,独立完成所有的分析与设计过程,有了更大的收获。在系统设计中,也遇到了很多问题,但是通过努力都一一解决了,在解决这些困难的过程中提高了自身的学习能力。解决问题的能力和实际工作的能力,学到了许多书本以外的知识。

  致

 谢

 光阴似箭,转眼间,两年的大学生活即将结束,依依不舍之情难以言表,总结大学两年的生活,感觉获益还是颇多的,在这里需要的感谢的人很多,是他们让我这大学两年从知识到人格上有了一个全新的改变。 感谢XX学院,在这里,有环境舒适的学生公寓,为我的日常生活提供了很多方便;有一批知识渊博,身正为范的老师,为我开启学海之舟。在这里,我开阔了见识,增长了知识,锻炼了能力。两年前我带着崇敬之心来到了这里,两年里,亲身的体验让我更增加了对这所学校的热爱和不舍。 感谢信息工程系的每一位老师,无论是从学识上,还是从人格上,他们都是最值得尊敬的的人。这些老师知识渊博,阅历丰富,讲课独具风格。这些老师不但帮助我们构建知识,更在生活上给我们无微不至的关怀,指导我们处理生活中的许多问题,他们总能高屋建瓴地给我们的生活导航。是他们开启了我对历史的兴趣,激发了我对知识的渴望,同时我也从他们身上学到了很多难能可贵的精神:认真、感恩、负责、谦和,所有这些都让我终身受益。感谢您们! 在此论文完成之际,我由衷的感谢,我的指导老师李波给予我细心的指导和耐心的帮助。他丰富的工作经验和严谨的工作态度令我受益匪浅,对我的毕业设计工作产生了深刻的影响。在此,对李老师表示衷心的感谢。我还要感谢所有关心我的亲戚、朋友、同学,感谢他们对我热心的照顾和无私的帮助! 我想此次论文的成功会是对你们最大的欣慰和回报。为此,我努力了,也正在努力着,还会继续努力下去。

 参考文献

 [1] 李兰友.Visual Basic.NET应用教程.北方交通大学出版社,2007 [2] 童爱红、侯太平.Visual Basic.NET 数据库编程.北京:电子工业出版社,2003 [3] 佟伟光.Visual Basic.NET 实用教程.北京:电子工业出版社,2003 [4] 唐树才、张炜、袁建洲.Visual Basic.NET程序设计与应用.北京:电子工业出版社,2002 [5] 王平华.VB.NET程序设计项目教程.北京邮电大学出版社,2010 [6] 龚沛曾、杨志强、陆慰民.VB.NET程序设计.高等教育出版社,2010 [7] Phil Hannal.SQL Server 2000 编程员指南.北京机械工业出版社,2002 [8]Sejan Sunderic.SQL Server 2000存储过程与XML编程.电子工业出版社,2006 [9] Bain T等.SQL Server 2000数据仓库与Analysis Services.邵勇等译.北京:中国电力出版社,2003 [10] Inmon W H.数据仓库.王志海等译.北京:机械工业出版社,2000 [11] Tomdedison.需求分析与系统设计.第一版.清华大学出版社,2002 [12] Watts S,Humphrey.软件工程规范.清华大学出版社,2004 [13] 萨师煊,王珊.数据库系统概论(第三版).高等教育出版社,2007 [14] 陶宏才.数据库原理及设计(第二版).清华大学出版社,2007

 [15][美]Bill Evjen , Jason Beres 等著.徐小青、王建成、路晓村译.Visual Basice.net宝典,电子工业出版社,2006 [16] Aaron Tavistock.JSP.ASEE Annual Conference Proceedings, 2003

 [17] Cray M.B, Mictchell P.D. How can Intelligent CAI Better adapt to learners.Computer Edu- c,1992 [18] Considine,CarolDean,Tony.Active learning in distance education.ASEE Annual Conference

 Proceedings, 2003 [19] Tasaka, Sumio(Fujitsu Ltd.).Ginbayashi, Jun.Latest progress and trendsin Java/EJB

  technologies. Fujitsu Scientific and Technical Journal, 2004 [20] M.Theiwall.Computer based assessment.A versatile educational tool.Computers&Educati-

 on(2000).Computer Educ,1992

 

推荐访问:考勤 指纹 毕业论文
上一篇:【学习党的十八届四中全会精神心得体会】
下一篇:2篇对照党章党规“十八个是否”找差距个人问题检视党性分析研讨发言材料:对照党章党规十八个是否

Copyright @ 2013 - 2018 优秀啊教育网 All Rights Reserved

优秀啊教育网 版权所有