摘要:基于B/S的在線考試系統,充分利用了B/S模式交互性強、速度快、安全性高、信息共享的優點,實現了學生成績科學、快速、準確、全面地統計分析,有助于全面了解學生的學習成績。通過對在線考試系統的功能分析,采用了ASP.NET技術,數據庫技術和B/S三層體系結構進行設計開發。
關鍵詞:B/S;ASP.NET;考試系統;Web技術
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2009)04-0772-02
Design of Test System Based on B/S Model
ZHANG Jiang-wen1, RAO Hong2, HU Su-juan3
(1.School of Information and Engineering, Nanchang University, Nanchang 330031, China; 2.Computer Center, Nanchang University, Nanchang 330031, China; 3.Jiangxi Tourism Commerce College, Nanchang 330039, China)
Abstract: The test system is based on B/S model. It takes full advantage of model, such as the strong interaction, high rapidity and security, as well as the strong share of B/S model. So it makes the statistical analysis of the test system more scientifically, quickly and comprehensively. According to the function analysis of the online examination system based on ASP.NET, the system is designed and developed using ASP.NET, database and B/S architecture in three levels in the paper.
Key words: B/S; ASP.NET; test system; web technology
1 引言
隨著因特網技術的發展,利用網絡進行網上教學,開發網絡題庫和在線考試系統是減輕教師工作量的有效途徑,是對傳統考試方式的重要改革。考試作為教學的重要環節,同時也是評價、指導教學的重要依據,具有相當的重要性。無紙化考試可以節省資源,提高考試效率,同時也減少了閱卷老師的勞動強度。所以,無紙化考試在社會的各個方面得到推廣和應用。隨著網絡技術的發展和應用,無紙化考試又進一步發展成為網上考試,可以在不同的地域同步或異步地組織考試而又集中收發試卷。網上考試系統的優點表現為:保密性強、客觀性較強、迅速準確公平、便于組織大規模的異地實時考試。隨著計算機技術和互聯網的發展,可以通過以互聯網為基礎的考試模式來實現人們對學習成果的驗收,這就是網絡在線考試。在線考試系統采用了B/S的體系結構,用ASP.NET 技術開發在線考試系統,以SQL Server 2000作為后臺數據庫,通過ADO.NET 技術來連接和訪問數據庫,實現了數據的快速處理和共享,提高了系統的安全性和可靠性。
2 體系結構的確定
隨著計算機網絡技術、數據庫技術的發展和Internet/Intranet技術的廣泛應用,管理信息系統的體系結構發生了很大的變化,目前主流模式有客戶機/服務器模式(Client/Server ,簡稱C/S)和瀏覽器/服務器模式(Browser/Server,簡稱B/S)兩種,簡要比較如下:
2.1 客戶機/服務器模式(Client/Server,簡稱C/S)
C/S模式由數據庫服務器、客戶端應用程序和網絡三部分組成。這種架構的特點是由客戶端向服務器發出指令,而數據的存儲和處理均在服務器上進行。在服務器完成對數據的處理后,將運算結果返回給客戶端,用戶就可以利用安裝在客戶上的應用程序對結果進行二次處理。圖1顯示了客戶機/服務器架構的工作特點。
但是,由于客戶機/服務器架構主要是針對局域網的應用環境設計的,因此適合在企業內部的Intranet 上使用,而無法在Internet上得以高效的應用,外界客戶無法訪問,不利于信息的共享。
2.2 瀏覽器/服務器模式(Browser/Server,簡稱B/S)
B/S模式是一種新興的軟件體系結構,具體結構為:瀏覽器/Web服務器/數據庫服務器。在B/S模式下,客戶端只需安裝一個瀏覽器軟件(例如微軟的IE),不需要安裝用戶界面應用程序,真正實現了“瘦客戶”,同時簡化了客戶端的操作,降低了企業的成本。由于B/S模式所有功能都在服務器上實現,所以大大降低了系統的維護工作。此外,它還具有分布性強,開發簡單,共享性強等特點,所以越來越多的信息管理系統考慮使用B/S模式,瀏覽器/服務器實際上是客戶端/服務器架構的延伸,是根據廣域網的特點對客戶端/服務器架構進行了的改進。圖2為瀏覽器/服務器架構的示意圖。
通過比較我們可以發現瀏覽器/服務器模式具有下以3個方面的優越性:
1) 瀏覽器/服務器架構采用Internet上的標準通信協議既TCP/IP協議作為客戶端同服務器的通信協議,可以是使位于Internet上的任意位置的人都可訪問服務器。
2) 在服務器上對數據進行處理并將處理結果生成網頁,供客戶端直接下載,使得在客戶機上對數據的處理被進一步簡化。
3) 由于數據的處理,存儲都是在服務器上完成,因此將來對系統的升級都只是對服務器進行。
3 功能模塊的設計
綜合考慮考試系統使用的生命期、性價比、開發人員掌握相關技術的速度及可移植性、可擴展性等因素,采用.NET 技術,以ASP.NET網絡編程語言作為開發工具設計了在線考試系統的功能模塊結構,各模塊的劃分和設計遵循高內聚、低耦合的原則。考試系統可實現教師在線抽取試卷、批改試卷、發布答案、編輯題庫、發布試卷,以及學生在線考試、查詢成績、獲取答案等雙重身份使用的一套在線實現考試的網絡系統。
3.1 數據庫的設計
數據庫設計是一個軟件項目的重要環節,在正確分析需求的基礎上,使用規范化的設計方法對數據庫進行概念上和邏輯上的建模,以求客觀準確的反映真實世界。在本系統的數據庫設計與實現中,遵循規范化的數據庫設計方法,對實體以及實體間的聯系進行了認真仔細的劃分,力求符合數據庫設計的要求,劃分良好的層次性,增強靈活性,降低數據的冗余。
數據庫邏輯結構設計如下:
1) 用戶信息:用戶ID、用戶名、密碼、密碼問題、問題答案、所屬部門、所屬單位、職務等級、職務、是否管理員等。
2) 考試科目信息:科目編號、科目名稱。
3) 新聞信息:新聞編號、新聞標題、新聞內容、發布者、審核人員、發布時間、審核通過時間等。
4) 題庫信息:題庫編號、題干信息、各選項信息、正確答案等。
5) 考試試卷信息:考試編號、題目數量、題目對應分值、考試時間、考試創建者(設置者)、審核者、以及考試開始和結束時間等。
6) 考生信息:考生考號、考試編號、是否通過等。
7) 考試成績信息:考生考號、姓名、考試科目名稱、考試成績等。
4 系統采用的關鍵技術
4.1 Web數據庫訪問技術
ASP.NET使用的數據庫訪問技術是ADO.NET.ADO.NET提供對Microsoft SQL Server 等數據源以及通過OLE DB和XML公開的數據源的一致訪問。數據共享使應用程序可以使用ADO.NET來連接到這些數據源,并檢索、操作和更新數據。ADO.NET有效地從數據操作中將數據訪問分解為多個單獨使用或一前一后使用的不連續組件。ADO.NET的一個重要優點是它是建立在.NET Framework之上的,可以通過任何基于.NET的編程語言都可以直接無縫地使用ADO.NET,ADO.NET主要包括Connection(用于數據庫的連接) Command(用于執行數據庫的命令) DataReader(用于讀取數據庫) DataSet(數據集) DataAdapter(數據庫的適配器,要主用來操作數據庫填充DataSet并操作DataSet)等幾個部分。
4.2 Web.Config配置文件的設計
Web.Config文件是一個 XML文件,用來儲存 ASP.NET中 Web應用程序的配置信息。其可以出現在應用程序的每個目錄中,默認情況下會在根目錄自動創建一個默認的 Web.Config文件,包括默認的設置,所有的子目錄都繼承它。此文件是可以擴展的,可以自定義新配置參數并編寫配置節處理程序以進行處理。
4.3 后臺服務器和數據庫配置
在線考試系統使用IIS6.0作為后臺系統服務器。由于本系統使用了ASP.NET的Session(會話)和Application(應用程序)等對象,因此在配置完系統服務器后,進人Web根目錄,在屬性對話框中的應用和程序設置中,必須創建一個與根目錄同名的應用程序由于SQL Server2000數據庫的安全性比較好因此本系統采用SQL Server2000作為后臺數據庫。使用ASP.NET技術訪問SQL Server2000數據庫有兩種方式:一種是OLE DB方式,另一種是ODBC數據源的方式。本系統采用后者。這樣在系統設計前要進行數據源名稱DSN(Data Source Name)設置,然后以DSN來啟動數據庫。因此用戶在程序中只要使用DNS名稱,系統便會找到對應的ODBC驅動程序和數據庫,從而簡化了程序設計工作。
4.4 防止考生刷新頁面
由于加載試題頁面時將從數據庫中隨機抽取試題,所以應防止考生刷新面頁(刷新頁面會重新生成新的試題)。方法是將表studInfo中的LogYn字段默認值設為0,加載試題后設為1,交卷評分后設為2,加載試題頁面時進行相應檢查,以防止頁面的刷新,代碼如下(test.aspx):
Private void Page_Load(object sender,System.EventArgs e)
{if(!IsPostBack)
{QuestCmd.CommandText=\"select LogYn from StuInfo where ExamId='\"+Session[\"Id\"].ToString()\"'\"
QuestConn.Open();
SqlDataReader Quested=QuestCmd.ExecuteReader();
QuestRd.Read();
if(QuestRd[\"LogYn\"].ToString().Trim().Equals(\"I\")||QuestRd[\"LogYn\"].ToString().Trim().Equals(\"2\"))}
//判斷是否加載試題或是否已評分;
{Response.Write(\"\";)
}
else
{QuestCmd.CommandText=\"update.StuIfo set LogYn='1'\";//已成功加載試題
QuestCmd.ExecuteReader();
}}}
4 結論
整個系統具有較好的實用性和先進性、開放性和擴展性、可靠性和穩定性、安全性和共享性,界面友好,操作簡便。
基于B/S模式的在線考試系統真正實現了無紙化在線考試,任何授權的考生隨時隨地都可進行考試,并迅速獲得成績,保證了考試的公正性和合理性,同時大大減輕了教師出題和判卷等繁重的工作量。由于采用了B/S結構,系統具有良好的可維護性和可擴充性,如果考試科目或課程內容有所調整,只要對題庫作調整即可。該系統對今后考試改革具有積極的實際指導意義。
參考文獻:
[1] 楊鯤鵬,孟凡琦,溫才.ASP.NET+SQL Server動態網站開發從基礎到實踐[M].北京:電子工業出版社,2006.
[2] 李玉林,王巖.ASP.NET2.0網絡編程從入門到精通[M].北京:清華大學出版社,2007.
[3] 郝春強 C#基礎與實例專教程[M].北京:中國電力出版社,2005.
[4] 徐人鳳.SQL Server 2000數據庫及應用[M].北京:高等教育出版社,2004.
[5] 劉振華,何丕廉.C/S與B/S混合模式學生體質健康管理系統設計[J].計算機與現代,2008,149(1):98-100.