张粤,李俊,方国康,冯满满
(武汉科技大学计算机科学与技术学院,武汉 430065)
基于Android的学生考勤系统设计与实现
张粤,李俊,方国康,冯满满
(武汉科技大学计算机科学与技术学院,武汉430065)
据调查,目前我国的大多数高校,在学生管理方面仍然采用传统的手工作业或者半手工作业方式。教师在学生考勤、晚归管理、课堂学习管理等方面,仍然采取点名、手工记载等方式,费时费力且容易代答代签。而对于指纹识别、人脸头像识别等新型技术,由于设备比较昂贵、实施成本高,不适合大规模推广。并且现有的手工方式和图像识别系统都有明显的不足,那就是信息滞后,老师们都无法在第一时间获取实时信息。鉴于当前的高校考勤系统比较低效,以及移动终端的普及和Wi-Fi热点技术的成熟,想开发一款基于移动终端的低成本,高效的学生考勤系统[1-2]。目前为止基于Android平台的定位研究和应用处于高速增长阶段,国内相关领域的研究论文已经层出不穷如论文[3-5],经过讨论和阅读相关文献,找到了一种基于Wi-Fi热点和MAC地址标识教室的方法,即先通过移动Wi-Fi热点的MAC地址和教室地点绑定,然后学生通过课表查找到当前上课的教室,获取绑定的MAC地址,然后去查找当前Wi-Fi列表,如果有匹配的MAC地址,就与服务器交互,将自己的信息发给服务器,生成签到记录,完成签到。
本系统采用Android、PHP、MySQL等技术以客户端服务器的形式来进行数据交互。客户端包含学生端、教师端。服务端以PHP语言编写的后台脚本用于响应客户端的请求,并返回相应数据。
(1)平台简介
Android是一种基于Linux内核分层体系结构的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。第一部 Android智能手机发布于2008年10月。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。Android的系统架构和其操作系统一样,采用了分层的架构。Android结构分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层,Android平台具有开放性、丰富的硬件、方便开发、Google应用等优势
(2)Android的AsyncTask异步任务类
在开发Android移动客户端的时候往往要使用多线程来进行操作,我们通常会将耗时的操作放在单独的线程执行,避免其占用主线程而给用户带来不好的用户 体验。但是在子线程中无法去操作主线程(UI线程),在子线程中操作UI线程会出现错误。因此Android提供了一个类Handler来在子线程中来更新UI线程,用发消息的机制更新UI界面,呈现给用户。这样就解决了子线程更新UI的问题。但是费时的任务操作总会启动一些匿名的子线程,太多的子线程给系统带来巨大的负担,随之带来一些性能问题。因此Android提供了一个工具类AsyncTask,顾名思义异步执行任务。这个AsyncTask生来就是处理一些后台的比较耗时的任务,给用户带 来良好用户体验的,从编程的语法上显得优雅了许多,不再需要子线程和Handler就可以完成异步操作并且刷新用户界面
LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl、PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的优势,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。本设计正是采用的LAMP平台构建的Web服务器。
本系统将学生信息、课表信息、上课信息从教务系统导入到服务器,然后将每个教室的标识码即随身Wi-Fi的MAC地址收录到数据库。每个学生的学号在注册的时候将会与该学生移动终端无线网卡的MAC地址绑定,作为该学生的终端标识。当学生带移动终端去具体教室上课时,会自动查找该教室的标志MAC,如果没能查找到则证明学生没逃课,将不能把自己的签到信息写入服务器的数据库,然后教室和辅导员可以查看到某节课没有签到的学生。
基于 Android的学生考勤管理系统主要由 Android端和服务器端2部分组成。Android学生端负责考勤数据的采集以及较为简单的数据查询。学生叫考勤信息发送到服务器,并存储在数据库中,任课教师使用安装有Android教师端软件的智能设备进行查看学生考勤数据,实时查看学生考勤的信息,发现其中存在的问题,从而完善自己的管理工作。下图(图1)说明了本系统的基本架构。
图1 系统结构图
本系统使用的是MySQL关系型数据库,结合系统需求,可以抽取出相关实体,包含学生注册表、学生信息表、教室信息表、教师信息表、班级表、年级表、课程表、课程信息表以及关系表等数据表,从图二数据库ER图可以看出各个表之间的关系以及表与表之间的相互联系,在具体使用中我们通过学生注册的移动终端的MAC地址为该学生的标识,获取与该学生的所有相关消息。
图2 数据库ER图
基于Android的考勤管理软件主要包括5大功能模块:学生注册模块、签到与考勤模块、课程管理模块、教室信息管理模块和Wi-Fi管理模块。其中Wi-Fi管理模块是本软件的基础模块,判断签到学生是否在教室,只有与数据库的教室MAC标识一致,且当前时间与课表时间一致,才能进行正确的签到。
学生注册模块主要负责用户身份验证和将Android移动终端MAC地址与学生绑定。通过身份验证,来保证信息的真实、准确。
签到与考勤模块主要是对学生的到课情况进行收录和统计,学生注册后无需登录,可定时完成指定课程的签到信息的提交。教师和年级辅导员可通过登录,在软件中查看相关签到数据和具体学生信息,这样教师和教务管理者可以通过这些信息来了解当前学生的到课情况,并作出相应的处理,保证教学质量。
课程管理模块和教室信息管理模块是一个辅助功能,主要是提前将课程相关信息、学生信息、教师信息录入系统,而教室信息可有授课老师在课前通过软件录入或手动录入到数据库,当数据录入完成学生可以自动、方便地完成指定课程的签到。同时课程管理模块还提供了当前上课信息判断的功能。
通过Android系统API,我们可以获取到周边Wi-Fi的一些信息,如Wi-Fi信号的强度、强度等级、MAC地址等信息。Wi-Fi管理模块是怎个系统的基础模块,其主要功能是使用系统API搜索该终端周边Wi-Fi信号,获取各个Wi-Fi信号的信息,然后从服务器通过学生课表获取当前学生上课所在教室的MAC地址标识符,并和每个Wi-Fi信号做比较,如果发现有匹配的信息才可进行下一步。
这个模块分为两个部分,分别是学生签到和教工考勤两个部分,在学生签到的实现中,本系统考虑到签到的高效性,利用Android系统内部类AlarmManager设置定时任务,并在程序中编写广播接收者来接收系统发出的广播,使得学生在上课时可以自动签到,而无需自己打开软件签到。
(1)学生签到,即学生上课时间自动签到,它以学生注册模块,Wi-Fi管理模块、课程管理模块和教室信息管理模块为基础,当用户注册后通过学生注册终端的MAC地址,进行信息验证和教室地点、上课时间匹配后,将用户的签到消息发送至服务器。
(2)教工考勤,分为两类用户,教师或辅导员从数据库取出学生签到信息,并分析签到数据。如果是授课教师登陆回生成该教师所授课程的考勤信息,如果是年级辅导员会生成该年级所有课程的考勤信息。该设计使得教师能够专注与自己的课程出勤率来调整教学方案,学院管理者可以勒戒各个年级的出勤情况,做出相应的应对措施。
本系统以Web服务器为数据中转站,实现了学生签到,教工查看到课情况的考勤系统。其中用户可以分为三类,即学生、教工、年级辅导员,不同类的用户可以使用的功能不同,学生可以签到,查看自己的课表,教工可以查看教授课程的考勤信息,年级辅导员可以查看本年级所有课程的到勤状况。其总体系统架构如图3所示。
(1)学生端UI实现
学生端主要包括3个界面(即3个Activity),分别是欢迎界面,注册界面,课表界面。其中欢迎界面用于显示软件的信息和欢迎用户使用。注册界面,课表界面则显示学生课表,该界面是用canvas画图实现的自定义UI界面,将课表信息画到界面上,并可以响应手势进行界面移动,课表界面如图4所示。
图3 系统总体架构
图4 课表界面图
(2)学生端功能实现
学生端功能包含学生注册,课表获取,自动签到或手动签到等功能,当用户打开软件会进入到欢迎界面,然后通过Wi-Fi模块获取该移动终端的MAC标识,与数据库比对将判断是否注册,若已注册将始化课表信息,然后显示课表界面,否则将进入注册界面,带用户注册后进入课表界面,然后程序后尝试匹配上课信息,如果上课信息符合,则进行签到操作。教师课表相关数据使用Android系统内置的SQLite数据库API在本地进行存储,避免每次都要从服务器获取,浪费数据流量,其程序流程图如图5所示。
(1)教师端UI实现
Android教师端的界面主要包含2个,其采用的都是Listview用一个列表来显示课程以及学生考情情况,当点击该课程的上课信息时,会进入第二个界面以列表的形式显示该课程缺勤学生的具体信息,教师可以及时获取到缺勤学生的信息,有效的防止学生逃课。其具体效果如图6所示。
(2)教师端功能实现
Android教师端主要是为了方便教工和辅导员查看学生到课记录,其主要功能为获取课程以及该课程考勤信息,如果是辅导员的话会获取本年级所有课程,然后点击某一课程会显示该课程的详细信息,再次点击会显示缺勤学生的详细信息。在考勤信息与数据库的同步方面则采用开启一个后台服务来操作。在打开软件之后,进程会创建一个服务以便每隔一分钟向数据库请求一次数据,待取到更新数据后重新更新UI界面。
图5 Android学生端流程图
图6 Android教师端UI效果图
(3)Web服务器实现
以LAMP组合来搭建一个免费、开源、高效的Web服务器,该服务器并未编写基于网页的界面,而是为Android学生端和教师端提供数据访问接口,采用HTTP请求、应答进行交互。用户通过Android客户端发送标准的HTTP请求,Apache服务器收到请求后,将请求消息交给PHP脚本程序处理,PHP根据不同的Action来触发不同的程序,从数据库中获取相应的数据后,将数据交由Apache返回给客户端。
本系统使用的多种不同的编程技术,已完成基本的学生签到功能,学生和教师均可以通过界面操作,进行考勤,大大的节约了教师的时间,具有很强的实用性。由于此项目基础设施费用较低廉,使得本系统具有很好的扩展性,此系统将不会局限于统计学生的到课情况,稍加以改装便可应用于中小型企业的人员上。
[1]基于Android的学生考勤管理系统设计与开发.现代电子技术,2014.
[2]基于Android的手机签到系统.计算机与现代化,2014.
[3]高明云.整合搜索手机地图Android平台[M].北京:人民邮电出版社,2009.
[4]董承风,胡庆.基于Android平台的双网双待的研究与设计[J].计算机应用与软件,2012,29(2).
[5]王视环.蜂窝网与GPS相结合的手机混合定位技术——gpsOne[J].信息与电子工程,2004.
李俊(1978-11),男,湖北黄石人,副教授,研究方向为网络管理、智能移动开发
方国康(1994-05),男,湖北恩施人,在读本科,研究方向为Android开发
冯满满(1995-07),男,湖北襄阳人,在读本科,研究方向为Android开发
Student's Attendance;Wi-Fi Location;Checking on Attendance by Mobile Terminal
Design and Implementation of Student Attendance System Based on Android
ZHANG Yue,LI Jun,FANG Guo-kang,FENG Man-man
(College of Computer Science and Technology,Wuhan University of Science and Technology,Wuhan 430065)
1007-1423(2015)31-0008-06
10.3969/j.issn.1007-1423.2015.31.002
张粤(1995-),男,湖北咸宁人,在读本科,研究方向为Android开发
2015-09-01
2015-10-25
高校的学生考勤管理工作一直都是一项耗时、耗力的工作,而且目前我国教师的考勤方式依然是手工操作,效率低下,且实际效果并不理想。研究一种高效、实时的考勤系统很有必要,该系统提出一种包含Android移动客户端(Android端)、Web服务端 (服务端)混合而成基于MAC标识的学生考勤管理系统。使用基于Android平台的移动设备实现自动签到、查询签到记录功能,通过3G网络将学生端考勤数据实时上传至服务器,并用教师端实现考勤数据的动态管理和查看。通过实际应用表明,系统部署后确能实时、宏观的掌握学生出勤信息,为高校学生管理提供有力的支持。
学生考勤;Wi-Fi定位;移动终端考
武汉科技大学大学生科技创新(No.14ZRC099)
Checking on student's attendance is a time-consuming and labor-intensive work in Chinese high school,and what's more,most teachers are still manual operation,the efficiency is low,and the actual effect is unexpected.It is necessary to study a kind of efficient and realtime attendance system.Proposes a kind of student attendance management system which includes Android mobile client(Android),Web (Server)and MAC marking.Uses the mobile device based on the Android platform to achieve automatic registration,check attendance record function,upload the students'attendance data real-time to the server by network,and uses the App to design for teacher to achieve the dynamic management and check the attendance data.Through the practical application,it shows that the system can be deployed in real time and the macro management of students'attendance information,which provides a strong support for the management of college students.