摘要:該文論述了基于.net 、Ajax、水晶報(bào)表技術(shù)和三層架構(gòu)設(shè)計(jì)開(kāi)發(fā)的“白云教育”在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。該系統(tǒng)性能好,能大大減輕教師出題考試的工作量。
關(guān)鍵詞:.Net;Ajax;水晶報(bào)表;三層架構(gòu)
中圖分類號(hào):TP312文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2010)21-6007-02
The Design and Implementation of \"Baiyun Education\" Online Testing System
LI Chun
(Guangzhou Baiyun IndustrialCommercial Senior Technical School, Guangzhou 510410, China)
Abstract: The paper describes The Design and Implementation of \"Baiyun Education\" Online Testing System based on .net, Ajax, crystal report technologies and three-tier architecture. The system performance is good, can greatly reduce the workload of teachers' Sets a topic to exam.
Key words: .Net; Ajax; crystal report; three-tier architecture
在學(xué)校里,每到期中期末,老師們都忙于出題考試改卷的工作,這項(xiàng)工作不但耗費(fèi)老師大量的時(shí)間,也耗費(fèi)大量的紙張資源。隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,使用在線考試系統(tǒng)代替?zhèn)鹘y(tǒng)人工的考試方式,已經(jīng)成為一種發(fā)展趨勢(shì),相比傳統(tǒng)的考試方式,基于WEB的在線考試系統(tǒng)的好處是一方面可以動(dòng)態(tài)地管理試題庫(kù),只要題庫(kù)中的試題內(nèi)容足夠多,就可以按照要求自動(dòng)生成結(jié)構(gòu)相同,題目不同的試卷;另一方面,考試時(shí)間靈活, 只要在規(guī)定的時(shí)間段內(nèi),任意時(shí)間登錄服務(wù)器就可以參加考試;另外計(jì)算機(jī)化考試的最大特點(diǎn)是可以使用系統(tǒng)自動(dòng)閱卷評(píng)分,沒(méi)有人為因素干擾,給予考生最大的公平感。
1 構(gòu)建在線考試系統(tǒng)的關(guān)鍵問(wèn)題與解決方法
1.1 系統(tǒng)隨機(jī)出卷
在線考試系統(tǒng)的每份試卷都應(yīng)該是按照事先設(shè)定的試卷結(jié)構(gòu)、難易度比例從試題庫(kù)中隨機(jī)抽取題目生成,這樣才能有效防止同一機(jī)房考試的學(xué)生作弊,同時(shí)保證考試的公平、公正、客觀性。解決系統(tǒng)隨機(jī)出卷的方法是使用SQL Server中的newid()函數(shù),此函數(shù)可以動(dòng)態(tài)創(chuàng)建uniqueidentifier 數(shù)據(jù)類型的值,即隨機(jī)數(shù)據(jù),如果要從數(shù)據(jù)表中隨機(jī)抽取出n條隨機(jī)記錄數(shù)據(jù),可以使用如下的代碼實(shí)現(xiàn)
select top n * from table_name order by newid()
在系統(tǒng)實(shí)現(xiàn)中將試卷預(yù)設(shè)的題目數(shù)賦值給n,就可以為每份試卷隨機(jī)抽取相同結(jié)構(gòu)的題目。
1.2 系統(tǒng)異常中斷恢復(fù)
考試系統(tǒng)異常中斷一般是指考生考試到中途,客戶機(jī)因?yàn)楦鞣N原因死機(jī),只能讓考生重新登錄再考的情況。如果考試系統(tǒng)不能即時(shí)將考生每一步操作結(jié)果記錄下來(lái),一但出了故障就會(huì)將該考生所有的考試記錄丟掉,考生重新登錄只能為他再生成一份全新的試卷讓他重新重頭再考,這種情況不能保證系統(tǒng)的實(shí)用性、有效性,所以在線考試系統(tǒng)必須解決計(jì)算機(jī)出現(xiàn)故障中斷考試而不會(huì)丟失考試數(shù)據(jù)的問(wèn)題,這樣考生重新登錄后才能接著前面的考試記錄繼續(xù)往下考。只有具有這種功能的在線考試系統(tǒng)客戶才愿意投入使用。
解決這個(gè)問(wèn)題的方法很多,我們選用的是Ajax技術(shù)來(lái)解決這個(gè)問(wèn)題,也就是當(dāng)用戶進(jìn)入考試界面系統(tǒng)生成試卷時(shí),就將試卷中的所有內(nèi)容保存到后臺(tái)數(shù)據(jù)庫(kù)的“考試題目結(jié)果表”,當(dāng)用戶進(jìn)行答題操作時(shí),再通過(guò)Ajax程序即時(shí)將用戶的答題結(jié)果更新到“考試題目結(jié)果表”中,這樣如果考試中途出現(xiàn)異常中斷,用戶重新登錄,就可以從“考試題目結(jié)果表”中提取考生已考了一半的考試記錄,重新生成和中斷前一樣的界面的考試界面讓考生繼續(xù)完成剩余的考試
1.3 系統(tǒng)自動(dòng)評(píng)卷
人工改卷、計(jì)算分?jǐn)?shù)、記錄分?jǐn)?shù)是一項(xiàng)耗時(shí)很大的工作,在線考試系統(tǒng)應(yīng)能夠?qū)忌目荚嚱Y(jié)果進(jìn)行自動(dòng)評(píng)卷、統(tǒng)計(jì)分?jǐn)?shù),才能大大減輕教師的工作量。
本系統(tǒng)全部使用客觀題進(jìn)行考試,一般為單項(xiàng)選擇題、多項(xiàng)選擇題、判斷題等,都有標(biāo)準(zhǔn)答案,并且每道題的分?jǐn)?shù)都是事先設(shè)定的,要判斷單個(gè)題目結(jié)果的對(duì)錯(cuò)得分,只要將用戶選擇提交的答案和系統(tǒng)中保存的標(biāo)準(zhǔn)答案相比較,如果正確則該題得到預(yù)設(shè)的分?jǐn)?shù),如果錯(cuò)則該題為0分。當(dāng)考生考完點(diǎn)擊“交卷”按鈕,通過(guò)計(jì)算總分程序統(tǒng)一計(jì)算該份試卷的總得分,將相關(guān)結(jié)果保存到“考試結(jié)果總分表”中。
1.4 考試結(jié)果查詢下載
考試得到的結(jié)果應(yīng)該能夠很方便的按要求查詢得到,并能夠?qū)?shù)據(jù)在線導(dǎo)出,進(jìn)行其他相關(guān)處理。
本系統(tǒng)考試結(jié)果教師可以按班級(jí)進(jìn)行查詢顯示。為了保障能快速查詢到有效的結(jié)果,所有的查詢條件應(yīng)使用下拉列表選擇,并可以導(dǎo)出為EXCEL數(shù)據(jù)表格進(jìn)行下一步處理。對(duì)于考生個(gè)人可以在提交試卷之后馬上點(diǎn)擊相關(guān)鏈接進(jìn)入個(gè)人分?jǐn)?shù)顯示界面,在該界面能根據(jù)考生的考號(hào)從數(shù)據(jù)庫(kù)中將其成績(jī)表提取并顯示出來(lái)。
1.5 考試結(jié)果匯總統(tǒng)計(jì)分析
考試結(jié)果如果使用圖表來(lái)查看統(tǒng)計(jì)分析,能快速有效幫助教師掌握學(xué)生的學(xué)習(xí)分布情況,及時(shí)調(diào)整教學(xué)方法與內(nèi)容,對(duì)課程改革有很大的幫助作用。
使用ASP.NET的水晶報(bào)表技術(shù),能夠快速進(jìn)行報(bào)表開(kāi)發(fā),能夠?qū)С龀蔀閺?fù)雜的交互性圖表,可以與其它控件一起在WEB程序中使用,能夠動(dòng)態(tài)地將報(bào)表導(dǎo)出成為pdf,doc,xls,html,rtf等多種格式文檔。
2 “白云教育”在線考試系統(tǒng)的主要結(jié)構(gòu)、功能及其實(shí)現(xiàn)方法
2.1 “白云教育”在線考試系統(tǒng)的主要結(jié)構(gòu)、各模塊功能
圖1為 “白云教育”在線考試系統(tǒng)。
1) 在線考試模塊
該模塊提供在線考試功能。操作流程圖如圖2所示。
考生登錄后按如上流程圖進(jìn)行操作,首先選擇試室,點(diǎn)擊“開(kāi)始考試”,系統(tǒng)判斷考生是初次參加該試室的考試還是因?yàn)楫惓V袛嘈枰盎謴?fù)考試”,如果是初次參加該試室的考試,則系統(tǒng)會(huì)根據(jù)預(yù)先設(shè)置的試卷結(jié)構(gòu)隨機(jī)抽取試題生成一份新的試卷提供給考生進(jìn)行考試,如果是“恢復(fù)考試”則系統(tǒng)會(huì)讀取該考生已保存在“考試題目結(jié)果表”中的數(shù)據(jù),生成和中斷前一樣的試卷讓考生繼續(xù)完成全部的考試。
考生完成所有考試內(nèi)容點(diǎn)擊“交卷”按鈕或考試時(shí)間到,系統(tǒng)會(huì)執(zhí)行計(jì)算總分程序,將該考生本次考試總成績(jī)計(jì)算出來(lái),并顯示“查看成績(jī)”的鏈接,考生可以單擊此鏈接查看本人的考試成績(jī)。
2) 題庫(kù)管理模塊
題庫(kù)管理模塊由教師操作,即教師登錄才可以在線進(jìn)行題庫(kù)的維護(hù),按科目、試卷名、試卷大題名稱、試卷小題內(nèi)容(包括題目?jī)?nèi)容、答案、難度系數(shù)等),依次錄入編輯題庫(kù)數(shù)據(jù);設(shè)置每個(gè)試室的試卷結(jié)構(gòu)(包括試卷的大題組成、每道大題下有多少小題,每個(gè)小題的分?jǐn)?shù)是多少,考試時(shí)間等),這個(gè)試卷結(jié)構(gòu)是自動(dòng)生成試卷的依據(jù)。
3) 考試結(jié)果管理模塊
考試結(jié)果管理模塊為教師提供按班級(jí)查詢學(xué)生考試成績(jī)功能和在線匯總分析功能,教師可以在線通過(guò)柱形圖、餅圖等圖表對(duì)學(xué)生的考試成績(jī)進(jìn)行“班級(jí)考試科目匯總分析”、“科目考試題型匯總分析”、“學(xué)生個(gè)人成績(jī)分析”等,這樣教師可以一目了然的了解本次考試各種類型的考試分布情況。
4) 用戶信息管理模塊
用戶信息管理模塊是為系統(tǒng)管理員提供在線管理用戶信息功能。本系統(tǒng)不允許匿名登錄,考生使用學(xué)號(hào)、密碼實(shí)名登錄,教師使用教工號(hào)、密碼登錄,系統(tǒng)管理員使用管理員帳號(hào)、密碼登錄。系統(tǒng)用戶信息管理模塊只有系統(tǒng)管理員登錄才能進(jìn)入,在線添加、編輯用戶信息,包括用戶的用戶類型、登錄賬號(hào)、密碼等。
2.2 “白云教育”在線考試系統(tǒng)的主要實(shí)現(xiàn)方法
“白云教育”在線考試系統(tǒng)基于B/S模式開(kāi)發(fā),使用的開(kāi)發(fā)平臺(tái)是Microsoft Visual Studio 2008,后臺(tái)數(shù)據(jù)庫(kù)為Microsoft SQL Server 2000,主要開(kāi)發(fā)語(yǔ)言是ASP.NET、C#、Ajax、JavaScript、XML、XSLT語(yǔ)言。
本系統(tǒng)采用三層架構(gòu)進(jìn)行設(shè)計(jì)開(kāi)發(fā),系統(tǒng)分層模型結(jié)構(gòu)圖見(jiàn)圖3所示。使用分層模型有利于團(tuán)隊(duì)合作開(kāi)發(fā)與各層邏輯的復(fù)用。
本系統(tǒng)的在線考試模塊中應(yīng)用Ajax頁(yè)面無(wú)刷新技術(shù)創(chuàng)建互動(dòng)式考試界面,考生每點(diǎn)一個(gè)控件、按鈕,就向服務(wù)器發(fā)出一個(gè)異步請(qǐng)求,當(dāng)請(qǐng)求返回時(shí),就可以使用JavaScript和DOM來(lái)相應(yīng)地更新,而不是刷新整個(gè)頁(yè)面,一方面大大減少了WEB服務(wù)器處理等待時(shí)間,提高了系統(tǒng)的性能與速度,另一方面解決了假如考試中途系統(tǒng)或計(jì)算機(jī)出現(xiàn)故障中斷考試而不會(huì)丟失考試數(shù)據(jù)的問(wèn)題。
在成績(jī)匯總分析中,使用下拉列表來(lái)選擇系、專業(yè)、班級(jí)、學(xué)生名作為數(shù)據(jù)的篩選條件,將符合條件的數(shù)據(jù)放到dataset中,作為水晶報(bào)表的數(shù)據(jù)源,創(chuàng)建相應(yīng)的圖表。
3 結(jié)束語(yǔ)
“白云教育”在線考試系統(tǒng)是校園信息化項(xiàng)目之一,通過(guò)應(yīng)用在線考試系統(tǒng)來(lái)進(jìn)行《職業(yè)指導(dǎo)》、《實(shí)訓(xùn)安全》、《勞動(dòng)法》等科目的考試,一方面節(jié)約了紙張資源,另一方面節(jié)省了教師出卷、評(píng)卷、記分、匯總分析的時(shí)間,將有效的時(shí)間投入到教研教改方面中,對(duì)提高教學(xué)質(zhì)量有很大的幫助。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文