基于安卓的高校考勤管理系统的设计与实现
2015-03-11杜传红刘立才宋远程阳瑞新
杜传红 刘立才 宋远程 阳瑞新
(1、2、3、4.安顺学院电子与信息工程学院,贵州 安顺市561000)
在高校教学过程中,课堂考勤是日常教学管理工作的重要环节。传统的纸笔记录方法,不便于任课教师和相关管理部门做学生考勤统计。目前,替代传统考勤登记的技术也日趋成熟,如采用刷卡、手机蓝牙考勤和人脸识别等技术,但实践证明此类方法不适合用在过着集体生活的在校学生身上或者具有成本过高等缺点。由于安卓手机操作系统市场占有率极高和Android平台本身的开放性和友好性,本设计开发了一款基于Android手机操作系统的高校考勤管理系统[1-2]。本管理系统教师只需在Android手机上下载安装手机客户端,考勤数据就可以实时传递到服务器[3],方便班主任实时了解本班出勤情况和任课教师期末对考勤进行统计。同时,由于本系统在考勤过程中,学生的个人照片将以突出的方式显示在指定位置,彻底杜绝了代签到、请人上课等情况发生。
1.系统开发环境
1.1 Eclipse
使用Eclipse做Android开发,需要先在Eclipse上安装ADT(Android Development Tools)插件。
Eclipse源于来自IBM 的一点代码,是一种基于Java的可扩展开源开发平台[4]。就其自身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境[5]。
1.2 My SQL数据库
本设计后台数据库基于My SQL5.6,用来存放考勤表班级信息,包括班级学生的姓名(name),年级(year),学号(num)、对应编号(id)、专业(class)、考勤情况(is Checked)、考勤的日期时间(date)和课程科目(subject)等。
1.3 基于安卓的SQLite数据库
作为手机客户端的本地数据库,SQLite包含在一个相对小的C库中,它遵守ACID(数据库管理的四个基本要素)关系数据库管理系统,不需要依赖第三方软件就可以很好地在Android操作系统上运行。
1.4 Tomcat服务器
Tomcat服务器是一个轻量级Web应用服务器,源代码是免费开放的,在中小型系统和并发访问用户不是很多的场合下被普遍使用。
2.考勤管理系统功能需求分析
2.1 硬件需求分析
本管理系统硬件实现需要手机系统为Android 2.3.3及其以上版本,内存512M以上。同时需要普通台式机充当服务器。
2.2 非功能性需求
本系统基于C/S架构,使用人员为全体教师及教学管理人员,使用条件为手机客户端通过无线网络和服务器相连接[6]。基于这些特征,提出非功能性需求。
如系统运行流畅,不拖沓;系统兼容性好,可移植性强;Tomcat服务器可以安装在Linux、Unix和Windows下,系统移植不需要重新编码;系统可扩展性强等。
2.3 功能需求分析
考勤客户端应该能完成三大功能:搜索出具体专业班级、能够实现该班级语音点名和查看缺勤记录情况。
3.终端信息管理系统的研发
3.1 系统功能的实现依据及技术方法
该考勤管理客户端是基于安卓操作系统开发的,由于Android的系统架构采用了分层架构的思想,从上层到底层共包括四层,分别是应用程序层、应用框架层、系统库和Linux内核[7]。这样只需在Eclipse框架下安装ADT(Android Development Tools)插件,就可以搭建Android开发环境,从而进行Android应用程序的开发。
1 管理系统功能流程示意图
考勤管理系统客户端主要提供语音点名,班级人员查询,缺勤人员记录表三项功能,其功能流程示意图如图1所示。
3.2 系统功能模块的开发
(1)搜索功能模块。
本模块实现了班级人员查询功能。需要将输入搜索的年级(year)及专业(class)信息上传至服务器,服务器搜索符合条件的班级信息,并返还给考勤客户端。班级搜索查询功能实现框图如图2所示。
2 班级搜索查询功能实现框图
搜索功能的实现代码是由SeekActivity.java和activity_seek.xml组成的,实现在本地数据库内模糊搜索,其关键代码如图3所示。
图3 数据库内模糊搜索班级程序代码
(2)语音点名功能。
本功能模块可以语音播放班级学生学号(id)和姓名(name),同时显示出学生的相片。具体按照学号由小到大的顺序逐个进行语音点名,同时实行考勤记录(如果学生喊到,考勤成功,无需操作;如果无学生喊到,考勤失败,实行记录操作),最后将考勤情况存入本地SQLite数据库中,语音考勤功能实现框图如图4所示。
图4 语音考勤功能实现框图
语音点名是本考勤系统中重要一个环节。它的后台处理是利用系统中的tts控件,经实例化后,将文字信息转成语音输出,利用线程对学号姓名逐个进行语音输出,其实现代码如下图5所示。
图5 语音点名线程代码
(3)查看缺勤人员列表功能。
查看缺勤人员情况,需进入考勤页面,先判断本地数据库是否有数据,如果没有自动向服务器请求数据,并返回考勤日期的一个String类型的json数据,里面包含了很多以数列一样排序的数据。通过json解析后就可以得到日期(date)、未到人姓名(name)、年级(year)、专业(class)这些数据。查看缺勤人员情况表功能实现框图如图6所示。
图6 查看缺勤人员情况表功能框图
其中,从数据库调用数据查看缺勤人员列表的关键代码如图7所示。
图7 调用缺勤人员程序代码
3.3 数据库的物理结构设计
根据考勤系统的需求,本地平台SQLite数据库和tomcat服务器都需要具有专业表、班级信息表和考勤情况表。本考勤管理系统主要用到的数据库表结构有:
(1)专业表包括了两个字段:学校的所有专业名称(class)和其对应的专业号(id),id是int类型,无长度限定,不可以为空,是主键;class是varchar类型,无长度限定,不能为空。
(2)班级信息表包括:该班级学生的姓名(name),年级(year),学号(num)、对应编号(id)、专业(class)。id是int类型,没有规定长度,不可以为空,是主键;class、num、name和year都是varchar类型,没有规定长度,不可以为空。
(3)考勤班级信息表包括:该班级学生的姓名(name),年级(year),学号(num)、对应编号(id)、专业(class)、考勤情况(is Checked)、考勤的日期时间(date)和科目(subject)。
4 系统测试
4.1 考勤系统主界面
考勤管理系统开启后的第一个界面是主界面(Main Acitivity),它是Fragment Index界面下两个tab(语音考勤、考勤记录)按钮,界面如图8所示。当点击考勤记录按钮,该按钮颜色由灰色变为橙色,并跳转到Fragment My界面。
界面(MainAcitiviy)中的FragmentIndex界面
4.2 搜索界面
搜索(SeekAcitivity)界面是搜索专业的界面,由标题栏、快速搜索栏、专业栏组成。标题栏上有个返回键,点击后会回到之前的MainActivity界面。整个快速搜索栏就相当于一个按钮,当点击时候就会弹出一个覆盖了整个手机屏幕的PopWindow(一个安卓窗口式控件)。而其下就是专业栏,因数据有限,只显示了3个专业。如图9所示。
图9 搜索界面视图(SeekActivity)
4.3 语音点名播报
搜索到想要点名的班级后,就可以进行语音点名,同时显示相片以及相关信息防止代签,该功能视图界面如图10所示。该界面由标题栏、ListView控件(由学生学号、姓名和签到情况组成)和底部的控制栏组成。标题栏中有一个返回按钮用于返回之前的MainAcitivity界面。控制栏中有3个按钮,第一个按钮点击后是重新语音播报,第2个按钮是实现播放或暂停播报,第3个按钮是提交考勤结果,考勤结束后,点击提交按钮,所有数据就会保存在本应用的SQLite数据库中。
图10 语音点名视图(Speech Activity)
图11 缺勤记录视图(FragmentMy)
4.4 缺勤人员查看
当在MainActivity的tab按钮中点击考勤记录就会进入缺勤人员记录的FragmentMy界面,界面视图如图11所示。在这个界面里可以通过点击那些小本子来重新编辑考勤记录或者长按来删除记录。
结语
有效的课堂考勤可以提高和改善教学活动质量,减轻教师工作量。本考勤管理系统利用移动平台中应用最广泛的安卓系统,在手机上搭建便捷而高效的课堂考勤管理系统客户端,方便教师和教学管理人员及时准确的统计出学生考勤信息,极大的方便了高校课堂考勤,在高校有很好的推广价值。
[1]汪永松·Android平台开发之旅(第2版)[M].北京:机械工业出版社,2012.
[2]王靖娜·基于Andorid的学生考勤管理系统设计与开发[J].现代电子技术,2014,37(8):99-101.
[3]金巧芳,韦玉生·分布式考勤系统的设计与实施[J].电子技术与软件工程,2014(9):87-88.
[4]丰华,于松波·神兵利器Eclipse开发技术详解[M].北京:中国铁道出版社,2010.
[5]秦长春·WEB快速应用开发框架的研究[D].重庆大学,2008.
[6]张锋,马学朝,李凯亮·基于嵌入式系统的创新实验室管理系统设计与实现[J].微型机与应用,2015,34(2):97-99.
[7]李玉洁·基于ARMll的Android的操作系统的移植[J].科学时代,2012(1):151-152.