文/鐘雨萍 陳萬琨 李永鑫
課堂考勤系統(tǒng)主要由Android手機(jī)客戶端、PC軟件和服務(wù)器程序組成,Android手機(jī)客戶端只要用于學(xué)生考勤信息的獲取和其它信息的發(fā)送。教師使用PC軟件查詢學(xué)生的當(dāng)前課程出勤情況和匯總某個(gè)課號的出勤情況。服務(wù)器響應(yīng)Android手機(jī)客戶端和PC軟件發(fā)出的請求。根據(jù)不同的處理請求對Mysql數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行修改。
Android手機(jī)客戶端使用Eclipse For Android IDE集成開發(fā)環(huán)境利用Java語言進(jìn)行開發(fā),主要的功能是完成學(xué)生用戶信息的的注冊,學(xué)生用戶登陸,學(xué)生用戶提交考勤信息和向服務(wù)器發(fā)送其它消息。用戶使用時(shí)必須要連接到指定的路由器,否則無法通過驗(yàn)證,導(dǎo)致通訊失敗。Android手機(jī)客戶端通過WIFI進(jìn)行聯(lián)網(wǎng),通過調(diào)用org.apache.http.legacy.jar中的HttpClient向服務(wù)器發(fā)送HTTP請求。服務(wù)器根據(jù)不同的請求進(jìn)行處理并且向Android手機(jī)客戶端返回相應(yīng)的響應(yīng)。Android客戶端在根據(jù)服務(wù)器返回的信息進(jìn)行處理顯示頁面。
PC軟件設(shè)計(jì)使用Html完成靜態(tài)頁面,再通過css進(jìn)行靜態(tài)頁面的美化。而此時(shí)頁面還不具備與用戶交互的功能,不能及時(shí)與用戶進(jìn)行交互,需要與設(shè)計(jì)好的數(shù)據(jù)庫進(jìn)行連接。本設(shè)計(jì)依托于Node.js框架因此與數(shù)據(jù)庫連接交互的操作也使用Node.js的數(shù)據(jù)庫模塊與MySql數(shù)據(jù)庫進(jìn)行連接。要使本設(shè)計(jì)成為一個(gè)桌面應(yīng)用需要使用electron,NW.js等工具。經(jīng)過多方面的因素綜合考慮最終選擇了electron。electron是基于Node.js和Chromium做的一個(gè)工具。electron可以使用前端技術(shù)實(shí)現(xiàn)桌面開發(fā),并且支持多平臺運(yùn)行。Electron可以使用純JavaScript調(diào)用豐富的原生(操作系統(tǒng))APIs來創(chuàng)造桌面應(yīng)用,但本設(shè)計(jì)中使用Web頁面作為應(yīng)用的GUI,這樣做可以使頁面設(shè)計(jì)更靈活操作更便捷。
本客戶端主要功能:為教師用戶登陸,教師用戶登陸后發(fā)布課堂測試題目,此功能中客戶端會根據(jù)教師登陸時(shí)記錄的教師id列出本學(xué)期該位教師負(fù)責(zé)的課號,教師點(diǎn)擊提交后本客戶端會將教師提交的內(nèi)容按照設(shè)計(jì)人員的約定格式存儲在數(shù)據(jù)庫中,教師用戶登陸后選取本學(xué)期課程列表的某一課號查詢該課號考勤情況,若查詢時(shí)為某一課號的上課時(shí)間還可查詢該節(jié)課的考勤情況。
服務(wù)器程序的設(shè)計(jì)按不同的功能模塊設(shè)計(jì),每個(gè)模塊完成客戶端一個(gè)請求,盡量避免不同的功能模塊之間的相互耦合,服務(wù)器負(fù)責(zé)處理Android手機(jī)或PC軟件發(fā)送的請求,客戶端使用標(biāo)準(zhǔn)的HTTP協(xié)議進(jìn)行訪問服務(wù)器。服務(wù)器自身采用定時(shí)器任務(wù)去完成學(xué)生的數(shù)據(jù)庫考勤生成表,服務(wù)器根據(jù)不同客戶端的不同請求進(jìn)行處理,對數(shù)據(jù)庫進(jìn)行不同的操作,更新學(xué)生的考勤狀態(tài),查詢考勤信息。服務(wù)器提供的功能為用戶的登陸驗(yàn)證,所有用戶進(jìn)行登錄進(jìn)行驗(yàn)證,如果不是在數(shù)據(jù)庫中存在的用戶,
則無法登陸使用。學(xué)生考勤記錄的生成,服務(wù)器由定時(shí)器任務(wù)更新每天的學(xué)生考勤信息。同時(shí)服務(wù)器也提供其它的服務(wù),比如課堂練習(xí)的功能、消息的傳送和管理功能。
MySQL所使用的SQL語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL 軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,一般中小型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。
課堂管理系統(tǒng)需要提供各種信息的查詢、保存、更新和刪除等功能,這就要求數(shù)據(jù)庫能充分滿足各種數(shù)據(jù)的輸入和輸出。以下是需求信息:
(1)一位老師只有一個(gè)id。
(2)一位學(xué)生只有一個(gè)id。
(3)一位老師可以負(fù)責(zé)多個(gè)課號。
(4)一位學(xué)生可以參與多個(gè)課號。
(5)一個(gè)課號可以有多個(gè)上課時(shí)間和上課教室。
(6)一個(gè)課號只有一位負(fù)責(zé)老師。
(7)一個(gè)教室只有一個(gè)編號但是可以有多個(gè)路由MAC地址。
(8)一個(gè)教室同一個(gè)時(shí)間段最多只有一個(gè)課號。
(9)一個(gè)課號可以有多個(gè)測試題目。
整個(gè)系統(tǒng)設(shè)計(jì)完成后,經(jīng)過一定的測試,基本滿足了系統(tǒng)的設(shè)計(jì)最初目標(biāo),比使用傳統(tǒng)方式使用紙張做考勤記錄更加高效,主要是在記錄的形式和后期的統(tǒng)計(jì)更加方便。服務(wù)器在很多用戶同時(shí)訪問是需要服務(wù)器的處理能力比較強(qiáng)。數(shù)據(jù)結(jié)果的顯示只有數(shù)據(jù),沒有使用圖形化顯示,這個(gè)可以在后期進(jìn)行改進(jìn)。
傳統(tǒng)的考勤方式比較繁瑣,現(xiàn)在Android手機(jī)的越來越普及,這使得我們我們借助Android手機(jī)來實(shí)現(xiàn)考勤提供了有利的條件。使用服務(wù)器和其它設(shè)備組成考勤系統(tǒng),可以減少對數(shù)據(jù)的統(tǒng)計(jì)過程,同時(shí)可以對考勤信息記錄更加規(guī)范。同時(shí)可以提高高校的信息化水平。
參考文獻(xiàn)
[1]楊少波.J2EE Web核心技術(shù):Web組件與框架開發(fā)技術(shù)[M].北京:清華大學(xué)出版社,2011.
[2]尹繼平,聶慶亮.跟我學(xué)Java Web[M].北京:清華大學(xué)出版社,2010.