陳 輝
[摘 要]本文綜合運用結構化編程方法、ASP.NET 開發平臺和SQL SEVER數據庫管理系統及其他工具對在線考試系統運行機理的分析,提出了一套計算機在線考試系統的設計思路和實現方法,最終實現了系統的組卷、管理員管理和考生的在線考試等功能。
[關鍵詞]在線考試系統 信息管理系統 數據庫
一、引言
隨著計算機的廣泛應用,我國高校教育信息化建設發展迅速。校園網的開通,網絡在線考試變得方便可行,不但節約考試成本,提高考試工作的效率,真正實現了教考分離,而且實現考試無紙化,在新的教育模式下提供了一個很好的教學考試方法。
二、需求分析
考試面向特定的某些對象,因此考試者進入系統應該進行身份驗證。考試者進入考試系統后,應該能根據自己的需要進行個人信息的修改、考試系統的進入,以及考分的查看。在線考試與一般的單機考試是不同的。鑒于考試環境一般為機房,考試者之間的距離很近,為使在線考試做到規范,對于每個應試者來說,試卷的試題題量相同的,而內容不同。在線考試基于網絡環境,試卷應該從服務器的數據庫隨機抽取試題并動態生成。另外,系統還應該對考試時間進行控制,時間到了會要求考試者交卷。考試者選擇答案提交后,應該由計算機自動判卷,得到成績后顯示出來。
(一)管理員對功能的需求
在線考試系統管理員需要完成的功能主要有:新管理員的注冊、刪除管理員、上傳考試題目、修改考試題目、添加新的科目、制定考試試卷、查看考生的考試成績,主要由其他成員開發。
(二)考生對功能的需求
考生需要完成的功能主要有:
1.考生注冊
由于考生只有在登錄的情況下才能進入本系統,因此新的考生需要進行注冊,新的用戶只要按照頁面的提示要求將某些信息正確填寫后,便可以注冊成功,由于有驗證控件,當格式不正確時會提示錯誤,注意填寫某些信息的時候一定要認真,因為某些信息是不允許考生以后修改的。
2.考生考試
考生登錄后就可以進行考試,選擇考試科目后,系統會將此門考試的某些信息告訴考生,如總分、及格分、考試時間等,提醒考生注意,然后考生就可以進行考試,考試完成后,提交試卷,系統會立即顯示考生的考試成績。
3.考生查看自己以往的考試成績
系統會將考生以前的所有的考試成績都顯示出來,包括考試科目、考試日期、成績、是否通過等信息。
4.考生修改自己的某些信息
考生可以修改自己的某些信息,例如密碼、Email等信息,但是有些信息是不允許修改的。
(三)系統數據需求分析
數據庫的設計遵循如下原則:
(1)根據數據的不同用途使用要求、安全保密性來決定數據的組織形式及結構。
(2)嚴格按規范化設計數據庫,減少數據間的依賴和數據冗余。
(3)盡量多使用存儲過程,使數據庫服務器端功能增大,提高效率,增加了安全性。
(4)盡量采用事務對操作進行控制,增加操作的獨立性、一致性、不可否認性、原子性,必要時實現回滾操作。主要采用SQLServer數據庫管理系統實現數據庫管理。
三、系統總體設計
該系統是專門用于用戶注冊、登錄、參加在線考試以及管理員進行試題錄入、修改、刪除、成績查詢、管理用戶的ASP.NET2.0用戶程序。具有開放性、方便性和靈活性。管理用戶可以輕松的向題庫添加、修改和刪除試題。考生進行有效的身份驗證,登錄后選擇進入考試系統,并要求在規定的時間內進行答題,當達到規定的時間后,系統將自動予以提示。一旦考生做完交卷后便能立即看到自己的考試成績,并且其分數將被記入庫中以供審核和查閱。而管理員還可以添加科目、查看考生成績、添加刪除管理員等。
(一)驗證碼
系統的驗證碼采用五位驗證碼,應用的時候我們將驗證碼的內容存放在Session中,與用戶輸入的字符串進行比較,如果正確則登錄,否則提示錯誤。
(二)登錄和注冊
登錄和注冊均用的是Sql存儲過程。在登錄時,如果用戶的名字和密碼都正確,并且驗證碼也正確,則會進入考試系統,否則無法進入,并提示錯誤。如果是新用戶,需要進行注冊,新用戶在填寫自己信息的時候,系統會根據驗證控件對用戶的信息格式進行驗證,只有格式正確,才能正確注冊,否則系統會給出相應的錯誤提示。當用戶正確注冊后,系統會跳轉到登錄界面。
(三)考試
考生每次考試的時候,都會先進行抽題,并保存在數據庫中,當開始考試的時候,系統會將數據庫中存放的試題按試題類型顯示出來,包括題干和選項,并通過“上一題”、“下一題”實現依次顯示,并且會將本題的答案保存在數據庫中,然后根據數據庫中存放的考生的答案也顯示出來。考生在考試的過程中,不允許考生進行刷新,既不允許考生重新選擇考試題目,并限制鼠標右鍵的使用。
(四)評分
當考試時間到或者考生點擊“提交”按鈕時,系統會將試卷上的答案提交,并且開始評分,系統會將數據庫中考生的答案進行遍歷,并和正確答案進行比較,根據對錯以及正確的題目的個數給出相應的分數,并立刻將其分數顯示給考生。
(五)考生查看自己以往的考試成績
系統會將考生以往的考試成績顯示給考生,包括考試科目、考試日期、考試成績以及是否通過等信息。
四、系統測試
本文的開發過程中,用的主要的編碼工具是.NET2005種的ASP.NET和C#,還部分應用了Dreameaver編寫了界面,另外還應用了HTML和Javascript語言。HTML語言是一種網頁編輯語言,而Javascript語言是一種嵌入在網頁中的腳本語言。
無論采用什么樣的編程技術,編程人員的錯誤都是不可避免的,而且由于面向對象技術開發的軟件代碼重用率高,更需要嚴格測試,避免錯誤的繁衍。因此,軟件測試在面向對象編程里更具有它的重要性。
(1)單元測試單元測試的用例從單元詳細設計中導出。在單元測試中可以采用功能性測試和結構性測試兩種。
(2)集成測試在這個測試步驟中所發現的往往是概要設計的錯誤。
(3)系統測試在這個測試步驟中所發現的往往是需求規格說明的錯誤。一般來說,系統測試是功能性測試,不是結構性測試。
參考文獻
[1]殷大發。無紙化考試系統的研究和開發[J]計算機與現代化,2004,(03)
[2]王軼,林家薇,方英武。遠程教育考試系統設計的方法研究[J]教育信息化, 2004,(01)