首页 基于RFID的学生考勤应用系统

基于RFID的学生考勤应用系统

举报
开通vip

基于RFID的学生考勤应用系统基于RFID的学生考勤应用系统 XXX大学毕业设计(论文) 题 目 基于RFID的学生考勤 系统设计与实现 专 业 年 级 学 号 学 生 指导教师 完成时间 2010.6 2010 届 网 络 工 程 毕 业 设 计 论 文 摘 要 随着科学技术的发展和计算机的深入普及,管理信息的工具已形成了从人工管理到计算机辅助管理和计算机管理的格局。而对于信息采集也渐渐的从人工采集到现在的自动化采集,这为自动化技术提供了越来越广阔的发展空间,而RFID射频识别技术就在这样的环境下的不断的发展壮大。 本文设...

基于RFID的学生考勤应用系统
基于RFID的学生考勤应用系统 XXX大学毕业 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 (论文) 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 目 基于RFID的学生考勤 系统设计与实现 专 业 年 级 学 号 学 生 指导教师 完成时间 2010.6 2010 届 网 络 工 程 毕 业 设 计 论 文 摘 要 随着科学技术的发展和计算机的深入普及,管理信息的工具已形成了从人工管理到计算机辅助管理和计算机管理的格局。而对于信息采集也渐渐的从人工采集到现在的自动化采集,这为自动化技术提供了越来越广阔的发展空间,而RFID射频识别技术就在这样的环境下的不断的发展壮大。 本文设计了一个基于RFID的学生考勤应用系统,以目前的现有射频识别技术,在Microsoft .NET Framework SDK v2.0的环境下,利用Microsoft SQL Server 2000作为数据库,选用C#可视化编程,使得该考勤应用系统界面简洁大方,而Microsoft SQL Server 2000关系型数据库管理系统增强了此考勤应用系统的管理功能。 本文介绍了我的上述研究开发工作,详细描述了基于RFID的学生考勤应用系统的分析、设计过程及实现方法。 关键字:考勤应用系统,RFID,C#,Microsoft SQL Server 2000 2222 ABSTRACT With the development of science and technology and computer-depth popularity, many enterprises and institutions increasingly focus on management information systems for delivery and application of management information tools have been formed from the manual management to computer-aided management and computer management pattern. For information collection has gradually collected from manual collection is now automated, which provides automation technology for the increasingly broad space for development, while the RFID radio frequency identification technology in such an environment of continuous development and growth. This article is designed based on RFIDstudent attendance applications, in order to present the existing radio frequency identification technology in Microsoft. NET Framework SDK v2.0 environment, using Microsoft SQL Server 2000 as the database, select Visual C # programming, so The application interface is simple and generous time and attendance, while the Microsoft SQL Server 2000 relational database management system enhancement application of this appraisal system management functions. This article describes the research and development of my work, a detailed description of student attendance based on RFID application system analysis, design and implementation methods. KEY WORDS:attendance applications,RFID,C#,Microsoft SQL Server 2000 2010 届 网 络 工 程 毕 业 设 计 论 文 目 录 摘 要 ........................................................ III ABSTRACT ...................................................... IV 第1章 概述 ................................................... 1 1(1 RFID介绍 ............................................. 1 1(2 RFID在国内外发展现状及特点 ........................... 3 1(3 课题研究的目的和意义 .................................. 8 第2章 系统开发环境与运行环境 ................................. 8 2(1 开发环境 .............................................. 8 2(2 运行环境 .............................................. 9 2(3 相关技术 .............................................. 9 2(3 (1 .NET平台 ...................................... 9 2(3 (2 C#语言 ....................................... 11 2(3 (3 SQL Server 2000数据库 ........................ 12 第3章 系统设计 ............................................... 13 3(1 系统功能设计 ......................................... 13 3(1 (1 需求分析 ..................................... 13 3(1 (2 系统结构总图 ................................. 15 3(2 数据库设计 ........................................... 15 3(2. 1 数据库设计概述 ............................... 15 3(2. 2 数据库概念设计 ............................... 17 3(2. 3 数据库详细设计 ............................... 20 第4章 详细设计 ............................................... 28 2222 4、1 考勤系统功能描述 ................................... 28 4、2 系统模块设计 ....................................... 29 4、3 公共模块设计 ....................................... 33 4(3. 1 公共类设计 ................................... 33 4(3. 2 动态库设计 ................................... 37 第5章 系统实现 ............................................... 38 5、1 登录模块的实现 ..................................... 38 5、2 系统主界面的实现 ................................... 40 5、3 信息管理的实现 ..................................... 42 5(3. 1 学生信息添加的实现 .......................... 42 5(3. 2 邮件发送的实现 .............................. 44 5、4 考勤管理的实现 ...................................... 46 5、5 射频卡管理的实现 .................................... 48 5、6 查询管理的实现 ...................................... 50 测试 .................................................. 51 第6章 6、1 人工考勤的测试 ..................................... 52 6、2 智能考勤的测试 ..................................... 53 第7章 难度与对策 ............................................ 54 第8章 结论 .................................................. 58 参考文献 ...................................................... 58 致 谢 ......................................................... 59 2010 届 网 络 工 程 毕 业 设 计 论 文 第1章 概述 1(1 RFID介绍 RFID(Radio Frequency Identification),即射频识别,俗称电子标签。RFID射频识别是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,识别工作无须人工干预,可工作于各种恶劣环境。RFID技术可识别高速用动物体,并可同时识别多个标签,操作快捷方便。RFID是一种简单的无线系统,只有两个基本器件,该系统用于控制、检测和跟踪物体。系统由一个阅读器和很多标签组成。 RFID的基本组成部分: (1)、RFID标签:RFID标签俗称电子标签,也称为应答器(Tag,Transponder,Responder),根据工作方式可分为主动式(有源)和被动式(无源)两大类。被动式RFID标签由标签芯片和标签天线或线圈组成,利用电感耦合或电磁反向散射耦合原理实现与读写气之间的通讯。RFID标签中存储一个唯一编码,通常为64bits、96bits,甚至更高,其他地址空间大大高于条码所能提供的空间,因此可以实现单品级的物品编码。当RFID标签进入读写器的作用区域,就可以根据电感耦合原理(近场作用范围内)或电磁反向散射耦合原理(远场作用范围内)在标签天线两端产生感应电势差,并在标签芯片通路中形成微弱电流,如果这个电流强度超过一个阈值,就将激活RFID标签芯片电路工作,从而对标签芯片中的存储器进行读/写操作,微控制器还可以进一步加入诸如密码或防碰撞算法等复杂功能。RFID标签芯片的内部结构主要包括射频前端、模拟前端、数字基带处理单元和EEPROM存储单元四部分。 - 1 - 2222 (2)、阅读器:阅读器也称读写器、询问器(Reader,Interrogator),是对RFID标签进行读/写操作的设备,主要包括射频模块和数字信号处理单元两部分。 读写器是RFID系统中最重要的基础设施,一方面,RFID标签返回的微弱电磁信号通过天线进入读写器的射频模块中转换为数字信号,再经过读写器的数字信号处理单元对其进行必要的加工整形,最后从中解调出返回的信息,完成对RFID标签的识别或读/写操作;另一方面,上层中间件及应用软件与读写器进行交互,实现操作指令的执行和数据汇总上传。在上传数据时,读写器会对RFID标签原子事件进行去重过滤或简单的条件过滤,将其加工为读写器事件后再上传,以减少与中间件及应用软件之间数据交换的流量,因此在很多读写器中还集成了微处理器和嵌入式系统,实现一部分中间件的功能,如信号状态控制、奇偶位错误校验与修正等。 (3)、天线:天线(Antenna)是RFID标签和读写器之间实现射频信号空间传播和建立无线通讯连接的设备。RFID系统中包括两类天线,一类是RFID标签上的天线,由于它已经和RFID标签集成为一体,因此不再单独讨论,另一类是读写器天线,既可以内置于读写器中,也可以通过同轴电缆与读写器的射频输出端口相连。目前的天线产品多采用收发分离技术来实现发射和接收功能的集成。天线在RFID系统中的重要性往往被人们所忽视,在实际应用中,天线设计参数是影响RFID系统识别范围的主要因素。 (4)、中间件:中间件(Middleware)是一种面向消息的、可以接受应用软件端发出的请求、对指定的一个或者多个读写器发起操作并接收、处理后向应用软件返回结果数据的特殊化软件。中间件在RFID应用中除了可以屏蔽底层硬件带来的多种业务场景、硬件接口、适用标准造成的可靠性和稳定性问题,还可以为上层应用软件提供多层、 - 2 - 2010 届 网 络 工 程 毕 业 设 计 论 文 分布式、异构的信息环境下业务信息和管理信息的协同。中间件的内存数据库还可以根据一个或多个读写器的读写器事件进行过滤、聚合和计算,抽象出对应用软件有意义的业务逻辑信息构成业务事件,以满足来自多个客户端的检索、发布/订阅和控制请求。 (5)、应用软件:应用软件(Application Software)是直接面向RFID应用最终用户的人机交互界面,协助使用者完成对读写器的指令操作以及对中间件的逻辑设置,逐级将RFID原子事件转化为使用者可以理解的业务事件,并使用可视化界面进行展示。 RFID的工作原理: RFID的工作原理很简单,标签进入磁场后,接收阅读器发出的射频信号,凭借感应电流所获得的能量发送出存储在芯片中的产品信息(Passive Tag,无源标签或被动标签),或者主动发送某一频率的信号(Active Tag,有源标签或主动标签);阅读器读取信息并解码后,送至中央信息系统进行相关数据处理。一套完整的RFID系统,是由阅读器(Reader)与电子标签(Tag)也就是所谓的应答器(Transponder)以及应用软件系统三部分组成,其工作原理是Reader发射一特定频率的无线电波能量给Transponder,用以驱动Transponder电路将内部的数据送出,此时Reader便依序接收解读数据,送给应用程序做相应的处理。 1(2 RFID在国内外发展现状及特点 ? RFID在国内外的发展现状: RFID的基本技术原理起源于二战时期,最初盟军利用无线电数据技术来识别敌我双方的飞机和军舰。战后,由于较高的成本,该技术一直主要应用于军事领域,并未很快在民用领域得到推广应用。直到上世纪八 九 - 3 - 2222 十年代,随着芯片和电子技术的提高和普及,欧洲开始率先将RFID技术应用到公路收费等民用领域。到二十一世纪初,RFID迎来了一个崭新的发展时期,其在民用领域的价值开始得到世界各国的广泛关注,特别是在西方发达国家,RFID技术大量应用于生产自动化、门禁、公路收费、停车场管理、身份识别、货物跟踪等民用领域中,其新的应用范围还在不断扩展,层出不穷。 20世纪初,RFID已经开始在中国进行试探性的应用,并很快得到政府的大力支持,2006年6月,中国发布了《中国RFID技术政策白皮书》,标志着RFID的发展已经提高到国家产业发展战略层面。到2008年底,中国参与RFID的相关企业达数百家,已经初步形成了从标签及设备制造到软件开发集成等一个较为完整的RFID产业链, 据专家估计,2008年中国RFID相关产值达到80亿元左右,并将在未来5-10年保持快速发展。目前,RFID在中国的很多领域都得到实际应用,包括物流、烟草、医药、身份证、奥运门票、宠物管理等等。现在,二代身份证,就使我们感受到了RFID在我们生活中的存在。 尽管RFID正快速在各个领域得到实际应用,但相对于我们国家的经济规模,其应用范围还远未达到广泛的程度,即便在RFID应用比较多的交通物流产业,也还处于点分布的状态,而没能达到面的状态。往往是产业中的领导企业为保持其竞争地位而率先尝试采用这种新技术,而更多的企业还抱着观望和犹豫的态度。 以学生考勤系统为例,应用RFID技术可以大幅度的提高工作效率,减少人员的浪费,比如工作人员不需要在一个学生一个学生的登记查看,只需要一张IC卡,就可以自动将信息输入数据库,自动登记学生信息,自动汇总每一个月的考勤信息,自动完成信息的查询,自动生成报表以供用户使用。但时至今日,在中国真正实施RFID技术考勤应用一卡通的企业还 - 4 - 2010 届 网 络 工 程 毕 业 设 计 论 文 屈指可数。经济危机爆发以来,很多业内人士也开始对RFID产业的未来发展产生怀疑和失望,那么到底是什么因素阻碍了这一新兴产业在我国的发展呢, 首先,是我国企业总体信息化水平不高,阻碍了RFID充分发挥其作用。RFID作为一种信息技术手段,其基本功能是实现数据的精准快速采集。这些数据采集后,必须经过进一步的对比分析处理,才能达到提高效率、降低总体成本的作用。也就是说,RFID的实施,往往需要企业信息化达到一定水平,使RFID系统与企业既有的ERP、CRM等信息集成在一起,才能充分发挥其作用。 其次,RFID实施成本还比较高,使很多企业望而却步。不仅仅对中国企业,即便对西方企业,RFID的高成本也是一个巨大障碍。正如前文所言,RFID的基本技术原理在60几年前就产生了,但直到上世纪后期,RFID的应用才逐步推广到民用领域,正是高成本阻碍了RFID技术的实际应用。 般都在1元以上,ETC的车载单元要400目前在国内,一张RFID标签一 多元,高成本使得RFID的投资回报具有很大风险,使其应用大多局限于高价值或高利润商品领域。 再次,行业标准尚未统一,贸然实施会带来不确定风险。尽管RFID起源很早,但目前还没有形成全球统一的技术标准,中国在标准制定领域起步较晚,由于关乎各国经济利益,相信标准之争还会持续一定时间。在这种情况下,贸然投入,必然给企业经营带来很大风险。蓝光获得DVD标准之争的胜利,给HD-DVD阵营带来的巨大伤害,是处于标准之争产业里的企业不得不慎重考虑的问题,这也是很多企业对实施RFID抱观望态度的原因。 最后,我国产业供应链发展还处于初级阶段,也阻碍了RFID的实际应用。与西方企业相比,由于技术和管理处于劣势地位,我国大多行业都 - 5 - 2222 存在过度竞争,价格成为市场竞争的主要手段,这就使得很多制造企业利润率维持在相当低的水平,产业供应链的上下游企业之间往往博弈大于合作。而RFID技术只有在整个供应链上协同实施,实现供应链信息透明和分享,才能最大程度发挥出RFID的作用,这在目前情况下还很难做到。另外,实施RFID的一个主要益处是节省人工成本,沃尔玛称RFID每年为其节省数十亿美元的人力成本开支,而中国较低的工资水平也使得很多企业没有积极性去实施RFID技术。 尽管中国企业目前信息化程度还较低,但中国企业前进的步伐相当快。今年中国已有40多家企业闯入世界500强,更多本土企业正迅速成长为跨国经营企业,日益复杂的管理要求这些企业必须迅速推进信息化建设,在这一点上中国企业具有一定的后发优势,而企业信息化必然给RFID带来良好的发展机遇。随着中国企业信息化的进程,RFID的应用将会由点到面,逐步拓展到更广的领域。而RFID的实施成本,必然随着RFID应用的推广和市场的扩大而逐步降低,RFID的应用将会从目前的托盘或整箱的货物跟踪逐步扩展到单品货物跟踪的水平。最后,从产业供应链角度看,国家目前提倡的产业升级,就是要使中国企业多生产高技术、高附加值、高利润产品,而这些领域,正是RFID用武之地。产业升级将带动中国企业提升市场竞争能力,逐步由单体企业竞争上升为产业供应链的竞争。今后几年,一批国产RFID企业,如:创羿科技、远望谷、上海华虹、维深集团....迅速发展壮大.在未来几年,我们会看到,RFID的实施将摆脱仅仅由单个企业实施的窘境,而展现为企业所在整个供应链的协同实施,RFID的益处将会得到最大程度的发挥。凡此种种,RFID在中国的发展还值得怀疑吗, ? RFID的特点: RFID是一项易于操控,简单实用且特别适合用于自动化控制的灵活性的应用技术,识别工作无须人工干预,它既可支持只读工作模式也可支 - 6 - 2010 届 网 络 工 程 毕 业 设 计 论 文 持读写工作模式,且无需接触或瞄准;可自由工作在各种恶劣环境下:短距离射频产品不怕油渍、灰尘污染等恶劣的环境,可以替代条码,例如用在工厂的流水线上跟踪物体;长距射频产品多用于交通上,识别距离可达几十米,如自动收费或识别车辆身份等。其所具备的独特优越性是其它识别技术无法比拟的。主要有以下几个方面: , 读取方便快捷:数据的读取无需光源,甚至可以透过外包装来进行。有 效识别距离更长,采用自带电池的主动标签时,有效识别距离可达到 30米以上; , 识别速度快:标签一进入磁场,阅读器就可以即时读取其中信息,而且 能够同时处理多个标签,实现批量识别; , 数据容量大:RFID标签可以根据用户的需求扩充到数十k; , 使用寿命长,应用范围广:它的无线电通信方式,使其可以应用于粉尘、 油污等高污染环境和反射性环境,而且其封闭式包装使得其寿命大大超 过印刷的条形码; , 标签数据可动态更改:利用编程器可以向电子标签里写入数据,从而赋 予RFID标签交互式便携数据文件的功能,而且写入时间比打印条形码 更短; , 更好的安全性:RFID电子标签不仅可以嵌入或附着在不同形状、类型 的产品上,而且可以为标签数据的读写设置密码保护,从而具有更高的 安全性; , 动态实时通信:标签以每秒50~100次的频率与阅读器进行通信,所以 只要RFID标签所附着的物体出现在阅读器的有效识别范围内,就可以 对其位置进行动态的追踪和监控。 - 7 - 2222 1(3 课题研究的目的和意义 随着科学技术的发展和计算机的深入普及,众多的企事业单位越来越重视管理信息系统的投入和应用,管理信息的工具已形成了从人工管理到计算机辅助管理和计算机管理的格局。而对于信息采集也渐渐的从人工采集到现在的自动化采集,这为自动化技术提供了越来越广阔的发展空间,而RFID射频识别技术就在这样的环境下的不断的发展壮大。RFID射频识别是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,识别工作无须人工干预,可工作于各种恶劣环境,并且RFID技术可识别高速运动物体并可同时识别多个标签,操作快捷方便,这些优势使RFID有了广阔的发展空间。 现代高校也充分的利用信息网络技术和计算机互联网技术,发挥信息网络的各种技术手段和现有各种教育、科研、信息资源的优势,开发各种应用系统和管理系统,实现网络交互是管理,全面推进高等教育信息化。而基于RFID的学生考勤应用系统就是校园管理系统的一个组成部分,它将智能化的完成考察学生早操出勤情况。它实时的自动采集数据信息、自动对所采集数据进行分析处理,然后以可视化界面回报给用户。通过点名、磁卡和接触式IC卡等方式对学生的早操出勤情况进行考勤、记录管理,既耗时,而且又会相互干扰;而非接触式RFID学生考勤应用系统实现了利用无线射频识别技术对学生考勤管理,既方便、快捷,又省资源。 第2章 系统开发环境与运行环境 2(1 开发环境 Intel(R) Pentium(R) Dual CPU,0.99GB内存,120G硬盘 - 8 - 2010 届 网 络 工 程 毕 业 设 计 论 文 Microsoft? Windows? XP Professional Microsoft? Visual Studio 2005(C #) Microsoft? Developer Network for Visual Studio.NET 2005 Microsoft SQL Server 2000 2(2 运行环境 Intel? Pentium? 2及以上处理器,32M以上内存,4G以上硬盘 Microsoft? Windows? 9X/NT操作系统 1280*800的屏幕分辨率 确保机器上安装有Microsoft .NET Framework SDK v2.0或者以上版本 2(3 相关技术 2(3 (1 .NET平台 ? 介绍 .NET平台是Microsoft公司推出的一套开发框架和工具,它为开发数据库应用程序提供了很好的数据环境和强大的开发工具。.NET Framwork运行库(Common Language Runtime,简称CLR)为C#代码执行和管理提供了支持,并且.NET Framwork提供的类库简化了C#编程。.NET Framwork(.NET 框架) 是整个.NET平台的基础结构。.NET Framwork 除了可以管理代码的执行(包括启动代码,给它赋予相应的权限,为它分配内存以存储其数据,帮助释放不再需要的内存和资源等)以外,还提供了一个非常复杂的类库,以便在Windows上执行大量的任务。对这些任务,他承担了双重角色:管理代码的执行和为代码提供服务。 - 9 - 2222 从技术层面上来讲,.NET Framework 主要包括两个最基本的内核,及通用语言运行库CLR和.NET Framework 基本类库,它们为.NET 平台的实现提供底层技术支持。 (1)、通用语言运行库: 通用语言运行库CLR(Common Language Runtime)是.NET Framework运行时的环境,它运行代码并提供最底层的服务,是.NET 平台的执行引擎。通用语言运行库以跨语言集成、自描述组件、简单配置和版本化及集成安全服务为特点,提供诸如版本控制以及内存、进程和线程管理等多种服务。有了通用语言运行库,.NET 就使C++、C#、Visual Basic和JScript等多种语言能够高度集成,即用一种语言所写的代码能继承另一种语言所写的类,用一种语言编写的代码所产生的异常能被用另一种语言编写的代码捕获。这就意味着编写可重用类库的开发人员不再需要为每一种编程语言或编译器专门生成一个版本,并且使用类库的开发人员不再受到某种编程语言的限制。 (2)、.NET Framework 基本类库 .NET Framework基本类库位于通用语言运行库的上层,与.NET Framework紧密集成在一起,可以被.NET支持的任何语言使用。.NET 类库提供数据库访问、XML、网络通信、线程、图形图像、安全、加密等多种功能服务。类库中的基类提供了标准功能,如字符串操作、输入输出、用户界面设计、网络管理、线程管理、 安全管理 企业安全管理考核细则加油站安全管理机构环境和安全管理程序安全管理考核细则外来器械及植入物管理 、文本管理功能。ADO.NET 类库使开发人员能够通过OLE DB、ODBC、Oracle和SQL Server接口与以XML形式访问到的数据进行交互。XML类库支持XML操作、搜索和转换。ASP.NET类库支持基于WEB的应用程序和XML WEB服务的开发。Windows Form类库支持基于桌面的智能客户端应用程序的开发。这些类库使得程序员可更容易的建立应用程序和网络服务。在此之上是许多应用程 - 10 - 2010 届 网 络 工 程 毕 业 设 计 论 文 序模板,这些模板为开发网络应用和服务提供高级的组件和服务。 从技术上来讲,.NET Framework的基本类库是Microsoft已经编写好的一个丰富的代码类集合,它可以完成以前要通过Windows API的绝大多数任务,其最大的优点就是非常易用。.NET Framework 的基本类库既是.NET 应用软件开发的基本类库,也是.NET 平台实现的基础。 ? .NET 集成开发环境 .NET 不但拥有通用语言运行库,而且还为C++、C#、Visual Basic和JScript提供了一个通用的VS.NET集成开发环境。如下图1,就是开发C#的Windows应用程序时最为常用的“设计器”窗口和“解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 资源管理器”窗口。在开发应用程序时,会用到.NET 集成开发环境中的工具栏和工具窗口。这个开发环境都是自定义的,大多数窗口的位置和外观都可以按照用户喜欢的方式进行设定。 ? ADO.NET接口 ADO.NET是在ADO(ActiveX Data Object)基础上改进的、应用程序级的高层接口,用来在.NET 平台中提供数据访问服务。ADO.NET 专门为.NET 平台设计,特别适合于基于消息的Web应用程序,同时也能为其他应用程序结构提供较好的功能。 2(3 (2 C#语言 ? 介绍 C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏和模版,不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。并且 - 11 - 2222 C#成为ECMA与ISO标准规范。C#看似基于C++写成,但又融入其它语言如Pascal、Java、VB等。 ? C#语言特点 作为Microsoft新一代面向对象的语言,C#即保持了C++中熟悉的语法,又包含了大量的高效代码和面向对象的特性。相对于C和C++,C#具有一下特点: (1)、语法更简单 (2)、快速应用开发(RAD)功能 (3)、语言的自由性 (4)、强大的Web服务端组件 (5)、支持跨平台 (6)、与XML的融合 (7)、对C++的继承 2(3 (3 SQL Server 2000数据库 ? 介绍 SQL Server 是一个大型的关系型数据库管理系统,他最初是由Microsoft Sybase和Ashton-Tate三家公司共同开发的,SQL Server 2000共有4个版本,分别是个人版,标准版,企业版和开发版,支持关系数据库的结构化查询语言SQL,它提供了丰富的图形化管理工具,简化了系统管理与操作,具有动态自动管理和优化功能。它支持大型Web站点和企业数据吃力系统的数据存储要求,具有Web出版工具,支持XML、HTTP,并具有数据挖掘和分析服务的应用功能,可伸缩性和可用性强。它支持企业级数据库,容许大量用户同时访问,容许用户同时引用多处数据源,支持分布式查询,支持数据仓库。它具有丰富的编程接口,便于开发,支持 - 12 - 2010 届 网 络 工 程 毕 业 设 计 论 文 ODBC、ADO数据库对象、OLE数据源,支持N层客户机/服务器系统,在客户机/服务器结构中SQL Server 2000扮演着后端数据库的角色。 ? SQL Server 2000数据库特点 (1)、Internet 集成 (2)、可伸缩性和可用性 (3)、企业级数据库功能 (4)、易于安装、部署和使用 第3章 系统设计 3(1 系统功能设计 3(1 (1 需求分析 , 信息源分析 根据学生考勤管理系统的需求,此系统信息来源主要有学生信息、RFID射频卡信息和考勤记录信息,其中RFID射频卡信息包括射频卡分配信息、射频卡挂失信息、射频卡激活信息,当然为了扩充系统的功能,还有射频卡充值信息,这是为了在以后扩展系统功能,方便用户使用射频卡消费。考勤记录信息又包括射频卡考勤信息和人工考勤信息。 , 系统用户分析 本系统的用户可分为三个方面:管理员、工作人员和学生。其中管理员可使用的操作是信息管理、考勤时间设置、查询管理和数据库管理中的操作,当然管理员最主要的操作是用户管理,即添加系统用户。工作人员完成学生出勤的考察,他们有权利对学生进行人工考勤登记和射频卡考勤 - 13 - 2222 登记,当然也有查询信息的权利、修改用户密码等。学生使用此系统仅仅只有查询和修改密码的功能,学生不能对考勤管理和信息管理进行操作。每一种权限的系统用户其操作都受一定的限制,这样可以保护信息的安全性。 , 信息完整性及安全性分析 对于此系统信息的安全性考虑,为了防止系统权利的外泄和信息被非法篡改,每一种用户都以自己的用户名和密码加正确的权限才能登录系统使用。为防止系统用户在查询是更改系统信息,为此我在查询模块以视图的方式为用户提供可查询信息。 工作人员与管理员之间信息是双向互动的.管理员不仅是信息系统的用户,同时也是工作人员的信息维护的人员,也是部分系统的维护者,但是管理员没有考勤管理的使用权限。工作人员有考勤管理的使用权限,但是他不能将自己等同的权利传播,他仅仅只可以添加学生用户,对部分系统进行维护。对系统的安全主要采取以下两方面的措施: (1)、对各系统用户规定相应的权限,仅能操作其权限内的的信息; (2)、在管理员层设立独立转存机制,设立冗余数据库,以备核对.该冗余数据库可同时作为系统恢复的基础数据库使用。关于信息的完整性,首先要满足关系的实体完整性和参照完整性要求,同时根据实际需要定义一些特殊的约束条件,即用户定义的完整性。这些要求共同保证了设备信息的完整性. - 14 - 2010 届 网 络 工 程 毕 业 设 计 论 文 3(1 (2 系统结构总图 图3-1 系统结构总图 3(2 数据库设计 3(2. 1 数据库设计概述 俗话说:“三分技术,七分管理,十二分基础数据”,其实这也是数据库设计的特点之一。数据库设计的目标是为用户和应用系统提供一个信息基础设施和高效的运行环境。 , 数据流图 数据流图(DFD)是用来描绘信息流和数据从输入移动到输出的过程 - 15 - 2222 中所经受的变换,下面两图分别为本文所设计系统的顶层数据流图和中间层数据流图。 图3-2 顶层数据流图 图3-3 中间层数据流图 , 数据字典 数据字典是关于数据信息的集合,也就是对数据流图中包含元素的定义的集合,他的用途是供用户查阅对不了解的条目的解释。下面是本文所设计的系统中部分数据字典: - 16 - 2010 届 网 络 工 程 毕 业 设 计 论 文 名字:智能考勤信息 名字:系统用户 描述:智能考勤信息是学生持描述:系统用户是可以使用 RFID卡,通过阅读器而所得到此系统的人员,他们根据自 的考勤信息 己不同的权限,对此系统进 定义:智能考勤信息=出勤时间行操作 +学号(学生的唯一标识码) 定义:系统用户=用户名+ 用户密码+用户权限 名字:射频卡信息 名字:人工考勤信息 描述:射频卡信息是工作人员描述:人工考勤信息是在阅 为学生所分发的RFID卡,射 读器坏掉或一些突发事件 频卡中记录了学生的学号信情况下,工作人员进行手工 息、卡所有金额信息、卡状态录入的考勤信息 信息和唯一标识RFID卡的卡定义:人工考勤信息=学号 序列号信息 (学生的唯一标识码)+出 定义:射频卡信息=卡序列号勤属性+出勤时间+请假类 (唯一标识RFID卡)+学号型+请假原因 (学生的唯一标识码)+余额+ 卡状态 3(2. 2 数据库概念设计 , 由于在系统的登录及权限涉及到不同的用户,为了区分用户和方便 管理,规划出用户信息实体。E-R图如下图所示。 - 17 - 2222 图3-4 用户信息E-R图 , 为了对学生信息进行管理,学生信息包括学生学号、学生姓名、学生所属学院等一些信息,所以规划出了学生信息实体,实体E-R图如下图所示。 图3-5 学生信息E-R图 , 为了对院系信息进行管理,一个学校院系信息包括学院、专业、班级信息,所以规划出了院系信息实体,实体E-R图如下图所示。 - 18 - 2010 届 网 络 工 程 毕 业 设 计 论 文 图3-6 院系信息E-R图 , 当进行考勤时,需要对每一天的考勤信息进行处理,需要进行考勤的填报工作,根据考勤的相关信息规划出了考勤记录信息实体,实体E-R图如下图所示。 图3-7 考勤记录信息E-R图 , 在查询模块中由于要了解一个月中每个学生出勤情况进行一个统计,因此规划出了考勤信息月统计信息实体,实体E-R图如下图所示。 - 19 - 2222 图3-8 考勤月统计信息E-R图 , 射频卡是每个学生身份唯一标识学号的载体,根据射频卡的相关信 息规划出了射频卡信息实体,实体E-R图如下图所示。 图3-9 射频卡信息E-R图 3(2. 3 数据库详细设计 ? 数据库表单设计 在SQL Server 2000 关系数据库中我定义了一个名为attend的数据库,定义了9张表:学生基本信息表,学院编制信息表,射频卡充值表,射频 - 20 - 2010 届 网 络 工 程 毕 业 设 计 论 文 卡分配表,射频卡考勤登记表,月考勤信息统计表、用户表、考勤信息记 录表和考勤时间表,其中各表的定义的字段如下: (1)、学生基本信息表表定义字段如下: 字段名 类型 大小 说明 专业 Varchar 10 学生所属专业 班级 Varchar 10 学生所属班级 学号 Varchar 10 主键 姓名 Varchar 20 学生姓名 性别 Varchar 2 男、女 出生日期 datetime 8 学生出生日期 民族 Varchar 2 学生民族 籍贯 Varchar 10 学生出生地 政治面貌 Varchar 5 学生政治面貌 职务 Varchar 5 学生在班级中的职 务 身份证号 Varchar 30 学生身份证号 手机号 Varchar 20 学生手机号 宿舍号 Varchar 20 学生宿舍地址 家长姓名 Varchar 20 学生家长姓名 家长电话 20 学生家长电话 Varchar 邮箱 Varchar 20 学生Email (2)、学院编制信息表的表定义的字段如下: 字段名 类型 大小 说明 学院 Varchar 20 学校学院信息 专业 Varchar 10 学院专业信息 班级 Varchar 10 专业班级信息 (3)、射频卡充值表的表定义的字段如下: 字段名 类型 大小 说明 卡序列号 Varchar 20 学生所持射频卡的唯一 - 21 - 2222 标识信息 账号 Varchar 10 学生的学号 余额 decimal 5 卡上余额 (4)、射频卡分配表的表定义的字段如下: 字段名 类型 大小 说明 卡号 Varchar 20 学生所持射频卡的唯一 标识信息 学号 Varchar 10 学生的学号 状态 Varchar 10 卡的状态,“已激活”还 是“已挂失” (5)、射频卡考勤登记表的表定义的字段如下: 字段名 类型 大小 说明 出勤时间 datetime 8 学生出勤时间 学号 Varchar 10 学生的学号 (6)、月考勤信息统计表的表定义的字段如下: 字段名 类型 大小 说明 月份 tinyint 1 1--12 学号 Varchar 10 学生的唯一标识 出勤次数 tinyint 1 每月总出勤次数 缺勤次数 tinyint 1 每月总缺勤次数 请假次数 tinyint 1 每月总请假次数 (7)、用户表的表定义的字段如下: 字段名 类型 大小 说明 用户名 char 20 使用此系统时的登录名 用户密码 Varchar 50 使用此系统的密码 用户权限 Varchar 10 使用此系统的权限 邮箱 Varchar 20 用户的联系方式 (8)、考勤信息记录表的表定义的字段如下: - 22 - 2010 届 网 络 工 程 毕 业 设 计 论 文 字段名 类型 大小 说明 学号 Varchar 10 学生的唯一标识学号 出勤属性 char 10 “按时”、“迟到”、“缺 勤” 请假类型 char 10 “病假”、“事假” 请假原因 Varchar 50 为什么请假 考勤时间 datetime 8 学生出勤时间 (9)、考勤时间表的表定义的字段如下: 字段名 类型 大小 说明 开始时间 datetime 8 考勤开始时间 结束时间 datetime 8 考勤结束时间 ? 触发器设计 触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由单个事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。触发器可以查询其他表,而且可以包含复杂的 SQL 语句。它们主要用于强制服从复杂的业务规则或要求。 在本文所设计的学生考勤应用系统中,我们设计了一下触发器,分别如下: (1)、trig_insertOfStudentInUser trig_insertOfStudentInUser触发器的作用是当工作人员向学生基本信息表中插入数据时,自动向用户表中添加一条权限为学生的用户信息,这样可以保证所有在数据库中的学生都有以学生权限访问此系统的权利。trig_insertOfStudentInUser触发器SQL语句如下: If exists(select name from sysobjects where name='trig_insertOfStudentInUser' and type='TR') - 23 - 2222 drop trigger trig_insertOfStudentInUser go create trigger trig_insertOfStudentInUser on 学生基本信息表 for insert as begin declare @Username varchar(20) declare @Userpwd varchar(50) declare @Userrole char(10) select @Username=姓名,@Userpwd=学号 from inserted set @Userrole='学生' insert into 用户表 values(@Username,@Userpwd,@Userrole) end (2)、trig_inattend trig_inattend触发器建立在射频卡考勤登记表中,当向射频卡考勤登记表中插入一条数据时,再向考勤信息记录表中插入一条记录。 CREATE trigger trig_inattend on 射频卡考勤登记表 for insert as if not exists(select 学号,month(出勤时间),day(出勤时间) from inserted where 学号 in(select 学号 from 考勤信息记录表)and month(出勤时间) like(select month(考勤时间) from 考勤信息记录表)and day(出勤时间) like(select day(考勤时间) from 考勤信息记录表)) - 24 - 2010 届 网 络 工 程 毕 业 设 计 论 文 begin declare @studentID varchar(10) declare @attendance char(10) declare @attendtime datetime select @studentID=学号,@attendtime=出勤时间 from inserted set @attendance='按时' insert into 考勤信息记录表(学号,出勤属性,考勤时间) values(@studentID,@attendance,@attendtime) end (3)、trig_monthattend trig_monthattend触发器建立在考勤信息记录表上,用于实现月考勤信息的统计功能。他根据考勤信息记录表中的东不同时间每个学生的出勤次数、缺勤次数、请假次数进行统计,方便用户随时查询。 ? 关系图设计 对于大型关系型数据库,数据表太多,各表之间又有较复杂的关系,因此我们可以通过关系图,很清楚的分析数据库中各表之间的关系。同时,还可以通过这下关系进行操作,这也可以算是一个图形化的关系操作入口。本文所设计的学生考勤应用系统主要表之间的关系图如下图8所示: - 25 - 2222 图3-10 考勤应用系统关系图 ? 视图设计 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自于定义视图的查询所引用的表,并且在引用视图时动态生成。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到。数据库授权命令可以使每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定行和特定的列上。在本文所设计的考勤应用系统中,我建立了三张视图,用以方便用户查询数据。 (1)、学生信息查询视图 在查询模块中,供用户查询学生信息使用,其SQL语句如下: create view view_student_information - 26 - 2010 届 网 络 工 程 毕 业 设 计 论 文 as select a.学院,b.专业,b.班级,b.学号,b.姓名,b.性别,b.出生日期,b.民族,b.籍贯, b.政治面貌,b.职务,b.身份证号,b.手机号,b.宿舍号,b.家长姓名,b.家长电话, b.邮箱,c.用户权限,d.余额 from 学院编制信息表 a,学生基本信息表 b,用户表 c,IC卡充值表 d where a.专业=b.专业 and b.姓名=c.用户名 and b.学号=d.账号 (2)、射频卡信息查询视图 在查询模块中,供用户查询射频卡信息使用,其SQL语句如下: create view view_IC_information as select c.卡序列号,a.学院,b.专业,b.班级,b.学号,b.姓名,c.余额,d.状态 from 学院编制信息表 a,学生基本信息表 b,IC卡充值表 c,IC卡分配表 d where a.专业=b.专业 and b.学号=c.账号 and b.学号=d.学号 (3)、考勤信息查询视图 在查询模块中,供用户查询射频卡信息使用,其SQL语句如下: create view view_attend as select distinct c.月份,a.学院,b.专业,b.班级,b.学号,b.姓名,c.出勤次数, c.缺勤次数,c.请假次数,b.手机号,b.邮箱 from 学院编制信息表 a,学生基本信息表 b,月考勤信息统计表 c where a.专业=b.专业 and b.学号=c.学号 - 27 - 2222 第4章 详细设计 4、1 考勤系统功能描述 ? 介绍 学生考勤应用系统是主要是针对学生早操出勤情况的一个统计。计算机的介入使学生出勤情况的记录和统计工作变得十分简单。 ? 主要功能模块 (1)、时间设置功能 早操出勤的起始时间的设定功能可以方便系统的移植。由于每个学校的管理制度一样,拥有此项功能,可以扩大系统应用范围,方便移植。 (2)、学生出勤情况记录功能 出勤情况主要由考勤机来记录,然后由系统自动统计和分析,但是也有人工添加的功能,以备特殊情况的处理。 (3)、请假情况的记录功能 请假情况的记录功能统计学生是为什么缺勤,因为有事、有病,还是没有任何理由的缺勤。 (4)、月考勤信息统计表功能 月考勤信息统计表功能统计一个月中每个学生的出勤情况,比如一个月某个学生出勤多少次、缺勤多少次、请假多少次,这些信息都是为了方便老师对学生的管理。 (5)、用户管理功能 用户管理功能,在这个模块中,我又划分了3部分,系统新用户添加、用户密码的修改、当用户在工作中权限受限时,可以随时通过用户登录界面,通过不同的权限进入系统。 - 28 - 2010 届 网 络 工 程 毕 业 设 计 论 文 (6)、查询功能 查询功能方便用户根据某项条件快速的找到自己所需要的信息,例如符合条件的学生信息,符合条件的IC卡信息和符合条件的学生考勤信息等。 (7)、系统管理功能 系统管理功能管理系统个窗体的布局,例如当有多个窗体时,你可以选择水平平铺,也可以选择垂直平铺、层叠平铺等。还有一个功能就是帮助文档,它通过调用“启用Word”来帮助指导用户尽快熟悉此系统。 (8)、数据库管理功能 数据库管理功能能帮助一些不会使用SQL Server 2000关系型数据库的用户方便的对数据进行附加、恢复、备份和压缩。 4、2 系统模块设计 , 信息管理模块 信息管理模块包含学生信息维护,学院信息编制,还有邮件发送和针对学校主页相关信息的搜索功能。 , 考勤管理模块 考勤管理模块包含人工考勤,以备遇到特殊情况,智能考勤方便用户使用RFID卡进行考勤,这样既节省时间,有不需用人工参与,提高了工作效率,减少了出错的可能。 考勤时间设置是针对考勤系统启动的时间,在所设定的时间段内,考勤系统正常工作,超过这个时间短,系统就关闭。 - 29 - 2222 图4-1 信息管理模块图 , 射频卡管理模块 射频卡是用户主要标识信息的载体,它存储唯一标识用户信息的学号,这样每一个学生手持一张RFID卡出勤时,由阅读器读出学号信息,然后将信息添加进考勤信息登记表。 图4-2 考勤管理模块图 - 30 - 2010 届 网 络 工 程 毕 业 设 计 论 文 图4-3 射频卡管理模块图 , 用户管理模块 在用户管理模块中,管理员可以添加系统用户,工作人员和学生可以修改密码,也可以在使用中更换权限。 图4-4 用户管理模块图 , 查询管理模块 在查询管理模块中,所有用户都可以根据自己的要求和条件查询信息,可以按学号、姓名、学生所在学院、学生所在专业、学生所住宿舍楼等条件查询学生信息。可以根据月份、学生基本信息、出勤次数、缺勤次 - 31 - 2222 数、请假次数等查询一个月中学生的考勤信息。可以根据RFID卡的卡序列号信息、学生基本信息等查询学生所持RFID卡的基本信息。 图4-5 查询管理模块图 , 数据库管理模块 数据库管理模块中是一些基本的数据库操作,如附加、还原、备份、压缩。在本文所设计的系统中,为了使一些对SQL Server 2000不是很熟悉的用户能够在简洁的图形化界面下,很方便的对数据库进行操作,因此添加了此模块。 图4-6 数据库管理模块图 , 系统管理模块 系统管理模块是对系统框架、布局的一个自定义操作,各个用户可以 - 32 - 2010 届 网 络 工 程 毕 业 设 计 论 文 根据自己的需求与喜好更换系统布局,这可以提高工作人员工作时候的情绪,使工作人远在一个舒心的环境下工作。在系统模块中,我还提供了帮助文档,这能使工作人员尽快的熟悉系统。 图4-7 系统管理模块图 4、3 公共模块设计 4(3. 1 公共类设计 在Visual C#.NET中对于数据库的操作和整个工程项目中公用的函数、过程、全局变量等我门可以使用类来组织和封装这些代码。整个工程的任何地方都可以调用此模块中的函数、过程、变量,这样就可以实现代码的重用,减少代码的书写量。 本文所设计的系统,采用的是SQL Server 2000数据库,因此使用的是SQL Server数据提供程序,所有的数据提供程序都位于System.Data命名空间,因此需要添加引用using System.Data和using System.Data.SqlClient。.NET - 33 - 2222 数据提供程序由四个主要组件组成,他们的功能如下: (1)、Connection对象:用于连接到数据源。 (2)、Command对象:用于执行针对数据源的命令并且检索DataReader或者DataSet,或者用于执行针对数据源的一个INSERT、UPDATE、或DELETE命令。 (3)、DataReader对象:一个已连接的、前向只读结果集。 (4)、DataAdapter对象:用于从数据源中产生一个DataSet,并且更新数据源。 , BaseOperate.cs类 BaseOperate.cs类主要用来访问SQL Server数据库和返回基本的ADO.NET对象,命名空间区域引用using System.Data.SqlClient,用来连接数据库和进行有关的数据库操作,主要代码如下: using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; namespace student { class BaseOperate { //.......自定义方法(getcon()等) } } 以下几个函数用于ADO.NET连接SQL Server 2000数据库: (1)、getcon()函数 getcon()函数是返回值为SqlConnection类型的自定义函数,它的的 作用是建立数据库连接,其实现代码如下: - 34 - 2010 届 网 络 工 程 毕 业 设 计 论 文 public SqlConnection getcon() { string M_str_sqlcon = "Data Source=localhost;Database=attend;uid=sa;pwd="; SqlConnection myCon = new SqlConnection(M_str_sqlcon); return myCon; } (2)、getcom(string M_str_sqlstr)函数 getcom(string M_str_sqlstr)函数为无返回值类型的自定义函数,它的 的作用是执行SqlCommand命令,其实现代码如下: public void getcom(string M_str_sqlstr) { SqlConnection sqlcon = this.getcon(); sqlcon.Open(); SqlCommand sqlcom = new SqlCommand(M_str_sqlstr, sqlcon); sqlcom.ExecuteNonQuery(); sqlcom.Dispose(); sqlcon.Close(); sqlcon.Dispose(); } (3)、getds(string M_str_sqlstr, string M_str_table)函数 getds(string M_str_sqlstr, string M_str_table)函数用来执行SQL语 句,并返回一个DataSet类型的对象。在此函数中,首先调用本类中的 getcon()方法是实现数据库连接,然后使用SqlDataAdapter类对象填充 DataSet数据集。其实现代码如下: public DataSet getds(string M_str_sqlstr, string M_str_table) { SqlConnection sqlcon = this.getcon(); SqlDataAdapter sqlda = new SqlDataAdapter(M_str_sqlstr, sqlcon); DataSet myds = new DataSet(); sqlda.Fill(myds,M_str_table); return myds; - 35 - 2222 } (4)、getread(string M_str_sqlstr)函数 getread(string M_str_sqlstr)函数的作用是创建SqlDataReader对象, 以便从数据表中读取数据。该函数中,首先,使用SqlCommand类对象 执行SQL语句,然后调用SqlCommand类的ExecuteReader方法生成 SqlDataReader类的一个对象,并返回该对象。其实现代码如下: public SqlDataReader getread(string M_str_sqlstr) { SqlConnection sqlcon = this.getcon(); SqlCommand sqlcom = new SqlCommand(M_str_sqlstr,sqlcon); sqlcon.Open(); SqlDataReadersqlread sqlcom.ExecuteReader(CommandBehavior.CloseConnection); return sqlread; } , OperateAndValidate.cs类 在OperateAndValidate.cs类文件中,首先在命名空间区域添加using System.Data.SqlClient和using System.Text.RegularExpressions,它们分别用来进行数据库操作和自定义正则表达式,然后生成BaseOperate类的一个对象,通过类对象调用类中的功能函数。 (1)、cboxBind函数 cboxBind函数函数无返回值,主要用来执行SQL语句,并将执行结果 绑定到ComboBox,其实现代码如下: public void cboxBind(string P_str_sqlstr,string P_str_table,string P_str_tbMember,ComboBox cbox) { DataSet myds = boperate.getds(P_str_sqlstr, P_str_table); cbox.DataSource = myds.Tables[P_str_table]; cbox.DisplayMember = P_str_tbMember; - 36 - 2010 届 网 络 工 程 毕 业 设 计 论 文 } (2)、validateNum(string P_str_num)函数 validateNum(string P_str_num)函数的作用是验证输入字符串为数 字,在系统中经常要输入学生的学号,学生的电话号码等,对于这些不 能出错的信息,我们需要验证它是否正确,其实现代码如下: public bool validateNum(string P_str_num) { return Regex.IsMatch(P_str_num, "^[0-9]*$"); } 4(3. 2 动态库设计 程序编制一般需经编辑、编译、连接、加载和运行几个步骤。在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在连接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中。 动态库OUR_MIFARE.dll是用VC6.0++开发,已编译成Release实体,用于WIN98、NT、2000、XP、2003环境下。OUR_MIFARE.dll是此系统使用的USB接口射频卡读写器的配套文件,必须和读写器一起使用。还必须将硬件底层驱动的动态库ICUSB.DLL放在与OUR_MIFARE.dll同一个 目录 工贸企业有限空间作业目录特种设备作业人员作业种类与目录特种设备作业人员目录1类医疗器械目录高值医用耗材参考目录 下,否则不能使用。为了在使用时可以随时更换USB接口,OUR_MIFARE.dll在调用ICUSB.DLL时采用的是动态调用的方法。 , 读卡函数piccreadex 读卡函数piccreadex的功能是一次性读整个区的第0块、第1块、第2块共3块的信息,并且返回卡序列号。它的原始声明是unsigned char __stdcall piccreadex(unsigned char ctrlword,unsigned char *serial,unsigned char area,unsigned char keyA1B0,unsigned char *picckey,unsigned char - 37 - 2222 *piccdata0_2)。它返回unsigned char值,并将卡本块的数据传值到*piccdata指向的数组中。当返回值为0时,表示操作成功,读出的数据有效;当返回值为8时,表示寻卡错误,根本就没有卡在感应区,*serial无效。 , 写卡函数Piccwriteex 写卡函数Piccwriteex的功能是一次性写整个区的第0块、第1块、第2块信息。它的原始声明是unsigned char __stdcall piccwriteex(unsigned char ctrlword,unsigned char *serial,unsigned char area, unsigned char keyA1B0,unsigned char *picckey,unsigned char *piccdata0_2)。它返回unsigned char值,并将卡本块的数据传值到*piccdata指向的数组中。当返回值为0时,表示操作成功,写卡数据有效;当返回值为8时,表示寻卡错误,根本就没有卡在感应区,*serial无效。 第5章 系统实现 5、1 登录模块的实现 系统登录主要用来对进入RFID学生考勤应用系统的用户进行安全性检查,以防止非法用户进入该系统。在登录时,只有合法的用户才可以进入系统,同时系统根据登录用户的不同级别,给予不同的操作权限。 , 登录模块的窗体设计 在登录界面中包含GroupBox、Label、TextBox、Button、Timer、errorAllInfo等控件。GroupBox是在一组控件的周围显示一个带有可选标题的框架;Label标签用于为用户提供一些说明性的文字;TextBox文本框允许用户输入文本,并提供多行编辑和密码字符掩码功能;Timer控件按一定的时间间隔控制阅读器进行不间断的阅读卡;Button按钮控件控制当用户 - 38 - 2010 届 网 络 工 程 毕 业 设 计 论 文 单击它是所发生的事件。Timer控件每300毫秒阅读一次RFID卡信息,如果发现卡,则读取卡中数据。 , 用户身份验证流程图 图5-1 登录界面流程图 , 用户登录模块的主要代码 首先,声明3个静态全局变量,分别用于记录登录用户的用户名、密码和权限,然后声明公共类BaseOperate和 OperateAndValidate的两个全局对象,通过类对象调用类中的功能方法。 在本文所设计的系统中,提供了两种登录系统的方式,一种是RFID卡式,另一种就是传统的输入登录式。RFID卡上携带了唯一标识学生身份的学号信息,因此当学生持状态为“已激活”的RFID卡也可以以学生权限登 - 39 - 2222 录系统。 (1)、RFID卡式 RFID卡式登录系统需要定义一个Timer控件控制系统每隔一定的时间,检查是否有数据读入,如果有,判断这些数据是否合法,如果合法,进入系统主页面,如果不合法,则继续等待数据,然后再判断。 (2)、传统输入式 单击【登录】按钮,程序调用公共类中相关方法判断用户输入的用户名和密码、用户权限是否正确,如果正确,则成功登录该系统,并使用已声明的全局变量“M_str_name”、“M_str_pwd”和“M_str_right”记录该用户的登录名、密码和权限,否则,弹出“你的登录信息有误,请重新输入~”信息提示框。 最后,单击【取消】按钮,退出该Windows应用程序。 5、2 系统主界面的实现 , 系统主界面的窗体设计 进入系统主界面,如图11所示。里面包含MenuStrip菜单栏,用于显示按模块分组的各个功能项;navBarControl控件用于制作用户导航栏;精灵组件axAgent,用于美化界面;Label标签作为界面说明行文字;StatusStrip状态栏用于显示和用户相关的实时信息。 - 40 - 2010 届 网 络 工 程 毕 业 设 计 论 文 图5-2 系统主界面运行窗体 , 系统主界面的代码实现 FrmMain窗体的Load事件中,首先,在状态栏中显示登录的用户名和时间,然后根据登录用户的操作权限,显示不同的菜单。 单击菜单栏中的子菜单时,程序会以当前窗体为父窗体显示相应的窗体,由于各子菜单的实现方法相同,这里以“人工考勤”子菜单为例进行简要介绍。单击菜单栏中“人工考勤”子菜单,生成人工考勤窗体的一个对象,并指定其父窗体为当前窗体,然后将人工考勤窗体显示出来。 单击导航菜单中的菜单项时,程序会调用菜单栏中相应子菜单项的LinkClicked事件来完成操作,这里以“人工考勤”菜单项为例。单击导航菜单中的“人工考勤”菜单项,程序调用菜单栏中“人工考勤”子菜单项的Click事件,完成显示人工考勤窗体。 为了放便用户操作,实现对窗体的动态布局,在本文所设计的系统中,在系统管理模块中提供了“水平平铺”、“层叠排列”和“垂直平铺”三种 - 41 - 2222 布局格式,这三种布局格式的实现原理相同。 在用户管理模块中,可以实现切换用户功能。 为了保证系统安全使用,在主系统界面中,还提供了注销用户登录信息的功能。单击【注销】按钮,程序将释放当前窗体正在使用的资源,进入登录界面,以供其他用户使用此系统。 5、3 信息管理的实现 在信息管理中,最主要的是学生信息维护、学院信息编制和邮件发送三部分。在这三部分中,学生信息维护主要完成学生信息的添加、删除、修改等。学院信息编制是一个学校整体概况的一个描述,对这些信息的统计录入,不仅方便工作人员在后续工作中的使用,而且是一种信息的规范化,还可以节省数据库中空间的占用。邮件发送是方便工作人员及时通知那些缺勤次数、请假次数超过规定的学生,以警告他们以后切勿再缺勤、请假。 5(3. 1 学生信息添加的实现 , 学生信息添加窗体设计 在学生信息维护窗体中我使用了5个Button控件,如添加、修改、删除、保存和退出按钮。一个GroupBox控件,用于组合表示学生信息的各控件。学生身份证号码、手机号、家长电话我都采用了MaskedTextBox来提示用户输入的位数等。 , 学生信息添加流程图 - 42 - 2010 届 网 络 工 程 毕 业 设 计 论 文 图5-3 学生信息添加流程图 , 学生信息添加代码实现 在代码实现中,首先,声明公共类BaseOperate和OperateAndVaildate 的两个全局对象,通过对象调用类中的功能方法,实现代码如下: student.BaseOperate boperate = new BaseOperate(); student.OperateAndValidate opandva = new OperateAndValidate(); - 43 - 2222 在学生信息添加窗体的Load事件中,通过调用公共类BaseOperate中的getds方法生成一个DataSet数据集,然后利用该数据集对DataGridView控件进行数据绑定,以显示添加的学生的基本信息。学生信息添加窗体的Load事件关键代码如下: 单击【添加】按钮,程序利用公共类中的相应方法判断用户输入的信息是否正确,如果全部正确,则执行数据添加操作。 【添加】按钮的Click事件中用到了自定义方法ClearText(),该方法为无返回值类型的自定义方法,只要用来实现清空文本框内容的功能。 5(3. 2 邮件发送的实现 邮件发送窗体是用来实现工作人员与学生的交流、沟通功能。当一个学生缺勤次数超过规定次数时,工作人员需要即时给该学生发出一个警告。 , 邮件发送窗体设计 Frmstudent_email.cs为邮件发送窗体,该窗体主要用到的控件有TextBox控件,主要作用是供用户输入合法信息;Button控件执行上传附件、删除附件、发送邮件和退出等事件;ComboBox分别用来绑定已登录的用户名、学生学院和学号信息;OpenFileDialog控件的作用是作为选择附件对话框。 , 邮件发送的流程图 - 44 - 2010 届 网 络 工 程 毕 业 设 计 论 文 图5-4 邮件发送流程图 , 邮件发送的代码实现 在Windows应用程序中,可以通过使用System.Net.Mail命名空间下的MailMessage类和SmtpClient类实现邮件的发送功能。MailMessage类主要用于指定邮件的发送地址、收件人地址等;SmtpClient类用于将电子邮件发送到SMTP服务器以便传递。 - 45 - 2222 邮件发送窗体的Load事件中,通过调用公共类OperateAndValidate中的cboxBind()方法对ComboBox控件进行数据绑定,以显示登录该系统的用户邮箱和该学校所有的学院,然后根据所选学院显示该学院的所有专业,然后再根据所选专业显示该专业的所有学生。 给学生发送邮件时,可以选择发送附件。当用户选择了上传的附件后,单击【添加附加】按钮,程序便将OpenFileDialog控件中所选的附件上传至附件ComboBox控件。 删除上传附件时,只需要在ComboBox控件的下拉列表中选中相应项,单击【删除附件】按钮即可。 设置完邮件服务器及邮件的所有信息后,单击【发送】按钮可完成发送邮件给学生的功能。实现该功能时,使用了System.Net.Mail命名空间下的MailMessage类和SmtpClient类。 5、4 考勤管理的实现 考勤管理中包含三部分,分别是人工考勤、智能考勤和考勤时间设置。 , 智能考勤窗体设计 智能考勤窗体主要实现学生持卡出勤的信息记录,此窗体主要用到的控件有Label标签、Timer控件和TextBox文本框,其中TextBox的属性ReadOnly为true。 , 智能考勤流程图 - 46 - 2010 届 网 络 工 程 毕 业 设 计 论 文 图5-5 智能考勤流程图 , 智能考勤代码实现 智能考勤中最主要的是用Timer控件,在Timer控件中,我们要控制阅读器每隔300毫秒读一次卡,到结束时间自动退出。这样就可以在无人留守的情况下进行考勤。 - 47 - 2222 5、5 射频卡管理的实现 , 射频卡分配窗体的设计 图5-6 射频卡分配界面运行窗体 , 射频卡分配流程图 - 48 - 2010 届 网 络 工 程 毕 业 设 计 论 文 图5-7 射频卡分配流程图 , 射频卡分配代码实现 首先定义一个Timer控件的Tick事件,让阅读器每隔300毫秒读卡一次,并将读出卡的卡序列号信息显示在文本框中,然后,工作人员输入学生学号信息,最后在按【确认】按钮将学号信息写入射频卡。 - 49 - 2222 5、6 查询管理的实现 , 考勤信息查询窗体设计 图5-8 考勤信息查询界面运行窗体 , 考勤信息查询流程图 - 50 - 2010 届 网 络 工 程 毕 业 设 计 论 文 图5-9 考勤信息查询流程图 , 考勤信息查询代码实现 当选择了查询模式,输入了查询条件后,单击【执行查询】就可以找出与条件相匹配的学生考勤信息。 第6章 测试 对于本系统的测试,主要采用黑合测试法,检查本系统是否能完成预期的 - 51 - 2222 目标。 6、1 人工考勤的测试 , 预期目标:当工作人员将考勤信息输入后,按确定按钮后,数据库中的 考勤信息记录表中就会有一条相应的记录,并且月考勤信息统计表中也 会根据出勤属性,产生一条相应的记录。 , 输入信息如下: 图6-1 输入信息图 , 输出信息如下: 单击【添加】按钮后弹出提示对话框,以确定工作人员将信息录入数据库,如下图所示: - 52 - 2010 届 网 络 工 程 毕 业 设 计 论 文 图6-2 提示对话框 数据库考勤信息记录表中的数据,如下图所示: 图6-3 考勤信息记录表中的数据图 数据库中月考勤信息统计表中的数据如下图所示: 图6-4 月考勤信息统计表中的数据图 经过比较分析,得出人工考勤模块能实现预期目标,暂未发现其他错误。 6、2 智能考勤的测试 , 预期目标:在考勤时间段内,当学生持卡经阅读器读出信息后,显示在 文本框中, 然后系统自动在考勤信息记录表中插入一条此学生的记录, 出勤属性为按时,最后系统在自动在月考勤信息记录表中增加一条记 录。 , 输入信息如下:刷卡后文本框中信息如下 - 53 - 2222 图6-5 输入信息图 , 输出信息如下: 射频卡考勤信息登记表中信息如下: 图6-6 射频卡考勤信息登记表图 考勤信息记录表中信息如下: 图6-7 考勤信息记录表中信息图 月考勤信息统计表中信息如下: 图6-8 月考勤信息统计表图 经过比较分析,得出智能考勤模块能实现预期目标,暂未发现其他错误。 第7章 难度与对策 ? 将学号写入RFID射频卡 要将学号正确的写入RFID卡,需要应用动态链接库,并且还需要知道RFID卡的结构。动态链接库文件是和硬件配套购买的,只需要知道 - 54 - 2010 届 网 络 工 程 毕 业 设 计 论 文 在什么地方如何调用就好了。但是需要考虑的是把学号存在RFID卡的什么位置。卡的内部存储结构分为16个扇区,从第0区到第15区,每个扇区有独立的密码和权限控制字,可独立的使用,每个扇区有4个块,序号为第0块、第1块、第2块、第3块,每块16个字节,第3块是卡的密码和权限控制字专用块,禁止在此存放数据。第0块、第1块、第2块可随意存放数据。但第0区的第0块已被固化了IC卡出厂信息,此块只能读出信息,不可更改。因此在本文的设计中,我将学号写在了第八区,如下是它的实现代码: //...........省略部分代码 //指定区号 myareanoID= 8;//指定为第8区 批定密码模式 // authmode = 1;//大于0表示用A密码认证,推荐用A密码认证 指定密码 // //..............省略密码 if (textBox1.Text.Trim() == textBox3.Text.Trim()) { //指定卡数据 string strStudentNo = string.Empty; for (int k = 0; k < textBox1.Text.Length; k++) { strStudentNo = textBox1.Text.Substring(k, 1); mypiccdataID[k] = (byte)Convert.ToInt16(strStudentNo); } status = piccwriteex(myctrlword, mypiccserial, myareanoID, authmode, mypicckey, mypiccdataID); //处理返回函数 switch (status) { case 0: //成功的写入卡后,要在数据库中登记 //以下省略部分数据库操作代码 break; - 55 - 2222 case 8: //没有卡时,即寻不到射频卡时的代码 break; } } ? 通过触发器更新月考勤信息统计表 当有考勤信息插入考勤信息记录表时,程序需要判断这个月此学生的考勤信息是否已有统计,如果已经存在,就根据出勤属性更新统计信息,如果不存在,则插入一条心记录,这里通过一个触发器来实现,触发器代码如下: CREATE trigger trig_monthattend on 考勤信息记录表 for insert as if exists(select 学号,month(考勤时间) from inserted where 学号 in(select 学 from 号 月考勤信息统计表)and month(考勤时间) in(select 月份 from 月考勤信息统计表)) begin declare @attendance char(10) declare @student varchar(10) declare @montime tinyint select @attendance=出勤属性,@student=学号,@montime=month(考 勤时间) from inserted if(@attendance like '按时') update 月考勤信息统计表 set 出勤次数=出勤次数+1 where 学号=@student and 月份=@montime - 56 - 2010 届 网 络 工 程 毕 业 设 计 论 文 else if(@attendance like '请假') update 月考勤信息统计表 set 请假次数=请假次数+1 where 学号=@student and 月份=@montime else update 月考勤信息统计表 set 缺勤次数=缺勤次数+1 where 学号=@student and 月份=@montime end else begin declare @monthtime tinyint declare @studentID varchar(10) declare @attend char(10) select @attend=出勤属性,@studentID=学号,@monthtime=month(考勤时间) from inserted if(@attend like '按时') ,学号,出勤次数,请假次数,缺勤次insert into 月考勤信息统计表(月份 数) values(@monthtime,@studentID,'1','0','0') else if(@attend like '请假') insert into 月考勤信息统计表(月份,学号,请假次数,出勤次数,缺勤次数) values(@monthtime,@studentID,'1','0','0') else insert into 月考勤信息统计表(月份,学号,缺勤次数,出勤次数,请假次数) - 57 - 2222 values(@monthtime,@studentID,'1','0','0') end 第8章 结论 此次编写的基于RFID的学生考勤应用系统,主要实现的是学生考勤功能。在熟悉开发技术与相应的开发环境的基础上,实现了学生信息的维护、RFID卡管理、RFID卡考勤和邮件通知等功能。 总之,通过对本系统的设计,使我对C#.Net从模模糊糊一步一步的走到了熟悉。对于此次我所设计的软件系统也许还有很多的不足,但是它简单,易操作,且实用。由于时间关系,本文主要对学生考勤应用系统的一些基本功能模块进行了设计、实现。系统要完成所有的功能模块还需再不断的改进和修改,使其不断完善。 随着通信技术以及网络技术的发展,可在以后的设计中加入RFID门禁管理、RFID图书借阅管理、RFID卡食堂超市消费管理。再者,通过网络技术,能够远程访问系统,实现系统数据的共享。 参考文献 [1] 杨明羽. C#完全自学宝典. 北京:清华大学出版社, 2008,3 [2] Tom Archer. C#技术内幕. 北京:清华大学出版社, 2002,1 [3]张跃延. C#数据库系统开发案例精选. 人民教育出版社 2007,3 [4]黄明. C#+SQL Server中小型信息系统开发实例精选. 机械工业出版社 2007,3 [5]周晓光. 射频识别(RFID)系统设计、仿真与应用. - 58 - 2010 届 网 络 工 程 毕 业 设 计 论 文 北京:人民邮电出版社, 2008 [6]董丽华. RFID技术与应用. 北京:电子工业出版社, 2008 [7]孙维煜. C#案例开发. 北京:中国水利水电出版社, 2005 [8]杨树林. C#程序设计与案例教程. 北京:清华大学出版社,2007 [9] 郭睿智,张学志等.C#+SQL Server项目开发实践. 中国铁道出版社. 2007,3 [10](英)[S.艾伦]Scott Atlen. C#数据库入门经典. 北京:清华大学出版社, 2003,3 致 谢 经过了两个多月的学习和实践,我终于完成了基于RFID的学生考勤应用系统。从开始接到论文题目到系统的实现,再到论文文章的完成,每走一步对我来说都是新的尝试与挑战,这也是我在大学期间独立完成的最大的项目。在这段时间里,我学到了很多知识,也有很多感受。 在整个毕业设计的完成过程中,从对软件的安装学习到硬件的采购,从系统的设计再到系统的实现,王锋老师都给予了我很大的帮助。王锋老师和善的性格、严谨的治学态度、高度的责任心及丰富的实践经验令我钦佩不已。在此,我对王锋老师表示衷心的感谢。 最后,向我所有的老师表示由衷的谢意。感谢他们四年来的辛勤栽培.~ - 59 -
本文档为【基于RFID的学生考勤应用系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_496339
暂无简介~
格式:doc
大小:446KB
软件:Word
页数:0
分类:工学
上传时间:2017-09-28
浏览量:31