張粵,李俊,方國(guó)康,馮滿滿
(武漢科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,武漢 430065)
基于Android的學(xué)生考勤系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
張粵,李俊,方國(guó)康,馮滿滿
(武漢科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,武漢430065)
據(jù)調(diào)查,目前我國(guó)的大多數(shù)高校,在學(xué)生管理方面仍然采用傳統(tǒng)的手工作業(yè)或者半手工作業(yè)方式。教師在學(xué)生考勤、晚歸管理、課堂學(xué)習(xí)管理等方面,仍然采取點(diǎn)名、手工記載等方式,費(fèi)時(shí)費(fèi)力且容易代答代簽。而對(duì)于指紋識(shí)別、人臉頭像識(shí)別等新型技術(shù),由于設(shè)備比較昂貴、實(shí)施成本高,不適合大規(guī)模推廣。并且現(xiàn)有的手工方式和圖像識(shí)別系統(tǒng)都有明顯的不足,那就是信息滯后,老師們都無(wú)法在第一時(shí)間獲取實(shí)時(shí)信息。鑒于當(dāng)前的高??记谙到y(tǒng)比較低效,以及移動(dòng)終端的普及和Wi-Fi熱點(diǎn)技術(shù)的成熟,想開(kāi)發(fā)一款基于移動(dòng)終端的低成本,高效的學(xué)生考勤系統(tǒng)[1-2]。目前為止基于Android平臺(tái)的定位研究和應(yīng)用處于高速增長(zhǎng)階段,國(guó)內(nèi)相關(guān)領(lǐng)域的研究論文已經(jīng)層出不窮如論文[3-5],經(jīng)過(guò)討論和閱讀相關(guān)文獻(xiàn),找到了一種基于Wi-Fi熱點(diǎn)和MAC地址標(biāo)識(shí)教室的方法,即先通過(guò)移動(dòng)Wi-Fi熱點(diǎn)的MAC地址和教室地點(diǎn)綁定,然后學(xué)生通過(guò)課表查找到當(dāng)前上課的教室,獲取綁定的MAC地址,然后去查找當(dāng)前Wi-Fi列表,如果有匹配的MAC地址,就與服務(wù)器交互,將自己的信息發(fā)給服務(wù)器,生成簽到記錄,完成簽到。
本系統(tǒng)采用Android、PHP、MySQL等技術(shù)以客戶端服務(wù)器的形式來(lái)進(jìn)行數(shù)據(jù)交互。客戶端包含學(xué)生端、教師端。服務(wù)端以PHP語(yǔ)言編寫的后臺(tái)腳本用于響應(yīng)客戶端的請(qǐng)求,并返回相應(yīng)數(shù)據(jù)。
(1)平臺(tái)簡(jiǎn)介
Android是一種基于Linux內(nèi)核分層體系結(jié)構(gòu)的自由及開(kāi)放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開(kāi)放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開(kāi)發(fā)。尚未有統(tǒng)一中文名稱,中國(guó)大陸地區(qū)較多人使用“安卓”或“安致”。Android操作系統(tǒng)最初由Andy Rubin開(kāi)發(fā),主要支持手機(jī)。2005年8月由Google收購(gòu)注資。第一部 Android智能手機(jī)發(fā)布于2008年10月。2011年第一季度,Android在全球的市場(chǎng)份額首次超過(guò)塞班系統(tǒng),躍居全球第一。Android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。Android結(jié)構(gòu)分為四個(gè)層,從高層到低層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層和Linux內(nèi)核層,Android平臺(tái)具有開(kāi)放性、豐富的硬件、方便開(kāi)發(fā)、Google應(yīng)用等優(yōu)勢(shì)
(2)Android的AsyncTask異步任務(wù)類
在開(kāi)發(fā)Android移動(dòng)客戶端的時(shí)候往往要使用多線程來(lái)進(jìn)行操作,我們通常會(huì)將耗時(shí)的操作放在單獨(dú)的線程執(zhí)行,避免其占用主線程而給用戶帶來(lái)不好的用戶 體驗(yàn)。但是在子線程中無(wú)法去操作主線程(UI線程),在子線程中操作UI線程會(huì)出現(xiàn)錯(cuò)誤。因此Android提供了一個(gè)類Handler來(lái)在子線程中來(lái)更新UI線程,用發(fā)消息的機(jī)制更新UI界面,呈現(xiàn)給用戶。這樣就解決了子線程更新UI的問(wèn)題。但是費(fèi)時(shí)的任務(wù)操作總會(huì)啟動(dòng)一些匿名的子線程,太多的子線程給系統(tǒng)帶來(lái)巨大的負(fù)擔(dān),隨之帶來(lái)一些性能問(wèn)題。因此Android提供了一個(gè)工具類AsyncTask,顧名思義異步執(zhí)行任務(wù)。這個(gè)AsyncTask生來(lái)就是處理一些后臺(tái)的比較耗時(shí)的任務(wù),給用戶帶 來(lái)良好用戶體驗(yàn)的,從編程的語(yǔ)法上顯得優(yōu)雅了許多,不再需要子線程和Handler就可以完成異步操作并且刷新用戶界面
LAMP(Linux-Apache-MySQL-PHP)網(wǎng)站架構(gòu)是目前國(guó)際流行的Web框架,該框架包括:Linux操作系統(tǒng),Apache網(wǎng)絡(luò)服務(wù)器,MySQL數(shù)據(jù)庫(kù),Perl、PHP或者Python編程語(yǔ)言,所有組成產(chǎn)品均是開(kāi)源軟件,是國(guó)際上成熟的架構(gòu)框架,很多流行的商業(yè)應(yīng)用都是采取這個(gè)架構(gòu),和Java/J2EE架構(gòu)相比,LAMP具有Web資源豐富、輕量、快速開(kāi)發(fā)等特點(diǎn),微軟的.NET架構(gòu)相比,LAMP具有通用、跨平臺(tái)、高性能、低價(jià)格的優(yōu)勢(shì),因此LAMP無(wú)論是性能、質(zhì)量還是價(jià)格都是企業(yè)搭建網(wǎng)站的首選平臺(tái)。本設(shè)計(jì)正是采用的LAMP平臺(tái)構(gòu)建的Web服務(wù)器。
本系統(tǒng)將學(xué)生信息、課表信息、上課信息從教務(wù)系統(tǒng)導(dǎo)入到服務(wù)器,然后將每個(gè)教室的標(biāo)識(shí)碼即隨身Wi-Fi的MAC地址收錄到數(shù)據(jù)庫(kù)。每個(gè)學(xué)生的學(xué)號(hào)在注冊(cè)的時(shí)候?qū)?huì)與該學(xué)生移動(dòng)終端無(wú)線網(wǎng)卡的MAC地址綁定,作為該學(xué)生的終端標(biāo)識(shí)。當(dāng)學(xué)生帶移動(dòng)終端去具體教室上課時(shí),會(huì)自動(dòng)查找該教室的標(biāo)志MAC,如果沒(méi)能查找到則證明學(xué)生沒(méi)逃課,將不能把自己的簽到信息寫入服務(wù)器的數(shù)據(jù)庫(kù),然后教室和輔導(dǎo)員可以查看到某節(jié)課沒(méi)有簽到的學(xué)生。
基于 Android的學(xué)生考勤管理系統(tǒng)主要由 Android端和服務(wù)器端2部分組成。Android學(xué)生端負(fù)責(zé)考勤數(shù)據(jù)的采集以及較為簡(jiǎn)單的數(shù)據(jù)查詢。學(xué)生叫考勤信息發(fā)送到服務(wù)器,并存儲(chǔ)在數(shù)據(jù)庫(kù)中,任課教師使用安裝有Android教師端軟件的智能設(shè)備進(jìn)行查看學(xué)生考勤數(shù)據(jù),實(shí)時(shí)查看學(xué)生考勤的信息,發(fā)現(xiàn)其中存在的問(wèn)題,從而完善自己的管理工作。下圖(圖1)說(shuō)明了本系統(tǒng)的基本架構(gòu)。
圖1 系統(tǒng)結(jié)構(gòu)圖
本系統(tǒng)使用的是MySQL關(guān)系型數(shù)據(jù)庫(kù),結(jié)合系統(tǒng)需求,可以抽取出相關(guān)實(shí)體,包含學(xué)生注冊(cè)表、學(xué)生信息表、教室信息表、教師信息表、班級(jí)表、年級(jí)表、課程表、課程信息表以及關(guān)系表等數(shù)據(jù)表,從圖二數(shù)據(jù)庫(kù)ER圖可以看出各個(gè)表之間的關(guān)系以及表與表之間的相互聯(lián)系,在具體使用中我們通過(guò)學(xué)生注冊(cè)的移動(dòng)終端的MAC地址為該學(xué)生的標(biāo)識(shí),獲取與該學(xué)生的所有相關(guān)消息。
圖2 數(shù)據(jù)庫(kù)ER圖
基于Android的考勤管理軟件主要包括5大功能模塊:學(xué)生注冊(cè)模塊、簽到與考勤模塊、課程管理模塊、教室信息管理模塊和Wi-Fi管理模塊。其中Wi-Fi管理模塊是本軟件的基礎(chǔ)模塊,判斷簽到學(xué)生是否在教室,只有與數(shù)據(jù)庫(kù)的教室MAC標(biāo)識(shí)一致,且當(dāng)前時(shí)間與課表時(shí)間一致,才能進(jìn)行正確的簽到。
學(xué)生注冊(cè)模塊主要負(fù)責(zé)用戶身份驗(yàn)證和將Android移動(dòng)終端MAC地址與學(xué)生綁定。通過(guò)身份驗(yàn)證,來(lái)保證信息的真實(shí)、準(zhǔn)確。
簽到與考勤模塊主要是對(duì)學(xué)生的到課情況進(jìn)行收錄和統(tǒng)計(jì),學(xué)生注冊(cè)后無(wú)需登錄,可定時(shí)完成指定課程的簽到信息的提交。教師和年級(jí)輔導(dǎo)員可通過(guò)登錄,在軟件中查看相關(guān)簽到數(shù)據(jù)和具體學(xué)生信息,這樣教師和教務(wù)管理者可以通過(guò)這些信息來(lái)了解當(dāng)前學(xué)生的到課情況,并作出相應(yīng)的處理,保證教學(xué)質(zhì)量。
課程管理模塊和教室信息管理模塊是一個(gè)輔助功能,主要是提前將課程相關(guān)信息、學(xué)生信息、教師信息錄入系統(tǒng),而教室信息可有授課老師在課前通過(guò)軟件錄入或手動(dòng)錄入到數(shù)據(jù)庫(kù),當(dāng)數(shù)據(jù)錄入完成學(xué)生可以自動(dòng)、方便地完成指定課程的簽到。同時(shí)課程管理模塊還提供了當(dāng)前上課信息判斷的功能。
通過(guò)Android系統(tǒng)API,我們可以獲取到周邊Wi-Fi的一些信息,如Wi-Fi信號(hào)的強(qiáng)度、強(qiáng)度等級(jí)、MAC地址等信息。Wi-Fi管理模塊是怎個(gè)系統(tǒng)的基礎(chǔ)模塊,其主要功能是使用系統(tǒng)API搜索該終端周邊Wi-Fi信號(hào),獲取各個(gè)Wi-Fi信號(hào)的信息,然后從服務(wù)器通過(guò)學(xué)生課表獲取當(dāng)前學(xué)生上課所在教室的MAC地址標(biāo)識(shí)符,并和每個(gè)Wi-Fi信號(hào)做比較,如果發(fā)現(xiàn)有匹配的信息才可進(jìn)行下一步。
這個(gè)模塊分為兩個(gè)部分,分別是學(xué)生簽到和教工考勤兩個(gè)部分,在學(xué)生簽到的實(shí)現(xiàn)中,本系統(tǒng)考慮到簽到的高效性,利用Android系統(tǒng)內(nèi)部類AlarmManager設(shè)置定時(shí)任務(wù),并在程序中編寫廣播接收者來(lái)接收系統(tǒng)發(fā)出的廣播,使得學(xué)生在上課時(shí)可以自動(dòng)簽到,而無(wú)需自己打開(kāi)軟件簽到。
(1)學(xué)生簽到,即學(xué)生上課時(shí)間自動(dòng)簽到,它以學(xué)生注冊(cè)模塊,Wi-Fi管理模塊、課程管理模塊和教室信息管理模塊為基礎(chǔ),當(dāng)用戶注冊(cè)后通過(guò)學(xué)生注冊(cè)終端的MAC地址,進(jìn)行信息驗(yàn)證和教室地點(diǎn)、上課時(shí)間匹配后,將用戶的簽到消息發(fā)送至服務(wù)器。
(2)教工考勤,分為兩類用戶,教師或輔導(dǎo)員從數(shù)據(jù)庫(kù)取出學(xué)生簽到信息,并分析簽到數(shù)據(jù)。如果是授課教師登陸回生成該教師所授課程的考勤信息,如果是年級(jí)輔導(dǎo)員會(huì)生成該年級(jí)所有課程的考勤信息。該設(shè)計(jì)使得教師能夠?qū)W⑴c自己的課程出勤率來(lái)調(diào)整教學(xué)方案,學(xué)院管理者可以勒戒各個(gè)年級(jí)的出勤情況,做出相應(yīng)的應(yīng)對(duì)措施。
本系統(tǒng)以Web服務(wù)器為數(shù)據(jù)中轉(zhuǎn)站,實(shí)現(xiàn)了學(xué)生簽到,教工查看到課情況的考勤系統(tǒng)。其中用戶可以分為三類,即學(xué)生、教工、年級(jí)輔導(dǎo)員,不同類的用戶可以使用的功能不同,學(xué)生可以簽到,查看自己的課表,教工可以查看教授課程的考勤信息,年級(jí)輔導(dǎo)員可以查看本年級(jí)所有課程的到勤狀況。其總體系統(tǒng)架構(gòu)如圖3所示。
(1)學(xué)生端UI實(shí)現(xiàn)
學(xué)生端主要包括3個(gè)界面(即3個(gè)Activity),分別是歡迎界面,注冊(cè)界面,課表界面。其中歡迎界面用于顯示軟件的信息和歡迎用戶使用。注冊(cè)界面,課表界面則顯示學(xué)生課表,該界面是用canvas畫(huà)圖實(shí)現(xiàn)的自定義UI界面,將課表信息畫(huà)到界面上,并可以響應(yīng)手勢(shì)進(jìn)行界面移動(dòng),課表界面如圖4所示。
圖3 系統(tǒng)總體架構(gòu)
圖4 課表界面圖
(2)學(xué)生端功能實(shí)現(xiàn)
學(xué)生端功能包含學(xué)生注冊(cè),課表獲取,自動(dòng)簽到或手動(dòng)簽到等功能,當(dāng)用戶打開(kāi)軟件會(huì)進(jìn)入到歡迎界面,然后通過(guò)Wi-Fi模塊獲取該移動(dòng)終端的MAC標(biāo)識(shí),與數(shù)據(jù)庫(kù)比對(duì)將判斷是否注冊(cè),若已注冊(cè)將始化課表信息,然后顯示課表界面,否則將進(jìn)入注冊(cè)界面,帶用戶注冊(cè)后進(jìn)入課表界面,然后程序后嘗試匹配上課信息,如果上課信息符合,則進(jìn)行簽到操作。教師課表相關(guān)數(shù)據(jù)使用Android系統(tǒng)內(nèi)置的SQLite數(shù)據(jù)庫(kù)API在本地進(jìn)行存儲(chǔ),避免每次都要從服務(wù)器獲取,浪費(fèi)數(shù)據(jù)流量,其程序流程圖如圖5所示。
(1)教師端UI實(shí)現(xiàn)
Android教師端的界面主要包含2個(gè),其采用的都是Listview用一個(gè)列表來(lái)顯示課程以及學(xué)生考情情況,當(dāng)點(diǎn)擊該課程的上課信息時(shí),會(huì)進(jìn)入第二個(gè)界面以列表的形式顯示該課程缺勤學(xué)生的具體信息,教師可以及時(shí)獲取到缺勤學(xué)生的信息,有效的防止學(xué)生逃課。其具體效果如圖6所示。
(2)教師端功能實(shí)現(xiàn)
Android教師端主要是為了方便教工和輔導(dǎo)員查看學(xué)生到課記錄,其主要功能為獲取課程以及該課程考勤信息,如果是輔導(dǎo)員的話會(huì)獲取本年級(jí)所有課程,然后點(diǎn)擊某一課程會(huì)顯示該課程的詳細(xì)信息,再次點(diǎn)擊會(huì)顯示缺勤學(xué)生的詳細(xì)信息。在考勤信息與數(shù)據(jù)庫(kù)的同步方面則采用開(kāi)啟一個(gè)后臺(tái)服務(wù)來(lái)操作。在打開(kāi)軟件之后,進(jìn)程會(huì)創(chuàng)建一個(gè)服務(wù)以便每隔一分鐘向數(shù)據(jù)庫(kù)請(qǐng)求一次數(shù)據(jù),待取到更新數(shù)據(jù)后重新更新UI界面。
圖5 Android學(xué)生端流程圖
圖6 Android教師端UI效果圖
(3)Web服務(wù)器實(shí)現(xiàn)
以LAMP組合來(lái)搭建一個(gè)免費(fèi)、開(kāi)源、高效的Web服務(wù)器,該服務(wù)器并未編寫基于網(wǎng)頁(yè)的界面,而是為Android學(xué)生端和教師端提供數(shù)據(jù)訪問(wèn)接口,采用HTTP請(qǐng)求、應(yīng)答進(jìn)行交互。用戶通過(guò)Android客戶端發(fā)送標(biāo)準(zhǔn)的HTTP請(qǐng)求,Apache服務(wù)器收到請(qǐng)求后,將請(qǐng)求消息交給PHP腳本程序處理,PHP根據(jù)不同的Action來(lái)觸發(fā)不同的程序,從數(shù)據(jù)庫(kù)中獲取相應(yīng)的數(shù)據(jù)后,將數(shù)據(jù)交由Apache返回給客戶端。
本系統(tǒng)使用的多種不同的編程技術(shù),已完成基本的學(xué)生簽到功能,學(xué)生和教師均可以通過(guò)界面操作,進(jìn)行考勤,大大的節(jié)約了教師的時(shí)間,具有很強(qiáng)的實(shí)用性。由于此項(xiàng)目基礎(chǔ)設(shè)施費(fèi)用較低廉,使得本系統(tǒng)具有很好的擴(kuò)展性,此系統(tǒng)將不會(huì)局限于統(tǒng)計(jì)學(xué)生的到課情況,稍加以改裝便可應(yīng)用于中小型企業(yè)的人員上。
[1]基于Android的學(xué)生考勤管理系統(tǒng)設(shè)計(jì)與開(kāi)發(fā).現(xiàn)代電子技術(shù),2014.
[2]基于Android的手機(jī)簽到系統(tǒng).計(jì)算機(jī)與現(xiàn)代化,2014.
[3]高明云.整合搜索手機(jī)地圖Android平臺(tái)[M].北京:人民郵電出版社,2009.
[4]董承風(fēng),胡慶.基于Android平臺(tái)的雙網(wǎng)雙待的研究與設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用與軟件,2012,29(2).
[5]王視環(huán).蜂窩網(wǎng)與GPS相結(jié)合的手機(jī)混合定位技術(shù)——gpsOne[J].信息與電子工程,2004.
李俊(1978-11),男,湖北黃石人,副教授,研究方向?yàn)榫W(wǎng)絡(luò)管理、智能移動(dòng)開(kāi)發(fā)
方國(guó)康(1994-05),男,湖北恩施人,在讀本科,研究方向?yàn)锳ndroid開(kāi)發(fā)
馮滿滿(1995-07),男,湖北襄陽(yáng)人,在讀本科,研究方向?yàn)锳ndroid開(kāi)發(fā)
Student's Attendance;Wi-Fi Location;Checking on Attendance by Mobile Terminal
Design and Implementation of Student Attendance System Based on Android
ZHANG Yue,LI Jun,F(xiàn)ANG Guo-kang,F(xiàn)ENG Man-man
(College of Computer Science and Technology,Wuhan University of Science and Technology,Wuhan 430065)
1007-1423(2015)31-0008-06
10.3969/j.issn.1007-1423.2015.31.002
張粵(1995-),男,湖北咸寧人,在讀本科,研究方向?yàn)锳ndroid開(kāi)發(fā)
2015-09-01
2015-10-25
高校的學(xué)生考勤管理工作一直都是一項(xiàng)耗時(shí)、耗力的工作,而且目前我國(guó)教師的考勤方式依然是手工操作,效率低下,且實(shí)際效果并不理想。研究一種高效、實(shí)時(shí)的考勤系統(tǒng)很有必要,該系統(tǒng)提出一種包含Android移動(dòng)客戶端(Android端)、Web服務(wù)端 (服務(wù)端)混合而成基于MAC標(biāo)識(shí)的學(xué)生考勤管理系統(tǒng)。使用基于Android平臺(tái)的移動(dòng)設(shè)備實(shí)現(xiàn)自動(dòng)簽到、查詢簽到記錄功能,通過(guò)3G網(wǎng)絡(luò)將學(xué)生端考勤數(shù)據(jù)實(shí)時(shí)上傳至服務(wù)器,并用教師端實(shí)現(xiàn)考勤數(shù)據(jù)的動(dòng)態(tài)管理和查看。通過(guò)實(shí)際應(yīng)用表明,系統(tǒng)部署后確能實(shí)時(shí)、宏觀的掌握學(xué)生出勤信息,為高校學(xué)生管理提供有力的支持。
學(xué)生考勤;Wi-Fi定位;移動(dòng)終端考
武漢科技大學(xué)大學(xué)生科技創(chuàng)新(No.14ZRC099)
Checking on student's attendance is a time-consuming and labor-intensive work in Chinese high school,and what's more,most teachers are still manual operation,the efficiency is low,and the actual effect is unexpected.It is necessary to study a kind of efficient and realtime attendance system.Proposes a kind of student attendance management system which includes Android mobile client(Android),Web (Server)and MAC marking.Uses the mobile device based on the Android platform to achieve automatic registration,check attendance record function,upload the students'attendance data real-time to the server by network,and uses the App to design for teacher to achieve the dynamic management and check the attendance data.Through the practical application,it shows that the system can be deployed in real time and the macro management of students'attendance information,which provides a strong support for the management of college students.