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