欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    嵌入式RFID学生考勤管理系统.docx

    • 资源ID:5179252       资源大小:204.56KB        全文页数:10页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    嵌入式RFID学生考勤管理系统.docx

    附件:大学生科技项目设计报告(论文)嵌入式RIFD校园卡考勤管理系统制作者:胡良杰 指导教师:王真星【内容摘要】:本项目主要设计一套管理系统来解决考勤记录的人工实现,基于嵌入式系 统利用RFID无线射频技术采集校园卡数据,并基于Web2.0技术设计了配套 管理查询系统提供学生考勤历史数据的查询。【关键词】:RFID无线射频,考勤记录,Web2.0一、项目背景校园学生考勤是现今日常教学过程中必不可少的一个组成部分,以往,学生的考勤工作 主要都由任课教师完全承担,在上课之前几分钟或者是上课后花费几分钟的时间进行全班的 点名,然后在学期末用人工的方式观察、分析学生在教学活动中的出席情况。这样做不但消 耗了教学时间、也不具备灵活性。从记录考勤数据,到分析考勤记录都需要花费教师额外的 时间与精力。嵌入式RFID校园卡考勤管理系统正试图以一种更快捷方便的方式解决考勤过 程中的各种问题。二、系统设计校园卡考勤查询管理系统基于嵌入式技术,这样可以方便集成分布到校园中的每一个教 室里。校园卡基于RFID无线射频技术,通过射频技术便可获取校园卡中的各类信息,对于 校园卡考勤的应用而言,仅仅需要得到校园卡的一个唯一标志号便可完成考勤记录。1)软硬件构成和基本流程嵌入式RFID考勤管理系统的主要由硬件、软件和软硬件交互驱动程序三个部分组成。 硬件部分主要建立在S3C2410为基础的平台之上,通过RFID模块读取刷卡信息,并通过韦 根协议将刷卡卡号数据传输到硬件设备的一对IO 口上,通过在嵌入式Linux中编写对应的 驱动程序读出卡号数据,并结合Socket通讯技术,将卡号数据传输到远程服务器上。软件 则主要由一个Web网站组成,主要实现简单的考勤数据记录查询。该考勤系统的基本工作流程如下:每堂课上课前学生凭各自的校园卡(基于RFID无线射频技术)刷卡后进入教室。安装 于教室内的设备在接收到读卡器发送来的学生刷卡记录数据后,将数据通过Socket连接发 送到远程服务器上。远程服务器有一个专门的服务器程序负责接收由嵌入式设备发起的Socket连接通讯请 求。远程服务器应用程序会等待数据发送设备的Socket连接请求,一旦有一个需要发送数 据的设备,该设备就主动发起Socket连接请求,服务器端则会开启一个新的线程来处理一 批数据传输。接收程序在接收到数据后,将数据通过MySQL数据库的Java接口直接将数据 存储到特定数据库中。教务人员或教师可以通过浏览器远程登陆基于JSP构建的考勤状况查询网站,远程查询 某一堂课或某一名学生在某一段时间内的考勤情况等信息;教务人员还可以进行诸如设置课 程、每堂课上课时间、应到课学生等操作。整个系统的流程如图1所示:图1嵌入式RFID校园卡考勤管理系统首先,各个学生持有校园卡在不同的教室,也即不同的RFID模块上进行刷卡动作,刷 卡成功后RFID模块通过Wiegand-26标准协议将数据发送给嵌入式终端设备,设备端应用程 序是运行于嵌入式Linux下的后台应用程序,该程序读取RFID模块的传入信号,并将其解 析后得到一个校园卡的PID号。接着,嵌入式设备通过与服务器的Socket连接将所有从RFID模块读取到的数据连同时 间戳以及教室编号发送至服务器接收程序。服务器接收程序与嵌入式设备上的发送程序紧密配合,负责将接收到的数据再存储值整 个系统的“数据中心” 一ySQL数据库中。最后,应用的中心便建立在这个集中的数据库中,基于考勤记录数据,可以进行多方面 的应用,本考勤管理查询系统实现的一个JSP网站应用,可以通过浏览器登录考勤网站进行 考勤记录的多功能查询。2)考勤Web应用程序实现项目的主要应用部分在软件的实现形式与内容上,主要采用Web应用程序的方式实现查 询系统的部署。Web页面结合运用了 JSP技术、XHTML、JavaScript、XML和数据库等技术。 存储考勤记录的数据库采用开放源代码的MySQL数据库作为考勤管理查询网站的后台数据 库。MySQL是一个开放源码的小型关系型数据库管理系统,具有体积小、速度快、总体拥有 成本低等特点。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后 对这些Java代码进行处理,然后动态生成HTML页面返回给客户端,从客户端用户的角度来 看,呈现了一种在不同情况下会产生不同页面返回的动态Web页面。JSP页面按照各种功能分类进行页面组织,首先在Web根目录下有一个index.jsp表示 系统首页,用作用户验证登录界面。其他所有页面必须要用户登录之后才是可见的,所有目录均位于Web应用根目录下的 secure目录中,当任何用户在尚未登录的情况下直接登录secure目录下的JSP页面时,JSP 页面将抛出一个页面异常,本系统将该异常重定向到了 Web根目录下的error.jsp页面上, 提示用户尚未登录,无法访问指定页面内容。阻止未登录用户访问受限制页面的方法比较普通的有两种,一种是使用地址过滤,另一 种是使用session设置用户身份验证类,本系统使用实现相对简单而直接的后者。3)Web页面实现分类主要页面分以下几个:以学生为主要查询条件的查询页面、以课程为主要查询条件的查 询页面、以教师为主条件的查询页面,另外还有分别添加学生、班级、教师的添加操作页面, 此外还有一些辅助页面,如导航侧边栏、标题栏、脚注栏等,都以内嵌页面的方式嵌入在上 述主要页面中。在众多系统页面中,pageTitle.jsp是secure目录下所有主要页面都包含的子页面, pageTitle.jsp是代表页面标题的内嵌页。pageFoot.jsp则是secure目录下所有主要页面 都包含的代表页面页脚的内嵌页。Navigator.jsp是大部分主页面共有的一个位于页面左侧的导航栏内嵌页面。在这个页 面中首先包含了如下JSP代码:<li>You are:<%= (UserInformation)session.getAttribute("userSig").getName()%></li>这段代码的作用是从当前session中取得一个叫做userSig的属性,并将它转换成 org.novo.beans.UserInformation类,然后调用它的getName()方法,注意,如果用户并没 有通过正常方式登录secure页面,那么userSig属性将是空的,上面这条指令将会导致一 个页面异常,从而实现重定向到error.jsp的逻辑。相反地,如果用户是按照正常的流程登录到secure下的页面的,注意到实际“登录” 按钮执行的是Javascript脚本函数jsActionLogon(),该脚本函数完成一个很简单的登录 流程:function jsActionLogon()var u = $('userName').value;var p = $('password').value;var t = $('userType').value;logonRedirect();该函数首先将要使用到的数据内容赋值到相应的变量中,然后直接调用了另一个脚本函 数 logonRedirect():function logonRedirect() var data =''data += ('name=' + $('userName').value + '&');data += ('password=' + $('password').value + '&');data += ('type=' + $('userType').value);var request = new Request('url': 'proxy/logonProxy.do','data': data);request.addEvent('onSuccess', handlerLogonOK);request.addEvent('onFailure', handlerLogonFail);request.addEvent('onException', handlerLogonFail);request.send();logonRedirect()函数实际是将刚才有jsActionLogon()函数赋值过的变量编码到data 中,通过Ajax的方式发送POST请求到服务器,请求地址为proxy/logonProxy.do。而在服务器配置文件web.xml中,地址“/proxy/logonProxy.do”定义如下: <servlet><servlet-name>LogonProxyServlet</servlet-name><servlet-class>org.novo.secure.LogonProxy</servlet-class></servlet><servlet-mapping><servlet-name>LogonProxyServlet</servlet-name><url-pattern>/proxy/logonProxy.do</url-pattern></servlet-mapping>它实际指向的是org.novo.secure.LogonProxy类,这个类是扩展自HttpServlet的类, 其主要的职责就是根据HTTP请求中的用户名密码内容建立一个 org.novo.beans.UserInformation类,如果验证用户是可登录用户,那么 org.novo.beans.UserInformation会被创建一个新的实例并绑定在当前请求的session上, 否则将向请求端发出失败登录的消息。if (name != null && password != null&& validate(name, password) org.novo.beans.UserInformation userInfo =new org.novo.beans.UserInformation。; userInfo.setName(name);userInfo.setPassword(password);request.getSession().setAttribute("userSig”, userInfo);response.getWriter().print("ok"); else response.getWriter().print(系统尚未增加可用登录用户,请如下填写:<br/> + 用户名t411982213<br/> +密码 t111111<br/>);这样,一旦登录成功,用户的信息就被保存在相应session的userSig属性中,无论用 户定位到secure目录下的哪个页面中,都可以正常访问了。queryStudent.jsp是一个查询特定学生某一门课的考勤记录的页面。打开该页面的初始情况如图2所示,在姓名一栏中需要输入学生姓名,或者是学生姓名 的一部分,然后在时间过滤中选择将要查询的是哪一年的课程,在很大程度上缩小查询范围, 在以上两项都填写完毕后点击“继续”按钮,接着就会出现一个列表框,列表框中是所有符 合刚才在姓名一栏中输入的条件的学生学号,选择需要查询的学号,再一次点击“继续”按 钮,接着,系统会查询你所选择的学生在所限定的学年中参与的所有课程,在列表框中显示 出来,选择想要查询的那一门课程,然后再一次点击“继续”按钮,学生的这一门课程的考 勤记录就将会在紧接着的一个表格中显示出来,包含四个主要字段,“上课时间”,“刷卡时 间”,“教室”,“状态”,另外,当鼠标移动到“上课时间”的数据上时,也会显示出这堂课 的下课时间(通常是上课时间之后的40分钟)学生查询(管理员)Summary按照学生南姓名和指定学年查询考勒记录匹酬到学生后会进一步细化进行课程的选择查询0 样例输入:姓名)学年(2005)旌名这里输入需要查询学生的姓名A学生查询(管理员)图2学生查询如果某一节课学生旷课了,那么在“刷卡时间” 一栏将显示“NA”,在“教室”一栏也 显示“NA”,而在状态一栏中显示“旷课”。如果某一节课学生迟到了,那么在“刷卡时间”一栏中将会显示学生实际的刷卡时间是 几时,在“教室”一栏中正常显示迟到的刷卡所在的教室,而在“状态”一栏中将会显示“迟 到”。表格的构造所需的数据内容来自于向“/service/getStudentLessonRecord.do”所发送 的请求得到的回应,然后通过JavaScript函数jsQSDisplayTable将返回的XML文档呈现为 表格。该函数首先获得一个id为report的元素的引用,然后分析遍历XML根节点下的所有 节点,每一个节点相当于表格中的一行数据,每一个节点中的子项相当于表格中的列数据。 通过 newElement( tr)创建 table tr 元行素,通过 new Element( td)船舰 table td 列元素。并通过一个布尔量“color”来判定当前行是奇数行还是偶数行,奇数和偶数行将 用不同的颜色进行着色来明显区分行。如果返回的数据结果中学生的刷卡记录所在的教室与该课程当前上课教室并不相符合, 那么在教室一栏中将会显示出“跑错教室”的内容。实现代码如下:if(itemsi.childNodes3.firstChild.data!=itemsi.childNodes5.firstChil d.data) row.grab(new Element('td', html:'跑错教室);综上,其他页面的实现方式也是采用同样的逻辑。首先,用户需要按照页面指引填写一 份简单的数据表单,一步一步下来,最终Javascript脚本将会通过Ajax的方式发送请求到 服务器,由服务器Servlet接受表单数据后计算出响应结果并以XML文档的方式呈现给请求 方。服务器主要承担的工作量将会是接受请求,查询数据库结果,和返回XML文档,剩下的, 对于如何将XML文档用可视化的方式呈现在用户面前,是完全使用Javascript代为实现的。整个实现通用的流程如下:1)建立XMLHttpRequest请求,向服务器发出HTTP POST请求。2)在成功得到服务器正确响应的情况下,利用Mootools提供的脚本功能,迭代XML 文档中的item元素,并为每一个item元素的子项构造单元格。3)对XML文档中的相对原始数据进行一定的计算处理,并在相应的单元格中显示相对 应的计算结果(比如是否迟到的判定,是通过Javascript脚本中计算XML文档中提供的数 据得到的,而不是服务器直接判定好的状态结果)。4)每处理一个item元素,就表示表格中的一行数据,切换当前行的背景颜色。5)完成表格的创建。如果可选的“下载Excel表格”或者“发送Email”被选择了, 那么在服务器上会另外产生一个URL地址可以形成一份当前记录表格的Excel表格文档,和 一封HTML表格方式组织的自动EMail发送到指定的邮箱地址中。附:本项目成果正面图侧面图参考文献:1. Unix 网络编程(第一卷:套接口 API)第三版,W. Richard Stevens/Bill Fenner/AndrewM. Rudoff, Pearson Education | 清华大学出版社2. MySQL cookbook (第二版),Paul DuBois, OReilly,电子工业出版社3. Tomcat Web开发及整合应用,张洪伟,清华大学出版社4. JSP开发详解5. Thinking in Java6. JavaScript权威指南,David Flanagan著,OReilly,机械工业出版社7. Ajax模式与最佳实践,Christian Gross著,A Press,李琨、张祖良、蔡毅、赵泽欣译, 电子工业出版社8. JavaScript网页特效实例大全,王征编著,清华大学出版社9. 深入浅出Ajax,夏慧军、魏雪辉编著,电子工业出版社

    注意事项

    本文(嵌入式RFID学生考勤管理系统.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开