張雅瓊, 華正龍
(榆林學(xué)院 信息工程學(xué)院,榆林 719000)
目前各大高校仍然普遍采用傳統(tǒng)的課堂點(diǎn)名的方式來(lái)統(tǒng)計(jì)學(xué)生的出勤情況,這種以紙質(zhì)統(tǒng)計(jì)的方式不僅不能避免學(xué)生互相幫忙答到的情況,而且還浪費(fèi)了上課時(shí)間,因此很難對(duì)學(xué)生的上課情況做出有效的管理,無(wú)法提高教學(xué)質(zhì)量。同時(shí)由于學(xué)生數(shù)量的大幅上升,上課的學(xué)生越來(lái)越多,學(xué)生群體特征也多樣化,給考勤工作帶來(lái)了極大的不便。因此,設(shè)計(jì)一款替代傳統(tǒng)的課堂點(diǎn)名的考勤軟件是非常具有意義的。
物聯(lián)網(wǎng)時(shí)代,通過(guò)物聯(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é)生的到課情況,讓教師的考勤工作不再?gòu)?fù)雜耗時(shí),從而改善教學(xué)秩序。
系統(tǒng)的主要模塊包括:
(1) 系統(tǒng)登錄
教職工在安裝完本系統(tǒng)后,出于對(duì)信息安全的考慮,每次進(jìn)入系統(tǒng)需要登錄驗(yàn)證身份,首次使用的用戶需要先進(jìn)行注冊(cè)才能使用,這樣保證了系統(tǒng)數(shù)據(jù)的安全性。
(2) 學(xué)生信息的管理
本系統(tǒng)安裝完成后,使用者需要對(duì)學(xué)生的信息進(jìn)行添加,教師可以通過(guò)Excel表將學(xué)生的信息導(dǎo)入到系統(tǒng)的數(shù)據(jù)庫(kù)中,也可以使用手動(dòng)的方式將學(xué)生的信息添加進(jìn)去。主要包括學(xué)生的姓名、學(xué)號(hào)和手機(jī)藍(lán)牙地址。
(3) 課程信息的管理
教師在將學(xué)生信息導(dǎo)入完畢后,可以一鍵自動(dòng)掃描周圍的藍(lán)牙設(shè)備,并將掃描到的設(shè)備展示給教師,教師可以在列表的最下方輸入課程信息,開(kāi)始考勤。
(4) 考勤信息的管理
開(kāi)始考勤后,系統(tǒng)會(huì)將未到課的學(xué)生列表展示出來(lái),教師可以根據(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ù)丟失帶來(lái)的不必要的麻煩,同時(shí)也確保了系統(tǒng)的可用性。系統(tǒng)中的信息更新也可以隨時(shí)上傳到云端,確保信息的準(zhǔn)確性。如果發(fā)生數(shù)據(jù)丟失可以隨時(shí)從云端下載數(shù)據(jù),進(jìn)行數(shù)據(jù)恢復(fù),不想影響系統(tǒng)的工作。
在本系統(tǒng)中,用戶需要注冊(cè)登錄成功后,才可以進(jìn)入系統(tǒng)操作添加學(xué)生信息,考勤管理如開(kāi)始考勤、修改結(jié)果、發(fā)送提醒短信、發(fā)送考勤情況以及備份數(shù)據(jù)(上傳、下載數(shù)據(jù))、查看學(xué)生信息、導(dǎo)出考勤情況等模塊,如圖1所示。
圖1 系統(tǒng)業(yè)務(wù)流程
系統(tǒng)首先判斷用戶是否在本系統(tǒng)中注冊(cè)過(guò),注冊(cè)過(guò)則可以直接登錄,如果沒(méi)注冊(cè),需要先注冊(cè),才能登入系統(tǒng)。用戶登錄成功后,可以手動(dòng)或者一鍵導(dǎo)入考勤需要的學(xué)生信息,也可以查看已經(jīng)導(dǎo)入的學(xué)生信息,當(dāng)用戶導(dǎo)入信息成功后,可以使用系統(tǒng)的考勤功能來(lái)對(duì)上課的學(xué)生進(jìn)行考勤??记谕瓿珊笥脩艨梢圆榭椿蛐薷目记诮Y(jié)果,也可以將考勤信息發(fā)送給學(xué)工部,或者將系統(tǒng)中的信息備份到云服務(wù)器中。整體用例如圖2所示。
本系統(tǒng)的設(shè)計(jì)分為3層:展示層,業(yè)務(wù)邏輯層和數(shù)據(jù)層。展示層是用來(lái)展示獲取的到信息和用戶的操作界面,主要是由Android布局界面和圖片組成,響應(yīng)用戶的操作給邏輯層。業(yè)務(wù)邏輯層是對(duì)用戶的操作做出處理的地方,同時(shí)也是數(shù)據(jù)層和展示層數(shù)據(jù)交互的發(fā)起者和結(jié)束者。它將展示層用戶發(fā)起的請(qǐng)求處理后,從數(shù)據(jù)層獲取數(shù)據(jù)傳送回展示層展
圖2 系統(tǒng)整體用例圖
示給用戶。數(shù)據(jù)層是系統(tǒng)的數(shù)據(jù)存儲(chǔ)的地址,它包括兩部分,一是本地的SQLite數(shù)據(jù)庫(kù),主要負(fù)責(zé)存儲(chǔ)系統(tǒng)所使用的數(shù)據(jù),他是展示層從系統(tǒng)中獲取數(shù)據(jù)的主要來(lái)源。二是云端數(shù)據(jù)庫(kù),將數(shù)據(jù)處理完成后要及時(shí)將系統(tǒng)中的重要數(shù)據(jù)備份都云端,防止系統(tǒng)出現(xiàn)安全問(wèn)題,造成數(shù)據(jù)的流逝,在出現(xiàn)問(wèn)題后,及時(shí)從云端下載數(shù)據(jù)恢復(fù)本地?cái)?shù)據(jù)庫(kù)的完整性,確保系統(tǒng)的可用性。
系統(tǒng)的功能模塊圖如圖3所示。
圖3 系統(tǒng)功能模塊圖
(1) 藍(lán)牙模塊的開(kāi)發(fā)
Android藍(lán)牙模塊用到的類和方法比較多,也比較復(fù)雜本系統(tǒng)所用的類主要有三個(gè):BlueToothAdapter類、BlueToothSocket接口和BlueToothDevice類,他們包含了Android藍(lán)牙模塊開(kāi)發(fā)所要使用的大部分方法和對(duì)象。而且使用起來(lái)比較方便,不用導(dǎo)入外部類庫(kù)文件就可以使用。但是在使用前一定要在清單文件中加入使用藍(lán)牙的權(quán)限。
(2) Excel文件導(dǎo)入導(dǎo)出的實(shí)現(xiàn)
在Android中沒(méi)有對(duì)Excel文件操作的jar包和類庫(kù),必須要使用第三方的jxl.jar來(lái)導(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ò)文件的下載。國(guó)內(nèi)有很多的網(wǎng)絡(luò)服務(wù)商提供這種服務(wù),經(jīng)過(guò)對(duì)比后發(fā)現(xiàn)阿里云相對(duì)于其他的服務(wù)有著集成簡(jiǎn)單,支持?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)來(lái)確定上傳下載文件的具體情況。主要用到AliActivity類,aliyun-oss-sdk-android-2.3.jar, Okhttputils框架,putObjectRequest類和getObjetRequest類,getResult.getObjectContent(),getDatabasePath()方法等。
系統(tǒng)的整體E-R圖如圖4所示。
圖4 數(shù)據(jù)庫(kù)整體E-R圖
本地?cái)?shù)據(jù)庫(kù)SQLite的實(shí)現(xiàn):
(1) 先在項(xiàng)目進(jìn)行配置
(2) 創(chuàng)建各個(gè)類,在類外加注解@Entity,屬性加注解@Property,須設(shè)置id
(3) 點(diǎn)擊Make Project生成表
(4) 對(duì)表進(jìn)行操作,如增加(insert),刪除(delete),查找(loadAll),修改(updata)
用戶可以在登錄成功進(jìn)入主頁(yè)面后點(diǎn)擊掃描周圍藍(lán)牙設(shè)備的按鈕,打開(kāi)自己的藍(lán)牙模塊掃描周圍的藍(lán)牙設(shè)備,來(lái)與數(shù)據(jù)庫(kù)中存儲(chǔ)的學(xué)生信息作比對(duì),當(dāng)藍(lán)牙掃描到周圍的藍(lán)牙設(shè)備時(shí)會(huì)將結(jié)果展示給用戶,用戶需要手動(dòng)輸入課程信息,點(diǎn)擊點(diǎn)名按鈕來(lái)進(jìn)行考勤。主要模塊如圖5所示。
圖5 考勤模塊測(cè)試
針對(duì)現(xiàn)在各大高校的考勤現(xiàn)狀,基于Android系統(tǒng)的藍(lán)牙模塊,設(shè)計(jì)了一款藍(lán)牙課堂考勤系統(tǒng),可以通過(guò)掃描周圍的藍(lán)牙設(shè)備來(lái)與數(shù)據(jù)庫(kù)中的學(xué)生信息進(jìn)行匹配,從而得出課堂上學(xué)生的考勤情況。與傳統(tǒng)考勤方式相比,本系統(tǒng)有著方便快捷的優(yōu)點(diǎn),同時(shí)登錄模塊和數(shù)據(jù)備份模塊也保證了系統(tǒng)的安全性,從而提高了教學(xué)效率。但是系統(tǒng)仍然存在一些不足之處,如不能同時(shí)支持學(xué)生使用使得學(xué)生不能及時(shí)了解自己的考勤成績(jī),這就需要后續(xù)完善系統(tǒng)。