
傳統(tǒng)考試涉及組織命題、試卷印刷、考場(chǎng)安排、閱卷等諸多環(huán)節(jié),考試周期長(zhǎng)效率低下。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)在線考試系統(tǒng)展現(xiàn)了眾多的優(yōu)越性。本系統(tǒng)應(yīng)用了AJAX?zé)o刷新考試環(huán)境、隨機(jī)組卷、自動(dòng)閱卷、自動(dòng)交卷、提供多種題型等功能。
?。?技術(shù)基礎(chǔ)
1.1 ASP.net
?。粒樱校畁et是微軟公司推出的新一代動(dòng)態(tài)Web應(yīng)用程序開(kāi)發(fā)平臺(tái),是.net框架的一部分,可以使用任何.net兼容的語(yǔ)言編寫(xiě)ASP.net應(yīng)用程序。
優(yōu)勢(shì):高效運(yùn)行性能、簡(jiǎn)易性靈活性、可管理性、生產(chǎn)效率高
?。保?AJAX
AJAX是Asynchronous JavaScript and XML(異步JavaScript和XML技術(shù))的縮寫(xiě),是由JavaScript腳本語(yǔ)言、CSS樣式表、XMLHttpRequest數(shù)據(jù)交換對(duì)象和DOM文檔對(duì)象等多種技術(shù)組成的。Web應(yīng)用的傳統(tǒng)模型與AJAX模型如圖1、圖2所示。
2 功能設(shè)計(jì)
?。ǎ保?用戶(hù)信息管理。該模塊功能有考生考號(hào)導(dǎo)入、用戶(hù)權(quán)限設(shè)置(學(xué)生、教師、系統(tǒng)管理員)。將考生考號(hào)存成Excel格式,可以成批地導(dǎo)入。并可以設(shè)置權(quán)限,本系統(tǒng)分為三級(jí)權(quán)限:學(xué)生只能考試、查閱成績(jī)、教師可以錄入所教科目試題、查閱學(xué)生成績(jī)、系統(tǒng)管理員可以增加刪除用戶(hù)、增加刪減考試科目等。
?。ǎ玻?考試科目管理。以教師或者管理員身份登錄后可以添加、刪除考試科目。
?。ǎ常?試卷出題與維護(hù)。以教師或者管理員身份登錄后可以選擇考試科目,增加刪減題型、確定不同題型分?jǐn)?shù)、組卷等。
?。ǎ矗?考生試卷管理。客觀題自動(dòng)評(píng)閱、主觀題教師評(píng)閱,考生成績(jī)導(dǎo)出Excel格式并排序。
?。ǎ担?考試試題管理。本考試系統(tǒng)包括5種題型,即單選、多選、判斷、填空、簡(jiǎn)答,該模塊用于選擇不同的題型,錄入試題。
?。?關(guān)鍵技術(shù)
?。常?用戶(hù)權(quán)限設(shè)置
本在線考試系統(tǒng)包括3種角色:考生、教師、管理員。管理員可以為教師設(shè)置權(quán)限。教師可以增減考試科目、組卷等。用戶(hù)權(quán)限設(shè)置代碼:
自定義方法InitData()進(jìn)行權(quán)限設(shè)置
private void InitData()
?。?br />
// 創(chuàng)建一個(gè)DataTable類(lèi)型的變量存儲(chǔ)哈希表中數(shù)據(jù)
?。模幔簦幔裕幔猓欤?dt = Rolemr.Query(new Hashtable());
?。?將創(chuàng)建的dt作為數(shù)據(jù)源
GV.DataSource = dt;
?。?從數(shù)據(jù)庫(kù)中綁定GridView控件中數(shù)據(jù)
?。牵郑模幔簦幔拢椋睿洌ǎ?;
?。?循環(huán)GridView控件中的CheckBox控件
for (int i = 0; i < dt.Rows.Count; i++)
?。?br />
?。?部門(mén)管理
if (OnLineExam.HelperClass.GetSafeData.ValidateDataRow_N(dt.Rows[i], "HasDuty_DepartmentManage") == 1)
((CheckBox)GV.Rows[i].FindControl("chkDepartmentManage")).Checked = true;
?。?用戶(hù)管理
?。椋?(OnLineExam.HelperClass.GetSafeData.ValidateDataRow_N(dt.Rows[i], "HasDuty_UserManage") == 1)
((CheckBox)GV.Rows[i].FindControl("chkUserManage")).Checked = true;
// 考試科目管理
?。椋?(OnLineExam.HelperClass.GetSafeData.ValidateDataRow_N(dt.Rows[i], "HasDuty_CourseManage") == 1)
((CheckBox)GV.Rows[i].FindControl("chkCourseManage")).Checked = true;
?。?試卷制定維護(hù)
?。椋?(OnLineExam.HelperClass.GetSafeData.ValidateDataRow_N(dt.Rows[i], "HasDuty_PaperSetup") == 1)
?。ǎǎ茫瑁澹悖耄拢铮牵郑遥铮鳎螅郏椋荩疲椋睿洌茫铮睿簦颍铮欤ǎⅲ悖瑁耄校幔穑澹颍樱澹簦酰穑ⅲ茫瑁澹悖耄澹?= true;
?。?用戶(hù)試卷管理
?。椋?(OnLineExam.HelperClass.GetSafeData.ValidateDataRow_N(dt.Rows[i], "HasDuty_UserPaperList") == 1)
?。ǎǎ茫瑁澹悖耄拢铮牵郑遥铮鳎螅郏椋荩疲椋睿洌茫铮睿簦颍铮欤ǎⅲ悖瑁耄眨螅澹颍校幔穑澹颍蹋椋螅簦ⅲ茫瑁澹悖耄澹?= true;
// 試題類(lèi)別管理
?。椋?(OnLineExam.HelperClass.GetSafeData.ValidateDataRow_N(dt.Rows[i], "HasDuty_SingleSelectManage") == 1)
((CheckBox)GV.Rows[i].FindControl("chkTypeManage")).Checked = true; } }
?。常?考試時(shí)間倒計(jì)時(shí)
protected void Timer1_Tick(object sender, EventArgs e)
{
?。簦瑁椋螅椋睿洌澹?;
// 考試時(shí)間到了
?。椋?(this.index == 0)
?。?br />
// 設(shè)置Timer控件不可見(jiàn)
?。簦瑁椋螅裕椋恚澹颍保牛睿幔猓欤澹?= false;
BindData();
Response.Redirect("Loginout.aspx");
?。?br />
?。澹欤螅?br />
?。?br />
// 顯示考試剩余時(shí)間
?。簦瑁椋螅欤猓簦椋恚澹裕澹?= this.index / 60 + "分" + this.index % 60 + "秒將停止考試,請(qǐng)及時(shí)“提交”試卷,否則試卷作廢成績(jī)無(wú)效?。?;
?。?br />
?。?br />
?。?總 結(jié)
本在線考試系統(tǒng)設(shè)計(jì)開(kāi)發(fā)完成后,在一次200多人的考試中成功應(yīng)用。從學(xué)號(hào)的導(dǎo)入到隨機(jī)組卷、考試、自動(dòng)評(píng)閱、成績(jī)導(dǎo)出。隨著網(wǎng)絡(luò)的普及,在線無(wú)紙化考試系統(tǒng)必將廣泛應(yīng)用于學(xué)校的各級(jí)考試中。在隨后的研究中本系統(tǒng)陸續(xù)會(huì)增加一些功能,如:學(xué)生的考試記錄存入數(shù)據(jù)庫(kù),分析學(xué)生常出錯(cuò)的知識(shí)點(diǎn);主觀題的智能閱卷功能;機(jī)器意外斷電保存學(xué)生答題記錄等。