魏柯 孫旭朝
【摘 要】隨著計(jì)算機(jī)技術(shù)的快速發(fā)展和互聯(lián)網(wǎng)的廣泛應(yīng)用。在教育領(lǐng)域里,網(wǎng)上考試系統(tǒng)利用學(xué)校現(xiàn)有的計(jì)算機(jī)軟、硬件資源和網(wǎng)絡(luò)資源服務(wù)功能,讓學(xué)生能夠不受時(shí)間和地域的限制在任何一個(gè)終端上進(jìn)行考試。它可以減輕教師的工作負(fù)擔(dān),提高工作效率,直接分析考試試卷,有利于教師更好地掌握學(xué)生的學(xué)習(xí)情況。
【關(guān)鍵詞】網(wǎng)上考試;ASP.NET ;隨機(jī)試卷
1 系統(tǒng)總體設(shè)計(jì)思想
本系統(tǒng)采用B/S結(jié)構(gòu),它以訪問(wèn)web數(shù)據(jù)庫(kù)為中心,HTTP為傳輸協(xié)議,客戶端通過(guò)瀏覽器訪問(wèn)web服務(wù)器和與其相連接的后臺(tái)數(shù)據(jù)庫(kù),稱之為B/S模式。
2 系統(tǒng)功能模塊設(shè)計(jì)和具體描述
系統(tǒng)功能模塊劃分如圖2所示。
2.1 題庫(kù)管理
教師可以對(duì)題庫(kù)進(jìn)行管理。該權(quán)限包括:題庫(kù)相關(guān)的管理,實(shí)現(xiàn)試題類別(填空、選擇、判斷、問(wèn)答等)的增加、刪除、修改和排序功能。實(shí)現(xiàn)考試試題和答案的增加、刪除、修改功能。
2.2 在線考試
考生考試前先由教師組成試卷,題目由隨機(jī)函數(shù)從題庫(kù)中隨機(jī)抽取,抽取的條件(如最大難度、最小難度、數(shù)量、總分等)可以由教師確定;對(duì)學(xué)生考試進(jìn)行計(jì)時(shí),學(xué)生可以在考試時(shí)間內(nèi)主動(dòng)交卷或者在達(dá)到考試時(shí)間后系統(tǒng)自動(dòng)收卷。
2.3 系統(tǒng)維護(hù)
系統(tǒng)管理員擁有最高權(quán)限,可以對(duì)系統(tǒng)進(jìn)行維護(hù)。包括對(duì)用戶進(jìn)行管理,增加、修改、刪除用戶及分配用戶的角色,可以直接修改數(shù)據(jù)庫(kù)。但所有對(duì)系統(tǒng)的操作都存在系統(tǒng)日志文件中,可供查看并提高了系統(tǒng)的安全性。
3 數(shù)據(jù)庫(kù)設(shè)計(jì)
建立網(wǎng)上考試系統(tǒng)的數(shù)據(jù)庫(kù)netexam,以考試科目為English為例。為系統(tǒng)創(chuàng)建以下幾個(gè)表:考生信息表StuInfo,教師信息表Teacher,題庫(kù)表Question,考試試卷表English:存放教師由題庫(kù)中隨機(jī)選擇的考試試卷,考生成績(jī)表Score和考點(diǎn)標(biāo)志表Test成。其中Test表由testaddr(考試地點(diǎn))和testsign(考試標(biāo)記)組成,testsign的值可以為0或l,1表示該考點(diǎn)可以開(kāi)始考試,但其它考點(diǎn)的考生不能進(jìn)入考試系統(tǒng),0為不允許考試或考試結(jié)束。通過(guò)設(shè)置這個(gè)標(biāo)志,可以控制考試時(shí)間,同時(shí)也增加了系統(tǒng)的安全性,以免考題提前泄露。
4 網(wǎng)絡(luò)考試系統(tǒng)的具體實(shí)現(xiàn)
4.1 學(xué)生模塊功能實(shí)現(xiàn)
考生登錄考試,首先要求輸入考生姓名和考號(hào),并選擇參加考試的科目及所在考點(diǎn)??忌峤恍畔⒑?,通過(guò)表stuInfo查找,如果查找到該信息,顯示后要求考生確認(rèn),并判斷考生不是重復(fù)登錄,然后進(jìn)入考試頁(yè)面。例如學(xué)生參加英語(yǔ)考試,考生編號(hào)和臨時(shí)考試題放入表English中,并從English表中得到該考生的考題顯示在頁(yè)面上。答題過(guò)程中,系統(tǒng)會(huì)顯示考生客觀題的答案,學(xué)生可以隨時(shí)檢查相應(yīng)的題目,以修改答案。一旦按下“交卷”按鈕,考生答案將寫入score表中,系統(tǒng)為考生判卷,不允許考生再次選題或修改答案。
4.2 教師模塊功能實(shí)現(xiàn)
在教師模塊中,首先要求輸入登錄者的用戶名和密碼,以進(jìn)行身份驗(yàn)證。進(jìn)入教師模塊后,教師可以實(shí)現(xiàn)以下功能:
4.2.1出題:選擇科目并確認(rèn)選擇后,系統(tǒng)要求選擇題目類型,輸入題目?jī)?nèi)容及答案或描述,系統(tǒng)把考題送人數(shù)據(jù)庫(kù)Question中;
4.2.2改題:選擇科目及題目類型,從第1題開(kāi)始輸出題目及答案或文件描述,可以修改顯示的內(nèi)容,系統(tǒng)會(huì)相應(yīng)的修改Question表;
4.2.3選題:選擇科目并確認(rèn)選擇后,系統(tǒng)要求輸入各類考題的數(shù)量.并提示題目總數(shù),選題不能超過(guò)題目總數(shù)范圍。然后,系統(tǒng)會(huì)根據(jù)輸入信息為考生定制一份統(tǒng)一的考卷;
4.2.4查詢成績(jī):選擇科目,或者輸入考生考號(hào)和姓名,系統(tǒng)會(huì)在表stuInfo和Score中查詢符合條件的考生信息并以表格形式顯示:
4.2.5開(kāi)始(結(jié)束)考試:選定1個(gè)考點(diǎn),系統(tǒng)會(huì)把Test表中該考點(diǎn)的testsign置為1(0),這樣該考點(diǎn)的考生可以進(jìn)入考試系統(tǒng)或不允許考生交卷或進(jìn)入考試系統(tǒng)。
5 關(guān)鍵技術(shù)的實(shí)現(xiàn)
5.1 考生登錄
用TextBox控件接受考生輸入的考號(hào)和姓名,與數(shù)據(jù)庫(kù)中保存的信息進(jìn)行驗(yàn)證,這里要注意的是防止考生重復(fù)登錄,為了防止重復(fù)登錄。使用Session對(duì)象中的SessionID值來(lái)識(shí)別考生。當(dāng)每個(gè)考生首次與考試服務(wù)器建立連接時(shí),服務(wù)器會(huì)自動(dòng)為考生分配1個(gè)SessionID,用以標(biāo)識(shí)考生的唯一身份。
在login.aspx中,應(yīng)使用如下代碼:
if(convert.ToInt32(Application[“status”])==1)判斷考生已經(jīng)登錄;if(row[“Sessionid”]!=Session.SessionID)報(bào)告考生重復(fù)登陸;如果考生沒(méi)有登錄,使用Response.cookies[“status”].Value=“1”記錄考生登錄狀態(tài),然后使用SQL語(yǔ)句
String update=“update StuInfo set sessionid=”+Session.sessionid +“where examid=”+name.Text+””修改考生信息表。
上述代碼的處理思想是:當(dāng)一個(gè)考生登錄后把sessionID保存到數(shù)據(jù)庫(kù),同時(shí)利用cookies記錄考生登錄狀態(tài)為cookies[“status”]=“1”,如果考生已經(jīng)登錄,則再判斷此考生的SessionID是否一樣,如果不同就提示禁止重復(fù)登錄,否則就允許登錄。
5.2 隨機(jī)生成試題
網(wǎng)絡(luò)考試系統(tǒng)的關(guān)鍵是試題的隨機(jī)生成,教師從試題庫(kù)中隨機(jī)抽取試題。從組卷界面使用Datalist控件,輸入試題總分、試題的最小難度系數(shù)、試題的最大難度系數(shù)、試題的題型以及各類型試題的數(shù)量。根據(jù)這些參數(shù),應(yīng)用程序從試題庫(kù)中隨機(jī)抽取符合條件的試題。然后組成試卷保存在數(shù)據(jù)庫(kù)中。
隨機(jī)選題的實(shí)現(xiàn)過(guò)程是:首先在表Question中得到該科目每類試題編號(hào)quesid的最大值max(quesid),隨機(jī)選題時(shí)應(yīng)在1~max(quesid)之間選取。為了保證不取到重復(fù)的考題,系統(tǒng)設(shè)置1個(gè)數(shù)組來(lái)儲(chǔ)存已選擇的題號(hào),相同,放棄這個(gè)隨機(jī)值,重新選取;不同,從題庫(kù)表中取出這條記錄,插入到該科目(例如表English)的考題中,題號(hào)依次增加,并把隨機(jī)值放入數(shù)組。在此可以使用SQL語(yǔ)句Select topn * from Question order by newid()從題庫(kù)中隨機(jī)抽取n條記錄,在Test.aspx頁(yè)面上使用Panel控件,以便動(dòng)態(tài)生成綁定試題的控件,并將從表Question中得到的試題答案寫入表English中的answer字段,
使用代碼:
sqlCommand.CommandText=“update English set answer=”+anstr+“where ExamId=+Session[“Id”].ToString()+“”,其中的anstr表示存儲(chǔ)隨機(jī)生成試題答案的字符串變量。
6 總結(jié)
基于ASP.NET的網(wǎng)絡(luò)考試系統(tǒng)使用B/S體系結(jié)構(gòu)。克服了原有ASP編程技術(shù)的缺點(diǎn),解決了外語(yǔ)考試中出題判卷繁瑣、人工改卷容易出錯(cuò)且耗費(fèi)時(shí)間的問(wèn)題。使得主考方可以高效的編輯考題、選取試卷,并可遠(yuǎn)程控制考試開(kāi)始和結(jié)束,滿足辦公無(wú)紙化客觀要求,也減輕了教師的負(fù)擔(dān)。
參考文獻(xiàn):
[1]李明偉.基于ASP.NET技術(shù)的WEB網(wǎng)站開(kāi)發(fā)與設(shè)計(jì)[J].數(shù)字技術(shù)與應(yīng)用,2014(12).
[2]黃鳳玲.使用.NET技術(shù)的在線考試系統(tǒng)設(shè)計(jì)分析[J].中國(guó)電子商務(wù),2014(9).