杨帆 王睿
摘要:该文基于iOS [1]平台,设计了一个高等学校在线考勤和统计查询系统,班级考勤负责人通过智能手机安装客户端程序,在确认班级考勤信息以后,通过客户端查询缺勤学生的信息,录入具体的考勤信息后传输到服务器。服务器端负责统计、查询与导出学生的考勤信息,实现实时考勤与无纸化管理。该系统简化了考勤的流程,节省了人力成本,提高了考勤的实时性和实用性。
关键词:iOS平台;学生考勤;智能客户端;无纸化
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)14-0081-03
Abstract: This paper designs a vocational college attendance statistics and online query system based on the iOS platform. The responsible person of class attendance installs the client program through intelligent mobile phone. After confirmation of class attendance information, he can check the students query or absence through the client, and login in specific information and then transmit to the server. The server is responsible for statistics, query and export student attendance information to achieve real-time attendance and paperless management. The system simplifies the attendance process, saves the labor cost, and improves the real-time and practicability of attendance.
Key words: iOS platform; student attendance; smart client; paperless
1 引言
在高等学校,课堂考勤是一个很普遍的现象。现在普遍的课堂考勤流程是班级考勤负责人进行课前点名,对于缺席或者请假的学生进行纸质记录,每周各班级考勤负责人将考勤记录表递交给所属系部,然后由各系部统计各年级各专业各班级的具体考勤数据,最后上交学生管理部门。这种考勤由于采用的是纸质记录再进行统计,有一定的错误率和延时。本文设计的学生考勤系统,包含提供数据存储和查询的服务器端和基于iOS平台的智能手机客户端,通过网络进行数据通信,可以实时完成学生的考勤工作。首先班级考勤负责人只要安装手机客户端,课前查询并录入班级学生的具体考勤数据并提交到服务器。辅导员和各系部可以通过网页查询当前各班级的考勤情况,并支持Excel数据的导出,汇总整个系部的考勤情况。该系统可以有效地减少班级考勤负责人和系部管理人员的工作量,实现数字化考勤和查询统计工作,提高了班级考勤负责人和系部学生管理工作的效率。
2 系统整体架构
学生考勤系统通过智能手机客户端查询和输入考勤信息,通过HTTP协议[2]将数据传输到服务器端,服务器端接收到数据以后进行判断、识别和统计以后保存到数据库。同时Web端提供查询与导出数据的功能。系统采用Client/Server即客户端服务器模式,整体架构如图1所示。
本文设计的学生考勤系统包含的功能模块主要包括智能手机客户端的登录模块、查询模块,增加模块和服务端的查询导出四个部分,各个部分的工作方式如下:打开手机客户端,首先是登录模块,班级考勤负责人的信息已经存储在服务器的数据库中,负责人通过给定的口令登录系统后可以先查询班级請假或者旷课的学生信息,核对学生信息以后,添加该学生的考勤信息,然后提交数据到服务器。辅导员和系部负责人以管理员身份登录系统后可以查询班级和系部的考勤信息,并且可以进行数据的统计与导出,主要流程如图2所示。
3 设计与实现
本系统服务器端采用的是Java Web[3]技术,数据库采用的MySQL[4],客户端用Objective-C语言[5]进行开发,服务器端与客户端网络交互的数据格式为JSON[6]。下面以安徽商贸职业技术学院电子信息工程系为例来进行系统模块设计与实现的讲解。
3.1 数据库设计
本文的数据库中主要有三张表,由于涉及的字段较多,这里只列出主要字段,其中用户表如表1所示,学生表2所示,考勤信息表如表3所示。用户表主要的字段是用户名和密码,该表由所在系部统一录入,主要包含每个班级的考勤负责人、辅导员和系部管理员的登录信息。学生表包含系部所有学生的基本信息,主要有系部、学号、姓名、班级字段,由系部每年开学前提供最新的学生数据,管理员导入到数据库中。考勤信息表用于记录学生事假、病假或者旷课的具体信息,主要有系部、班级、姓名、考勤日期、请假原因等字段,系部每次只需导出该表的信息就可以完成考勤信息的汇总与统计工作。
3.2 客户端功能模块实现
客户端基于iOS平台,在本系统中,所有的界面都是以控制器UIViewController的形式通过导航控制器UINavigationViewController显示出来,每一个界面的顶部都有一个导航条UINavigationBar,上面显示当前界面的主要功能。下面按照考勤的流程分别介绍各个模块功能的实现。
3.2.1登录模块的功能实现
登录界面,如图3所示,由两个输入框UITextField和一个按钮UIButton组成。班级考勤负责人输入自己的用户名和密码后点击登录按钮会发送网络请求去服务端进行验证,服务器查询数据库判断用户是否存在且合法,验证通过以后会跳转到查询界面,如图4所示,同时通过NSUserDefaults保存登录成功的用户名和密码,下次登录时可以取出来直接填充输入框,无需再次手动输入。
3.2.2学生查询功能实现
查询主界面由一个输入框UITextField和按钮UIButton组成,输入班级学生的学号,点击查询按钮会到服务器端的数据库进行信息的查询。如果学号存在且合法,可以查询到该学号所对应的学生信息并显示出来。但为了限制各班级考勤负责人的权限,在查询的时候,将班级考勤负责人所在的系部和班级字段默认作为参数去查询数据库,使其只能查询自己所在班级的学生信息,排除了误操作的可能性。在该界面还有侧滑菜单的实现,显示的内容都是用UITableView来展示,其中左滑菜单如图5所示,显示的是当前登录用户的个人信息,包括登录人员的系部、班级和姓名。右滑菜单如图6所示,可以通过点击对应的UITableViewCell实现更改密码,反馈建议和查看信息操作。
3.2.3学生考勤功能实现
查询成功以后,客户端将查询到的学生信息传递到添加考勤信息的界面,如图7所示。该界面由一个表格控件UITableView和按钮UIButton组成。表格中显示的数据分为2个部分,第一部分是系部、班级、学号、姓名和学期信息,通过传递过来的信息直接填充,不需要考勤人员再次手动输入。第二部分是需要手动输入的部分,为了减小输入的错误概率,提高效率,将需要输入的信息分别以对话框、下拉列表的形式显示,考勤负责人只要通过点选操作就可以完成信息的录入。为了避免考勤人员的误操作,在点击添加按钮进行数据的添加时,以UIAlertController对话框的形式询问班级考勤负责人,是否确认该操作,点击确认才会传输数据到服务器,保存到数据库中。同时会将操作该条信息的负责人信息一起传过去,防止后期核查信息时出现抵赖的情况。至此,客户端的考勤工作完成。
3.3服务端查询导出功能实现
服务端采用Java Web中的JSP和Servlet[7]技术,配合Bootstrap[8]做的网页界面,主要有三个功能:管理员登录,选择查询条件进行考勤信息查询,导出数据与下载功能。
登录界面如图8所示,以分配的账号和密码进行登录成功以后会跳转到查询界面,如图9所示,该界面会提示登录角色的具体系部。在该界面可以选择需要查询的考勤信息的学期和周数,点击查询按钮可以查询该系部一周内所有班级的考勤数据,同时在该界面可以更改默认分配的密码。
选择条件进行查询以后会跳转到显示结果界面,如图10所示。该界面会以表格的形式列出該系部对应学期和周数的学生考勤信息,并用红色字体标注了学生的旷课信息。所有考勤数据在服务器端都进行了汇总与统计,导出数据到Excel并下载,服务器端考勤数据的整理工作完成。
4 结束语
本文设计的基于iOS平台的高等学校学生考勤系统,使得高等学校中的学生考勤工作数字信息化,简化了流程,提高了学生考勤的效率,有益于学生部门的管理工作。目前该系统运行良好,但功能模块仍有改进的空间,在未来会增加更多的功能,如旷课预警、二维码考勤、与教务处系统进行整合,将学生的考勤信息与对学生考评进行关联,为授课教师对学生的评判考评提供一份数字化的参考。
参考文献:
[1] Kwak D H, Ramamurthy K. IOS Resources, Electronic Cooperation and Performance: A Conceptual Model[C]// Hawaii International Conference on System Sciences. IEEE Computer Society, 2011:1-10.
[2] David Gourley,Brian Totty,Marjorie Sayer,et al. HTTP权威指南[M]. 陈涓,赵振平,译.北京:人民邮电出版社.2012.
[3] 孙卫琴. Tomcat与Java Web开发技术详解[M]. 北京:电子工业出版社, 2004.
[4] 国家863中部软件孵化器. MySQL从入门到精通[M]. 北京:人民邮电出版社, 2016.
[5] Scott Knaster,Waqar Malik,Mark Dalrymple. Objective-C基础教程[M]. 周庆成,译. 2版.北京:人民邮电出版社,2013.
[6] T Bray E. The JavaScript Object Notation (JSON) Data Interchange Format[Z]. 2014.
[7] Kurniawan B. Servlet和JSP学习指南[M]. 北京:机械工业出版社, 2013.
[8] Davey H L. Twitter Bootstrap Guide[M]. CreateSpace Independent Publishing Platform, 2015.