摘 要:針對目前傳統考試方式的不足,介紹一個在Web環境下,利用ASP.NET/ADO.NET技術開發基于Brower/Server模式的網絡考試系統的總體方案。使用遺傳算法針對自動組卷問題進行特別的設計,使其能夠滿足組卷要求。通過大量測試,提出并解決了異常因素對考試過程的影響,提高了系統的安全性和健壯性。試卷按照組卷算法生成,可以避免考前的壓題,減小作弊的可能。
關鍵詞:網絡考試; NET; SQL Server; 遺傳算法
中圖分類號:TP311文獻標識碼:A
文章編號:1004-373X(2010)08-0064-03
Design and Implementation of Network Exam System Based on ASP. NET/ADO. NET Technology
ZHANG Liang, ZHAO Na
(China University of Petroleum, Dongying 257061, China)
Abstract:In view of existing defects of the traditional examination, the scheme of an online examination system based on Browser/Server mode using ASP. NET/ADO. NET techniques under Web environment is introduced. The auto-generating exam paper is designed by genetic algorithms. Furthermore, by a large number of testing,the impact of abnormal factors on examination process were eliminated and the security of the system was improved. The exam paper can be produced by generating algorithm, so it can prevent phenomenon from guessing the exam questions before examination and decrease the possibility of cheat.
Keywords:network examination; .NET; SQL Server; genetic algorithm
在網絡技術逐漸滲入社會生活各個層面的今天,傳統考試模式已經越來越不適應現代教學的需要,而網絡考試則是一個很重要的方向,它可以利用網絡的無限廣闊空間,隨時隨地地對考生進行考試,加上數據庫技術的利用,大大簡化了傳統考試的過程。目前,各地出現了一批網絡測評系統和實現類似功能的系統,如上海交通大學遠程教育中心開發的遠程考試系統、計算機等級考試和Microsoft,CISCO等計算機公司的資格認證考試等。在此,提出網絡考試系統的設計與開發,該系統采用B/S模式[1-2],由瀏覽器、Web服務器和數據庫服務器組成,并利用.NET技術[3],后臺數據庫采用SQL Server 2005[4]
1 系統的詳細分析與設計
1.1 系統的功能分析與設計
該系統的用戶分為管理員、教師、考生三種。工作流程分為題庫與組卷和考試及批閱兩個階段。支持系統的數據庫分為:用戶記錄、超級用戶、教師記錄、試題表、成績登記表以及試卷名稱表。系統的功能模塊分別為:試題管理、試卷生成、身份確認、考試與提交、試卷批閱、統計分析、成績查詢等。
該系統總體設計流程如圖1所示,考試系統分四個階段,即準備階段、登錄階段、考試階段和考后階段。
圖1 系統總體設計流程
1.2 系統的數據庫分析與設計
根據系統功能的設計,在SQL Server 2005里創建數據庫TestOnline,其中主要數據庫表如表1~表4所述。
2 關鍵技術及實現
2.1 遺傳組卷算法[5-8]
遺傳算法(Genetic Algorithm,GA)是一種演化算法,在求解TSP,SAT,NLP等NP難問題時,有更高運算效率、更好的魯棒性和良好的并行性。運用遺傳算法求解問題首先需將所要求解的問題表示成二進制編碼,然后根據環境進行基本的操作:selection,crossover,mutation,…這樣不斷進行地所謂“生存選擇”,最后收斂到一個最適應環境條件的個體上,得到問題的最優解。
表1 YHJL(用戶記錄)
字段數據類型寬度說明
UserNameNvarchar50用戶名
UserPwdNvarchar50用戶密碼
UserAuthorityNvarchar50權限
UserStateNvarchar50當前狀態
表2 SJMC(試卷名稱表)
字段數據類型寬度說明
PaperIdInt4試卷標識
PaperNameNvarchar50試卷名稱
TpReal4總分
TimeReal4時間
DifficultyNvarchar20難度
ExaminationInt4試題
ZyNvarchar40專業
MarkReal4分數
表3 STTK(試題題庫表)
字段數據類型寬度說明
PaperIdInt4試卷標識
ZyNvarchar40專業
PtNvarchar20試題類型
PdNvarchar20試題難度
PmReal4試題分數
StNvarchar20試題
DaNvarchar20答案
表4 CJDJ(成績登記表)
字段數據類型寬度說明
UserNameNvarchar50用戶名
UserPwdNvarchar50密碼
TimeNvarchar50時間
ZfNvarchar50總分
CjReal 4成績
PaperNameNvarchar50試卷名稱
UserStateNvarchar50當前狀態
SjNvarchar50試卷
2.1.1 組卷數學模型
由于每種題型的試題個數在染色體進行編碼時就固定在子染色體中,因此在該系統中數學模型設計為一個5維向量(題號a1,題型a2,難度系數a3,知識點a4,題分a5)來表示。如果一份試卷一共有m道題,那么一個m×5的矩陣,就可以決定一份試卷。
S=a11a12a13a14a15
a21a22a23a24a25
am1am2am3am4am5〗
2.1.2 算法設計
(1) 染色體編碼方法。
用遺傳算法求解問題,首先要將問題的解空間映射成一組代碼串。該系統采用實數編碼的遺傳算法。將一份試卷映射成一個染色體,組成試卷的各個試題映射成基因,基因的值直接用試題的題號表示,且同種題型的試題標號組在一起形成段,每一段編碼反映一種題型,各個題型各自進行實數編碼,在組卷中所得的可行解就為一份試卷,染色體中編碼的個數就是試卷中試題的個數。這樣染色體的編碼可表示為:(G1,G2,…,Gn),其中Gi(i=1,2,…,n,n為試卷的試題數)。
(2) 適應度函數的設計。
組卷問題時一個多重約束的求解問題,可以把這些組卷約束條件轉化為試卷的目標函數,通過試卷模型中各個參數的取值來體現,因此可以把各個試卷參數取值的限定作為實現組卷的多個目標。所以目標函數的構造如下:
F=∑5i=1gi+|EP-P|
式中:gi表示第i種題型考察知識點的重復次數;EP為實際生成試卷的難度系數;P=∑Di(Si/∑Si)為用戶期望的難度系數,可以看出目標函數的值越小越好,而適應度函數是值越大越好。因此可以采用如下方法將目標函數F轉換為適應度函數f:
f=100-F, F<100
0, F≥100
(3) 產生初始種群。
本系統組卷算法是依據組卷要求從每一類題型中隨機產生相應數目的題號,把該題號作為基因,按題型有序的存入個體的染色體中。保證同種題型的各題號必須相異,以免在同一份試卷中出現重復的試題,而且每個題號均在相應題型的題號定義域中產生。
(4) 遺傳算子設計。
組卷流程中涉及到的算子主要有三個:選擇算子,交叉算子與變異算子。該系統選擇算子時采用適度比例方法,使用公式Pi=fi/∑mj=1fj來表示個體i被選取的概率。交叉算子的設計是遺傳操作設計中的核心部分,其具體操作是:γ對兩個配對個體的每一個基因先隨機產生一個0~1的實數γ, 如果γ 2.2 身份驗證和權限設置 系統具有很嚴格的身份認證程序,考生、教師要想登錄該系統,都必須經過身份驗證。對于不同的用戶來說,其用戶權限也不相同。用戶登錄采用ASP.NET來訪問SQL Server 2005數據庫中的數據[9-10],并將數據以網頁的形式顯示。登錄頁面使用了一個用戶記錄表(YHJL)。在登錄頁面里需要引用這個表的用戶名(UserName),密碼(Userpwd)和權限(UserAuthority)字段進行用戶身份鑒別。訪問權限代表了用戶對數據庫進行讀取、插入、刪除和修改操作的權限組合。 2.3 程序的移植 為了方便程序移植,這里將與數據庫的連接寫在webconfig文件里面更方便,并且易于修改。由于webconfig是底層的東西,可以保證程序的安全性,可以通過如下代碼實現: value=\"uid=sa;password=;database=TestOnline;server=201DMT20;\" /> 2.4 考試過程中突發事件的處理 如果考試期間發生突發事件,導致考生無法繼續考試,那么在考生二次登錄后,需要還原考生的考試環境;如果考生的考試環境未遭到破壞,則可以使用原來的考試環境;如果考試環境遭到破壞,則可以利用備份目錄。 該系統為每位考生設置了備份目錄,該備份目錄為隱藏屬性,內容和考生的考試環境目錄相同。系統設置考生的考試文件每分鐘定時存儲,備份目錄和考生的考試環境同步更新,將備份目錄隱藏通過函數setFolderHidden()實現。 3 結 語 由于采用了B/S結構,使系統具有良好的可維護性和可擴充性,如果考試科目內容有所調整,只要對題庫作調整即可。而ASP.NET技術的運用使得網絡考試系統靈活易用,具有良好的安全性和可擴展性。采用基于遺傳算法的自動組卷算法,克服了傳統組卷算法的隨機性和偶然性。 參考文獻 [1]李躍華, 曹大林, 丁浩. 基于B/S結構考試系統的設計與實現[J]. 南通大學學報: 自然科學版, 2005(1): 74-75. [2]楊永, 梁金鈐. 基于B/S模式的通用試題庫系統的設計與實現[J]. 計算機工程與技術, 2009, 31(4): 143-145, 148. [3]Greg Buczek. ASP. NET開發人員指南[M]. 北京:清華大學出版社, 2002. [4]桂思強. 數據庫基礎與實踐基于SQL Server 2005[M]. 北京:清華大學出版社, 2007. [5]劉艷偉, 劉文. 無紙化考試智能組卷和試題庫問題的探[J]. 中國科技信息, 2006(9): 244-246 [6]毛秉毅. 基于遺傳算法的智能組卷系統數據庫結構的研究[J]. 計算機工程與應用, 2003(6): 230-232. [7]梅炳夫. 一種自動組卷算法的實現[J]. 電腦知識與技術, 2008(8): 1718-1719. [8]陸金桂. 遺傳算法原理及其工程應用[M]. 徐州:中國礦業大學出版社, 1997. [9]孫曼曼, 崔素麗, 王勇兵. ASP. NET連接SQL Server數據庫的實現[J]. 科技信息, 2008(29): 208-209. [10]趙波. 在ASP. NET中實現SQL Server數據庫的匿名訪問[J]. 云南民族學院學報: 自然科學版, 2002, 11(3): 162-165. [11]司存瑞,周巖,孫米. 網絡考試系統平臺的設計與實現[J].現代電子技術, 2006, 29(20): 44-45.