杜傳紅 劉立才 宋遠(yuǎn)程 陽瑞新
(1、2、3、4.安順學(xué)院電子與信息工程學(xué)院,貴州 安順市561000)
在高校教學(xué)過程中,課堂考勤是日常教學(xué)管理工作的重要環(huán)節(jié)。傳統(tǒng)的紙筆記錄方法,不便于任課教師和相關(guān)管理部門做學(xué)生考勤統(tǒng)計(jì)。目前,替代傳統(tǒng)考勤登記的技術(shù)也日趨成熟,如采用刷卡、手機(jī)藍(lán)牙考勤和人臉識(shí)別等技術(shù),但實(shí)踐證明此類方法不適合用在過著集體生活的在校學(xué)生身上或者具有成本過高等缺點(diǎn)。由于安卓手機(jī)操作系統(tǒng)市場占有率極高和Android平臺(tái)本身的開放性和友好性,本設(shè)計(jì)開發(fā)了一款基于Android手機(jī)操作系統(tǒng)的高??记诠芾硐到y(tǒng)[1-2]。本管理系統(tǒng)教師只需在Android手機(jī)上下載安裝手機(jī)客戶端,考勤數(shù)據(jù)就可以實(shí)時(shí)傳遞到服務(wù)器[3],方便班主任實(shí)時(shí)了解本班出勤情況和任課教師期末對(duì)考勤進(jìn)行統(tǒng)計(jì)。同時(shí),由于本系統(tǒng)在考勤過程中,學(xué)生的個(gè)人照片將以突出的方式顯示在指定位置,徹底杜絕了代簽到、請(qǐng)人上課等情況發(fā)生。
使用Eclipse做Android開發(fā),需要先在Eclipse上安裝ADT(Android Development Tools)插件。
Eclipse源于來自IBM 的一點(diǎn)代碼,是一種基于Java的可擴(kuò)展開源開發(fā)平臺(tái)[4]。就其自身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境[5]。
本設(shè)計(jì)后臺(tái)數(shù)據(jù)庫基于My SQL5.6,用來存放考勤表班級(jí)信息,包括班級(jí)學(xué)生的姓名(name),年級(jí)(year),學(xué)號(hào)(num)、對(duì)應(yīng)編號(hào)(id)、專業(yè)(class)、考勤情況(is Checked)、考勤的日期時(shí)間(date)和課程科目(subject)等。
作為手機(jī)客戶端的本地?cái)?shù)據(jù)庫,SQLite包含在一個(gè)相對(duì)小的C庫中,它遵守ACID(數(shù)據(jù)庫管理的四個(gè)基本要素)關(guān)系數(shù)據(jù)庫管理系統(tǒng),不需要依賴第三方軟件就可以很好地在Android操作系統(tǒng)上運(yùn)行。
Tomcat服務(wù)器是一個(gè)輕量級(jí)Web應(yīng)用服務(wù)器,源代碼是免費(fèi)開放的,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用。
本管理系統(tǒng)硬件實(shí)現(xiàn)需要手機(jī)系統(tǒng)為Android 2.3.3及其以上版本,內(nèi)存512M以上。同時(shí)需要普通臺(tái)式機(jī)充當(dāng)服務(wù)器。
本系統(tǒng)基于C/S架構(gòu),使用人員為全體教師及教學(xué)管理人員,使用條件為手機(jī)客戶端通過無線網(wǎng)絡(luò)和服務(wù)器相連接[6]。基于這些特征,提出非功能性需求。
如系統(tǒng)運(yùn)行流暢,不拖沓;系統(tǒng)兼容性好,可移植性強(qiáng);Tomcat服務(wù)器可以安裝在Linux、Unix和Windows下,系統(tǒng)移植不需要重新編碼;系統(tǒng)可擴(kuò)展性強(qiáng)等。
考勤客戶端應(yīng)該能完成三大功能:搜索出具體專業(yè)班級(jí)、能夠?qū)崿F(xiàn)該班級(jí)語音點(diǎn)名和查看缺勤記錄情況。
該考勤管理客戶端是基于安卓操作系統(tǒng)開發(fā)的,由于Android的系統(tǒng)架構(gòu)采用了分層架構(gòu)的思想,從上層到底層共包括四層,分別是應(yīng)用程序?qū)?、?yīng)用框架層、系統(tǒng)庫和Linux內(nèi)核[7]。這樣只需在Eclipse框架下安裝ADT(Android Development Tools)插件,就可以搭建Android開發(fā)環(huán)境,從而進(jìn)行Android應(yīng)用程序的開發(fā)。
1 管理系統(tǒng)功能流程示意圖
考勤管理系統(tǒng)客戶端主要提供語音點(diǎn)名,班級(jí)人員查詢,缺勤人員記錄表三項(xiàng)功能,其功能流程示意圖如圖1所示。
(1)搜索功能模塊。
本模塊實(shí)現(xiàn)了班級(jí)人員查詢功能。需要將輸入搜索的年級(jí)(year)及專業(yè)(class)信息上傳至服務(wù)器,服務(wù)器搜索符合條件的班級(jí)信息,并返還給考勤客戶端。班級(jí)搜索查詢功能實(shí)現(xiàn)框圖如圖2所示。
2 班級(jí)搜索查詢功能實(shí)現(xiàn)框圖
搜索功能的實(shí)現(xiàn)代碼是由SeekActivity.java和activity_seek.xml組成的,實(shí)現(xiàn)在本地?cái)?shù)據(jù)庫內(nèi)模糊搜索,其關(guān)鍵代碼如圖3所示。
圖3 數(shù)據(jù)庫內(nèi)模糊搜索班級(jí)程序代碼
(2)語音點(diǎn)名功能。
本功能模塊可以語音播放班級(jí)學(xué)生學(xué)號(hào)(id)和姓名(name),同時(shí)顯示出學(xué)生的相片。具體按照學(xué)號(hào)由小到大的順序逐個(gè)進(jìn)行語音點(diǎn)名,同時(shí)實(shí)行考勤記錄(如果學(xué)生喊到,考勤成功,無需操作;如果無學(xué)生喊到,考勤失敗,實(shí)行記錄操作),最后將考勤情況存入本地SQLite數(shù)據(jù)庫中,語音考勤功能實(shí)現(xiàn)框圖如圖4所示。
圖4 語音考勤功能實(shí)現(xiàn)框圖
語音點(diǎn)名是本考勤系統(tǒng)中重要一個(gè)環(huán)節(jié)。它的后臺(tái)處理是利用系統(tǒng)中的tts控件,經(jīng)實(shí)例化后,將文字信息轉(zhuǎn)成語音輸出,利用線程對(duì)學(xué)號(hào)姓名逐個(gè)進(jìn)行語音輸出,其實(shí)現(xiàn)代碼如下圖5所示。
圖5 語音點(diǎn)名線程代碼
(3)查看缺勤人員列表功能。
查看缺勤人員情況,需進(jìn)入考勤頁面,先判斷本地?cái)?shù)據(jù)庫是否有數(shù)據(jù),如果沒有自動(dòng)向服務(wù)器請(qǐng)求數(shù)據(jù),并返回考勤日期的一個(gè)String類型的json數(shù)據(jù),里面包含了很多以數(shù)列一樣排序的數(shù)據(jù)。通過json解析后就可以得到日期(date)、未到人姓名(name)、年級(jí)(year)、專業(yè)(class)這些數(shù)據(jù)。查看缺勤人員情況表功能實(shí)現(xiàn)框圖如圖6所示。
圖6 查看缺勤人員情況表功能框圖
其中,從數(shù)據(jù)庫調(diào)用數(shù)據(jù)查看缺勤人員列表的關(guān)鍵代碼如圖7所示。
圖7 調(diào)用缺勤人員程序代碼
根據(jù)考勤系統(tǒng)的需求,本地平臺(tái)SQLite數(shù)據(jù)庫和tomcat服務(wù)器都需要具有專業(yè)表、班級(jí)信息表和考勤情況表。本考勤管理系統(tǒng)主要用到的數(shù)據(jù)庫表結(jié)構(gòu)有:
(1)專業(yè)表包括了兩個(gè)字段:學(xué)校的所有專業(yè)名稱(class)和其對(duì)應(yīng)的專業(yè)號(hào)(id),id是int類型,無長度限定,不可以為空,是主鍵;class是varchar類型,無長度限定,不能為空。
(2)班級(jí)信息表包括:該班級(jí)學(xué)生的姓名(name),年級(jí)(year),學(xué)號(hào)(num)、對(duì)應(yīng)編號(hào)(id)、專業(yè)(class)。id是int類型,沒有規(guī)定長度,不可以為空,是主鍵;class、num、name和year都是varchar類型,沒有規(guī)定長度,不可以為空。
(3)考勤班級(jí)信息表包括:該班級(jí)學(xué)生的姓名(name),年級(jí)(year),學(xué)號(hào)(num)、對(duì)應(yīng)編號(hào)(id)、專業(yè)(class)、考勤情況(is Checked)、考勤的日期時(shí)間(date)和科目(subject)。
考勤管理系統(tǒng)開啟后的第一個(gè)界面是主界面(Main Acitivity),它是Fragment Index界面下兩個(gè)tab(語音考勤、考勤記錄)按鈕,界面如圖8所示。當(dāng)點(diǎn)擊考勤記錄按鈕,該按鈕顏色由灰色變?yōu)槌壬⑻D(zhuǎn)到Fragment My界面。
界面(MainAcitiviy)中的FragmentIndex界面
搜索(SeekAcitivity)界面是搜索專業(yè)的界面,由標(biāo)題欄、快速搜索欄、專業(yè)欄組成。標(biāo)題欄上有個(gè)返回鍵,點(diǎn)擊后會(huì)回到之前的MainActivity界面。整個(gè)快速搜索欄就相當(dāng)于一個(gè)按鈕,當(dāng)點(diǎn)擊時(shí)候就會(huì)彈出一個(gè)覆蓋了整個(gè)手機(jī)屏幕的PopWindow(一個(gè)安卓窗口式控件)。而其下就是專業(yè)欄,因數(shù)據(jù)有限,只顯示了3個(gè)專業(yè)。如圖9所示。
圖9 搜索界面視圖(SeekActivity)
搜索到想要點(diǎn)名的班級(jí)后,就可以進(jìn)行語音點(diǎn)名,同時(shí)顯示相片以及相關(guān)信息防止代簽,該功能視圖界面如圖10所示。該界面由標(biāo)題欄、ListView控件(由學(xué)生學(xué)號(hào)、姓名和簽到情況組成)和底部的控制欄組成。標(biāo)題欄中有一個(gè)返回按鈕用于返回之前的MainAcitivity界面??刂茩谥杏?個(gè)按鈕,第一個(gè)按鈕點(diǎn)擊后是重新語音播報(bào),第2個(gè)按鈕是實(shí)現(xiàn)播放或暫停播報(bào),第3個(gè)按鈕是提交考勤結(jié)果,考勤結(jié)束后,點(diǎn)擊提交按鈕,所有數(shù)據(jù)就會(huì)保存在本應(yīng)用的SQLite數(shù)據(jù)庫中。
圖10 語音點(diǎn)名視圖(Speech Activity)
圖11 缺勤記錄視圖(FragmentMy)
當(dāng)在MainActivity的tab按鈕中點(diǎn)擊考勤記錄就會(huì)進(jìn)入缺勤人員記錄的FragmentMy界面,界面視圖如圖11所示。在這個(gè)界面里可以通過點(diǎn)擊那些小本子來重新編輯考勤記錄或者長按來刪除記錄。
有效的課堂考勤可以提高和改善教學(xué)活動(dòng)質(zhì)量,減輕教師工作量。本考勤管理系統(tǒng)利用移動(dòng)平臺(tái)中應(yīng)用最廣泛的安卓系統(tǒng),在手機(jī)上搭建便捷而高效的課堂考勤管理系統(tǒng)客戶端,方便教師和教學(xué)管理人員及時(shí)準(zhǔn)確的統(tǒng)計(jì)出學(xué)生考勤信息,極大的方便了高校課堂考勤,在高校有很好的推廣價(jià)值。
[1]汪永松·Android平臺(tái)開發(fā)之旅(第2版)[M].北京:機(jī)械工業(yè)出版社,2012.
[2]王靖娜·基于Andorid的學(xué)生考勤管理系統(tǒng)設(shè)計(jì)與開發(fā)[J].現(xiàn)代電子技術(shù),2014,37(8):99-101.
[3]金巧芳,韋玉生·分布式考勤系統(tǒng)的設(shè)計(jì)與實(shí)施[J].電子技術(shù)與軟件工程,2014(9):87-88.
[4]豐華,于松波·神兵利器Eclipse開發(fā)技術(shù)詳解[M].北京:中國鐵道出版社,2010.
[5]秦長春·WEB快速應(yīng)用開發(fā)框架的研究[D].重慶大學(xué),2008.
[6]張鋒,馬學(xué)朝,李凱亮·基于嵌入式系統(tǒng)的創(chuàng)新實(shí)驗(yàn)室管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2015,34(2):97-99.
[7]李玉潔·基于ARMll的Android的操作系統(tǒng)的移植[J].科學(xué)時(shí)代,2012(1):151-152.