摘要:網(wǎng)絡(luò)考試系統(tǒng)是教育隨著計(jì)算機(jī)信息技術(shù)發(fā)展涌現(xiàn)出的一種新的考試方式,該文利用了基于B/S模式下的三層結(jié)構(gòu)體系,在ASP.NET框架下,利用SQL Server數(shù)據(jù)庫,設(shè)計(jì)出了功能完備、實(shí)用的網(wǎng)絡(luò)在線考試系統(tǒng), 詳細(xì)闡述了系統(tǒng)的登錄安全驗(yàn)證、知識點(diǎn)優(yōu)先權(quán)的組卷技術(shù)、考試時(shí)間控制以及數(shù)據(jù)查詢幾個(gè)功能的實(shí)現(xiàn),有效地解決了傳統(tǒng)考試的低效性與復(fù)雜度。
關(guān)鍵詞: 網(wǎng)絡(luò)考試;B/S模式;數(shù)據(jù)庫;三層體系
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2009)36-10166-03
Design and Implementation about Network Test System Based on B/S Mode
LIU Ming1, YANG Feng2
(1.Combining Chinese and Western Medicine Hospital, Southern Medical University, Guangzhou 510315, China; 2.School of Biomedical Engineering, Southern Medical University, Guangzhou 510315, China)
Abstract: Network test system is a computer information technology education, with the emergence of a new test method, this paper based on B/S mode, three-tier architecture, in the ASP.NET framework, the use of SQL Server databases, design a full-featured and practical network online examination system, described in detail the system logon security verification, knowledge points, priority technical test paper, examination time control and data-check the implementation of several functions effectively solve the inefficiencies of traditional examinations Sex and complexity.
Key words: network test; B/S mode; database; three-tier system
隨著網(wǎng)絡(luò)技術(shù)在教育領(lǐng)域應(yīng)用的普及,應(yīng)用信息技術(shù)構(gòu)架的網(wǎng)絡(luò)在線學(xué)習(xí)測試系統(tǒng)展現(xiàn)出了越來越多的優(yōu)越性。考試是教育中一個(gè)重要的環(huán)節(jié),它不僅考查學(xué)生的知識掌握情況,同時(shí)為教師提供教學(xué)分析的依據(jù)。傳統(tǒng)考試由于涉及到組織命題、考場安排、組織閱卷等諸多環(huán)節(jié),考試時(shí)間周期長、效率較低;同時(shí)人工評卷等主觀因素也影響到考試的公正性。運(yùn)用計(jì)算機(jī)考試,以其運(yùn)作成本低、高效、靈活的突出優(yōu)勢,正在走進(jìn)我們的工作和學(xué)習(xí)。本文研究的基于B/S模式的網(wǎng)絡(luò)在線考試系統(tǒng),從根本上解決了傳統(tǒng)老師在評卷過程中工作量大、效率低等缺陷,成為教育技術(shù)發(fā)展與研究的方向,設(shè)計(jì)采用SQL Server 2000和ASP.NET有效結(jié)合,具有在線考試、成績查詢以及考題上傳、教師和考生信息管理等功能。
1 系統(tǒng)體系設(shè)計(jì)
本系統(tǒng)的開發(fā)中,使用的是基于瀏覽器/服務(wù)器(Brower/Server,B/S)架構(gòu)的Web應(yīng)用系統(tǒng),并且使用了三層架構(gòu),其結(jié)構(gòu)如圖1所示。所謂三層架構(gòu),是在客戶端與數(shù)據(jù)庫之間加入了一個(gè)\"中間層\",也叫組件層。這里所說的三層體系,不是指物理上的三層,不是簡單地放置三臺(tái)機(jī)器就是三層體系結(jié)構(gòu),也不僅僅有B/S應(yīng)用才是三層體系結(jié)構(gòu),三層是指邏輯上的三層,即使這三個(gè)層放置到一臺(tái)機(jī)器上。
1)表示層
主要與用戶交互,使用多個(gè)包含單顯示頁面的用戶部件,復(fù)雜的Web頁面可以展示來自多個(gè)數(shù)據(jù)源的內(nèi)容。系統(tǒng)的用戶界面層采用瀏覽器的方式,方便用戶,界面盡量友好。為了便于用戶以各自不同的身份進(jìn)入系統(tǒng),我們將系統(tǒng)分為三種不同的用戶界面,即教師界面、學(xué)生界面和管理員界面,根據(jù)用戶登錄系統(tǒng)時(shí)提交的用戶名不同而進(jìn)入各自相應(yīng)的界面,目的是更好地為不同的用戶服務(wù)。
2)業(yè)務(wù)邏輯層
主要負(fù)責(zé)業(yè)務(wù)邏輯的處理,完成對數(shù)據(jù)庫的檢索,插入,更新以及刪除等操作。在業(yè)務(wù)邏輯層主要分為業(yè)務(wù)實(shí)體對象和業(yè)務(wù)處理對象,其中業(yè)務(wù)處理對象封裝了具體的處理邏輯,調(diào)用業(yè)務(wù)邏輯模型,并且把響應(yīng)提交到合適的視圖組件以產(chǎn)生響應(yīng)。
本系統(tǒng)的功能模塊包括用戶登錄、信息管理、在線考試和成績查詢四部分,且每部分都由若干個(gè)模塊組成。其中用戶登錄模塊包括用戶登錄和密碼修改模塊;信息管理模塊包括科目維護(hù)模塊、題庫維護(hù)模塊、試卷生成模塊、用戶信息模塊和考試信息模塊組成;考試模塊由學(xué)生考試模塊和成績查詢模塊組成;成績查詢模塊則是系統(tǒng)直接提供給學(xué)生進(jìn)行成績查詢的界面。
3)數(shù)據(jù)層
為了能夠更好的處理配置數(shù)據(jù),小型的臨時(shí)數(shù)據(jù)在本系統(tǒng)的開發(fā)過程中引入了XML,這樣對提高系統(tǒng)的性能起到了一定的作用,同時(shí)將一些系統(tǒng)配置數(shù)據(jù)放在XML中避免了傳統(tǒng)系統(tǒng)部署過程中需要專業(yè)人士對數(shù)據(jù)庫完成對數(shù)據(jù)庫數(shù)據(jù)更改??紤]網(wǎng)絡(luò)考試系統(tǒng)的開發(fā)需求,系統(tǒng)至少要實(shí)現(xiàn)考題數(shù)據(jù)、用戶及角色數(shù)據(jù)、考生及成績數(shù)據(jù)和試卷的數(shù)據(jù)。因此本系統(tǒng)數(shù)據(jù)庫至少要包含用戶表、考生表、試題表、試題種類表、試題題干答案表、正確答案表、試卷表、圖片表和成績表。
2 系統(tǒng)功能設(shè)計(jì)
本在線考試系統(tǒng)總共分為三個(gè)子系統(tǒng)部分,分別為學(xué)生考試子系統(tǒng),教師試題上傳子系統(tǒng),系統(tǒng)信息管理子系統(tǒng)。其基本的框架圖如圖2所示。
1)在線考試模塊
該模塊是整個(gè)在線考試系統(tǒng)的外部表現(xiàn)。在該系統(tǒng)里主要實(shí)現(xiàn)學(xué)生身份的驗(yàn)證。當(dāng)驗(yàn)證通過后,選取報(bào)考科目,要求提取試題??忌梢栽诮痪頃r(shí)間內(nèi)自行交卷,也可以當(dāng)考試時(shí)間結(jié)束的時(shí)候由系統(tǒng)強(qiáng)行停止考試。
2)試題上傳模塊
在線考試系統(tǒng)的主要資源就是考試的試題,所以一般對試題的要求很高,包括及時(shí)的更新等。而本系統(tǒng)的設(shè)計(jì)中試題的上傳是全部由教師來完成的。在學(xué)生的考試過程中,老師擔(dān)當(dāng)著不可忽略的重大任務(wù)。在網(wǎng)上考試系統(tǒng)中,后臺(tái)的教師起著很重要的作用。教師負(fù)責(zé)試題的選材和制作、試卷的評閱、考試成績的統(tǒng)計(jì)分析。在統(tǒng)計(jì)分析工作中,展示計(jì)算每道題目的得分率,及格率等獲知考生變化趨勢,考生知識能力的分析,從而可以給出學(xué)生對考試內(nèi)容的掌握程度。
3)系統(tǒng)管理模塊
在線考試系統(tǒng)的管理子系統(tǒng)是系統(tǒng)維護(hù)的核心,主要包括了以下部分:
試題管理:是對試題題型、題目進(jìn)行添加、刪除、修改、查重等管理,是考試系統(tǒng)必備的組成部分。教師根據(jù)需要可以在線進(jìn)行數(shù)據(jù)的維護(hù)和管理,這樣在考試時(shí)就可以充分地利用試題庫。
試卷管理:教師按照一定的組卷策略組成試卷,這是考試前的重要的環(huán)節(jié),設(shè)定出題的參數(shù)(試卷的總分、試卷總體的難度水平、考試時(shí)間等)。
成績查詢:管理員和教師可以對成績進(jìn)行管理,這里不僅可以查詢到班級每位考生的成績,還可以對班級的成績做些統(tǒng)計(jì)查詢等操作。
用戶管理:用戶主要可以分為三種類型:學(xué)生、教師和管理員。管理員可以管理學(xué)生、教師,對系統(tǒng)擁有最高的權(quán)限,可以添加、刪除其他管理員、教師、學(xué)生用戶,管理用戶的權(quán)限。教師則為普通管理者,可以進(jìn)行試題管理、試卷管理、試題相關(guān)圖片、選項(xiàng)管理、考生管理,包括:添加系統(tǒng)中的考生用戶資料、刪除不再需要的用戶、更改個(gè)人用戶信息。
3 開發(fā)環(huán)境
系統(tǒng)的頁面設(shè)計(jì)與程序編寫均在Visual Studio 2005.NET開發(fā)平臺(tái)下,使用C#面向?qū)ο缶幊陶Z言;數(shù)據(jù)庫采用SQL Server 2000,使用SQL語句進(jìn)行存儲(chǔ)過程的設(shè)計(jì);硬件環(huán)境則依托于任何具有.Net Framework2.0以及IIS 5.0以上的Windows系列操作系統(tǒng)上運(yùn)行。
4 系統(tǒng)關(guān)鍵技術(shù)的實(shí)現(xiàn)
1)用戶智能登錄與安全驗(yàn)證
用戶登錄頁面主要是進(jìn)行身份合法性驗(yàn)證的平臺(tái),防止非法用戶登錄系統(tǒng)。因此在“登錄頁面”設(shè)置了一個(gè)判斷用戶是否合法登錄的參數(shù),在下一級操作頁面調(diào)用并檢查其合法性,只有通過ID、密碼和驗(yàn)證碼檢驗(yàn)的合法用戶才可以進(jìn)入系統(tǒng)。如果用戶跳過“登錄頁面”直接訪問系統(tǒng),將直接重定向到“登錄頁面”,強(qiáng)制其登錄,其功能閉環(huán)如圖3所示。
這樣有效地防止了非法用戶跳過登錄驗(yàn)證頁面,直接利用URL鏈接訪問考試系統(tǒng),進(jìn)一步增強(qiáng)了系統(tǒng)的安全性。其實(shí)現(xiàn)的核心代碼(C#語言)如下:
SqlConnection cn = new SqlConnection(Connection);
cn.Open();
String strsql = \"select * from userinfo where name='\" + txtName.Text + \"'and password='\" + txtPwd.Text + \"'\";
SqlCommand cm = new SqlCommand(strsql, cn);
SqlDataReader dr = cm.ExecuteReader();
Users user=new Users();
string userid=Session[\"name\"].ToString();
switch(user.RoleName)
{
case \"管理員\":
Response.Redirect(\"Admin_index.Aspx\");
break;
case \"教師\":
Response.Redirect(\"Teacher_index.Aspx\");
break;
case \"學(xué)生\":
Response.Redirect(\"Student Index.Aspx\");
break;
default;
break;
}
cn.Close();
2)基于知識點(diǎn)優(yōu)先權(quán)的組卷技術(shù)
經(jīng)過對各種組卷算法的深入分析和研究,本系統(tǒng)設(shè)計(jì)了一套基于知識點(diǎn)優(yōu)先權(quán)的組卷算法并結(jié)合隨機(jī)抽題法來實(shí)現(xiàn)組卷策略.隨機(jī)抽題法的實(shí)現(xiàn)簡單方便,實(shí)際應(yīng)用比較多一些,但是隨機(jī)抽題會(huì)存在一些問題:隨機(jī)抽取的試題有可能過分集中在某一個(gè)或幾個(gè)章節(jié),試題的分布范圍不夠廣泛;或者隨機(jī)抽取的試題分布范圍過于廣泛,使考試失去重點(diǎn).這樣都會(huì)失去考試的有效性。
本系統(tǒng)的組卷策略采取模擬人工組卷的流程,并針對隨機(jī)抽題法的上述缺點(diǎn)進(jìn)行了改進(jìn),它既能仿真人工組卷方法又能確保試卷的多樣性和針對性。首先由教師設(shè)置試卷所涉及到的題型、必考知識點(diǎn)代碼、每個(gè)知識點(diǎn)出題數(shù)、難度系數(shù)、分值、總題數(shù)等各項(xiàng)參數(shù),然后根據(jù)設(shè)置的知識點(diǎn)的優(yōu)先權(quán)利用隨機(jī)抽題法從題庫中為每一種題型抽出符合要求的試題,在選題過程中每選出一道試題,就要在試題庫中設(shè)置選中標(biāo)記,防止重復(fù)選題,循環(huán)執(zhí)行任務(wù)直到組卷完成,最后將所得試題保存到試卷庫中.學(xué)生考試時(shí),隨機(jī)在試卷庫中抽取一套試題,此策略符合教師組卷的思維方式,充分體現(xiàn)了教師的主導(dǎo)地位,利用參數(shù)控制試題的分布范圍,擁有優(yōu)先權(quán)的知識點(diǎn)抽中的概率大一些,使選題有了側(cè)重點(diǎn)和針對性,充分覆蓋各個(gè)知識點(diǎn),進(jìn)一步提高了組卷的成功率。
3)考試時(shí)間控制
為了保證考試公正、公平、合理地進(jìn)行,考試時(shí)間結(jié)束后,系統(tǒng)將自動(dòng)提交答案,強(qiáng)制考生交卷。本系統(tǒng)在考試頁面頂部利用一個(gè)文本框顯示剩余考試時(shí)間,利用Javascript中的SetTimeout函數(shù),實(shí)現(xiàn)每隔一段時(shí)間就調(diào)用一次Function函數(shù),在這里將Timespan設(shè)為1000 ms,即1s,如果最后時(shí)間為0,則提示時(shí)間到,并且自動(dòng)執(zhí)行TheForm.Submit語句,以實(shí)現(xiàn)強(qiáng)制考生提交試卷。
4)數(shù)據(jù)查詢實(shí)現(xiàn)
在本系統(tǒng)的數(shù)據(jù)查詢模塊中,提供學(xué)生信息、用戶信息、試題信息等列表使用DataGrid控件,就是使用了數(shù)據(jù)綁定技術(shù),首先將需要顯示的信息讀到DataTable中,然后設(shè)置DataGrid控件的DataSource屬性,指向包含所需要信息的DataTable,再調(diào)用DataBind()方法實(shí)現(xiàn)控件的數(shù)據(jù)綁定。正確合理的使用數(shù)據(jù)綁定技術(shù),使得系統(tǒng)開發(fā)變得非常輕松。數(shù)據(jù)庫指定模糊查詢的操作:
SqlConnection myConnection = new SqlConnection(Connection);
string strsql = \"select * from students_course where stu_id LIKE'%\" + TextBox2.Text + \"%'\";
SqlDataAdapter da = new SqlDataAdapter(strsql, myConnection);
DataSet ds = new DataSet();
DataTable dt = new DataTable();
da.Fill(ds);
5 結(jié)束語
本論文詳述了一個(gè)基于B/S模式的在線考試系統(tǒng)的設(shè)計(jì)與開發(fā)工作。通過使用ASP.NET的先進(jìn)特性和.NET框架提供的強(qiáng)大功能,開發(fā)了一個(gè)實(shí)用性的網(wǎng)絡(luò)考試系統(tǒng),只要符合題庫的規(guī)范,任何科目的考試都可以在這個(gè)系統(tǒng)上執(zhí)行。系統(tǒng)的優(yōu)點(diǎn):考試流程使用便捷,界面美觀,具有較強(qiáng)的操作性和交互性;題庫的建設(shè)及試卷的自動(dòng)生成,實(shí)現(xiàn)了考試信息的動(dòng)態(tài)數(shù)字化管理,為教育評價(jià)和研究提供客觀依據(jù);考試成績獲取及時(shí)、準(zhǔn)確,降低教師閱卷的工作量;能減少重復(fù)性工作,加強(qiáng)考試工作規(guī)范性,提高高?,F(xiàn)代化教學(xué)管理水平;網(wǎng)絡(luò)考試有利于學(xué)校應(yīng)試教育和素質(zhì)教育的完美結(jié)合。
參考文獻(xiàn):
[1] 劉豐.在線考試系統(tǒng)的設(shè)計(jì)與研究[D].北京師范大學(xué)碩士學(xué)位論文,2000.
[2] 蘭慧.談B/S軟件超越C/S軟件的優(yōu)勢[J].包鋼科技,2005(2).
[3] 何國偉,王緯.軟件可靠性[M].北京:國防工業(yè)出版社,1998.
[4] 微軟公司.ASP.NET標(biāo)準(zhǔn)教材[M].北京:中國勞動(dòng)社會(huì)保障出版社,2003.
[5] 肖建,等.ASP.NET編程基礎(chǔ)[M].北京:清華大學(xué)出版社,2002.
[6] 徐相林.基于ASP.NET技術(shù)的B/S三層結(jié)構(gòu)設(shè)計(jì)和實(shí)現(xiàn)[J].電腦知識與技術(shù),2008(S1).
[7] 霍默.ASP.NET 2.O技術(shù)詳解[M].李勝權(quán),譯.北京:人民郵電出版社,2007.