
傳統考試涉及組織命題、試卷印刷、考場安排、閱卷等諸多環節,考試周期長效率低下。隨著網絡技術的發展,網絡在線考試系統展現了眾多的優越性。本系統應用了AJAX無刷新考試環境、隨機組卷、自動閱卷、自動交卷、提供多種題型等功能。
1 技術基礎
1.1 ASP.net
ASP.net是微軟公司推出的新一代動態Web應用程序開發平臺,是.net框架的一部分,可以使用任何.net兼容的語言編寫ASP.net應用程序。
優勢:高效運行性能、簡易性靈活性、可管理性、生產效率高
1.2 AJAX
AJAX是Asynchronous JavaScript and XML(異步JavaScript和XML技術)的縮寫,是由JavaScript腳本語言、CSS樣式表、XMLHttpRequest數據交換對象和DOM文檔對象等多種技術組成的。Web應用的傳統模型與AJAX模型如圖1、圖2所示。
2 功能設計
(1) 用戶信息管理。該模塊功能有考生考號導入、用戶權限設置(學生、教師、系統管理員)。將考生考號存成Excel格式,可以成批地導入。并可以設置權限,本系統分為三級權限:學生只能考試、查閱成績、教師可以錄入所教科目試題、查閱學生成績、系統管理員可以增加刪除用戶、增加刪減考試科目等。
(2) 考試科目管理。以教師或者管理員身份登錄后可以添加、刪除考試科目。
(3) 試卷出題與維護。以教師或者管理員身份登錄后可以選擇考試科目,增加刪減題型、確定不同題型分數、組卷等。
(4) 考生試卷管理。客觀題自動評閱、主觀題教師評閱,考生成績導出Excel格式并排序。
(5) 考試試題管理。本考試系統包括5種題型,即單選、多選、判斷、填空、簡答,該模塊用于選擇不同的題型,錄入試題。
3 關鍵技術
3.1 用戶權限設置
本在線考試系統包括3種角色:考生、教師、管理員。管理員可以為教師設置權限。教師可以增減考試科目、組卷等。用戶權限設置代碼:
自定義方法InitData()進行權限設置
private void InitData()
{
// 創建一個DataTable類型的變量存儲哈希表中數據
DataTable dt = Rolemr.Query(new Hashtable());
// 將創建的dt作為數據源
GV.DataSource = dt;
// 從數據庫中綁定GridView控件中數據
GV.DataBind();
// 循環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)
{
// 設置Timer控件不可見
this.Timer1.Enabled = false;
BindData();
Response.Redirect("Loginout.aspx");
}
else
{
// 顯示考試剩余時間
this.lbtime.Text = this.index / 60 + "分" + this.index % 60 + "秒將停止考試,請及時“提交”試卷,否則試卷作廢成績無效!";
}
}
4 總 結
本在線考試系統設計開發完成后,在一次200多人的考試中成功應用。從學號的導入到隨機組卷、考試、自動評閱、成績導出。隨著網絡的普及,在線無紙化考試系統必將廣泛應用于學校的各級考試中。在隨后的研究中本系統陸續會增加一些功能,如:學生的考試記錄存入數據庫,分析學生常出錯的知識點;主觀題的智能閱卷功能;機器意外斷電保存學生答題記錄等。