基于JAVA的在線考試系統(tǒng)的設計與實現(xiàn)
(陜西工業(yè)職業(yè)技術學院,陜西 咸陽 712000)
引 言
在分析了現(xiàn)有考試系統(tǒng),結合實際情況的基礎上,利用Java 語言設計并實現(xiàn)了一個基于 Web 的在線考試系統(tǒng)設計。系統(tǒng)包含了登錄、注冊、教師和學生信息管理、在線考試、試卷管理、題庫管理、學生成績管理等能功能。
1 采用技術
模型-視圖-控制器(MVC)是 Xerox PARC 在八十年代為編程語言Smalltalk - 80 發(fā)明的一種軟件設計模式,至今已被廣泛使用。最近幾年被推薦為Sun 公司J2EE 平臺的設計模式。
Struts 最早是作為Apache Jakarta 項目的組成部分問世運做,Struts 的目的是為了幫助開發(fā)者減少在運用MVC 設計模型來開發(fā)Web 應用的時間。如果想混合使用Servlet 和JSP 的優(yōu)點來建立可擴展的應用,Struts 是一個不錯的選擇。Struts 是MVC 的一種實現(xiàn),它將Servlet 和JSP 標記(屬于 J2EE 規(guī)范)用作實現(xiàn)的一部分。Struts 繼承了MVC 的各項特性,并根據J2EE 的特點,做了相應的變化與擴展。Struts 的核心是ActionSevlet,ActionSevlet 的核心是Struts-config.xml 配置文件。
2 系統(tǒng)可行性分析
可行性研究(Feasibility Study)是為了弄清所定義的項目是不是可能實現(xiàn)并值得進行。下面從三個方面分析本系統(tǒng)的可行性。
本系統(tǒng)是在Windows XP 操作系統(tǒng)下開發(fā)的基于B/S 體系結構的Struts 框架的MVC 模式的系統(tǒng),采用 MyEclipse 6.5、Tomcat 5.5、DreamWeaver、PLSQL 作為開發(fā)工具。本系統(tǒng)后臺采用Oracle 10i 數據庫,其具有跨平臺性、可靠性、易用性。軟件運行環(huán)境 :終端支持運行 Windows 的計算機、數據庫支持各種流行的大型關系數據庫,數據庫服務器支持Windows等各種操作系統(tǒng) ;開發(fā)本系統(tǒng)的經濟成本低,使用 Java 開發(fā)維護費用不高、開發(fā)的周期短 ;網絡化已經成為社會的趨勢, 本系統(tǒng)操作簡單方便。
3 系統(tǒng)設計模式
基于B/S 的在線Web 考試模式的物理模型 :一方是管理員在一端通過Internet 與服務器進行連接,另一方是學生分別從不同的地方,也通過 Internet 與考試服務器連接,圖 1 為系統(tǒng)的網絡原理圖。
在線考試系統(tǒng)從概念上看,是一個典型的數據庫應用Web 系統(tǒng),采用三層B/S 體系結構。三層體系結構相對較為簡單,表示層展現(xiàn)給最終用戶UI 界面,中間業(yè)務邏輯層處理用戶請求并訪問數據庫,底層為持久層數據庫實現(xiàn) ;而多層體系結構則將業(yè)務邏輯層進一步細化,使系統(tǒng)更加靈活。本系統(tǒng)采用了多層體系結構(系統(tǒng)體系結構如圖 2 在線考試系統(tǒng)網絡部署圖)。
4 系統(tǒng)總體設計及部分模塊實現(xiàn)
該系統(tǒng)具有用戶登錄、參加考試、以及教師進行試題維護、成績查詢等功能的ASP 應用程序,應具有開放性、方便性和靈活性。登錄用戶可以是學生、教師和系統(tǒng)管理員,每類用戶有不同的操作權限??忌ㄟ^用戶驗證后進入考試系統(tǒng), 并在規(guī)定的時間內進行答題,考生交卷后,其分數將被存入數據庫中以供以后的查閱。為了保證系統(tǒng)運行的效率和可靠性, 系統(tǒng)服務器端應具有較高的軟硬件配置,客戶端的要求不是很高。
詳細設計階段的任務是在總體設計的基礎上進一步確定如何實現(xiàn)目標系統(tǒng),包括以下內容 :確定每一模塊使用的數據結構,確定每個模塊實現(xiàn)的功能,確定流程圖,為每個模塊確定采用的算法,寫出模塊的詳細過程性描述。
下面將系統(tǒng)試題抽取模塊實現(xiàn)時的關鍵技術及代碼進行說明。
在進入到該頁面之前,所抽取的題目是在題庫中隨機抽取的,不能有重復的題目,部分代碼如下所示 :
publicstatic List<Integer>getRandoms(int size,intnum){ List<Integer>listInt = newArrayList<Integer>(); Random ran = newRandom();
int k = 0 ;// 初始的數據個數為 0 ;
while(true){
// 這里可以有兩種方法來處理 :一種是重新遍歷數組找出不重復,另一種是直接用Set 集合
if(listInt.size()== 0){
listInt.add(new Integer(ran.nextInt(size))); k++ ;
} else {
int t = ran.nextInt(size); boolean result = false ;
for(int j = 0 ;j <listInt.size();j++){ if(t == listInt.get(j)){
result = true ;
break ;}
}
if(result){
// 不添加 繼續(xù)循環(huán)
} else {
listInt.ad(d new Intege(r t)); k++ ;
if(k == num){
returnlistInt ; } }
}
}
}
其中,size 是傳入的集合的個數,num 是需要抽取的題目的個數。
在學生模塊中可以實現(xiàn)學生基本信息的修改,對于密碼修改,使用String xpwd = request.getParameter(“xpwd”)實現(xiàn)新密碼加載, 使用session.setAttribute(“pwd”,xpwd)實現(xiàn)新密覆蓋掉以前的舊密碼。
5 結 語
本系統(tǒng)是基于Struts1+Spring+Hibernate框架的MVC模式,所以具有數據和表示層分離的特性,這樣前臺和后臺在設計就能互不影響。應用本系統(tǒng),既減輕了老師的閱卷工作, 同時也使學生對考試產生了濃厚的興趣,體會到科技給生活帶來的樂趣。在線考試系統(tǒng)為高校的老師和學生們提供了極大的方便,降低了考試的成本,提高了考試的公平性、可靠性。
參 考文獻
[1]曹鳳蓮. 網上考試系統(tǒng)的設計與實現(xiàn)[J]. 網絡與信息,2010,24(3):
48-50.
[2]aoFeng-lian.Design and implementation of online examination system[J].Network & Information,2010(3):3-7.
[3]明日科技.C# 項目開發(fā)案例全程實錄 [M]. 北京 :清華大學出版社,
2011.
[4]王淑敏.ASP.NET 動態(tài)網站設計 [M]. 北京 :清華大學出版社,
2010.
[5]鄭德康. 在線考試系統(tǒng)的設計與實現(xiàn) [J]. 計算機光盤軟件與應用,
2012(8):154-155.
[6]李隘優(yōu). 基于B/S 的在線考試系統(tǒng)安全性的設計與實現(xiàn)[J]. 新鄉(xiāng)學院學報(自然科學版),2012(4):336-338.
[7]Li Ai-you.Design and implementation of security based on B/S online examination system [J].Journal of Pingyuan University,2012
(4):50-52.
[8]周鵬梅 . 在線考試系統(tǒng)的設計與實現(xiàn) [D]. 廣州 :華南理工大學,
2012.