摘要:該文介紹了基于ASP.NET2.0的在線考試系統的設計與實現。該系統采用多層體系結構,利用ASP.NET、C#和SQL SERVER2005技術實現,闡述了在線考試系統的功能和實現方法。
關鍵詞:在線考試;ASP.NET2.0;SQL SERVER2005
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2009)36-10143-03
The Online Examination System Design and Implementation Based on ASP.NET
MA Qing-xia
(Department of Information Technology, Jinling Institute of Technology, Nanjing 211169, China)
Abstract: This paper introduces the online examination system design and implementation based on ASP.NET2.0. The system uses multi-tier architecture, The use of ASP.NET, C #, and SQL SERVER2005 technology, Described the function of online examination system and implementation of method.
Key words: online examination; ASP.NET2.0; SQL SERVER2005
隨著計算機與網絡技術的發展與普及,基于網絡教學已成為現代化教育必不可少的手段,構建在線考試系統也成為教學中的一個重要環節,越來越多的學校采用在線考試形式,利用網絡進行無紙化的在線考試系統。與傳統的考試方式相比,在線考試可以動態地管理各種考試信息,自動生成試卷,自動閱卷評分,大大提高了考試的可靠性、公平性、有效性,降低考試成本,提高工作效率。把教師從繁重的組卷、閱卷、成績分析中解放出來,對提高教學效果和教學質量具有重要的意義。
1 在線考試系統
從目前的應用來看,一般的基于WEB的考試系統都會占用大量的服務器資源,其主要原因是系統在運行的過程中采用動態讀取數據的方法,這使用戶每一次測試都要向服務器多次查詢數據。所謂動態讀取數據是指用戶每次要上下翻頁或傲視結束的時候都要向數據庫讀取數據。這是應為瀏覽器是不能存儲數據的,在其刷新后,原來的數據將丟失。多次和服務器交互勢必增加服務器的負擔,因此一個好的在線考試系統速度是關鍵。當然還需要對安全性,可維護性進行全面的考慮。
本系統主要有管理員模塊和學生模塊兩大部分組成,具有在線考試,自動閱卷,查看試卷答案,動態出題,考試時間的控制,題庫維護,科目管理,用戶管理,分數管理等功能。
2 ASP.NET2005簡介
Visual Studio2005是一個功能強大的集成開發平臺,幾乎可以在其中完成所有的軟件開發任務,包括Windows應用程序開發、Web應用程序開發,設備應用程序開發以及與其相關的數據庫應用處理等,同時還提供了各種應用程序的發布安裝支持。
3 ADO.NET
ADO.NET是一種新的數據庫訪問技術,其功能全面且靈活,并可在訪問各種不同類型數據時,保持數據的一致性。
3.1 ADO.NET的結構
如圖1所示。
3.2 ADO.NET的優點
1)斷開模式
在傳統的客戶機/服務器端的應用程序中,采用的數據連接方式為連續連接方式,這種方式與數據庫一直保持連接狀態。ADO.NET采用斷開式連接方式,應用程序連接數據庫的時間僅僅足夠提取或更新數據,一旦完成就斷開連接。這樣數據庫不需要去維護長時間處于閑置狀態的連接,而且能夠避免長時間的數據庫鎖定,因此能是資源服務更多的用戶。
2)XML的支持
主要用于在不同系統中交換數據,以及在網絡上傳遞大量的結構化數據。
3)DataSet支持
DataSet是ADO.NET中最核心的成員之一,它可以用于多種不同的數據源。
4 系統分析與功能模塊
4.1 系統架構
本系統采用多層體系結構來實現,如圖2所示。
1)數據訪問層:完成所有與數據交互的工作,同時記錄所有的異常信息,基本都使用存儲過程來操作數據。
部分代碼如下:
//構造函數
Public DataBase()
{ConnectionString = ConfigurationManager.ConnectionStrings[\"ConnectionString\"].ConnectionString;
}
//保護方法,打開數據庫連接
private void Open()
{
if (Connection == 1)//判斷數據庫連接是否存在
{
Connection = new SqlConnection(ConnectionString);
Connection.Open();
}
else
{
if (Connection.State.Equals(ConnectionState.Closed))
Connection.Open();//連接處于關閉狀態,重新打開
}
}
2)數據訪問接口層:實現對數據層的一些輔助和包裝。該層包含兩個類,一個是安全獲取數據的靜態方法,一個是能夠把字符串轉換為帶有單引號的字符串。
3)業務邏輯層:完成考試系統的功能,包括考試科目類,用戶類,成績類,試卷類,單選題類,多選題類,判斷題類,填空題類,簡答題類,論述題類。
下面為考試科目類的部分代碼:
public bool InsertByProc()
{
SqlParameter[] Params = new SqlParameter[1];
DataBase DB = new DataBase();
Params[0] = DB.MakeInParam(\"@Name\", SqlDbType.VarChar, 50, Name); //考試科目名稱
int Count = -1;
Count = DB.RunProc(\"Proc_CourseAdd\", Params);
if (Count > 0)
return true;
else return 1;
}
4)頁面顯示層:考試系統中的頁面主要面向兩類用戶使用:考試者和管理員。
4.2 系統功能模塊
從大的方面來說,該系統分為學生模塊和管理員兩大模塊。學生可以登錄后進行考試,管理員可以對系統進行管理和維護。具體的功能模塊劃分如圖3所示。
5 系統開發的關鍵技術
5.1 數據庫實現
本系統采用SQL Server2005來存儲數據,數據庫建立好后,考慮到絕大多數功能都要訪問數據,系統采用存儲過程來完成所有對數據庫的讀寫。這樣可以提高數據庫的運行效率,而且可以減少代碼編譯量,提高整個系統的性能。
在Web.Config文件中設置的數據庫連接語句為:
<connectionStrings>
<add name=\"ConnectionString\" connectionString=\"Data Source=(local);Initial Catalog=MyOnLineExam;User ID=sa;Password=sa\"
providerName=\"System.Data.SqlClient\" />
</connectionStrings>
5.2 客戶端設計
學生生通過瀏覽器,選擇自己要考試的科目,通過身份驗證后,方可進行入考試系統,顯示考試頁面。開始答題后,系統就要啟動倒計時系統。計時系統在考試過程中一直顯示考試剩余時間,當考試結束時,服務器向客戶端發出一條消息,把所有的按鈕(除提交按鈕外)都轉為\"FALSE\"狀態,從而杜絕了學生交卷時間已到還繼續答題的現象。考試結束后可以看到自己的成績和查看試卷答案。
5.3 組卷
在本系統中,可以有試題庫中試題的參數主要有題型、難度系數、知識點、估計答題時間等。題型有單選、多選、填空、判斷、簡答、論述。難度系數是試題難易程度的指標,它由教師錄入試題時給定。知識點的劃分是將課程按章節和內容從上到下細化確定。教師在錄入試題時可以選擇相應的知識點。
用戶在進行組卷時,通過人機交互的方式向系統提出組卷要求。試題庫系統根據提出的要求產生組卷控制參數.并根據這些參數從試題庫中自動抽取滿足用戶要求的試題。
在組卷開始之前,要判斷以上給出的參數是否合法,如試卷總分與各題型分數之和不相符,則要求重新輸入參數;若相符,則根據組卷算法進行組卷。
5.4 系統的安全設計
在數據庫系統中,安全是很重要的一部分,特別是當應用程序放置在Internet的開放環境下,安全性就顯得更加重要了。
在系統中有一個權限表和一個存儲過程,然后通過關聯關系過濾掉沒有訪問權限的數據,從而形成權限控制策略。存儲過程根據用戶ID從安全表中選取自己所管轄的安全區域,存儲過程通過角色表從安全表中選取安全區域,因此程序可以通過存儲過程來限制用戶訪問安全表中的內容,從而增加數據庫的安全性。
6 總結
該文對在線考試系統進行了研究和實現,而且保證了系統的安全性和可靠性。系統采用基于.NET 的B/S 多層結構,具有更高的靈活性和穩定性,并且更易于維護和擴展。當然系統的功能設計還不夠完善,在應用過程中需要和遠程教學系統有機的結合,使在線考試系統更好地為教學服務,以提高教學質量。
參考文獻:
[1] 趙增敏.ASP.NET網站開發案例教程[M].北京:電子工業出版社,2006.
[2] 劉乃麗.asp.net+sql server 項目開發[M].北京:人民郵電出版社,2007.
[3] 李德奇.ASP.NET程序設計[M].北京:人民郵電出版社,2007.
[4] 張躍廷.ASP.NET技術方案寶典[M].北京:人民郵電出版社,2008.
[5] 沈陽,李勇敢.ASP.NET程序設計教程[M].北京:電子工業出版社,2006.
[6] 石偉平,徐國慶,明海波,黎浩宏,梅成才.ASP.NET項目化教程[M].上海:華東師范大學出版社,2007.
[7] 李蘭友,楊曉光.ASP.NET實用程序設計[M].北京:清華大學出版社,2006.
[8] 楊天奇,王文,何朋,李會鋒.ASP.NET網絡編程技術[M].北京:機械工業出版社,2006.
[9] 蔣培,王笑梅.ASP.NET Web程序設計[M].北京:清華大學出版社,2007.
[10] 榮耀,瞿靜文.ASP.NET 2.0實戰起步[M].北京:機械工業出版社,2008.