張雅瓊, 華正龍
(榆林學院 信息工程學院,榆林 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系統的藍牙模塊,設計了一款藍牙課堂考勤系統,可以通過掃描周圍的藍牙設備來與數據庫中的學生信息進行匹配,從而得出課堂上學生的考勤情況。與傳統考勤方式相比,本系統有著方便快捷的優點,同時登錄模塊和數據備份模塊也保證了系統的安全性,從而提高了教學效率。但是系統仍然存在一些不足之處,如不能同時支持學生使用使得學生不能及時了解自己的考勤成績,這就需要后續完善系統。