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