摘 要:本文設(shè)計實現(xiàn)了一種基于B/S架構(gòu)的、以MySQL數(shù)據(jù)庫為核心的在線考試系統(tǒng),并對系統(tǒng)中數(shù)據(jù)庫相關(guān)功能實現(xiàn)進行了分析與討論。
關(guān)鍵詞:B/S;MySQL;在線考試
計算機技術(shù)和網(wǎng)絡(luò)通信技術(shù)在教學(xué)領(lǐng)域的應(yīng)用,促進了以計算機網(wǎng)絡(luò)為載體的輔助教學(xué)模式的出現(xiàn)和發(fā)展?;谟嬎銠C網(wǎng)絡(luò)的在線考試系統(tǒng)實現(xiàn)簡單、靈活性高,評分更加準確、客觀、公平,無論是對教師而言還是對學(xué)生而言均具有良好的應(yīng)用效果,因而受到了廣泛的關(guān)注,并在一些教學(xué)領(lǐng)域中得到了普及和推廣。
1 系統(tǒng)開發(fā)工具選擇
在線考試系統(tǒng)主要由三部分構(gòu)成:系統(tǒng)體系結(jié)構(gòu)、系統(tǒng)開發(fā)工具以及數(shù)據(jù)庫。
其中,常用的在線考試系統(tǒng)的體系結(jié)構(gòu)有兩種,分別為B/S結(jié)構(gòu)和C/S結(jié)構(gòu),考慮到系統(tǒng)的易用性、實現(xiàn)性以及可維護性等可以選擇B/S系統(tǒng)體系結(jié)構(gòu),該結(jié)構(gòu)下的在線考試系統(tǒng)學(xué)生只需要通過瀏覽器即可實現(xiàn)相關(guān)操作,教師對整個系統(tǒng)的維護與管理也更加簡潔高效。
開發(fā)語言選用Java開發(fā)語言,該編程語言具有平臺無關(guān)性,“一次編寫,隨處運行”,Java系統(tǒng)可以運行在不同的操作系統(tǒng)和硬件上。Java把開發(fā)工具、操作系統(tǒng)、后臺的服務(wù)器軟件、客戶端及網(wǎng)絡(luò)工具集成在一起,形成了完整的計算機軟件環(huán)境。
界面部分使用JSP技術(shù)用于跟客戶的交互。
本文所選用的數(shù)據(jù)庫系統(tǒng)軟件為MySQL,該軟件在中小型關(guān)系型數(shù)據(jù)庫系統(tǒng)中應(yīng)用非常廣泛,對Linux系統(tǒng)友好,允許多線程運行,可在較少資源占用率條件下實現(xiàn)較高的執(zhí)行效率。
2 系統(tǒng)結(jié)構(gòu)與功能設(shè)計
鑒于本文所使用的系統(tǒng)結(jié)構(gòu)為B/S結(jié)構(gòu),故整個系統(tǒng)由三層分布式結(jié)構(gòu)構(gòu)成,分別為瀏覽器、WEB服務(wù)器、數(shù)據(jù)庫服務(wù)器。整個系統(tǒng)的工作模式如下圖1所示。
考慮到系統(tǒng)用戶有三種類型:學(xué)生、教師、管理員,故在對系統(tǒng)功能進行設(shè)計時需要考慮登陸用戶的類型來為其分配相應(yīng)的操作權(quán)限和操作功能。其功能結(jié)構(gòu)圖如圖2所示。
3 系統(tǒng)主要模塊設(shè)計
3.1 登錄模塊
登陸模塊中用戶相關(guān)信息在注冊過程中被存儲在一張數(shù)據(jù)表中,該表由數(shù)據(jù)庫進行統(tǒng)一管理。當(dāng)用戶使用用戶名進行登陸時,一方面通過對比用戶輸入密碼與數(shù)據(jù)庫存儲的用戶碼表來確認用戶登錄是否合法,另一方面要對用戶的身份類型、操作權(quán)限、登陸信息等關(guān)鍵字進行查找與分析,根據(jù)分析結(jié)果對用戶登錄頁面進行定向并為用戶分配相應(yīng)的操作權(quán)限。
3.2 管理模塊
管理模塊中,管理員和教師均可以對諸如課程科目、考試時間、考試記錄等數(shù)據(jù)庫或系統(tǒng)設(shè)定等內(nèi)容進行修改。
3.3 考試模塊
在線考試模塊是整個系統(tǒng)的核心模塊??紤]到試卷出題的動態(tài)性與公平性,在設(shè)計實現(xiàn)考試系統(tǒng)時需要考慮以下幾點。為保證試卷的獨立性,在生成試卷時要隨機不重復(fù)的在試題庫中進行試題抽取,已經(jīng)被抽中的試題在一定時間內(nèi)不能再次被重復(fù)抽?。粸樘嵘嚲碓u閱的自動化程度,試題的答案應(yīng)該以按鈕選取的方式來確定;為保證公平性,學(xué)生進入考試后在規(guī)定時間內(nèi)必須交卷,若計時結(jié)束后仍未答卷的考生系統(tǒng)自動提交試卷。
4 其他功能性模塊設(shè)計
在線考試系統(tǒng)應(yīng)用中還應(yīng)該考慮功能性設(shè)置與操作管理。這些管理也需要數(shù)據(jù)庫的支持。
4.1 防重復(fù)登錄模塊
考試存在唯一性,某些考生單次考試不理想后可能出現(xiàn)重新登錄在線考試系統(tǒng)刷成績的情況,而考試時若出現(xiàn)斷電、死機等情況也會出現(xiàn)重新登錄的情況,為區(qū)分這兩種情況,避免學(xué)生不正當(dāng)操作,可以在數(shù)據(jù)庫中設(shè)置考生考試狀態(tài)參數(shù),利用該參數(shù)的值來判斷學(xué)生是否已經(jīng)參與過考試,若已參與考試,可以通過二次登陸密碼判斷的方式來區(qū)分是教師協(xié)助登陸的,還是學(xué)生非法登陸的。
4.2 數(shù)據(jù)庫加密模塊
數(shù)據(jù)庫中存儲了大量的學(xué)生信息,這些信息相對較為重要,需要進行妥善保存與管理。為提升數(shù)據(jù)的安全性和可靠性,一方面需要對數(shù)據(jù)庫的訪問與修改等功能設(shè)置權(quán)限和密碼,另一方面還要對數(shù)據(jù)庫數(shù)據(jù)進行加密處理,以免泄露后造成不必要的影響。
4.3 實時存儲模塊
在線考試系統(tǒng)對實時性的要求較高,為保證特殊情況出現(xiàn)時能夠最大程度的進行數(shù)據(jù)恢復(fù),數(shù)據(jù)庫數(shù)據(jù)可以按照預(yù)定的時間間隔定時執(zhí)行同步功能,實現(xiàn)實時存儲。
[參考文獻]
[1]陳偉斌,張鑫.基于B/S模式的在線考試系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機與數(shù)字工程,2005,33(8).
[2]徐其華.基于JSP+MYSQL在線考試系統(tǒng)的設(shè)計[J].中國科教創(chuàng)新導(dǎo)刊,2008(10).
[3]劉群英,程強,崔蕊.基于MySQL的網(wǎng)上考試系統(tǒng)[J].南陽師范學(xué)院學(xué)報,2007,6(3).