張雅瓊, 華正龍
(榆林學(xué)院 信息工程學(xué)院,榆林 719000)
目前各大高校仍然普遍采用傳統(tǒng)的課堂點(diǎn)名的方式來統(tǒng)計(jì)學(xué)生的出勤情況,這種以紙質(zhì)統(tǒng)計(jì)的方式不僅不能避免學(xué)生互相幫忙答到的情況,而且還浪費(fèi)了上課時(shí)間,因此很難對學(xué)生的上課情況做出有效的管理,無法提高教學(xué)質(zhì)量。同時(shí)由于學(xué)生數(shù)量的大幅上升,上課的學(xué)生越來越多,學(xué)生群體特征也多樣化,給考勤工作帶來了極大的不便。因此,設(shè)計(jì)一款替代傳統(tǒng)的課堂點(diǎn)名的考勤軟件是非常具有意義的。
物聯(lián)網(wǎng)時(shí)代,通過物聯(lián)網(wǎng)技術(shù)很多的物體可以接入網(wǎng)絡(luò)進(jìn)行方便統(tǒng)一的管理,根據(jù)學(xué)生手機(jī)的唯一藍(lán)牙地址,教師端手機(jī)可以快速掃描一定范圍內(nèi)的手機(jī)設(shè)備,可以迅速統(tǒng)計(jì)學(xué)生的到課情況,讓教師的考勤工作不再復(fù)雜耗時(shí),從而改善教學(xué)秩序。
系統(tǒng)的主要模塊包括:
(1) 系統(tǒng)登錄
教職工在安裝完本系統(tǒng)后,出于對信息安全的考慮,每次進(jìn)入系統(tǒng)需要登錄驗(yàn)證身份,首次使用的用戶需要先進(jìn)行注冊才能使用,這樣保證了系統(tǒng)數(shù)據(jù)的安全性。
(2) 學(xué)生信息的管理
本系統(tǒng)安裝完成后,使用者需要對學(xué)生的信息進(jìn)行添加,教師可以通過Excel表將學(xué)生的信息導(dǎo)入到系統(tǒng)的數(shù)據(jù)庫中,也可以使用手動(dòng)的方式將學(xué)生的信息添加進(jìn)去。主要包括學(xué)生的姓名、學(xué)號和手機(jī)藍(lán)牙地址。
(3) 課程信息的管理
教師在將學(xué)生信息導(dǎo)入完畢后,可以一鍵自動(dòng)掃描周圍的藍(lán)牙設(shè)備,并將掃描到的設(shè)備展示給教師,教師可以在列表的最下方輸入課程信息,開始考勤。
(4) 考勤信息的管理
開始考勤后,系統(tǒng)會(huì)將未到課的學(xué)生列表展示出來,教師可以根據(jù)實(shí)際情況點(diǎn)擊修改學(xué)生的考勤情況,也可以給考勤不在的學(xué)生發(fā)送短信提醒,同時(shí)可以將考勤情況實(shí)時(shí)導(dǎo)出以電子郵件的形式發(fā)送給學(xué)生管理中心。
(5) 系統(tǒng)信息的備份和還原
教師可以將系統(tǒng)中的學(xué)生信息和考勤信息實(shí)時(shí)的備份到云服務(wù)器中,避免了更換手機(jī)和數(shù)據(jù)丟失帶來的不必要的麻煩,同時(shí)也確保了系統(tǒng)的可用性。系統(tǒng)中的信息更新也可以隨時(shí)上傳到云端,確保信息的準(zhǔn)確性。如果發(fā)生數(shù)據(jù)丟失可以隨時(shí)從云端下載數(shù)據(jù),進(jìn)行數(shù)據(jù)恢復(fù),不想影響系統(tǒng)的工作。
在本系統(tǒng)中,用戶需要注冊登錄成功后,才可以進(jìn)入系統(tǒng)操作添加學(xué)生信息,考勤管理如開始考勤、修改結(jié)果、發(fā)送提醒短信、發(fā)送考勤情況以及備份數(shù)據(jù)(上傳、下載數(shù)據(jù))、查看學(xué)生信息、導(dǎo)出考勤情況等模塊,如圖1所示。

圖1 系統(tǒng)業(yè)務(wù)流程
系統(tǒng)首先判斷用戶是否在本系統(tǒng)中注冊過,注冊過則可以直接登錄,如果沒注冊,需要先注冊,才能登入系統(tǒng)。用戶登錄成功后,可以手動(dòng)或者一鍵導(dǎo)入考勤需要的學(xué)生信息,也可以查看已經(jīng)導(dǎo)入的學(xué)生信息,當(dāng)用戶導(dǎo)入信息成功后,可以使用系統(tǒng)的考勤功能來對上課的學(xué)生進(jìn)行考勤。考勤完成后用戶可以查看或修改考勤結(jié)果,也可以將考勤信息發(fā)送給學(xué)工部,或者將系統(tǒng)中的信息備份到云服務(wù)器中。整體用例如圖2所示。
本系統(tǒng)的設(shè)計(jì)分為3層:展示層,業(yè)務(wù)邏輯層和數(shù)據(jù)層。展示層是用來展示獲取的到信息和用戶的操作界面,主要是由Android布局界面和圖片組成,響應(yīng)用戶的操作給邏輯層。業(yè)務(wù)邏輯層是對用戶的操作做出處理的地方,同時(shí)也是數(shù)據(jù)層和展示層數(shù)據(jù)交互的發(fā)起者和結(jié)束者。它將展示層用戶發(fā)起的請求處理后,從數(shù)據(jù)層獲取數(shù)據(jù)傳送回展示層展

圖2 系統(tǒng)整體用例圖
示給用戶。數(shù)據(jù)層是系統(tǒng)的數(shù)據(jù)存儲(chǔ)的地址,它包括兩部分,一是本地的SQLite數(shù)據(jù)庫,主要負(fù)責(zé)存儲(chǔ)系統(tǒng)所使用的數(shù)據(jù),他是展示層從系統(tǒng)中獲取數(shù)據(jù)的主要來源。二是云端數(shù)據(jù)庫,將數(shù)據(jù)處理完成后要及時(shí)將系統(tǒng)中的重要數(shù)據(jù)備份都云端,防止系統(tǒng)出現(xiàn)安全問題,造成數(shù)據(jù)的流逝,在出現(xiàn)問題后,及時(shí)從云端下載數(shù)據(jù)恢復(fù)本地?cái)?shù)據(jù)庫的完整性,確保系統(tǒng)的可用性。
系統(tǒng)的功能模塊圖如圖3所示。

圖3 系統(tǒng)功能模塊圖
(1) 藍(lán)牙模塊的開發(fā)
Android藍(lán)牙模塊用到的類和方法比較多,也比較復(fù)雜本系統(tǒng)所用的類主要有三個(gè):BlueToothAdapter類、BlueToothSocket接口和BlueToothDevice類,他們包含了Android藍(lán)牙模塊開發(fā)所要使用的大部分方法和對象。而且使用起來比較方便,不用導(dǎo)入外部類庫文件就可以使用。但是在使用前一定要在清單文件中加入使用藍(lán)牙的權(quán)限。
(2) Excel文件導(dǎo)入導(dǎo)出的實(shí)現(xiàn)
在Android中沒有對Excel文件操作的jar包和類庫,必須要使用第三方的jxl.jar來導(dǎo)入Excel文件。將學(xué)生考勤信息用Excel表單的形式倒出到SD卡上,使用jxl.jar包中帶的方法,ExcleUtils類中的導(dǎo)入導(dǎo)出方法將數(shù)據(jù)導(dǎo)出。
(3) 考勤文件備份到云服務(wù)器的實(shí)現(xiàn)
文件備份其實(shí)就是將本地文件的上傳和網(wǎng)絡(luò)文件的下載。國內(nèi)有很多的網(wǎng)絡(luò)服務(wù)商提供這種服務(wù),經(jīng)過對比后發(fā)現(xiàn)阿里云相對于其他的服務(wù)有著集成簡單,支持?jǐn)帱c(diǎn)下載,支持文件的自動(dòng)去重的優(yōu)點(diǎn)。在集成時(shí)要下載它最新的SDK文件,要注意系統(tǒng)的AccessKey和AccessID的準(zhǔn)確性,及自己的本地文件的路經(jīng),否則會(huì)出現(xiàn)上傳下載失敗的現(xiàn)象??梢愿鶕?jù)他的回調(diào)來確定上傳下載文件的具體情況。主要用到AliActivity類,aliyun-oss-sdk-android-2.3.jar, Okhttputils框架,putObjectRequest類和getObjetRequest類,getResult.getObjectContent(),getDatabasePath()方法等。
系統(tǒng)的整體E-R圖如圖4所示。

圖4 數(shù)據(jù)庫整體E-R圖
本地?cái)?shù)據(jù)庫SQLite的實(shí)現(xiàn):
(1) 先在項(xiàng)目進(jìn)行配置
(2) 創(chuàng)建各個(gè)類,在類外加注解@Entity,屬性加注解@Property,須設(shè)置id
(3) 點(diǎn)擊Make Project生成表
(4) 對表進(jìn)行操作,如增加(insert),刪除(delete),查找(loadAll),修改(updata)
用戶可以在登錄成功進(jìn)入主頁面后點(diǎn)擊掃描周圍藍(lán)牙設(shè)備的按鈕,打開自己的藍(lán)牙模塊掃描周圍的藍(lán)牙設(shè)備,來與數(shù)據(jù)庫中存儲(chǔ)的學(xué)生信息作比對,當(dāng)藍(lán)牙掃描到周圍的藍(lán)牙設(shè)備時(shí)會(huì)將結(jié)果展示給用戶,用戶需要手動(dòng)輸入課程信息,點(diǎn)擊點(diǎn)名按鈕來進(jìn)行考勤。主要模塊如圖5所示。


圖5 考勤模塊測試
針對現(xiàn)在各大高校的考勤現(xiàn)狀,基于Android系統(tǒng)的藍(lán)牙模塊,設(shè)計(jì)了一款藍(lán)牙課堂考勤系統(tǒng),可以通過掃描周圍的藍(lán)牙設(shè)備來與數(shù)據(jù)庫中的學(xué)生信息進(jìn)行匹配,從而得出課堂上學(xué)生的考勤情況。與傳統(tǒng)考勤方式相比,本系統(tǒng)有著方便快捷的優(yōu)點(diǎn),同時(shí)登錄模塊和數(shù)據(jù)備份模塊也保證了系統(tǒng)的安全性,從而提高了教學(xué)效率。但是系統(tǒng)仍然存在一些不足之處,如不能同時(shí)支持學(xué)生使用使得學(xué)生不能及時(shí)了解自己的考勤成績,這就需要后續(xù)完善系統(tǒng)。