王奭 陳鴻

摘 要: 本文主要針對本校考試現狀,以提高考試效率、降低考試成本、實現無紙化考試為目標,深入分析在線考試系統的各個環節,設計了一個實用、高效的考試系統。
關鍵詞: 隨機抽題算法 考試系統 JavaEE
1.現實背景
隨著計算機和互聯網技術的迅速發展,各種校園網絡逐漸成熟,為計算機化和無紙化教育提供了可能,考試逐步進入網絡化時代。相對于傳統考試系統,網絡化的在線考試系統有著許多突出優點。首先,網絡化考試可以突破時間和空間的限制。其次,網絡化因為采用計算機答題,可以節省大量紙張。以大學課程C語言為例,考試試卷一個班需要印制30份左右,每份試卷需要使用5頁左右的B4紙張。根據教務處2014年45號通知,我院共有在籍人數22917人。按照每門課程需要5頁紙,平均需要考試4門課計算,如果采用無紙化考試系統,就會節省45萬張考試用紙,間接減少樹木砍伐量,保護環境。
2.技術背景
系統設計時考慮到了安全性和各種系統兼容性及相應的及時性等特點,因此采用JavaEE開發平臺的相關技術。Java技術有天然的優勢和特點,跨平臺,系統運行穩定,有許多很好的開放的開發架構,如Struts、Spring、Hibernate等。Struts采用MVC模式,能夠很好地幫助java開發者利用J2EE開發Web應用。Struts是面向對象設計,將MVC模式“分離顯示邏輯和業務邏輯”的能力發揮得淋漓盡致。Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使Java程序員可以隨心所欲地使用對象編程思維操縱數據庫。Spring是一個輕量級的Java開發框架。它的主要優勢之一就是分層架構,分層架構允許使用者選擇使用哪一個組件,同時為J2EE應用程序開發提供集成框架。
3.算法介紹
隨機抽題算法,首先是建立兩個序列組,一個是待抽取的題目組成的序列,一個是已經抽取出來編號的序列組,這里序列組中序列的個數是根據題目類型建立的。然后根據用戶設定的每種試題類型的數目,隨機抽取試題序號到已選定序列組。當所有選定的類型都已經達到數目設定,即完成組卷。
具體算法如下:
(1)定義不同題型的待選題號數組和已選題號數組,假設單選題對應的待選題號數組為G11,已選擇出來的單選題的題號數組為G12;多選題對應的待選提題號數組為G21,已選擇出來的多選題的題號數組為G22;依此類推。
(2)對各個題型的數組初始化,預先設定好各個題型的分數值。
(3)使用隨機函數在G11數組中抽取一個試題,加入到G12中,然后把G11數組中和該試題同一章節的其他題號刪除,目的是保證下次選出的試題題號不再是該章節的試題題號。每次隨機選擇出一個題號加入到G12之后,都要將G11中該題號所在章節的其他試題題號刪除,直至G11為空或者完成單選題的抽題任務。
(4)如果單選題任務沒有完成,即沒選出足夠的試題,而同時G11為空,那么下次抽題之前,將根據G12反向選擇出為單選擇的試題題號到G11中,再隨機選擇一個試題題號出來。再重復步驟3。
(5)單選題完成選擇之后,再類比完成其他題型的抽題任務,直至組卷完成。
該算法的優點是算法相對簡單、高效,組卷的試題的章節分布均勻。
難度系統調整問題。根據用戶答題錯誤率調整難度系數。
4.系統實現
功能模塊設計:包括用戶(管理員、教師、學生)信息管理,題庫與試題管理、試卷管理、考試管理、試卷評閱、成績分析與評價、信息發布模塊等。
考試模式的選擇分為所有學生答固定試題的試卷,也就是說所有學生參加考試的試卷的題目是一樣的;每個同學都從系統中隨機抽題組卷,每個試卷中各種類型的題目的個數一樣,難度系數都一樣,但是具體題目不一定相同。
數據通信模塊,在考試過程中需要根據用戶設定,每隔一段時間與服務器交換數據,主要進行時間統一,服務器接受用戶考試過程中的答題數據。
試卷評閱部分,主要指由閱卷老師對問答題等部分進行評分。
成績分析與評價部分,則根據某一次考試情況,以圖表形式統計每道題的答題情況,以及整個學生成績的分布統計等數據,包括平均分,各個分數段人數,以及均方差等數據。便于出題老師對該試卷總體情況進行分析和評價。
信息發布模塊主要是發布有關考試信息和考卷情況的內容。
5.運行和測試
實現要點:防止考生作弊。因為系統既可以隨機抽題考試和測試,又可以由教師手工組卷進行考試。在第二種情況下,所有考生將對同一套試卷進行測試,相鄰同桌之間太容易互相抄襲。可以采用以下方法避免這種情況:
(1)打亂考生試題的題號。試卷中所有試題整體上是一樣的,但是試題出現的題號不一樣。同一道題,一個同學答的題號是1,另外一個同學的題號可能是10。
(2)打亂試題尤其是選擇題的選項順序。對于同樣一道選擇題,不僅出現的題號有可能不一樣,而且題支中選項也會打亂次序。
6.總結
經過4個班120人的測試,系統滿足設計任務要求,運行正常,達到了設計要求。但由于時間緊迫,還需要進一步改進:進一步完善UI界面,提供更人性化、方便操作的界面;優化數據庫組織,可供更多用戶同時監考;添加試題批量管理、用戶批量管理等功能。
參考文獻:
[1]歐薇.基于遺傳算法的在線考試系統的設計與實現[D].華南理工大學,2012.
[2]吳靜霞.基于智能組卷的在線考試系統的設計與實現[D].蘇州大學,2008.
[3]劉韶麗.基于智能組卷策略的網上考試系統的設計與實現[D].東南大學,2006.
[4]王添財.基于JavaEE的在線考試系統的設計與實現[D].華南理工大學,2014.
本文是校級科研課題”基于JavaEE的綜合考試系統的設計與實現”支持的項目文章。