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