摘要:隨著網絡的蓬勃發展,網絡教育也得到了越來越多的認可。在這種形勢下,網絡教育所伴隨的在線考試必定在未來教育事業上作用明顯。本文闡述了一套基于JAVA的網絡考試系統設計思路和實現過程。能夠實現在線考試、客觀出卷、高效閱卷、分析成績等功能,提高考評工作效率。
關鍵字:網絡教育;網絡考試系統
網絡考試實現了傳統考試和現代科技的完美結合,符合現代教育體制的要求,代表著現在教育考試的發展方向。
一、網絡考試系統需求分析與設計
本文所闡述的網絡考試系統是以服務器和客戶端的連接為中心的。客戶機與服務器進行連接是通過IP地址和端口號數據通信的。客戶機與服務器對應關系如下:一個客戶機對應一個服務器;而一個服務器對應多個客戶機。服務器與客戶機通過線程連接。
1、功能要求
選取考試題目類型為標準選擇題。題目類型確定,會大大降低系統設計的復雜度。分析系統功能,主要包括客戶端、服務器端功能兩個方面。
(1)客戶端功能如下:
登錄功能,輸入考號與姓名;
考試功能,顯示試題內容;
題目切換功能,實現上一題下一題的切換;
計時功能,實現考試計時;
閱卷功能,選擇題試題答案;
查分功能,考試結束能查看考試成績;
(2)服務器端功能如下:
登錄功能,對考生輸入的考號與姓名進行驗證;
考試功能,向客戶端傳遞試題內容;
查分功能,統計并存儲考生的得分。
2、場景分析
場景是從用戶的角度觀察目標軟件系統的外部行為,是用戶與系統進行交互的一組具體動作。
通過分析,考試系統開戶端包括以下幾個場景:輸入考生信息并驗證、開始考試并計時、選取考題、提交答案、查看成績。共有三個界面構成。
(1)第一個是用戶登錄界面:考生輸入信息單擊"確定"按鈕,此時應把考生信息送往服務器驗證,經服務器驗證后,把驗證結果送往客戶端。如果驗證不通過,則輸出驗證沒有通過的響應提示。如果驗證通過,則可以開始考試。
(2)第二個是考生的考試界面:開始考試并計時,當驗證通過后,考生信息可設置為不顯示,單擊"開始考試"按鈕,則服務器端讀取考試時間并顯示在客戶端界面中;自動選擇考題,向服務器端發送請求,服務器把試題內容發送到客戶端變現實;提交答案,當考生選取考題答案并單擊"提交答案"按鈕后,由服務器記錄考生提交的答案。
(3)第三個是查看成績界面:當考生考完試題后,單擊"成績"按鈕,可馬上看到自己的考試成績。當考生單擊"關閉"按鈕,服務器要斷開連接,線程結束。
在服務器端,由于是對多名考生同時提供服務,因此服務器端不需要編寫專門的考試界面,只按照客戶端考生提交的請求進行相應的處理并把處理結果發送給客戶端即可。
3、數據存儲
(1)考生信息存儲
考生信息由考號、姓名、成績組成,由于數據量不大,處理比較簡單,我們采用Access數據庫存儲考生信息即可。
(2)試題存儲
由于試題題目類型單一,數據量不大,我們選取文件存儲。文件中第1行用于存儲考試時間,提示與時間中間用"@"分隔;第二行用于存儲試題的標準答案,同樣提示與標準答案中間用"@"分隔;題目中間用"**********"分隔,在最后一題的"**********"后面有"試題結束"標識。
4、類的構造
(1)服務器啟動,服務器讀取配置文件。將考試所需要的考題以及規定格式寫入配置文件中;然后,把考生的賬號密碼等信息寫入另一個配置文件中。服務器需要讀取試卷信息,所以在設計時定義學生類、試卷類以及題目類。當客戶端與服務器之間連接時需要數據請求,這里包括多種請求類型:連接請求,考生登錄請求,試卷發送請求,答題請求。為滿足上述需求,我們需要定義請求類,并且要求服務器不斷讀取請求信息。為了減少代碼量,我們這些需要幾個工具類:一個是創建套接字的連接;一個是用來讀取配置文件的工具類。這樣就形成了服務器的基本框架。
(2)在客戶端,我們只需考慮一個線程即可。共涉及到四個類,這之中有三個窗口類和一個客戶機與服務器線程連接的類。這個連接類是上述三個窗口類的一個屬性,這個屬性用來使得三個窗類和服務器進行數據通信。三個窗口也是通過上述連接類與服務器之間進行通信。這樣就形成客戶端的整體設計結構。
二、程序設計及實現
1、客戶端模塊
(1)考試面板類TestPanel體現了考試界面的核心內容,包括考試時間、試題顯示、選擇答案等組件。在該類中實現了在考試過程中向服務器發送請求并處理來自服務器的信息。主要涉及的功能有線程啟動后執行run方法,接收服務器發送回來的信息并作出相應的處理;初始化面板中的圖形組件;把毫秒表示的時間轉化成時、分、秒等字符串表示;單擊"開始考試"按鈕后要執行的任務;計時器倒計時;單擊"提交答案"按鈕后要執行的任務;單擊"成績"按鈕后要執行的任務;關閉所有連接。
(2)客戶端主類ClientFrame設置了考試界面的基本樣式并能實現考試信息驗證。
2、服務器端模塊
(1)數據庫連接對象類DBConnection建立并返回數據的連接對象。本系統數據庫連接采用了JDBC_ODBC模式,數據源的名稱為"student"。
(2)服務器端主類MultiServer創建的服務器端的ServerSocket,當有客戶發出連接服務器的請求時,生產客戶端進行通信的Socket對象。
(3)讀文件類ReadTestFile能獲取考試時間、標準答案、讀取考試試題等。主要涉及的功能隨機抽取序號,讀取試題中序號指向的每一題并返回,讀取到文件最后。
(4)多線程類ServerTread及時處理客戶端提出的要求,如考生信息驗證、讀取試題并發送客戶端、計算考試成績并發送客戶端等。其中考試信息驗證及最終考試成績都是通過數據庫操作實現的。
三、網絡考試系統的特點
1、先進的開發技術和框架
采用當前最優秀的J2EE技術和主流的SSI框架進行開發,系統功能可擴展性強。
2、可靠的考試引擎技術
可靠性高,系統性能穩定,可承擔大規模在線考試。
3、完善的考試實時監控功能
監考老師可以隨時查看在線考生的考生身份、進入考試時間、試卷答案、交卷時間等情況,還可以作廢或回復某考生考試。
4、強大的統計分析功能
支持對知識點、試題、考試成績等多維度的查詢統計。
四、結束語
網絡考試系統,網絡考試是延伸了傳統考試考場的涵義,它利用網絡的無限廣闊空間,把考場從學校延伸到計算機機房、辦公室及其他任何網絡所覆蓋的區域,并可隨時對考生進行考試,加上數據庫技術的利用,使考試變得更公平公正、更具權威性和可靠性。
參考文獻:基于java技術的網上考試系統,劉昌華、班鵬新,武漢輕工大學學報,2003,22(2):40-42
作者簡介:
楊艷華 ,女(1977.11--),黑龍江省哈爾濱市,副教授,碩士,研究方向:數據庫技術,軟件開發。endprint