(廈門醫學高等專科學校醫學技術系,福建 廈門361008)
考試是是檢驗、評價教學質量的重要手段。傳統考試方式非常煩瑣,工作量大且容易出錯,給教師和教務管理人員帶來很大負擔。隨著信息技術的飛速發展,基于網絡的無紙化在線考試模式具有科學性、高效性、靈活性和安全性等優勢,因而逐漸取代傳統考試方式[1]。下面,筆者對基于.NET在線考試系統的設計與實現進行探討。
針對在線考試系統的分布式需求和功能模塊化設計要求,考慮到微軟.NET平臺技術先進、效率高和容易維護的特點,系統采用基于微軟.NET平臺的B/S 3層架構模式,具體包括表示層、業務層和數據層,表示層負責處理用戶的輸入和輸出;業務層負責處理用戶提交的請求并向用戶返回處理結果;數據層負責實際的數據存儲和檢索[2]。在該系統中,對于用戶而言,無需安裝客戶端,只需采用瀏覽器登錄WEB服務器提出申請來訪問后臺即可。客戶端不直接與數據庫進行交互,而由中間層向外提供接口,通過COM/DCOM通訊或者Http等方式與其建立連接,再經由中間層與數據庫進行交互。真正的數據處理全部放在后臺的WEB和應用服務器上進行。考試結束后,系統會自動將考生成績提交給WEB服務器。系統架構圖如圖1所示。

圖1 在線考試系統架構圖
系統研發工具包括如下幾方面:①數據庫系統采用SQL Server。②WEB服務器選擇 Microsoft Internet Information Server。所有業務邏輯層程序都將部署在WEB服務器上,如數據訪問組件、業務處理組件和核心組件等,它向所有的用戶提供頁面請求服務。③開發工具選擇Visual Studio.Net。
筆者對教師閱卷工作和教務部門考試管理進行調研分析,提出在線考試系統流程圖(見圖2)。
在線考試系統功能模塊設計圖如圖3所示,其中每個功能都由若干相關聯的子模塊組成,具體內容如下。
1)個人信息模塊 學生通過該模塊可修改登錄密碼并查看個人信息。
2)在線考試模塊 學生可通過該模塊在指定時間內根據指定考試科目進行客觀題或主觀題的操作,在線提交答題結果,完成模擬練習或正式考試。
3)成績查詢模塊 學生可通過該模塊查看練習完成情況以及得分情況。

圖2 在線考試系統流程圖
4)系統管理模塊 該模塊具有許多功能,具體內容如下:①用戶管理。可以新增、修改、刪除用戶(分類為考試管理者、教師、學生),并提供用戶數據批量導入功能。②班級管理。可以新增、修改、刪除班級,并將教師和學生用戶與班級相關聯。③權限管理。為不同類型的用戶(考試管理者、教師、學生)設置不同的菜單訪問權限和操作訪問權限。④系統配置。對系統的通用參數進行配置管理。
5)題庫管理模塊 題庫管理包括傳統的選擇、填空、判斷、問答等客觀題型,也設置如計算機基礎課程中的部分模擬操作題以滿足多樣化的考核需求,同時設置題目的分類、知識點歸屬、難度系數等,可支持對不同考核對象的管理要求。此外,教師和考試管理員還可批量導入導出題目,對題庫進行增刪修改,統計知識點分布等。
6)試卷管理模塊 提供手工出卷、自動出卷、隨機出卷3種出卷模式,設置正式考試、模擬練習2種類型,同時提供試卷導出功能。

圖3 在線考試系統功能模塊設計圖
7)考試管理模塊 考試管理人員進行考場和監考人員安排、查詢缺考人員和未交卷人員名單等,對整個考試過程進行全程管理和監控。
8)成績管理模塊 對正式考試和模擬練習的結果進行評分管理,客觀題由系統自動評分,主觀題由指定的評卷人進行手工評分。評分后將成績記錄在相應的成績表中。
9)查詢統計模塊 教師可按成績、知識點和題型進行多元化的統計分析,以便掌握學生考核情況和各知識點的學習效果。

圖4 單選題實體E-R圖
系統數據庫采用SQL Server2005,根據對系統功能模塊的分析,設計出系統各實體E-R圖。以單選題實體為例,其E-R圖如圖4所示。同時設計學生信息表、教師信息表、考試管理員信息表、班級信息表、考場信息表、科目表、題目表、試卷信息表、考生答卷表和成績表等數據表。
由于系統要經常訪問數據庫,為提高數據庫的運行效率,可在應用程序配置文件Web.Config中設置數據庫連接信息,其連接語句為:

用戶登錄是用戶進入系統的第1步,其關鍵在于驗證用戶身份,實現代碼如下[3]:

隨機抽取試題是試卷管理中的關鍵技術,解決思路是先將數據庫中指定科目、指定題型、指定知識點的所有試題記錄讀出,獲得試題記錄的總數后,然后不斷生成一個1~N(N=試題的總數-考試的試題數量)的隨機數(同時避免出現重復數),從此開始讀出數據。
由于在線考試系統的運行平臺處于開放的Internet環境下,因而需要特別重視系統安全性,為此采取多策略控制方法[4]。針對用戶設置了角色管理,將用戶加入相關角色,用戶即可繼承相應角色的權限,一個用戶可以賦予多個角色,這樣就有了更加靈活的授權控制。在權限方面設置3級訪問權限控制,即菜單、結點及操作。基于菜單的訪問權限控制針對大的功能模塊設定,例如,可以設定題庫管理員只能進入 “后臺管理→題庫管理”菜單,而不能訪問成績管理模塊。基于結點的訪問權限控制針對樹形目錄中的結點設定,例如,可以設定系部級題庫管理員只能進入其所屬院系的題庫目錄下進行操作,而不能訪問其他院系的題庫。基于操作的訪問權限控制針對具體的操作設定,例如,可以設定題庫管理員對題庫的讀、寫、管理權限,而考試管理員只能對題庫進行查詢操作。通過以上的多策略控制方法增強數據庫的安全性。
[1]百度文庫.三層設計思想 [EB/OL].http://wenku.baidu.com/view/5f525ceb19e8b8f67c1cb9d0.html,2010-11-13.
[2]張樹亮,李超.ASP.NET 2.0+SQL Server網絡應用系統開發案例精解 [M].北京:清華大學出版社,2006.
[3]王濤,王勇.計算機考試系統的設計與實現 [J].計算機與網絡,2011,37(3):103-106.
[4]嚴良達,朱曉鳴,余風鋼.ASP.NET環境下在線考試系統的設計與實現 [J].辦公自動化,2011(1):61-62.