卓志
摘 要:傳統(tǒng)的考試模式,從出卷、打印、監(jiān)考、評分、試卷分析、成績統(tǒng)計等一系列操作過程都需要由人工完成,耗時長,過程繁瑣。本論文的主要內(nèi)容是設(shè)計一套網(wǎng)絡(luò)考試系統(tǒng),在服務(wù)器端,數(shù)據(jù)庫采用SQL2000,采用ASP語言實現(xiàn)用戶層設(shè)計,在功能上,實現(xiàn)動態(tài)生成試卷、自動打分,以大幅提升辦公自動化水平。
關(guān)鍵詞:網(wǎng)絡(luò)考試系統(tǒng);動態(tài)生成;辦公自動化
1 開發(fā)環(huán)境及技術(shù)介紹
1.1 開發(fā)環(huán)境配置
本考試系統(tǒng)的開發(fā)環(huán)境如下:(1)信息服務(wù)器:Internet Information Service(IIS)。(2)開發(fā)技術(shù):ASP技術(shù),Ajax技術(shù)。(3)開發(fā)工具:Macromedia Dreamweaver 8、Adobe Photoshop CS。(4)數(shù)據(jù)庫:SQL Server 2000。(5)瀏覽器:IE瀏覽器。(6)服務(wù)器操作系統(tǒng):開發(fā)過程采用Windows XP Professional操作系統(tǒng)。
1.2 Browser/Server(瀏覽器/服務(wù)器)
B/S結(jié)構(gòu)采用了瀏覽器、Web服務(wù)器、數(shù)據(jù)庫服務(wù)器三層分布結(jié)構(gòu)。用戶的所有操作均通過瀏覽器進(jìn)行,并且對系統(tǒng)的改進(jìn)只需要在Web服務(wù)器上進(jìn)行相應(yīng)改動即可。這種模式下,Web服務(wù)器是系統(tǒng)的核心,它負(fù)責(zé)接收并處理來自瀏覽器的數(shù)據(jù)請求,將數(shù)據(jù)請求通過數(shù)據(jù)庫接口程序轉(zhuǎn)換成數(shù)據(jù)庫服務(wù)器能夠接受的形式后,送到數(shù)據(jù)庫服務(wù)器。數(shù)據(jù)庫服務(wù)器負(fù)責(zé)執(zhí)行相應(yīng)的數(shù)據(jù)庫操作,并將結(jié)果通過轉(zhuǎn)換送回Web服務(wù)器。Web服務(wù)器將結(jié)果處理成瀏覽器能夠接受的形式后,送回發(fā)出請求的瀏覽器,顯示結(jié)果。
1.3 Ajax技術(shù)
Ajax是一個結(jié)合了Java技術(shù)、XML、以及JavaScript的Web開發(fā)模式,可以構(gòu)建基于Java技術(shù)的Web應(yīng)用。Ajax技術(shù)可以僅向服務(wù)器發(fā)送并取回必需的數(shù)據(jù),它相當(dāng)于在客戶端和服務(wù)器之間加了一個中間層,即Ajax引擎。并不是所有的用戶請求都提交給服務(wù)器,一些數(shù)據(jù)的驗證和處理由Ajax自己來做,只有確實需要從服務(wù)器讀取新數(shù)據(jù)時,才由客戶端通過JavaScript調(diào)用Ajax引擎向服務(wù)器端發(fā)出Http請求,當(dāng)服務(wù)端的數(shù)據(jù)以XML形式返回時,Ajax引擎接收數(shù)據(jù),并指定JavaScript函數(shù)來完成相應(yīng)的處理或頁面的更新,而不是刷新整個頁面,從而實現(xiàn)用戶操作與服務(wù)器響應(yīng)的異步化。
2 功能設(shè)計
2.1 登錄模塊
登錄模塊主要是保證系統(tǒng)的安全性,允許合法的用戶(管理員和考生)使用考試系統(tǒng)。在登錄界面按要求輸入用戶名和密碼,如果是合法用戶,則登錄成功進(jìn)入主界面;如果是非法用戶或密碼不正確,則返回錯誤信息,返回登錄界面。
2.2 管理員模塊
管理員模塊主要功能是對系統(tǒng)用戶、權(quán)限進(jìn)行管理。此模塊可由用戶管理模塊和試題管理模塊組成。
2.2.1 用戶管理模塊:完成考試系統(tǒng)用戶的管理,包括添加/刪除用戶,修改用戶密碼等。
2.2.2 試題管理模塊:可按部門、課程、套題等不同的參數(shù)進(jìn)行添加、修改、刪除操作。
2.3 考生模塊
考生模塊的主要功能是實現(xiàn)學(xué)生在線考試、在線練習(xí)及成績查詢。此模塊由在線考試子模塊、在線練習(xí)子模塊和成績查詢模塊組成。
2.3.1 在線考試子模塊
此模塊主要負(fù)責(zé)學(xué)生從開始考試到考試結(jié)束的全過程,其中包括在線練習(xí)、在線考試、考試計時、交卷保存等功能。其具體功能如下:(1)在線考試:在規(guī)定的時間內(nèi),選擇考試的課程,進(jìn)入考試??荚嚱Y(jié)束后,提交給服務(wù)器予以保存并評分。另外,在考試過程中系統(tǒng)會自動定時對考生的答案進(jìn)行保存,以便于考試中斷以后能夠讓考生繼續(xù)考試。(2)考試計時:當(dāng)學(xué)生開始考試時,計時器由預(yù)先設(shè)定的考試時間開始倒計時。(3)保存試卷:當(dāng)學(xué)生按下“交卷”按鈕時,系統(tǒng)保存試卷并對客觀題進(jìn)行自動閱卷評分,對客觀題通過查找是否含有關(guān)鍵字,來決定是否有必要進(jìn)行人工閱卷的標(biāo)志存入數(shù)據(jù)庫中,并返回客觀題部分的得分。當(dāng)計時器顯示時間為零時,系統(tǒng)強行交卷、保存試卷,并顯示考試完畢。
2.3.2 在線練習(xí)子模塊
(1)在線練習(xí):學(xué)生可以根據(jù)自己的需要選擇練習(xí)題的課程、類型、難度、章節(jié)、題目數(shù)等,由系統(tǒng)從試題庫中隨機(jī)抽取相應(yīng)的客觀題供學(xué)生練習(xí)。練習(xí)過程中可自動計時,但不限定時,練習(xí)結(jié)果不予保存。(2)自動評分:練習(xí)結(jié)束時系統(tǒng)可自動評分,并顯示正確答案。
2.3.3 成績查詢子模塊
此模塊主要功能是供已登錄的用戶查詢成績。其具體功能如下:輸入用戶名和密碼,正確登錄后,可選擇查看所有人參加考試課程的成績。
2.4 SQL2000數(shù)據(jù)庫設(shè)計
在本課題中,為了獲得有效的數(shù)據(jù)庫設(shè)計,應(yīng)遵循規(guī)范化規(guī)則,即:
2.4.1 使數(shù)據(jù)冗余(即重復(fù))最少。
2.4.2 使數(shù)據(jù)重構(gòu)或重建模最少。
2.4.3 通過減少事務(wù)處理大小使I/O最少。
3 關(guān)鍵算法實現(xiàn)
3.1 連接數(shù)據(jù)庫
public SqlConnection getcon()
{
string strCon = "Data Source=(local);DataBase=db_Examination;User ID=sa;PWD=sa";
SqlConnection sqlCon = new SqlConnection(strCon);
return sqlCon;
}
3.2 生成單選題
SqlDataAdapter myadapter1 = new SqlDataAdapter("select top 60 * "
+"from tb_Questions where que_type='單選題'and que_lessonid='"
+ dd1 + "'and que_taotiid='" + dd2 + "'order by newid()", con); //隨機(jī)組卷
for (int tID1 = 1; tID1 <= DataList1.Items.Count; tID1++) //生成單選題題號
{
Label lblSelect = (Label)DataList1.Items[tID1 -1].FindControl("Label2");
lblSelect.Text = tID1.ToString() + "、";
}
3.3 核對單選題答案
foreach (DataRow answer1 in row1)//利用foreach進(jìn)行遍歷
{
int_row1 += 1;
RadioButtonList rbl = (RadioButtonList)(DataList1.Items[int_row1 - 1].FindControl("RadioButtonList1"));
if (answer1["que_answer"].ToString().Trim() == rbl.SelectedValue.ToString().Trim())
{
int_row1Point += 60 / DataList1.Items.Count;//計算單選題成績
}
this.lblSel.Text = "單選題:" + (int_row1Point) + "分";
Label lblAnswer1 = (Label)DataList1.Items[int_row1 - 1].FindControl("Label26");
lblAnswer1.Text = "正確答案:" + answer1["que_answer"].ToString();//顯示正確答案
}
3.4 將考試結(jié)果寫入數(shù)據(jù)庫
dataconn.eccom("insert into tb_StuResult"
+"(stu_id,which_lesson,taotiid,taotiname,res_single,res_more)"
+"values('" + lblStuID.Text + "','" + lblSubject.Text + "','"
+ dd2 + "','" + lblQuestion.Text + "','" + int_row1Point + "','" + int_row2Point + "')");
總結(jié)
本網(wǎng)絡(luò)考試平臺采用了ASP技術(shù)、Ajax頁面局部刷新技術(shù),實現(xiàn)了自動組卷、自動評分等一系列功能,并使用SQL2000作為系統(tǒng)數(shù)據(jù)庫,實現(xiàn)了成績查詢、用戶搜索等功能,完成了設(shè)定的目標(biāo)功能,投入使用后,可大幅提升辦公自動化水平。
參考文獻(xiàn)
[1]吳靜霞.基于ASP/ADO在線考試系統(tǒng)的設(shè)計與實現(xiàn)[J].沙洲職業(yè)工學(xué)院學(xué)報,2008,11(1):1.
[2]謝駿.數(shù)值分析在線考試系統(tǒng).學(xué)士學(xué)位論文,西南石油大學(xué),2007:1-2.