張水利+董軍堂+馮敏娜
摘 要: 針對傳統(tǒng)考試方式的繁瑣性,提出并設(shè)計實現(xiàn)了一個基于MVC模式的在線考試測評系統(tǒng),整個系統(tǒng)由登陸模塊、考試管理模塊及考試業(yè)務(wù)模塊3個模塊組成??忌鷳{借正確的用戶名和密碼實現(xiàn)正常登陸,進入考試管理模塊;在考試管理模塊中,考生可以瀏覽考試規(guī)則、進入答題環(huán)節(jié)、查詢考試成績、退出系統(tǒng);考試業(yè)務(wù)主要根據(jù)試卷等級的要求,實現(xiàn)從題庫中抽取試題,組織考卷,記錄考生的答案、翻頁、交卷等功能。實踐證明,如果將在線考試測評應(yīng)用于學(xué)??己水?dāng)中,將會有更廣闊的應(yīng)用前景。
關(guān)鍵詞: MVC模式; 在線考試; 測評系統(tǒng); 考試管理
中圖分類號: TN911?34; TP302.1 文獻標(biāo)識碼: A 文章編號: 1004?373X(2015)14?0067?04
0 引 言
在線考試系統(tǒng)的開發(fā)有2種主流模式, 即C/S(Cliene/Server)模式和B/S(Browser/Server)模式。C/S模式是一種傳統(tǒng)的開發(fā)模式,適用于用戶有限的局域網(wǎng)環(huán)境。在這種模式下, 客戶端與服務(wù)器直接相連,因此響應(yīng)速度快,開發(fā)費用較低,周期也較短, 但是缺少通用性??蛻舳耸褂脮r,也需要專門的客戶端安裝程序。另外, 它的代碼可重用性也較差。B/S模式適用于多用戶的廣域網(wǎng)環(huán)境,系統(tǒng)擴展性好、維護簡單,但這種模式的開發(fā)費用較高,周期較長。而且因為技術(shù)還不夠成熟,因此功能弱化,難以實現(xiàn)傳統(tǒng)模式下的特殊功能要求[1]。
以校園網(wǎng)為平臺的在線考試系統(tǒng)能高效、便捷、實時地評價教學(xué)效果和檢測學(xué)生的學(xué)習(xí)情況,因此逐漸受到廣泛重視。在線考試系統(tǒng)在降低考試成本、提高考卷質(zhì)量、維護考試公平等方面都起到了重要的作用。目前,在線考試有國外大公司開發(fā)應(yīng)用的資格認證考試如Microsoft在線認證考試系統(tǒng)、Adobe 中國認證考試系統(tǒng)等、國內(nèi)各類眾多高等學(xué)?;谛@網(wǎng)開發(fā)的在線考試系統(tǒng)和被國內(nèi)很多政府機關(guān)、大型企業(yè)和專業(yè)教育機構(gòu)的選擇通用考試系統(tǒng)WebExam等[2]??荚嚋y評系統(tǒng)采用計算機閱卷,能夠提高閱卷效率,特別是選擇題能夠直接給出成績,并將成績保存在數(shù)據(jù)庫中進行自動統(tǒng)計。實現(xiàn)了組織試卷、考試、控制考試、評分等整個考試過程, 同時可查看考生成績信息,設(shè)定考生考試狀態(tài)等[3]。本文使用B/S結(jié)構(gòu),設(shè)計并實現(xiàn)了基于MVC模式的考試測評系統(tǒng),該系統(tǒng)能根據(jù)教師對于試卷級別的要求組織考卷,設(shè)置考題,并在界面上自動顯示考試剩余時間,學(xué)生正確登陸系統(tǒng)可以查看考試規(guī)則,參加考試及查詢考試分數(shù)。
1 MVC設(shè)計模式
設(shè)計模式是指一系列從實踐中總結(jié)出來的、可重復(fù)使用的面向?qū)ο蟮脑O(shè)計方法。MVC設(shè)計模式是許多交互和界面系統(tǒng)的構(gòu)成基礎(chǔ),實現(xiàn)模型與數(shù)據(jù)、界面設(shè)計、控制功能的分離,使得各部分修改時相對獨立,代碼的可維護性增強;同時也提高了應(yīng)用程序的重用性,便于擴展,開發(fā)速度也有了顯著提高[4]。隨著網(wǎng)絡(luò)應(yīng)用的快速發(fā)展,MVC模式已成為Web應(yīng)用開發(fā)先進模式之一,被廣泛應(yīng)用于Java 應(yīng)用程序中。本系統(tǒng)是基于MVC模式的B/S系統(tǒng),數(shù)據(jù)存取時采用3層結(jié)構(gòu)的層次模型[5],其模型圖如圖1所示。其中,Model(模型)表示業(yè)務(wù)邏輯層; View(視圖)代表表示層;Controller(控制器)代表控制層。
圖1 MVC模式結(jié)構(gòu)圖
2 模塊功能設(shè)計
2.1 業(yè)務(wù)功能分析
本系統(tǒng)主要業(yè)務(wù)功能是實現(xiàn)考生在線測評,其主要業(yè)務(wù)包括:
(1) 初始化工作:系統(tǒng)啟動;
(2) 考生登錄;
(3) 查看考試紀(jì)律;
(4) 實現(xiàn)考生在線測評,獲得測評分數(shù);
(5) 查詢測評分數(shù);
(6) 退出系統(tǒng)。
根據(jù)業(yè)務(wù)需求分析,系統(tǒng)總體可分為3個層次:表現(xiàn)層、業(yè)務(wù)層、數(shù)據(jù)層。系統(tǒng)結(jié)構(gòu)如圖2所示。
2.2 系統(tǒng)模塊分析
根據(jù)業(yè)務(wù)功能及流程分析,系統(tǒng)可分為 3 個模塊:登陸模塊、考試管理模塊及考試業(yè)務(wù)模塊。
2.2.1 登陸模塊
登錄模塊的功能主要是實現(xiàn)考生登錄。考生憑借正確賬號和密碼進行登錄。登陸模塊流程如圖3所示。
圖2 系統(tǒng)結(jié)構(gòu)圖
圖3 登陸模塊流程圖
2.2.2 考試管理模塊
考試管理模塊實現(xiàn)對考試業(yè)務(wù)的管理??忌诘卿浵到y(tǒng)之后,通過該模塊,可以查看考試規(guī)則、完成考試和成績查詢以及退出系統(tǒng)??荚嚬芾砟K流程如圖4所示。
圖4 考試管理模塊流程圖
3 圖形用戶界面設(shè)計
系統(tǒng)共包括7個UI界面:歡迎界面、登錄考試系統(tǒng)界面、主菜單界面、考試規(guī)則界面、在線答題界面、分數(shù)查詢界面以及退出系統(tǒng)界面。啟動系統(tǒng)時,利用閃屏技術(shù)呈現(xiàn)歡迎界面,3 s后該界面自動關(guān)閉,體現(xiàn)了該系統(tǒng)的友好交互性,歡迎界面如圖5所示。
歡迎界面關(guān)閉后,系統(tǒng)自動彈出登錄界面,界面上包括編號和密碼兩個編輯框以及登錄和取消兩個按鈕。當(dāng)輸入正確的編號和密碼后便可以進入到考試系統(tǒng),若輸入信息錯誤,則會在界面上進行提示。登錄界面如圖6所示。
正確登錄后,進入系統(tǒng)主菜單界面如圖7所示。主菜單包括:考試規(guī)則、開始答題、查詢分數(shù)和退出系統(tǒng)。
在圖7所示界面上,點擊某個菜單,則進入相應(yīng)的界面,例如點擊開始答題,系統(tǒng)進入考試測評系統(tǒng)如圖8所示,考生可以開始進行答題,同時啟動定時器按鈕。
[圖7 主菜單界面 圖8 在線測評界面]
在答題過程中,考生通過點擊“上一題”或“下一題”按鈕,保存當(dāng)前考題所選答案,并獲取上一道或下一道考題呈現(xiàn)在界面上,更新“上一題”、“下一題”按鈕狀態(tài),刷新考題數(shù)量和考生選項;
當(dāng)考試時間結(jié)束或考生點擊“交卷”按鈕,則保存所選答案,同時處理試卷中的每道題,將每道題的正確答案和考生的答案進行比較,如果相同則加上該試題的分數(shù),否則處理下一題,直至算出考生的得分。實現(xiàn)程序如下:
//初始化分數(shù)
score = 0;
for (QuestionInfo info : paper)
{
Question q = info.getQuestion();
//從Question對象中獲取正確答案
List
//從QuestionInfo對象中獲取考生答案
List
//判斷2個List集合中的數(shù)值是否相同,相同則添加該題的分數(shù)
if (answers.equals(userAnswers))
{
score += q.getScore();
}
}
//標(biāo)識答題結(jié)束并返回分數(shù)
finish = true;
return score;
4 主要數(shù)據(jù)模塊配置
Java中的properties文件是一種用于表達配置信息的文件,文件類型為“*.properties”,內(nèi)容格式為“鍵=值”,并用“#”進行注釋。由于其操作簡單,在Java編程中廣泛使用,本系統(tǒng)也采用properties配置文件形式存儲數(shù)據(jù)。主要操作方法有:
從輸入流中加載文件鍵值對:
load(InputStream inStream);
根據(jù)key查找相應(yīng)的value:
getProperty(String key);
將鍵值對寫入輸出流:
store(OutputStream out, String comments);
清除所有裝載的鍵值對:clear()。
系統(tǒng)中使用配置文件存放與服務(wù)器IP、端口號、用戶、試題等相關(guān)的信息,內(nèi)容如下:
#client.properties
ServerIP=127.0.0.1
ServerPort=8080
UserFile=user.txt
QuestionFile=corejava.txt
系統(tǒng)啟動時,自動調(diào)用已有的API、使用文件流的方式加載配置文件,再根據(jù)key獲取存放有用戶信息和試題信息的文件目錄,以便執(zhí)行后續(xù)操作。
4.1 用戶模塊
系統(tǒng)用戶User對象共包括5個屬性:考生姓名、登錄賬號、登錄密碼、聯(lián)系電話以及電子郵件,并使用user.txt存放所有考生信息,其格式為:
1001:王五:592312:85712340:Jay Zhou@yahoo.com.cn
對應(yīng)項依次是賬號:名稱:密碼:聯(lián)系電話:電子郵件。
系統(tǒng)啟動時,將user.txt文件中的所有數(shù)據(jù)讀入內(nèi)存,并利用Map結(jié)構(gòu)進行維護,其中key為登錄賬號,value為用戶對象。考生登錄系統(tǒng)時,若輸入賬號存在且密碼正確,則會成功登錄,3 s自動關(guān)閉登錄界面,彈出主菜單界面,并在界面上顯示該考生信息;反之登錄失敗,給出提示錯誤界面。
4.2 試題模塊
系統(tǒng)試題Question對象包括7個屬性:試題編號、難易程度、類型、題干、選項、正確答案及分數(shù)。其中難易程度分為5個等級,級別越小考題就越難;目前試題類型只支持單項選擇和多項選擇兩種;題干中包括了題目的所有描述信息。系統(tǒng)根據(jù)考生的選擇與正確答案進行匹配,計算出考生的得分。
系統(tǒng)使用corejava.txt存放考題,試題格式如下:
Java語言中字符串“學(xué)Java”所占的內(nèi)存空間是:
6個字節(jié);
7個字節(jié);
10個字節(jié);
11個字節(jié)。
@answer=1,score=5,level=8
其中第一行為題干,中間四行為選項,最后一行表示正確答案、分數(shù)和難易程度。系統(tǒng)啟動時,將corejava.txt中的所有試題讀入內(nèi)存,并將每道試題解析為Question對象,再用Map結(jié)構(gòu)進行維護,其中key為難易程度,value為同一級別的一組Question試題對象,格式為:Map
4.3 試卷模塊
系統(tǒng)試卷為一組QuestionInfo對象集合,即List
5 結(jié) 語
本文實現(xiàn)了一種基于MVC模式的考試測評系統(tǒng),考生通過學(xué)號和用戶名進入系統(tǒng),選擇課程后,系統(tǒng)根據(jù)教師設(shè)定考試原則,自動從后臺數(shù)據(jù)庫中選擇相應(yīng)難度系數(shù)的各類題型的試題,生成試卷,供考生考試, 這種測試主要支持客觀題型。設(shè)計定時器,考試到時自動提交試卷,未答試卷自動提醒,動態(tài)地顯示考試剩余時間,并當(dāng)考試剩余時間用盡時,系統(tǒng)自動把考生的答案提交給應(yīng)用服務(wù)程序進行處理。在數(shù)據(jù)存儲方面,采取時間片存儲考試數(shù)據(jù)的方法,防止意外故障造成考試數(shù)據(jù)完全丟失的現(xiàn)象。本系統(tǒng)主要以客觀試題為主,在試題的類型上缺乏靈活性,同時缺乏對考試的分析與評價,因此在以后的工作中要逐步提高專業(yè)技術(shù)水平,將主觀性試題和分析評價部分引入到測評系統(tǒng)中,以提高該系統(tǒng)的實用性。
參考文獻
[1] 陳愛明,董朝霞.用Winsock實現(xiàn)在線考試[J].計算機應(yīng)用,2005,25(2):490?492.
[2] 廖汗成.智能化在線考試測評系統(tǒng)的設(shè)計[J].科技廣場,2006(2):60?62.
[3] 張春霞.利用Java 實現(xiàn)在線考試系統(tǒng)[J].電腦編程技巧與維護,2011(19):40?44.
[4] 張原,張昭,劉蕊.基于MVC設(shè)計模式的虛擬實驗平臺模塊化設(shè)計[J].計算機工程與科學(xué),2013,35(8):125?129.
[5] 楊新艷,蘇愛玲.Java設(shè)計模式在基于MVC模式系統(tǒng)中的應(yīng)用研究[J].計算機光盤軟件與應(yīng)用,2014(7):128?129.
[6] 宋榮杰,楊彥榮,胡德福.基于MVC模式的教學(xué)質(zhì)量評測系統(tǒng)的設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2008,31(10):39?41.