楊帆 王睿
摘要:該文基于iOS [1]平臺,設(shè)計(jì)了一個(gè)高等學(xué)校在線考勤和統(tǒng)計(jì)查詢系統(tǒng),班級考勤負(fù)責(zé)人通過智能手機(jī)安裝客戶端程序,在確認(rèn)班級考勤信息以后,通過客戶端查詢?nèi)鼻趯W(xué)生的信息,錄入具體的考勤信息后傳輸?shù)椒?wù)器。服務(wù)器端負(fù)責(zé)統(tǒng)計(jì)、查詢與導(dǎo)出學(xué)生的考勤信息,實(shí)現(xiàn)實(shí)時(shí)考勤與無紙化管理。該系統(tǒng)簡化了考勤的流程,節(jié)省了人力成本,提高了考勤的實(shí)時(shí)性和實(shí)用性。
關(guān)鍵詞:iOS平臺;學(xué)生考勤;智能客戶端;無紙化
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼: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 引言
在高等學(xué)校,課堂考勤是一個(gè)很普遍的現(xiàn)象?,F(xiàn)在普遍的課堂考勤流程是班級考勤負(fù)責(zé)人進(jìn)行課前點(diǎn)名,對于缺席或者請假的學(xué)生進(jìn)行紙質(zhì)記錄,每周各班級考勤負(fù)責(zé)人將考勤記錄表遞交給所屬系部,然后由各系部統(tǒng)計(jì)各年級各專業(yè)各班級的具體考勤數(shù)據(jù),最后上交學(xué)生管理部門。這種考勤由于采用的是紙質(zhì)記錄再進(jìn)行統(tǒng)計(jì),有一定的錯(cuò)誤率和延時(shí)。本文設(shè)計(jì)的學(xué)生考勤系統(tǒng),包含提供數(shù)據(jù)存儲和查詢的服務(wù)器端和基于iOS平臺的智能手機(jī)客戶端,通過網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)通信,可以實(shí)時(shí)完成學(xué)生的考勤工作。首先班級考勤負(fù)責(zé)人只要安裝手機(jī)客戶端,課前查詢并錄入班級學(xué)生的具體考勤數(shù)據(jù)并提交到服務(wù)器。輔導(dǎo)員和各系部可以通過網(wǎng)頁查詢當(dāng)前各班級的考勤情況,并支持Excel數(shù)據(jù)的導(dǎo)出,匯總整個(gè)系部的考勤情況。該系統(tǒng)可以有效地減少班級考勤負(fù)責(zé)人和系部管理人員的工作量,實(shí)現(xiàn)數(shù)字化考勤和查詢統(tǒng)計(jì)工作,提高了班級考勤負(fù)責(zé)人和系部學(xué)生管理工作的效率。
2 系統(tǒng)整體架構(gòu)
學(xué)生考勤系統(tǒng)通過智能手機(jī)客戶端查詢和輸入考勤信息,通過HTTP協(xié)議[2]將數(shù)據(jù)傳輸?shù)椒?wù)器端,服務(wù)器端接收到數(shù)據(jù)以后進(jìn)行判斷、識別和統(tǒng)計(jì)以后保存到數(shù)據(jù)庫。同時(shí)Web端提供查詢與導(dǎo)出數(shù)據(jù)的功能。系統(tǒng)采用Client/Server即客戶端服務(wù)器模式,整體架構(gòu)如圖1所示。
本文設(shè)計(jì)的學(xué)生考勤系統(tǒng)包含的功能模塊主要包括智能手機(jī)客戶端的登錄模塊、查詢模塊,增加模塊和服務(wù)端的查詢導(dǎo)出四個(gè)部分,各個(gè)部分的工作方式如下:打開手機(jī)客戶端,首先是登錄模塊,班級考勤負(fù)責(zé)人的信息已經(jīng)存儲在服務(wù)器的數(shù)據(jù)庫中,負(fù)責(zé)人通過給定的口令登錄系統(tǒng)后可以先查詢班級請假或者曠課的學(xué)生信息,核對學(xué)生信息以后,添加該學(xué)生的考勤信息,然后提交數(shù)據(jù)到服務(wù)器。輔導(dǎo)員和系部負(fù)責(zé)人以管理員身份登錄系統(tǒng)后可以查詢班級和系部的考勤信息,并且可以進(jìn)行數(shù)據(jù)的統(tǒng)計(jì)與導(dǎo)出,主要流程如圖2所示。
3 設(shè)計(jì)與實(shí)現(xiàn)
本系統(tǒng)服務(wù)器端采用的是Java Web[3]技術(shù),數(shù)據(jù)庫采用的MySQL[4],客戶端用Objective-C語言[5]進(jìn)行開發(fā),服務(wù)器端與客戶端網(wǎng)絡(luò)交互的數(shù)據(jù)格式為JSON[6]。下面以安徽商貿(mào)職業(yè)技術(shù)學(xué)院電子信息工程系為例來進(jìn)行系統(tǒng)模塊設(shè)計(jì)與實(shí)現(xiàn)的講解。
3.1 數(shù)據(jù)庫設(shè)計(jì)
本文的數(shù)據(jù)庫中主要有三張表,由于涉及的字段較多,這里只列出主要字段,其中用戶表如表1所示,學(xué)生表2所示,考勤信息表如表3所示。用戶表主要的字段是用戶名和密碼,該表由所在系部統(tǒng)一錄入,主要包含每個(gè)班級的考勤負(fù)責(zé)人、輔導(dǎo)員和系部管理員的登錄信息。學(xué)生表包含系部所有學(xué)生的基本信息,主要有系部、學(xué)號、姓名、班級字段,由系部每年開學(xué)前提供最新的學(xué)生數(shù)據(jù),管理員導(dǎo)入到數(shù)據(jù)庫中。考勤信息表用于記錄學(xué)生事假、病假或者曠課的具體信息,主要有系部、班級、姓名、考勤日期、請假原因等字段,系部每次只需導(dǎo)出該表的信息就可以完成考勤信息的匯總與統(tǒng)計(jì)工作。
3.2 客戶端功能模塊實(shí)現(xiàn)
客戶端基于iOS平臺,在本系統(tǒng)中,所有的界面都是以控制器UIViewController的形式通過導(dǎo)航控制器UINavigationViewController顯示出來,每一個(gè)界面的頂部都有一個(gè)導(dǎo)航條UINavigationBar,上面顯示當(dāng)前界面的主要功能。下面按照考勤的流程分別介紹各個(gè)模塊功能的實(shí)現(xiàn)。
3.2.1登錄模塊的功能實(shí)現(xiàn)
登錄界面,如圖3所示,由兩個(gè)輸入框UITextField和一個(gè)按鈕UIButton組成。班級考勤負(fù)責(zé)人輸入自己的用戶名和密碼后點(diǎn)擊登錄按鈕會發(fā)送網(wǎng)絡(luò)請求去服務(wù)端進(jìn)行驗(yàn)證,服務(wù)器查詢數(shù)據(jù)庫判斷用戶是否存在且合法,驗(yàn)證通過以后會跳轉(zhuǎn)到查詢界面,如圖4所示,同時(shí)通過NSUserDefaults保存登錄成功的用戶名和密碼,下次登錄時(shí)可以取出來直接填充輸入框,無需再次手動輸入。
3.2.2學(xué)生查詢功能實(shí)現(xiàn)
查詢主界面由一個(gè)輸入框UITextField和按鈕UIButton組成,輸入班級學(xué)生的學(xué)號,點(diǎn)擊查詢按鈕會到服務(wù)器端的數(shù)據(jù)庫進(jìn)行信息的查詢。如果學(xué)號存在且合法,可以查詢到該學(xué)號所對應(yīng)的學(xué)生信息并顯示出來。但為了限制各班級考勤負(fù)責(zé)人的權(quán)限,在查詢的時(shí)候,將班級考勤負(fù)責(zé)人所在的系部和班級字段默認(rèn)作為參數(shù)去查詢數(shù)據(jù)庫,使其只能查詢自己所在班級的學(xué)生信息,排除了誤操作的可能性。在該界面還有側(cè)滑菜單的實(shí)現(xiàn),顯示的內(nèi)容都是用UITableView來展示,其中左滑菜單如圖5所示,顯示的是當(dāng)前登錄用戶的個(gè)人信息,包括登錄人員的系部、班級和姓名。右滑菜單如圖6所示,可以通過點(diǎn)擊對應(yīng)的UITableViewCell實(shí)現(xiàn)更改密碼,反饋建議和查看信息操作。
3.2.3學(xué)生考勤功能實(shí)現(xiàn)
查詢成功以后,客戶端將查詢到的學(xué)生信息傳遞到添加考勤信息的界面,如圖7所示。該界面由一個(gè)表格控件UITableView和按鈕UIButton組成。表格中顯示的數(shù)據(jù)分為2個(gè)部分,第一部分是系部、班級、學(xué)號、姓名和學(xué)期信息,通過傳遞過來的信息直接填充,不需要考勤人員再次手動輸入。第二部分是需要手動輸入的部分,為了減小輸入的錯(cuò)誤概率,提高效率,將需要輸入的信息分別以對話框、下拉列表的形式顯示,考勤負(fù)責(zé)人只要通過點(diǎn)選操作就可以完成信息的錄入。為了避免考勤人員的誤操作,在點(diǎn)擊添加按鈕進(jìn)行數(shù)據(jù)的添加時(shí),以UIAlertController對話框的形式詢問班級考勤負(fù)責(zé)人,是否確認(rèn)該操作,點(diǎn)擊確認(rèn)才會傳輸數(shù)據(jù)到服務(wù)器,保存到數(shù)據(jù)庫中。同時(shí)會將操作該條信息的負(fù)責(zé)人信息一起傳過去,防止后期核查信息時(shí)出現(xiàn)抵賴的情況。至此,客戶端的考勤工作完成。
3.3服務(wù)端查詢導(dǎo)出功能實(shí)現(xiàn)
服務(wù)端采用Java Web中的JSP和Servlet[7]技術(shù),配合Bootstrap[8]做的網(wǎng)頁界面,主要有三個(gè)功能:管理員登錄,選擇查詢條件進(jìn)行考勤信息查詢,導(dǎo)出數(shù)據(jù)與下載功能。
登錄界面如圖8所示,以分配的賬號和密碼進(jìn)行登錄成功以后會跳轉(zhuǎn)到查詢界面,如圖9所示,該界面會提示登錄角色的具體系部。在該界面可以選擇需要查詢的考勤信息的學(xué)期和周數(shù),點(diǎn)擊查詢按鈕可以查詢該系部一周內(nèi)所有班級的考勤數(shù)據(jù),同時(shí)在該界面可以更改默認(rèn)分配的密碼。
選擇條件進(jìn)行查詢以后會跳轉(zhuǎn)到顯示結(jié)果界面,如圖10所示。該界面會以表格的形式列出該系部對應(yīng)學(xué)期和周數(shù)的學(xué)生考勤信息,并用紅色字體標(biāo)注了學(xué)生的曠課信息。所有考勤數(shù)據(jù)在服務(wù)器端都進(jìn)行了匯總與統(tǒng)計(jì),導(dǎo)出數(shù)據(jù)到Excel并下載,服務(wù)器端考勤數(shù)據(jù)的整理工作完成。
4 結(jié)束語
本文設(shè)計(jì)的基于iOS平臺的高等學(xué)校學(xué)生考勤系統(tǒng),使得高等學(xué)校中的學(xué)生考勤工作數(shù)字信息化,簡化了流程,提高了學(xué)生考勤的效率,有益于學(xué)生部門的管理工作。目前該系統(tǒng)運(yùn)行良好,但功能模塊仍有改進(jìn)的空間,在未來會增加更多的功能,如曠課預(yù)警、二維碼考勤、與教務(wù)處系統(tǒng)進(jìn)行整合,將學(xué)生的考勤信息與對學(xué)生考評進(jìn)行關(guān)聯(lián),為授課教師對學(xué)生的評判考評提供一份數(shù)字化的參考。
參考文獻(xiàn):
[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權(quán)威指南[M]. 陳涓,趙振平,譯.北京:人民郵電出版社.2012.
[3] 孫衛(wèi)琴. Tomcat與Java Web開發(fā)技術(shù)詳解[M]. 北京:電子工業(yè)出版社, 2004.
[4] 國家863中部軟件孵化器. MySQL從入門到精通[M]. 北京:人民郵電出版社, 2016.
[5] Scott Knaster,Waqar Malik,Mark Dalrymple. Objective-C基礎(chǔ)教程[M]. 周慶成,譯. 2版.北京:人民郵電出版社,2013.
[6] T Bray E. The JavaScript Object Notation (JSON) Data Interchange Format[Z]. 2014.
[7] Kurniawan B. Servlet和JSP學(xué)習(xí)指南[M]. 北京:機(jī)械工業(yè)出版社, 2013.
[8] Davey H L. Twitter Bootstrap Guide[M]. CreateSpace Independent Publishing Platform, 2015.