张雅琼, 华正龙
(榆林学院 信息工程学院,榆林 719000)
目前各大高校仍然普遍采用传统的课堂点名的方式来统计学生的出勤情况,这种以纸质统计的方式不仅不能避免学生互相帮忙答到的情况,而且还浪费了上课时间,因此很难对学生的上课情况做出有效的管理,无法提高教学质量。同时由于学生数量的大幅上升,上课的学生越来越多,学生群体特征也多样化,给考勤工作带来了极大的不便。因此,设计一款替代传统的课堂点名的考勤软件是非常具有意义的。
物联网时代,通过物联网技术很多的物体可以接入网络进行方便统一的管理,根据学生手机的唯一蓝牙地址,教师端手机可以快速扫描一定范围内的手机设备,可以迅速统计学生的到课情况,让教师的考勤工作不再复杂耗时,从而改善教学秩序。
系统的主要模块包括:
(1) 系统登录
教职工在安装完本系统后,出于对信息安全的考虑,每次进入系统需要登录验证身份,首次使用的用户需要先进行注册才能使用,这样保证了系统数据的安全性。
(2) 学生信息的管理
本系统安装完成后,使用者需要对学生的信息进行添加,教师可以通过Excel表将学生的信息导入到系统的数据库中,也可以使用手动的方式将学生的信息添加进去。主要包括学生的姓名、学号和手机蓝牙地址。
(3) 课程信息的管理
教师在将学生信息导入完毕后,可以一键自动扫描周围的蓝牙设备,并将扫描到的设备展示给教师,教师可以在列表的最下方输入课程信息,开始考勤。
(4) 考勤信息的管理
开始考勤后,系统会将未到课的学生列表展示出来,教师可以根据实际情况点击修改学生的考勤情况,也可以给考勤不在的学生发送短信提醒,同时可以将考勤情况实时导出以电子邮件的形式发送给学生管理中心。
(5) 系统信息的备份和还原
教师可以将系统中的学生信息和考勤信息实时的备份到云服务器中,避免了更换手机和数据丢失带来的不必要的麻烦,同时也确保了系统的可用性。系统中的信息更新也可以随时上传到云端,确保信息的准确性。如果发生数据丢失可以随时从云端下载数据,进行数据恢复,不想影响系统的工作。
在本系统中,用户需要注册登录成功后,才可以进入系统操作添加学生信息,考勤管理如开始考勤、修改结果、发送提醒短信、发送考勤情况以及备份数据(上传、下载数据)、查看学生信息、导出考勤情况等模块,如图1所示。
图1 系统业务流程
系统首先判断用户是否在本系统中注册过,注册过则可以直接登录,如果没注册,需要先注册,才能登入系统。用户登录成功后,可以手动或者一键导入考勤需要的学生信息,也可以查看已经导入的学生信息,当用户导入信息成功后,可以使用系统的考勤功能来对上课的学生进行考勤。考勤完成后用户可以查看或修改考勤结果,也可以将考勤信息发送给学工部,或者将系统中的信息备份到云服务器中。整体用例如图2所示。
本系统的设计分为3层:展示层,业务逻辑层和数据层。展示层是用来展示获取的到信息和用户的操作界面,主要是由Android布局界面和图片组成,响应用户的操作给逻辑层。业务逻辑层是对用户的操作做出处理的地方,同时也是数据层和展示层数据交互的发起者和结束者。它将展示层用户发起的请求处理后,从数据层获取数据传送回展示层展
图2 系统整体用例图
示给用户。数据层是系统的数据存储的地址,它包括两部分,一是本地的SQLite数据库,主要负责存储系统所使用的数据,他是展示层从系统中获取数据的主要来源。二是云端数据库,将数据处理完成后要及时将系统中的重要数据备份都云端,防止系统出现安全问题,造成数据的流逝,在出现问题后,及时从云端下载数据恢复本地数据库的完整性,确保系统的可用性。
系统的功能模块图如图3所示。
图3 系统功能模块图
(1) 蓝牙模块的开发
Android蓝牙模块用到的类和方法比较多,也比较复杂本系统所用的类主要有三个:BlueToothAdapter类、BlueToothSocket接口和BlueToothDevice类,他们包含了Android蓝牙模块开发所要使用的大部分方法和对象。而且使用起来比较方便,不用导入外部类库文件就可以使用。但是在使用前一定要在清单文件中加入使用蓝牙的权限。
(2) Excel文件导入导出的实现
在Android中没有对Excel文件操作的jar包和类库,必须要使用第三方的jxl.jar来导入Excel文件。将学生考勤信息用Excel表单的形式倒出到SD卡上,使用jxl.jar包中带的方法,ExcleUtils类中的导入导出方法将数据导出。
(3) 考勤文件备份到云服务器的实现
文件备份其实就是将本地文件的上传和网络文件的下载。国内有很多的网络服务商提供这种服务,经过对比后发现阿里云相对于其他的服务有着集成简单,支持断点下载,支持文件的自动去重的优点。在集成时要下载它最新的SDK文件,要注意系统的AccessKey和AccessID的准确性,及自己的本地文件的路经,否则会出现上传下载失败的现象。可以根据他的回调来确定上传下载文件的具体情况。主要用到AliActivity类,aliyun-oss-sdk-android-2.3.jar, Okhttputils框架,putObjectRequest类和getObjetRequest类,getResult.getObjectContent(),getDatabasePath()方法等。
系统的整体E-R图如图4所示。
图4 数据库整体E-R图
本地数据库SQLite的实现:
(1) 先在项目进行配置
(2) 创建各个类,在类外加注解@Entity,属性加注解@Property,须设置id
(3) 点击Make Project生成表
(4) 对表进行操作,如增加(insert),删除(delete),查找(loadAll),修改(updata)
用户可以在登录成功进入主页面后点击扫描周围蓝牙设备的按钮,打开自己的蓝牙模块扫描周围的蓝牙设备,来与数据库中存储的学生信息作比对,当蓝牙扫描到周围的蓝牙设备时会将结果展示给用户,用户需要手动输入课程信息,点击点名按钮来进行考勤。主要模块如图5所示。
图5 考勤模块测试
针对现在各大高校的考勤现状,基于Android系统的蓝牙模块,设计了一款蓝牙课堂考勤系统,可以通过扫描周围的蓝牙设备来与数据库中的学生信息进行匹配,从而得出课堂上学生的考勤情况。与传统考勤方式相比,本系统有着方便快捷的优点,同时登录模块和数据备份模块也保证了系统的安全性,从而提高了教学效率。但是系统仍然存在一些不足之处,如不能同时支持学生使用使得学生不能及时了解自己的考勤成绩,这就需要后续完善系统。