杜傳紅 劉立才 宋遠程 陽瑞新
(1、2、3、4.安順學院電子與信息工程學院,貴州 安順市561000)
在高校教學過程中,課堂考勤是日常教學管理工作的重要環節。傳統的紙筆記錄方法,不便于任課教師和相關管理部門做學生考勤統計。目前,替代傳統考勤登記的技術也日趨成熟,如采用刷卡、手機藍牙考勤和人臉識別等技術,但實踐證明此類方法不適合用在過著集體生活的在校學生身上或者具有成本過高等缺點。由于安卓手機操作系統市場占有率極高和Android平臺本身的開放性和友好性,本設計開發了一款基于Android手機操作系統的高??记诠芾硐到y[1-2]。本管理系統教師只需在Android手機上下載安裝手機客戶端,考勤數據就可以實時傳遞到服務器[3],方便班主任實時了解本班出勤情況和任課教師期末對考勤進行統計。同時,由于本系統在考勤過程中,學生的個人照片將以突出的方式顯示在指定位置,徹底杜絕了代簽到、請人上課等情況發生。
使用Eclipse做Android開發,需要先在Eclipse上安裝ADT(Android Development Tools)插件。
Eclipse源于來自IBM 的一點代碼,是一種基于Java的可擴展開源開發平臺[4]。就其自身而言,它只是一個框架和一組服務,用于通過插件組件構建開發環境[5]。
本設計后臺數據庫基于My SQL5.6,用來存放考勤表班級信息,包括班級學生的姓名(name),年級(year),學號(num)、對應編號(id)、專業(class)、考勤情況(is Checked)、考勤的日期時間(date)和課程科目(subject)等。
作為手機客戶端的本地數據庫,SQLite包含在一個相對小的C庫中,它遵守ACID(數據庫管理的四個基本要素)關系數據庫管理系統,不需要依賴第三方軟件就可以很好地在Android操作系統上運行。
Tomcat服務器是一個輕量級Web應用服務器,源代碼是免費開放的,在中小型系統和并發訪問用戶不是很多的場合下被普遍使用。
本管理系統硬件實現需要手機系統為Android 2.3.3及其以上版本,內存512M以上。同時需要普通臺式機充當服務器。
本系統基于C/S架構,使用人員為全體教師及教學管理人員,使用條件為手機客戶端通過無線網絡和服務器相連接[6]?;谶@些特征,提出非功能性需求。
如系統運行流暢,不拖沓;系統兼容性好,可移植性強;Tomcat服務器可以安裝在Linux、Unix和Windows下,系統移植不需要重新編碼;系統可擴展性強等。
考勤客戶端應該能完成三大功能:搜索出具體專業班級、能夠實現該班級語音點名和查看缺勤記錄情況。
該考勤管理客戶端是基于安卓操作系統開發的,由于Android的系統架構采用了分層架構的思想,從上層到底層共包括四層,分別是應用程序層、應用框架層、系統庫和Linux內核[7]。這樣只需在Eclipse框架下安裝ADT(Android Development Tools)插件,就可以搭建Android開發環境,從而進行Android應用程序的開發。

1 管理系統功能流程示意圖
考勤管理系統客戶端主要提供語音點名,班級人員查詢,缺勤人員記錄表三項功能,其功能流程示意圖如圖1所示。
(1)搜索功能模塊。
本模塊實現了班級人員查詢功能。需要將輸入搜索的年級(year)及專業(class)信息上傳至服務器,服務器搜索符合條件的班級信息,并返還給考勤客戶端。班級搜索查詢功能實現框圖如圖2所示。

2 班級搜索查詢功能實現框圖
搜索功能的實現代碼是由SeekActivity.java和activity_seek.xml組成的,實現在本地數據庫內模糊搜索,其關鍵代碼如圖3所示。

圖3 數據庫內模糊搜索班級程序代碼
(2)語音點名功能。
本功能模塊可以語音播放班級學生學號(id)和姓名(name),同時顯示出學生的相片。具體按照學號由小到大的順序逐個進行語音點名,同時實行考勤記錄(如果學生喊到,考勤成功,無需操作;如果無學生喊到,考勤失敗,實行記錄操作),最后將考勤情況存入本地SQLite數據庫中,語音考勤功能實現框圖如圖4所示。

圖4 語音考勤功能實現框圖
語音點名是本考勤系統中重要一個環節。它的后臺處理是利用系統中的tts控件,經實例化后,將文字信息轉成語音輸出,利用線程對學號姓名逐個進行語音輸出,其實現代碼如下圖5所示。

圖5 語音點名線程代碼
(3)查看缺勤人員列表功能。
查看缺勤人員情況,需進入考勤頁面,先判斷本地數據庫是否有數據,如果沒有自動向服務器請求數據,并返回考勤日期的一個String類型的json數據,里面包含了很多以數列一樣排序的數據。通過json解析后就可以得到日期(date)、未到人姓名(name)、年級(year)、專業(class)這些數據。查看缺勤人員情況表功能實現框圖如圖6所示。

圖6 查看缺勤人員情況表功能框圖
其中,從數據庫調用數據查看缺勤人員列表的關鍵代碼如圖7所示。

圖7 調用缺勤人員程序代碼
根據考勤系統的需求,本地平臺SQLite數據庫和tomcat服務器都需要具有專業表、班級信息表和考勤情況表。本考勤管理系統主要用到的數據庫表結構有:
(1)專業表包括了兩個字段:學校的所有專業名稱(class)和其對應的專業號(id),id是int類型,無長度限定,不可以為空,是主鍵;class是varchar類型,無長度限定,不能為空。
(2)班級信息表包括:該班級學生的姓名(name),年級(year),學號(num)、對應編號(id)、專業(class)。id是int類型,沒有規定長度,不可以為空,是主鍵;class、num、name和year都是varchar類型,沒有規定長度,不可以為空。
(3)考勤班級信息表包括:該班級學生的姓名(name),年級(year),學號(num)、對應編號(id)、專業(class)、考勤情況(is Checked)、考勤的日期時間(date)和科目(subject)。
考勤管理系統開啟后的第一個界面是主界面(Main Acitivity),它是Fragment Index界面下兩個tab(語音考勤、考勤記錄)按鈕,界面如圖8所示。當點擊考勤記錄按鈕,該按鈕顏色由灰色變為橙色,并跳轉到Fragment My界面。

界面(MainAcitiviy)中的FragmentIndex界面
搜索(SeekAcitivity)界面是搜索專業的界面,由標題欄、快速搜索欄、專業欄組成。標題欄上有個返回鍵,點擊后會回到之前的MainActivity界面。整個快速搜索欄就相當于一個按鈕,當點擊時候就會彈出一個覆蓋了整個手機屏幕的PopWindow(一個安卓窗口式控件)。而其下就是專業欄,因數據有限,只顯示了3個專業。如圖9所示。

圖9 搜索界面視圖(SeekActivity)
搜索到想要點名的班級后,就可以進行語音點名,同時顯示相片以及相關信息防止代簽,該功能視圖界面如圖10所示。該界面由標題欄、ListView控件(由學生學號、姓名和簽到情況組成)和底部的控制欄組成。標題欄中有一個返回按鈕用于返回之前的MainAcitivity界面??刂茩谥杏?個按鈕,第一個按鈕點擊后是重新語音播報,第2個按鈕是實現播放或暫停播報,第3個按鈕是提交考勤結果,考勤結束后,點擊提交按鈕,所有數據就會保存在本應用的SQLite數據庫中。

圖10 語音點名視圖(Speech Activity)

圖11 缺勤記錄視圖(FragmentMy)
當在MainActivity的tab按鈕中點擊考勤記錄就會進入缺勤人員記錄的FragmentMy界面,界面視圖如圖11所示。在這個界面里可以通過點擊那些小本子來重新編輯考勤記錄或者長按來刪除記錄。
有效的課堂考勤可以提高和改善教學活動質量,減輕教師工作量。本考勤管理系統利用移動平臺中應用最廣泛的安卓系統,在手機上搭建便捷而高效的課堂考勤管理系統客戶端,方便教師和教學管理人員及時準確的統計出學生考勤信息,極大的方便了高校課堂考勤,在高校有很好的推廣價值。
[1]汪永松·Android平臺開發之旅(第2版)[M].北京:機械工業出版社,2012.
[2]王靖娜·基于Andorid的學生考勤管理系統設計與開發[J].現代電子技術,2014,37(8):99-101.
[3]金巧芳,韋玉生·分布式考勤系統的設計與實施[J].電子技術與軟件工程,2014(9):87-88.
[4]豐華,于松波·神兵利器Eclipse開發技術詳解[M].北京:中國鐵道出版社,2010.
[5]秦長春·WEB快速應用開發框架的研究[D].重慶大學,2008.
[6]張鋒,馬學朝,李凱亮·基于嵌入式系統的創新實驗室管理系統設計與實現[J].微型機與應用,2015,34(2):97-99.
[7]李玉潔·基于ARMll的Android的操作系統的移植[J].科學時代,2012(1):151-152.