摘要:該論文提出了構建一個在線考試系統的解決方案,并詳細分析了該系統中各個功能模塊和實現策略,同時對實現技術ASP和相關數據庫進行了分析。最后對在線系統的實現過程難點進行了詳細分析。
關鍵詞:ASP;B/S;在線考試;數據庫
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2010)05-1130-03
The Design and Implementation of On-line Examination System Based on ASP
LI Shi-chuan
(Zonghou Weishengbu Yaopin Yiqi Jianyansuo, Beijing 100071, China)
Abstract: This paper proposed to build an online examination system solution, and to analyze the various functional modules and implementation strategy. Also, it analyzes the technology of ASP and related databases, and analyzes the importance process of implementation.
Key words: ASP; B/S; on-line examination; database
目前,信息科技已成為現代科技的核心和主流,信息化成為全球發展的趨勢,Internet成為傳播信息化的重要手段,其成為了人們生活中的不可缺失一部分。基于Internet的各種應用系統也越來越多,由于這些應用系統給人們帶來了各種方便和便利,所以受到了人們日益重視。
基于Internet的在線教育系統成為了趨勢,在線考試系統也應運而生,并越來越受到人們的重視。在線考試系統發揮了網絡的優勢,相對于傳統考試系統而言,其降低了考試成本,節省了人力物力,同時,其具有高效性、便捷性和不受時間與空間的限制等優點。在線考試系統體現了客觀、公正的原則。所以,對于在線考試系統的研究和實現具有重大的現實意義。
1 背景分析
基于Internet的應用有多種形式,比如傳統的Client/Server結構,簡稱C/S,但是其在網絡應用系統模式上具有局限性,對于在線考試系統的大力推廣應用會造成一定的影響。另一種是Browser/Server結構,簡稱B/S,是隨著Internet技術的興起,這是目前最流行的一種基于Internet應用的模式。其主要優點是對客戶端要求低,客戶端只要安裝有瀏覽器就可以實現。該論文實現的在線考試系統是基于B/S結構實現,利用了B/S結構的優點。該系統對客戶端要求低,如果在Internet上,客戶端只需要有瀏覽器就可以直接進行在線考試,如果是在小型局域網中配置在線考試系統,則會大大減輕了網管的負擔,不用為每臺電腦作特殊的配置。
2 系統分析
在做一個應用系統之前,首先需要對系統進行分析,知道系統是做什么的,解決什么問題,達到什么目的,然后才能進行下一步設計。所以,先對在線考試需要解決的問題進行分析,然后對在線考試系統的功能進行分塊設計。
2.1 需求分析
根據筆者的深入調查研究,在線考試系統主要面向教師和考生。
教師的主要任務是考試科目的設置,題庫的編輯,包括錄入、修改和刪除題目,考生信息的管理,包括錄入、審核等,試卷的管理,包括生成試卷,考試時間安排等,考生的成績查詢,以及考試信息的發布等模塊。教師的主要功能是對整個考試系統的后臺管理,經過一系列的操作,能對整個考試流程有很好的把握,同時能動態的管理試卷,參加考試人員,最后能查看各個考生的成績和考試的情況分析匯總。
考生的任務相對就要簡單些,這是考慮到考生可能初次接觸考試系統,需要在很短的時間內熟悉考試系統,圓滿的完成整個考試??忌闹饕蝿帐窃诰€考試,成績查詢和考試信息
瀏覽??忌茉诰€選擇需要參加的考試,在考試完成之后,能直接查詢到考試結果。
在線考試系統可以用圖1中簡單的用例圖表示。
2.2 模塊設計
根據以上的需求分析,可以進一步設計出在線考試系統的各個功能模塊。如圖2所示。在該圖中,標示粗體的兩個模塊,是教師和考生共有的。
各個模塊的具體功能如下。
登錄系統:教師和考生只有登錄系統后才能進入各自的模塊。教師和考生登錄系統后,系統會自動判別各自的權限,顯示各自的功能模塊。
科目管理:教師可以對在線考試系統的科目進行設置,本系統支持多個學科在線考試,所以教師可以在科目管理中,對各個科目管理,根據需要設置不同學科??梢詫颇啃略?、修改和刪除操作。
題庫管理:教師設置好科目后,可以對各個科目設置考試題目。根據在線考試系統的特點,教師可以設置單項選擇、多項選擇和判斷題三種題型。可以方便的對題目進行新增、修改和刪除操作。
考生管理:教師可以根據需要對考生信息錄入,以及給考生分類。
試卷管理:由于在線考試系統支持多學科。教師就需要根據需要生成各個試卷,可以靈活地設置試卷的總分,設置單項選擇、多項選擇和判斷題三種題型各自的比例,選擇參加考試的考生,以及允許考生參加考試的時間范圍。
考試信息管理:教師可以設置些公開考試信息,以供考生瀏覽。
成績查詢:教師可以對所有參加考試的考生成績進行查詢,匯總。考生只能查詢本人參加考試的成績。
在線考試:考生可以進入在線考場,進行考試。題庫根據教師的設置,從題庫中隨機抽取試題,以供考試。
考試信息瀏覽:考生隨時可以瀏覽相關信息。
在先考試系統需要實現以上各個功能模塊,同時需要滿足操作界面美觀,用戶易操作性,穩定性強,安全性能好,能夠滿足多人同時在線考試。
3 開發與運行環境
經過以上需求和功能模塊分析,確定了在線考試系統的要求和目的。下面分析實現在線考試系統的開發環境和需要的運行環境。
開發環境:目前開發B/S結構的技術手段很多,有多種流行的網站編程工具。在這里,選擇了ASP開發技術,環境基于Windows的IIS 6。
ASP是 Active Server Pages(動態服務器主頁)的縮寫,是一個服務器端的腳本環境,在站點的Web服務器上解釋腳本,可產生并執行動態、交互式、高效率的站點服務器應用程序。ASP可以勝任基于微軟Web服務器的各種動態數據發布內容。ASP具有的特點是:面向對象、獨立于瀏覽器、易于生成、無需編譯。
ADO(ActiveX Data Objects)是一組訪問數據庫的對象集,為ASP提供了站點數據庫訪問解決方案。通過執行SQL命令,讓用戶在瀏覽器畫面中輸入、更新和刪除站點服務器的數據庫信息。ADO使用內置的RecordSets對象作為數據的主要接口。ADO可使用 VBScript、JavaScript等語言來控制對數據庫的訪問、以及查詢結果的輸出顯示。
由于Windows操作系統占據了主要市場,用戶比較熟悉Windows的操作,對于IIS的配置,很容易上手。選擇ASP開發技術,主要基于其技術很成熟了,語言簡單,用戶易學,功能強大。運行環境是IIS,具有兼容性強,穩定性好等優點。
數據庫:在線考試系統是B/s結構,基于Interment的應用系統,需要有后臺數據庫的支持?,F在市面上有多種數據庫供選擇,但和IIS+ASP兼容性強的數據庫有Access和MS Sql Server。這里開發的是大中型的在線考試系統,所以選擇了MS Sql Server 2005,該版本的功能是繼承了前幾個版本的優點,同時,其穩定性、兼容性、安全性更強大。
運行環境的結構可以用圖3表示。
4 開發技術難度分析
基于ASP的在線考試系統,經過了前面的系統分析和設計,在編程階段遇到了一些問題,并予以解決?,F分享如下。
4.1 數據表設計
在數據表設計中,多數表單都是比較容易的。其中有一個主要表是設計題庫表,這個表是在線考試系統的核心。根據調研,多數開發者都把試題和相關選項放在了一張表中,或者有些開發者為不同的題型設置不同的表。這樣開發的好處當然是對于開發者簡單,易操作。但是,這樣設計表有很大的弊端,比如,在設計之初,開發者必須確定試題的選項個數,這在用戶來講是不可預測的事情,如果用戶需要對選項有變化時,這將涉及到表和頁面的多處修改。其缺點是可擴展性差、靈活性不夠好、會造成一定資源的浪費。
基于此,本系統在設計開始,就考慮到了數據庫的優化問題以及可擴展性。即將考題的題目和選項分開存儲,由于考題的題型有共性,在這里就考慮將幾種題型一起存儲。如下圖所示。這樣的好處是,用戶在添加題目選項可以更加靈活,在數據庫存儲方面,更加緊湊和高效。
4.2 試題的抽取
在線考試的一個重要功能是,考生能抽取到不同的試題,可以有效防止考生的作弊問題。實現試題的抽取不同,一個有效方法是從數據庫中隨機抽取試題。
我們可以看到,隨機抽取試題的方法較多,但如何能實現高效的從數據庫中隨機抽取試題,試題不能有重復,滿足多人同時在線的要求,這是個關鍵問題。
比較常見的方法是,利用ASP下的隨機函數,隨機抽取試題,然后和前面抽取的試題作比較,如果有重復,則重新抽取,直至取完最后一道題。這種方法具有簡單可行的優點,其不足是效率低下,可能會延長用戶等待的時間,造成假死機現象。
在該系統中,采用了一種較高效的方法,可以取消比較的過程,縮短提取數據的時間。其方法是:利用隨機洗牌算法的思想,給定一個數組,產生一個當前數到該數組的最后一個數之間的隨機數,然后交換這兩個數;順序往下移動一個數,然后重復以上過程。循環結束后,得到的就是一個隨機數序列。代碼如下:
<%
dim rig[300] //題庫數序列,并初始化為0,1,2….
dim b[50] //定義取得隨機數數組,并初始化為0,1,2….
for i = 0 to 50 – 1//得到隨機題庫數
d = RndNumber(i + 1,300 - 1) //取得在i+1至300中的隨機數
e = rig[d] //交換當前數和隨機產生的數
rig[d] = b[i]
b[i] = e
next
%>
4.3 防止刷新
考生在考試過程中,可能會遇到,刷新瀏覽器,或無意中關閉瀏覽器的問題。在本系統中解決了這一問題,考生不用擔心因瀏覽器的錯誤,造成考試失敗,或有的考生有意刷新來獲得新的一套試題。
該系統的解決方法是,考生在參加考試時,隨機生成一套試題,這套試題在后臺進行了標記,同時記錄下了考生參考的時間。如果考生無意關閉或刷新瀏覽器,可以再次進入在線考場,繼續做前面提取的試題,時間會隨著流動。
4.4 考試終止
考生在考試中,可以隨時提交試卷,或者教師設置的時間到后,自動提交試卷。
考生提交了試卷后,可以立即查看考試的成績。同時,系統設置了防止考生按后退鍵進行修改做過試題的可能。
4.5 系統安全性
本系統是在Internet上實現的,安全性是很重要的一方面。特別是對于一些比較常見的安全漏洞問題,需要特別注意。一方面,是在服務器操作系統方面,采用最新的操作系統和補丁,數據庫方面,也需要關注官方網站,隨時留意其最新的補丁。
在編程方面,要防止Sql注入問題。比如,在有用戶輸入信息的地方以及和網站有動態交互的地方,采用字符過濾和驗證的方法,去除或隱藏對數據庫有危害的字符。
5 總結
本文探討和實現了基于ASP的在線考試系統,由于前期經過了充分的調研和論證。在系統實現中解決了很多技術上問題,并實際投入了應用。在線考試系統固有其優點,即簡單、快捷、可操作性強、減輕負擔等,現在已應用非常廣泛。但同時,需要看到其不足之處,在線考試系統現只能對客觀題做出正確的判斷,對于主觀題,盡管可以實現在線答題,但還不能達到在線實時判題,這方面主要靠教師的判斷了。
參考文獻:
[1] 王萍萍,李曉娜,孫更新.ASP+Dreamweaver動態網站開發[M].北京:清華大學出版社,2008.
[2] 孫俊,李正明,楊繼昌.ASP技術與ASP.Net技術的比較[J].微型機與應用,2003,22(1).
[3] 冀松,田麗娜.ADO在ASP中的應用研究[J].電腦知識與技術,2009,5(21).