王正燕++韋萍萍++崔忠偉++黃鵬
摘 要:通過利用ASP.NET+C#+MySQL5.0等技術(shù)對(duì)基于Web在線考試管理系統(tǒng)的用戶登錄模塊、用戶信息管理模塊、在線考試、題庫建設(shè)、組卷等模塊進(jìn)行設(shè)計(jì)與實(shí)現(xiàn),解決了傳統(tǒng)考試模式存在的一些問題,實(shí)現(xiàn)了信息化時(shí)代的數(shù)字化、無紙化、實(shí)時(shí)快速的考試管理模式。
關(guān)鍵詞:ASP.NET技術(shù);在線考試;數(shù)字化;C# ;MySQL5.0
中圖分類號(hào):TN711 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2015)05-0-02
0 引 言
傳統(tǒng)考試存在工作量大、效率低、反饋周期長(zhǎng)、資源浪費(fèi)等問題,很多高校希望找到一種數(shù)字化、無紙化、考務(wù)工作效率高的考試管理方式。開發(fā)數(shù)字化考試管理系統(tǒng),一般有兩種架構(gòu),一種為C/S,一種為B/S,而本文只考慮后者的開發(fā),本系統(tǒng)針對(duì)客觀題(填空題和改錯(cuò)題)、主觀題(如C語言程序題)能夠給予自動(dòng)評(píng)分,從而減少人工參與力度和工作量,提高工作效率和評(píng)分正確率。
1 系統(tǒng)設(shè)計(jì)
1.1 系統(tǒng)構(gòu)建與業(yè)務(wù)流程
本系統(tǒng)采用B/S結(jié)構(gòu),系統(tǒng)框架是MVC三層架構(gòu)模式。系統(tǒng)使用Microsoft Visual Studio2010集成開發(fā)壞境,ASP.NET+C#作為系統(tǒng)開發(fā)語言,ASP.NET是對(duì)ASP的繼承,但不是ASP的簡(jiǎn)單升級(jí),而是微軟發(fā)展的新的體系結(jié)構(gòu).NET的一部分,是一個(gè)由類和對(duì)象(組件)組成的完全面向?qū)ο蟮南到y(tǒng),更加安全、穩(wěn)定、容易配置和部署。C#是.NET公共語言運(yùn)行壞境的內(nèi)置語言。它完美的結(jié)合了C/C++的強(qiáng)大功能、Java的面向?qū)ο筇卣骱蚔isual Basic的易用性,是一種簡(jiǎn)單的、類型安全的、面向?qū)ο蟮木幊陶Z言。C#也是微軟專門為.NET應(yīng)用而開發(fā)的語言。這從根本上保證了C#與.NET框架的完美結(jié)合。服務(wù)器運(yùn)行平臺(tái)為Windows XP (SP2)/Windows 2000(SP4)/Windows Server 2003(SP1),后臺(tái)數(shù)據(jù)庫服務(wù)為MySQL5.0。
本系統(tǒng)具有人機(jī)交互強(qiáng)大,界面簡(jiǎn)單、友好;易維護(hù)、易用;數(shù)據(jù)庫存儲(chǔ)安全,信息保密性強(qiáng);嚴(yán)格的用戶管理、訪問控制管理及權(quán)限設(shè)置等特點(diǎn)??忌ㄟ^客戶端連接系統(tǒng)服務(wù)器登錄系統(tǒng)前臺(tái),進(jìn)行考試前,必須先用真實(shí)個(gè)人信息進(jìn)行注冊(cè)。注冊(cè)成功后,登錄系統(tǒng)進(jìn)行考試,答題完成,提交試卷,系統(tǒng)自動(dòng)評(píng)分??忌荚囘^程中動(dòng)態(tài)顯示考試剩余時(shí)間。若考試時(shí)間到而考生仍未提交試卷則系統(tǒng)自動(dòng)終止考試并進(jìn)行試卷保存處理。系統(tǒng)管理員登錄系統(tǒng)后臺(tái),維護(hù)和管理系統(tǒng)。系統(tǒng)整個(gè)流程圖如圖1所示。
圖1 系統(tǒng)流程圖
1.2 功能模塊設(shè)計(jì)
(1)用戶登錄模塊。考生在登錄系統(tǒng)進(jìn)行考試前,必須先用真實(shí)個(gè)人信息進(jìn)行注冊(cè)。注冊(cè)成功后,通過登錄界面輸入賬號(hào)和密碼登錄系統(tǒng),系統(tǒng)根據(jù)用戶登錄賬號(hào)判定其身份,并對(duì)其不同身份開啟不同的系統(tǒng)功能。該界面設(shè)置記憶登錄用戶功能、驗(yàn)證碼功能和找回密碼功能。
(2)用戶信息管理模塊。即對(duì)系統(tǒng)管理員、教師、考生信息的管理(此功能初始設(shè)定不對(duì)教師開放),三者角色不同,登錄的功能界面也不同。管理員具有查詢、添加新用戶、修改和刪除用戶信息、重置密碼等權(quán)限。
(3)在線考試。在線考試管理模塊提供兩種測(cè)試方式:一種是平常練習(xí),學(xué)生在學(xué)習(xí)完某一章節(jié)內(nèi)容后,通過客戶端連接到系統(tǒng)服務(wù)器,選擇題目類型、難易度等參數(shù),系統(tǒng)后臺(tái)根據(jù)選中的條件組卷出題。學(xué)生可自行查看自己的測(cè)試結(jié)果和標(biāo)準(zhǔn)答案以及試題解析。另一種是常規(guī)考試,考生考試過程中系統(tǒng)動(dòng)態(tài)顯示考試剩余時(shí)間。若考試時(shí)間到而考生仍未提交試卷,則系統(tǒng)自動(dòng)終止考試并進(jìn)行相關(guān)數(shù)據(jù)的保存處理。這里采用時(shí)間片存儲(chǔ)考試數(shù)據(jù)方法。
(4)題庫建設(shè)模塊。題庫結(jié)構(gòu)的搭建要求科學(xué)合理,其包括題目屬性值的設(shè)置及度量標(biāo)準(zhǔn)。做好試題的收集和編制;在把試題存入數(shù)據(jù)庫中時(shí)確保存儲(chǔ)方式緊湊、安全、高效。題目界面的設(shè)計(jì)要方便靈活。學(xué)科知識(shí)在不斷更新,題庫的管理應(yīng)具有動(dòng)態(tài)性、實(shí)時(shí)性。
(5)組卷模塊。在線考試管理系統(tǒng)的另一個(gè)難點(diǎn)即是組卷,就是根據(jù)一定的組卷理論采用高效、可靠的組卷算法組織試題。
(6)成績(jī)統(tǒng)計(jì)與查詢模塊。常規(guī)考試,為了提高教學(xué)質(zhì)量,對(duì)考試結(jié)果要做相應(yīng)分析,即查詢成績(jī)、統(tǒng)計(jì)、歸類、成績(jī)分析、試卷科學(xué)度分析、學(xué)生學(xué)情分析等。平常的學(xué)習(xí),可以給學(xué)生提供答案、未掌握的知識(shí)點(diǎn),激發(fā)學(xué)生學(xué)習(xí)興趣。
1.3 數(shù)據(jù)庫設(shè)計(jì)
目前,本系統(tǒng)采用的數(shù)據(jù)庫服務(wù)系統(tǒng)是MySQL5.0,設(shè)計(jì)的實(shí)體表格主要有四個(gè),(1)管理員信息列表:管理員編號(hào)、管理員姓名、管理員密碼、注冊(cè)時(shí)間。(2)考生信息列表:學(xué)生證號(hào)、考生姓名、登錄網(wǎng)站密碼、考生注冊(cè)時(shí)間、考生性別、密碼提示問題、注冊(cè)IP地址等9個(gè)字段。(3)試題庫信息列表:課程名稱、出題教師、試題編號(hào)、所屬知識(shí)點(diǎn)、難度系數(shù)、優(yōu)先級(jí)別、試題正文、參考答案、評(píng)分標(biāo)準(zhǔn)等13 個(gè)字段。(4)考生成績(jī)信息列表:考生成績(jī)編號(hào)、學(xué)生證號(hào)、所學(xué)課程、套題編號(hào)等字段。
2 基于Web在線考試管理系統(tǒng)的實(shí)現(xiàn)
采用ASP.NET+C#語言及C#開發(fā)壞境對(duì)基于Web在線考試管理系統(tǒng)的開發(fā),而實(shí)現(xiàn)該系統(tǒng)存在幾個(gè)關(guān)鍵問題:題庫建設(shè)、組卷策略、自動(dòng)評(píng)卷,這些也是系統(tǒng)設(shè)計(jì)中的難點(diǎn)。
2.1 題庫建設(shè)與組卷的實(shí)現(xiàn)
題庫建設(shè):題庫建設(shè)對(duì)于在線考試管理系統(tǒng)尤為重要,題庫的管理既是本項(xiàng)目的基礎(chǔ),又是該系統(tǒng)中一項(xiàng)較為困難而復(fù)雜的工作。題庫中的題目須按照測(cè)驗(yàn)?zāi)繕?biāo)精心篩選和校準(zhǔn),對(duì)于每一個(gè)題目,除了試題自身內(nèi)容外,還要具有表征題目屬性的編號(hào)、知識(shí)點(diǎn)、來源、難度、答案、區(qū)分度以及使用情況等多種指標(biāo)。依據(jù)一定的題庫建設(shè)理論和構(gòu)建步驟:經(jīng)典項(xiàng)目測(cè)量理論和項(xiàng)目反映理論,這就要求教師設(shè)計(jì)出一定量的測(cè)驗(yàn)試題,按照測(cè)量理論規(guī)定的方式將試題進(jìn)行屬性標(biāo)記存入試題庫。
組卷策略:其本質(zhì)是根據(jù)試題屬性(難度、題型、時(shí)間、分值等)加上外部規(guī)則的約束進(jìn)行多條件的綜合。系統(tǒng)要實(shí)現(xiàn)手工組卷、自動(dòng)組卷、自適應(yīng)智能組卷的功能。手動(dòng)組卷是指老師根據(jù)學(xué)生的實(shí)際情況和學(xué)科的要求出題;自動(dòng)出卷即是系統(tǒng)要根據(jù)教師所指定題目類型、難易程度、區(qū)分度等參數(shù)來進(jìn)行組卷。在系統(tǒng)開發(fā)中要實(shí)現(xiàn)智能測(cè)試,則系統(tǒng)自動(dòng)生成該科目的參數(shù)平衡二叉樹,測(cè)試時(shí),系統(tǒng)根據(jù)答題結(jié)果檢索此二叉樹。這樣通過靈活、可變的平衡二叉樹來選擇試題,平衡二叉樹又稱為AVL樹,其左子樹和右子樹都是平衡二叉樹,且左子樹和右子樹深度之差的絕對(duì)值不超過1,空樹也是平衡二叉樹。
2.2 自動(dòng)評(píng)卷的實(shí)現(xiàn)
主觀題的自動(dòng)評(píng)分涉及自然語言理解、模式識(shí)別以及人工智能等方面的理論和知識(shí),存在很多技術(shù)上的問題需要解決,可謂是在線考試系統(tǒng)中的一個(gè)技術(shù)難點(diǎn)。對(duì)程序題的評(píng)判,按常規(guī)的人工閱卷思維,就是判斷其是否實(shí)現(xiàn)規(guī)定的功能,即將運(yùn)行結(jié)果與實(shí)際應(yīng)有結(jié)果對(duì)比,判斷兩者之間是否一致,這并不難, 比如C語言程序題,把C語言運(yùn)行的結(jié)果用數(shù)據(jù)文件保存起來,再將其結(jié)果和標(biāo)準(zhǔn)答案作比較,給考生所編寫的程序進(jìn)行對(duì)錯(cuò)判定,給出得分。可能會(huì)出現(xiàn)有結(jié)果但不正確或無法編譯運(yùn)行的考生代碼,這就需要檢查考生算法思想是否準(zhǔn)確及編程是否合理,我們都知道,在C語言中,解決一個(gè)問題的代碼編寫有多種方法,但算法思想大致相同。如C語言中這樣一個(gè)結(jié)構(gòu):
m=0;
while(m m++; n=m+1; while(n< count;){ n++; } if(a>b) { ............ } } 依照C語言的關(guān)鍵字,抽取while()while()if(){}或while(){while()if(){}}骨架,再將之與標(biāo)準(zhǔn)骨架相比,通過判斷異同給分??忌谒悸访鞔_的情況下也會(huì)出現(xiàn)語法錯(cuò)誤,可以采用修復(fù)編譯的方式進(jìn)行評(píng)分,即通過糾正考生程序中的語法錯(cuò)誤,使程序能夠正常編譯、運(yùn)行、鏈接,生成EXE文件和答案。每修改一次語法錯(cuò)誤則扣除該題目中相應(yīng)的分?jǐn)?shù)。作為初學(xué)者的大部分考生,所編寫的程序常會(huì)出現(xiàn)死循環(huán),若Shell函數(shù)調(diào)用死循環(huán)程序啟動(dòng)后無法結(jié)束將導(dǎo)致系統(tǒng)崩潰。API函數(shù)是Windows提供的控制應(yīng)用程序,通過Visual Basic調(diào)用API函數(shù)能防止出現(xiàn)這樣的情況。根據(jù)系統(tǒng)中題庫建設(shè)與組卷特點(diǎn),即考生隨機(jī)從題庫中抽取的試題不同,這就可以防止舞弊行為。但相近考生試題相同也會(huì)出現(xiàn)作弊行為,防止作弊最有效的方法,即“記錄解答過程”,采用考核軟件(VC++)提供的“宏”功能或Windows內(nèi)部功能來實(shí)現(xiàn)。 2.3 在線考試的實(shí)現(xiàn) 考試系統(tǒng)服務(wù)器平臺(tái)在系統(tǒng)運(yùn)行中起著舉足輕重的作用,它是保證考生正??荚嚨靡赃M(jìn)行、數(shù)據(jù)得以中轉(zhuǎn)和處理的中間站。用戶通過客戶端連接系統(tǒng)服務(wù)器進(jìn)行在線考試,考試系統(tǒng)服務(wù)器會(huì)接收相關(guān)數(shù)據(jù)。考試系統(tǒng)服務(wù)會(huì)在考生完成考試后對(duì)考試數(shù)據(jù)進(jìn)行驗(yàn)證、加密和導(dǎo)出,連同試卷加密放在一起上傳到服務(wù)器開始審閱,同時(shí)考試系統(tǒng)具有備份服務(wù)器上原始資料的功能,以便之后的核查。 3 結(jié) 語 通過開發(fā)基于Web的在線考試管理系統(tǒng),使各大高校實(shí)現(xiàn)無紙化考試管理成為可能,該在線考試管理系統(tǒng)具有操作簡(jiǎn)單方便,界面簡(jiǎn)潔美觀;具有實(shí)時(shí)性,已注冊(cè)的用戶可在任何時(shí)間,任何地點(diǎn)通過Internet瀏覽器登錄網(wǎng)絡(luò)在線考試系統(tǒng),除了常規(guī)考試,還可在線練習(xí),強(qiáng)化訓(xùn)練等。 參考文獻(xiàn) [1]胡靜,韓英杰,陶永才. ASP.NET動(dòng)態(tài)網(wǎng)站開發(fā)教程(第二版)[M].北京:清華大學(xué)出版社,2009. [2]薛惠麗,趙志燕.基于Web的在線考試系統(tǒng)探究[J].內(nèi)蒙科技與經(jīng)濟(jì),2007(4):132-133. [3]嚴(yán)蔚敏.數(shù)據(jù)結(jié)構(gòu)[M].北京:清華大學(xué)出版社,1997. [4]郭躬德.計(jì)算機(jī)題庫系統(tǒng)的分析和設(shè)計(jì)[J]. 福建師范大學(xué),1996(3):102-106. [5]張曉光,張貞,牛永浩.對(duì)于C++語言考試編程題自動(dòng)評(píng)分系統(tǒng)的研究[J].延安大學(xué),2010,33(18):51-52. [6]段敬利,張春飛,魏久鴻.C語言教學(xué)中上機(jī)考試及自動(dòng)評(píng)分系統(tǒng)研究與開發(fā)[J].機(jī)械設(shè)計(jì)與制造工程,2013,42(10):65-67. [7]孟愛國,卜勝賢,李鷹,等.一種網(wǎng)絡(luò)考試系統(tǒng)中主觀題自動(dòng)評(píng)分的算法設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2005,33(7):147-150.