張水利+董軍堂+馮敏娜


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