徐樂樂+尤健
摘 要: 針對在線考試系統靈活、方便等特點,分析了基于ASP.NET技術的在線考試系統的系統構成、設計思想和實現過程。系統主要包括學生、教師、管理員三個子模塊,重點介紹了管理員模塊中的組卷模板、自動組卷算法和隨機顯示算法。實際應用證明了該系統的可靠性和有效性。
關鍵詞: 在線考試系統; 自動組卷算法; ASP.NET; B/S
中圖分類號:TP391.4 文獻標志碼:A 文章編號:1006-8228(2016)11-32-03
Design and research of online examination system based on ASP.NET
Xu Lele1, You Jian2
(1. Nanjing Audit University, Nanjing, Jiangsu 211815, China; 2. ZTE Corporation)
Abstract: According to the characteristics of the online examination system such as flexibility and convenience, the system structure, design idea and implementation process of online examination system based on ASP.NET technology are analyzed. This system mainly includes three modules: student, teacher and administrator. The test paper auto-generating algorithm and the questions randomizing algorithm in the administrator module are emphatically introduced. The practical application of the system proves its reliability and effectiveness.
Key words: online examination system; test paper auto-generating algorithm; ASP.NET; B/S
0 引言
網絡化教育已經成為現代教育一個不可或缺的特征,作為一種全新的教學手段,網絡化教育迫使傳統教育必須變革。與此同時,考試模式也發生了巨大變化,基于網絡的在線考試系統正成為人們的研究熱點之一。
與傳統考試相比,網上在線考試可以有效地利用校園軟硬件資源,實現無紙化考試,節約大量的資源;可以利用網絡的強大功能,進行大規模的考試,保證考試的公平、公正性原則;實現完全自動化,自動組卷、閱卷可以減輕教師的工作量,降低教師負擔。
采用網絡化在線考試方式將是考試發展的趨勢,本文介紹基于ASP.NET的在線考試系統的設計思想與實現過程。
1 系統總體設計
為盡可能地減少客戶端系統維護的工作量,本系統采用B/S(瀏覽器/服務器)結構[1-2]作為系統的總體結構,客戶端僅由瀏覽器組成,沒有相關軟件需要維護或者升級的需求,考試環境既可以是局域網也可以是因特網,用戶通過向Web服務器發出請求,在瀏覽器上接受和顯示服務器提供的Web信息(如圖1所示),而ASP.NET在數據庫訪問、與HTML的集成、提高服務器的效率等方面擁有諸多優點。
從功能上本系統可分為三個基本功能模塊:
⑴ 學生子系統,為學生考試提供服務,如計時,考試素材下載,查詢成績等;
⑵ 教師子系統,為教師對自己所教班級學生提供管理服務及成績查詢等;
⑶ 管理員子系統,主要面向管理員用以管理整個系統的相關信息,包括人員信息管理、知識點管理、題庫管理、組卷系統等。
這三個基本功能模塊中,管理員子系統是核心模塊,其包含了考試系統必備的題庫管理和自動組卷功能,如圖1所示。
1.1 題庫管理
題庫管理操作包括試題的添加、修改、刪除,支持單選、多選、判斷三種常見的客觀題型。
試題的添加需要用到信息管理模塊中的課程信息、知識點信息,同時必須設置試題的難易度(分為難、中、易三級)。
1.2 考試管理
考試管理模塊主要的功能是組卷,為方便出卷,系統提供了組卷模板功能,通過模板定義了試卷的構成,包括題型、覆蓋的知識點、題目的數量、難易度及分數分配。因此通過模板組卷可以避免教師人工出題的主觀性,特別是公共課程,因學生較多需要出多套試卷,模板組卷一定程度上保證了多套試卷的知識點覆蓋及難易度上的一致性,從而有利于考試公平、公正原則。另外,為了盡可能避免學生作弊,可通過隨機顯示算法,將每位學生的試題順序打亂,且每次僅顯示一條題目,具體流程如圖2所示。
[生成試卷][選擇課程][選擇組卷模板(若無,先創建新模板)][抽題算法組卷][隨機顯示算法][設定考試時長、使用時間][完成]
圖2 組卷流程
2 系統關鍵算法
在線考試系統的組卷是根據用戶設置的組卷條件,通過一定的抽題算法,從題庫中選擇滿足要求的試題,來組成符合教師要求的試卷。因此,抽題算法是自動組卷能否成功的關鍵。另外,用計算機產生的隨機數將試題顯示的順序打亂,并限制每次僅顯示一道題目,則能有效避免學生的作弊。
2.1 抽題算法
為避免每次抽到的試題相同,抽題算法需要實現隨機抽題,該算法獲得了廣泛的研究[3-5],但大多復雜度較高。為提高抽題效率,本文通過.NET的偽隨機數生成器實現了一個簡單有效的算法,具體算法如下(假設抽取n條單選題):
count:抽取題庫所有未被抽取單選題的記錄條數
(滿足知識點、難易度要求);
flag:抽取標記(0:未抽取,1:已抽取);
算法說明:
初始化抽取標記flag=0;
Random rnd=new Random();
For i=1 to n
抽取題庫所有未被抽取選擇題(flag=0)的記錄集并計算
記錄集的條數count;
int r=rnd.Next(count); //生成隨機數
按隨機數r移動記錄指針;
抽取題目并設置抽取標記(flag=1);
next i
2.2 隨機顯示算法
試題的隨機顯示,可以通過對試題題號的隨機排序實現,以保證每位考生相同題型的題目出現順序不一樣,加大作弊難度,具體算法如下:
假設該試卷有n條單選題
算法說明:
將n條單選題的題號取到數組sc[n]中;
Random rnd=new Random();
For i=0 to n-2
int r=rnd.Next(n-i-1); //生成隨機數
交換sc[r]與sc[n-i-1]的值;
next i
3 系統實現
在線考試系統的核心在于網絡考試功能的實現,而自動組卷是其核心,圍繞自動組卷必不可少的就是組卷模板,實現的組卷模板mb1如圖3所示。
為進一步避免作弊,除隨機顯示試題外,通過設定GridView每行數據的可見性實現每次僅顯示一條題目,單擊下一題按鈕的主要代碼如下(以單選題的顯示為例):
for (int i=0; i { if (gvsc.Rows[i].Visible==true) { note=@"本題是第"+(i+2)+ " 題,還剩" +(count-i-2)+ " 題。"; if (i==gvsc.Rows.Count-1) { …… } else { if (i==gvsc.Rows.Count-2) if (gvmc.Rows.Count+gvjudge.Rows.Count==0) btnext.Text="交卷"; gvsc.Rows[i].Visible=false; gvsc.Rows[i+1].Visible=true; lnote.Text=note; break; } } } 4 結束語 本系統已基本滿足在線考試的實際需要,對學生而言,系統界面簡潔、友好,考生能及時查詢到考試成績。對教師而言,該系統降低了工作強度、提高了工作效率、不僅省去了批改、統計分數等繁瑣工作,而且避免了手工批改時可能出現的差錯。另外,該系統具有較好的通用性和靈活性,有利于題庫建設、實現教考分離、改革傳統的考試方式及提高教學質量。在接下來的工作中,還可進一步考慮提升系統的安全穩定性,能夠及時保存學生的答題結果,以避免當網絡不穩定時提交失敗導致的結果丟失,同時進一步研究和改進抽題算法。 參考文獻(References): [1] 張惠茹.學生網上考試系統的設計與實現[J].微型機與應用, 2013.4. [2] 王忠政.基于B/S架構的網上考試系統的設計與實現[J].軟 件導刊(教育技術),2013.2. [3] 楊曉敏.自動組卷及評分系統的設計與實現[J].計算機時代, 2012.3. [4] 袁桂霞.自動組卷的建模和仿真研究[J].計算機仿真, 2011.11. [5] 李永飛,趙巧芳.網上考試系統中隨機抽題算法的實現[J].華 北科技學院學報,2009.3.