邵長海
[摘要] 在線考試系統(tǒng)的開發(fā)及應(yīng)用,避免了傳統(tǒng)考試的紙張、筆、監(jiān)考等資源的浪費,而且減少了人為的作弊因素。本考試系統(tǒng)應(yīng)用了最新的AJAX技術(shù)實現(xiàn)無刷新考試,倒計時自動交卷、隨機組卷、自動評閱等功能。
[關(guān)鍵詞] AJAX; ASP.net; 在線考試; 自動閱卷
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2012 . 18. 062
[中圖分類號]TP399[文獻標(biāo)識碼]A[文章編號]1673 - 0194(2012)18- 0111- 03
傳統(tǒng)考試涉及組織命題、試卷印刷、考場安排、閱卷等諸多環(huán)節(jié),考試周期長效率低下。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)在線考試系統(tǒng)展現(xiàn)了眾多的優(yōu)越性。本系統(tǒng)應(yīng)用了AJAX?zé)o刷新考試環(huán)境、隨機組卷、自動閱卷、自動交卷、提供多種題型等功能。
1技術(shù)基礎(chǔ)
1.1ASP.net
ASP.net是微軟公司推出的新一代動態(tài)Web應(yīng)用程序開發(fā)平臺,是.net框架的一部分,可以使用任何.net兼容的語言編寫ASP.net應(yīng)用程序。
優(yōu)勢:高效運行性能、簡易性靈活性、可管理性、生產(chǎn)效率高
1.2AJAX
AJAX是Asynchronous JavaScript and XML(異步JavaScript和XML技術(shù))的縮寫,是由JavaScript腳本語言、CSS樣式表、XMLHttpRequest數(shù)據(jù)交換對象和DOM文檔對象等多種技術(shù)組成的。Web應(yīng)用的傳統(tǒng)模型與AJAX模型如圖1、圖2所示。
2功能設(shè)計
(1) 用戶信息管理。該模塊功能有考生考號導(dǎo)入、用戶權(quán)限設(shè)置(學(xué)生、教師、系統(tǒng)管理員)。將考生考號存成Excel格式,可以成批地導(dǎo)入。并可以設(shè)置權(quán)限,本系統(tǒng)分為三級權(quán)限:學(xué)生只能考試、查閱成績、教師可以錄入所教科目試題、查閱學(xué)生成績、系統(tǒng)管理員可以增加刪除用戶、增加刪減考試科目等。
(2) 考試科目管理。以教師或者管理員身份登錄后可以添加、刪除考試科目。
(3) 試卷出題與維護。以教師或者管理員身份登錄后可以選擇考試科目,增加刪減題型、確定不同題型分?jǐn)?shù)、組卷等。
(4) 考生試卷管理??陀^題自動評閱、主觀題教師評閱,考生成績導(dǎo)出Excel格式并排序。
(5) 考試試題管理。本考試系統(tǒng)包括5種題型,即單選、多選、判斷、填空、簡答,該模塊用于選擇不同的題型,錄入試題。
3關(guān)鍵技術(shù)
3.1用戶權(quán)限設(shè)置
本在線考試系統(tǒng)包括3種角色:考生、教師、管理員。管理員可以為教師設(shè)置權(quán)限。教師可以增減考試科目、組卷等。用戶權(quán)限設(shè)置代碼:
自定義方法InitData()進行權(quán)限設(shè)置
private void InitData()
{
// 創(chuàng)建一個DataTable類型的變量存儲哈希表中數(shù)據(jù)
DataTable dt = Rolemr.Query(new Hashtable());
// 將創(chuàng)建的dt作為數(shù)據(jù)源
GV.DataSource = dt;
// 從數(shù)據(jù)庫中綁定GridView控件中數(shù)據(jù)
GV.DataBind();
// 循環(huán)GridView控件中的CheckBox控件
for (int i = 0; i < dt.Rows.Count; i++)
{
// 部門管理
if (OnLineExam.HelperClass.GetSafeData.ValidateDataRow_N(dt.Rows[i], "HasDuty_DepartmentManage") == 1)
((CheckBox)GV.Rows[i].FindControl("chkDepartmentManage")).Checked = true;
// 用戶管理
if (OnLineExam.HelperClass.GetSafeData.ValidateDataRow_N(dt.Rows[i], "HasDuty_UserManage") == 1)
((CheckBox)GV.Rows[i].FindControl("chkUserManage")).Checked = true;
// 考試科目管理
if (OnLineExam.HelperClass.GetSafeData.ValidateDataRow_N(dt.Rows[i], "HasDuty_CourseManage") == 1)
((CheckBox)GV.Rows[i].FindControl("chkCourseManage")).Checked = true;
// 試卷制定維護
if (OnLineExam.HelperClass.GetSafeData.ValidateDataRow_N(dt.Rows[i], "HasDuty_PaperSetup") == 1)
((CheckBox)GV.Rows[i].FindControl("chkPaperSetup")).Checked = true;
// 用戶試卷管理
if (OnLineExam.HelperClass.GetSafeData.ValidateDataRow_N(dt.Rows[i], "HasDuty_UserPaperList") == 1)
((CheckBox)GV.Rows[i].FindControl("chkUserPaperList")).Checked = true;
// 試題類別管理
if (OnLineExam.HelperClass.GetSafeData.ValidateDataRow_N(dt.Rows[i], "HasDuty_SingleSelectManage") == 1)
((CheckBox)GV.Rows[i].FindControl("chkTypeManage")).Checked = true;}}
3.2考試時間倒計時
protected void Timer1_Tick(object sender, EventArgs e)
{
this.index--;
// 考試時間到了
if (this.index == 0)
{
// 設(shè)置Timer控件不可見
this.Timer1.Enabled = false;
BindData();
Response.Redirect("Loginout.aspx");
}
else
{
// 顯示考試剩余時間
this.lbtime.Text = this.index / 60 + "分" + this.index % 60 + "秒將停止考試,請及時“提交”試卷,否則試卷作廢成績無效?。ⅲ?/p>
}
}
4總結(jié)
本在線考試系統(tǒng)設(shè)計開發(fā)完成后,在一次200多人的考試中成功應(yīng)用。從學(xué)號的導(dǎo)入到隨機組卷、考試、自動評閱、成績導(dǎo)出。隨著網(wǎng)絡(luò)的普及,在線無紙化考試系統(tǒng)必將廣泛應(yīng)用于學(xué)校的各級考試中。在隨后的研究中本系統(tǒng)陸續(xù)會增加一些功能,如:學(xué)生的考試記錄存入數(shù)據(jù)庫,分析學(xué)生常出錯的知識點;主觀題的智能閱卷功能;機器意外斷電保存學(xué)生答題記錄等。