- 相關(guān)推薦
試卷生成系統(tǒng)
論文關(guān)鍵詞:試題庫系統(tǒng) 試卷生成 算法
論文摘要:教學評價是教學工作的一個重要環(huán)節(jié),通常的教學評價方式多為通過試卷進行考試,因而試卷的質(zhì)量將直接影響到教學評價的結(jié)果。一般情況下,教師出試卷時要么到龐大的題庫里一道一道的把題目挑選出來,或是從幾本相關(guān)的書里把題挑選出來組成一份試卷,這樣既費時又費力,而且很難保證試題的覆蓋面和把握試卷的難度。為了將老師從繁重的命題工作中解放出來,為了提高命題的質(zhì)量和的現(xiàn)代化、科學化、規(guī)范化,本文開發(fā)一個試卷生成系統(tǒng)。
本文在充分的需求分析基礎上,設計和實現(xiàn)了一個試卷生成系統(tǒng),主要完成了手動生成試卷、自動生成試卷、抽取現(xiàn)有試卷和用戶管理等功能。通過測試,系統(tǒng)在Windows 98/me/2000/XP平臺下能穩(wěn)定運行,且基本達到了預期的設計目標,有一定的實用價值。
Abstract :Value of teaching is an important tathe for teaching,usually a value of teaching is from a exam ,so a quality paper straight touches the value of teaching. The general situation ,teacher thinks out a paper,reach huge exam pool each finds out the question, or shoulder the question together out from several relevant books. Time-consuming and also strenuous like this, and very difficult to guarantee coverage rate and paper degree of difficulty of examination question. Helping the teacher disengages from the burdensome proposition about exam, In order to improve the quality and management proposition of the modern, scientific, standardized, the paper developed a test generation system.
Paper Generation System is designed and implemented based on the sufficient needs analysis in this paper,It mainly implements some functions include in manually and automatically generating papers,extrating some of existing papers,maintaining user information and so on ,the system can operate stably in Windows 98/me/2000/XP platform ,reach the expected goal and have some practical value.
Keywords: test library system;paper generation;algorithmic
前言
隨著技術(shù)的發(fā)展和普及,在我們的學習和日常生活中都離不開計算機技術(shù),大到科研的超級計算機,小到我們?nèi)粘J褂玫氖痔犭娫,實際都是計算機技術(shù)的應用,對于學校、企事業(yè)單位來說,計算機特別是PC機已經(jīng)相當普及,大家對計算機的操作更加熟悉,充分發(fā)揮設備潛能是一種節(jié)約的表現(xiàn),是一種美德。
設計編寫試卷生成系統(tǒng),是基于二種目的:一是充分利用現(xiàn)有的計算機系統(tǒng)減輕工作人員的勞動強度。二是摒棄傳統(tǒng)的手工整理、以試卷(紙質(zhì))的形式存放到室,浪費紙張等原,不利于保護。
一個好的試卷生成系統(tǒng),要求界面友好,能方便地生成試卷,試卷的維護(修改、刪除試題)操作簡單,組卷靈活快捷,查詢試題或試卷迅速,以適應各種知識更新對試卷難度的要求,還要具有一定的安全性。為此,在對系統(tǒng)進行概要設計時,就充分考試慮到以上的因素,模塊圍繞實用性設計,比如,編輯模塊就是為了實現(xiàn)試題的錄入、試題的維護、試卷的生成而設計的;查詢模塊是為了實現(xiàn)試題和試卷的快速查詢而設計的;系統(tǒng)管理是考慮系統(tǒng)的安全性,用戶名和密碼,整個設計簡潔明了,同時也就方便了操作。
本軟件的開發(fā)成功為試卷的生成工作又添加了一款實用性較強的軟件,為試卷生成系統(tǒng)告別手工管理的時代又推進了一大步。
1 緒論
1.1 開發(fā)背景與研究現(xiàn)狀
在以往的教學中,老師出試卷大多由手工出卷,這樣生成的試卷往往會有知識點分布太集中、難易程度不當、分值分布不均等一些缺點;這樣,既增加了老師的負擔,也沒有達到很好考查學生學習的真實水平,造成教學上的失誤。
基于以上的原因,有很多從事軟件開發(fā)的人員,在試卷自動生成方面做了很大的研究。目前這一領域也以良好的發(fā)展姿態(tài)而不斷進步,早期已經(jīng)有了一些類似的系統(tǒng),但經(jīng)過軟件開發(fā)人不斷的完善,大致形成了具備如下功能的系統(tǒng):
刪除試題、批量錄入試題、試題交流、合并題庫、自定義試題參數(shù)等一些功能,其中試題交流功能非常實用,主要用于同事間交流試題。系統(tǒng)“體積”非常小,壓縮后只有幾百KB。平時只要將一些試題或從網(wǎng)絡下載的試題,按“學科”、“章節(jié)”、“知識點”、“題型”、“難易程度”五個參數(shù)進行歸類,錄入題庫,需要用時,只要輸入一些查詢條件即可查出所要找的試題。生成試卷非常方便,只需幾分鐘就可以生成一份試卷,生成的試卷還配有答案,更重要的是軟件能與WROD的完美結(jié)合,試題、答案的編輯、試卷的排版打印全部由WORD來完成,試卷和答案都可保存為*.DOC格式。
組卷算法是該系統(tǒng)中的重點,目前被使用的算法主要有三種,分別是隨機選取法,回溯試探法和遺傳算法。這三種算法各有特點,隨機選取法結(jié)構(gòu)簡單,對于單道題的抽取運行速度較快,但是對于整個組卷過程來說組卷成功率低,即使組卷成功,花費時間也令人難以忍受,所以很少被使用。而回溯試探法,同樣結(jié)構(gòu)簡單,但是組卷成功率很高,所以常被使用。遺傳算法是目前很流行的組卷方法,結(jié)合了前兩種算法的多個優(yōu)點,體現(xiàn)了組卷的隨機性和科學性,被廣泛使用中。
可見,試卷自動生成系統(tǒng)這方面的研究日益成熟,這不但減輕了教師的工作負擔,也使得教學評價更加科學化、規(guī)范化,有利用事業(yè)的發(fā)展。
1.2論文組織
論文全面詳細地介紹了試卷生成系統(tǒng)的設計思想、實現(xiàn)原理和使用技巧。論文按如下方式組織。
第一部分是主要是對系統(tǒng)的開發(fā)背景和研究現(xiàn)狀進行詳細的介紹。
第二部分主要是對開發(fā)工具的介紹。
第三部分是主要是對本系統(tǒng)做詳細的需求分析。
第四、五、六部分是本文的主要內(nèi)容,是軟件的開發(fā)設計。第四部分主要對于系統(tǒng)組卷的設計,重點介紹了自動生成試卷,手動生成試卷和抽取現(xiàn)有試卷三種組卷算法。而第五部分是系統(tǒng)的實現(xiàn)部分,具體的分析了三種組卷算法的實現(xiàn)過程。同時也仔細說明了系統(tǒng)實現(xiàn)過程中的關(guān)鍵技術(shù)。第六部分是系統(tǒng)的測試部分,利用測試實例來說明系統(tǒng)的可用性和數(shù)據(jù)的準確性。
2 開發(fā)工具簡介
2.1 Visual Basic
Visual Basic是可視化的Basic,他創(chuàng)建應用程序時,不需要編寫大量的程序代碼來描述和控制界面元素的位置,大小等屬性,只需要簡單的在屏幕中增加已經(jīng)建立的對象?梢暬幊痰囊粋突出特點就是其開發(fā)就像一個百寶箱,很多功能都集成在其之中,這就是IDE(Integrated Development Environment),即集成開發(fā)環(huán)境。IDE是指在相應的開發(fā)平臺中集成了編輯器、編譯連接工具、控件器箱輔助工具。例如在VB的集成開發(fā)環(huán)境中就包括了以下一些主要元素:工具欄、工具箱、工程器窗口、屬性窗口、窗體設計器、代碼編輯器窗口等;
VB的程序設計風格與傳統(tǒng)設計方法不同,它是面向?qū)ο蠛褪录某绦蛟O計方法。面向?qū)ο笫墙陙沓霈F(xiàn)的程序設計技術(shù),它是一種全新的設計和構(gòu)造軟件的思維方法。在面向?qū)ο蟮某绦蛟O計中,“對象”是系統(tǒng)中的基本運行實體。例如窗體和控件,就是VB的對象,VB中的對象是由系統(tǒng)設計好提供給用戶使用的。對象建立、移動、增刪、縮放操作也是由系統(tǒng)規(guī)定好的,這比一般的面向?qū)ο蟪绦蛟O計中的操作要簡單的多,因此本軟件選擇了VB6.0作為開發(fā)工具。
2.1.1 主要控件及其屬性簡介
Form類的控件:
Picture屬性:用來設置窗體的背景圖象。
Visible屬性:界面是否顯示。
BackColor屬性:用來控制程序界面的顏色。
Font屬性:用來控制程序界面的字體。
StartUpPosition屬性:用來控制程序運行時界面的顯示位置。
ImageList類的控件:
ImageHeight屬性:用來設置圖的高度。
ImageWidth屬性:用來設置圖的寬度。
MSFlexGrid控件:
Rows屬性:返回或設置在一個 MSHFlexGrid 中的總行數(shù)。
Cols屬性:返回或設置在一個 MSHFlexGrid 中的總列數(shù)。
AllowBigSelectorBoolean屬性: 返回/設置一個值,定義當在行或列的頭部單擊時,是否該行或列將整個被選中。
EnterCell的事件:當一個新的單元成為當前活動單元時。
CommandButton控件:
Caption屬性:用來指定CommandButton的標題。
Click事件:用來添加按鈕的單擊事件所執(zhí)行的程序代碼。
TreeView控件:顯示 Node 對象的分層列表,每個 Node 對象均由一個標簽和一個可選的位圖組成。
ImageList屬性:指定的ImageList控件保存在Node對象中使用的點位圖和圖標。
Node屬性:可以表現(xiàn)為文本,點位圖,線條和加減號的8種組合之一。
NodeClick時間:用來添加按鈕的單擊事件所執(zhí)行的程序代碼。
2.1.2 數(shù)據(jù)庫連接方式
簡單的文本文件到各種復雜的關(guān)系型數(shù)據(jù)庫,數(shù)據(jù)庫應用程序需要面對各種各樣的數(shù)據(jù)源。Visual basic 6.0提供ADO(Active Data Objects)作為應用程序和OLE-DB連接的橋梁。
ADO,即Active數(shù)據(jù)對象(Active Data Objects):實際是一種提供訪問各種數(shù)據(jù)類型的連接機制。ADO設計為一種極簡單的格式,通過ODBC的方法同數(shù)據(jù)庫接口相連。用戶可以使用任何一種ODBC數(shù)據(jù)源,即不僅適合于SQL Server、Oracle、Access等數(shù)據(jù)庫應用程序,也適合于Excel表格、文本文件、圖形文件和無格式的數(shù)據(jù)文件。ADO是基于OLE-DB之上的技術(shù),因此ADO通過其內(nèi)部的屬性和方法提供統(tǒng)一的數(shù)據(jù)訪問接口方法。本系統(tǒng)就是用ADO對象來連接數(shù)據(jù)庫的。
以下是本系統(tǒng)開發(fā)過程中用到的一些ADO對象:
Connection對象:通過“連接”可從應用程序訪問數(shù)據(jù)源,連接是交換數(shù)據(jù)所必需的環(huán)境。對象模型使用Connection對象使連接概念得以具體。
Recordset對象:表示的是來自基本表或命令執(zhí)行結(jié)果的記錄全集。Recordset 對象可支持兩類更新:立即更新和批更新。使用立即更新,一旦調(diào)用Update方法,對數(shù)據(jù)的所有更改將被立即寫入基本數(shù)據(jù)源。也可以使用AddNew和Update方法將值的數(shù)組作為參數(shù)傳遞,同時更新記錄的若干字段。
Field對象:代表使用普通數(shù)據(jù)類型的數(shù)據(jù)的列。Recordset對象含有由Field對象組成的Fields集合。每個Field對象對應于Recordset中的一列。使用Field對象的Value屬性可設置或返回當前記錄的數(shù)據(jù)。
以下是本程序中用到的方法:
AddNew方法:創(chuàng)建可更新Recordset對象的新記錄。
Open方法(ADO Connection):打開到數(shù)據(jù)源的連接。
Open方法(ADO Recordset):打開記錄集。
Close方法:關(guān)閉打開的對象及任何相關(guān)對象。
Execute方法:執(zhí)行指定的查詢、SQL語句、存儲過程或特定提供者的文本等內(nèi)容。
2.2 SQL Server2000
SQL Server 是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng),它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同開發(fā)的。于1988 年推出了第一個OS/2 版本在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開發(fā)上就分道揚鑣了。Microsoft 將SQL Server 移植到Windows NT系統(tǒng)上專注于開發(fā)推廣SQL Server 的Windows NT 版本,Sybase 則較專注于SQL Server在UNIX 操作系統(tǒng)上的應用。在系統(tǒng)中用到的是Microsoft SQL Server 以后簡稱為SQL Server或MS SQL Server。
SQL Server 2000 是Microsoft 公司推出的SQL Server 數(shù)據(jù)庫管理系統(tǒng)的最新版本該版本繼承了SQL Server 7.0 版本的優(yōu)點。同時又比它增加了許多更先進的功能具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2000 的大型多處理器的服務器等多種平臺使用。
目前被廣泛使用的數(shù)據(jù)庫有SQL Server、Oracle、Access等。Access是一個可視化工具,是風格與Windows完全一樣,用戶想要生成對象并應用,只要使用鼠標進行拖放即可,非常直觀方便。系統(tǒng)還提供了表生成器、查詢生成器、報表設計器以及數(shù)據(jù)庫向?qū)、表向(qū)、查詢向(qū)А⒋绑w向?qū)、報表向(qū)У裙ぞ,使得操作簡便,容易使用和掌握。但是access數(shù)據(jù)庫有一定的極限,如果數(shù)據(jù)達到100M左右,很容易造成服務器iis假死,或者消耗掉服務器的內(nèi)存導致服務器崩潰。
而SQL Server是基于服務器端的中型的數(shù)據(jù)庫,可以適合大容量數(shù)據(jù)的應用,在功能上管理上也要比Access要強得多。在處理海量數(shù)據(jù)的效率,后臺開發(fā)的靈活性,可擴展性等方面強大。因為現(xiàn)在數(shù)據(jù)庫都使用標準的SQL對數(shù)據(jù)庫進行管理,所以如果是標準SQL語言,兩者基本上都可以通用的。SQL Server還有更多的擴展,可以用存儲過程,數(shù)據(jù)庫大小無極限限制。因為本系統(tǒng)需求一個中型,而且安全性強的數(shù)據(jù)庫,所以選擇SQL Server做為該系統(tǒng)的數(shù)據(jù)庫。
2.3 SQL 語言
SQL(Structured Query Language,結(jié)構(gòu)查詢語言)是一個功能強大的數(shù)據(jù)庫語言。SQL通常使用于數(shù)據(jù)庫的通訊。ANSI(美國國家標準學會)聲稱,SQL是關(guān)系數(shù)據(jù)庫管理系統(tǒng)的標準語言。SQL語句通常用于完成一些數(shù)據(jù)庫的操作任務,比如在數(shù)據(jù)庫中更新數(shù)據(jù),或者從數(shù)據(jù)庫中檢索數(shù)據(jù)。使用SQL的常見關(guān)系數(shù)據(jù)庫管理系統(tǒng)有:Oracle、 Sybase、 Microsoft SQL Server、 Access等等。雖然絕大多數(shù)的數(shù)據(jù)庫系統(tǒng)使用SQL,但是它們同樣有它們自立另外的專有擴展功能用于它們的系統(tǒng)。但是,標準的SQL命令,比如“Select”、 “Insert”、 “Update”、 “Delete” 、“Create”和 “Drop”常常被用于完成絕大多數(shù)數(shù)據(jù)庫的操作。MS SQL Server 就是用的Transact- SQL。SQL語言有著非常突出的優(yōu)點,SQL語言是非過程化的語言、統(tǒng)一的語言、是所有關(guān)系數(shù)據(jù)庫的語言。
非過程化語言:SQL是一個非過程化的語言,因為它一次處理一個記錄,對數(shù)據(jù)提供自動導航。SQL允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對單個記錄進行操作,可操作記錄集,所有SQL 語句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語句的結(jié)果作為另一條SQL語句的輸入。
統(tǒng)一的語言:SQL可用于所有用戶的DB活動模型,包括系統(tǒng)管理員、數(shù)據(jù)庫管理員、 應用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶。
所有關(guān)系數(shù)據(jù)庫的公共語言:由于所有主要的關(guān)系數(shù)據(jù)庫管理系統(tǒng)都支持SQL語言,用戶可將使用SQL的技能從一個RDBMS(關(guān)系數(shù)據(jù)庫管理系統(tǒng))轉(zhuǎn)到另一個,所有用SQL編寫的程序都是可以移植的。
SQL為許多任務提供了命令,其中包括:查詢數(shù)據(jù)、在表中插入、修改和刪除記錄、建立、修改和刪除數(shù)據(jù)對象、控制對數(shù)據(jù)和數(shù)據(jù)對象的存取、保證數(shù)據(jù)庫一致性和完整性等。
以前的數(shù)據(jù)庫管理系統(tǒng)為上述各類操作提供單獨的語言,而SQL 將全部任務統(tǒng)一在一種語言中。
SQL功能強大,是一種完備的數(shù)據(jù)處理語言,不僅用于數(shù)據(jù)庫查詢,而且用于數(shù)據(jù)庫中的數(shù)據(jù)修改和更新,概括起來,它可以分成以下幾組:
DML(Data Manipulation Language,數(shù)據(jù)操作語言):用于檢索或者修改數(shù)據(jù);
DDL(Data Definition Language,數(shù)據(jù)定義語言):用于定義數(shù)據(jù)的結(jié)構(gòu),比如 創(chuàng)建、修改或者刪除數(shù)據(jù)庫對象;
DCL(Data Control Language,數(shù)據(jù)控制語言):用于定義數(shù)據(jù)庫用戶的權(quán)限。
3 需求分析
考試是整個教學過程中的一個重要環(huán)節(jié),它是對學生所學知識和能力的一種評價,也是衡量教師教學效果優(yōu)劣的一種測量手段。但是,目前考試的實施過程不完全科學,命題內(nèi)容,評分標準等缺乏普遍的可比性,考試不夠客觀和準確。隨著科學的迅速發(fā)展和廣泛應用,計算機技術(shù)已進入現(xiàn)代教育領域,并形成了一門新興的邊緣科學—計算機輔助教學(Computer Aided Instruction,CAI)。
3.1用戶需求
利用計算機建立試題庫,實現(xiàn)計算機自動選題組卷,是CAI工程的重要組成部分,也是實現(xiàn)教考分離的一個重要手段。利用計算機組卷,不僅能節(jié)省教師的寶貴時間,提高工作效率,而且能消除出卷人主觀意識的影響,使考試更加標準化,更加客觀,真實,全面地反映反映教學的實際效果,有利于教學質(zhì)量的提高。建立了試題庫系統(tǒng)以后,可實行教考分離,促使任課老師必須按照教學大綱的要求認真?zhèn)湔n,認真組織教學內(nèi)容,改進教學方法,對提高教學質(zhì)量和整體教學水平有著非常重要的意義。每次考試后,還可利用計算機對試卷和考試分數(shù)進行分析和評價,使考試這一教學環(huán)節(jié)更加科學化和規(guī)范化。
作為試題庫系統(tǒng)中的一部分,試卷生成系統(tǒng)必須滿足如下需求:
。1)靈活多樣的組卷方式,如手工組卷和自動組卷。
。2)既能臨時生成試卷,又能直接使用以前生成的試卷,也就是要求能對生成的試卷進行保存,以便下次直接使用,并能刪除不再需要的試卷。
。3)試卷的保密性要求,只有授權(quán)人員才能生成和查閱試卷。
(4)試卷生成速度不宜太慢。
。5)生成的試卷按照規(guī)定的模板輸出,并能導出到word文檔中。
。6)生成的試卷既可以直接打印,也可以在word中修改和打印。
。7)友好的用戶界面。
3.2功能需求
本系統(tǒng)是試卷生成系統(tǒng),主要有三方面的功能需求,其分別是:
。1)抽取現(xiàn)有試卷:為了用戶能方便現(xiàn)有的試卷,此模塊主要有預覽試卷,保存答案,刪除試卷三大功能。
。2)手動生成試卷:為了能按照用戶的意愿組卷,用戶可以按試題所涉及的知識點瀏覽各種題型,生成一份知識覆蓋面廣泛的試卷,并能保存試卷。
。3)自動生成試卷:用戶能選擇生成試卷的題型,試題數(shù)量,試題難度,以及試卷分值,且有預覽試卷,預覽答案,保存試卷和答案的功能。
3.3 系統(tǒng)流程圖
根據(jù)對用戶的,本系統(tǒng)有三類用戶使用,分別是管理員,教務管理員和教師。這三種身份的人具有不同權(quán)限,管理員負責管理系統(tǒng)帳號;教務管理員負責管理試題、審核試題、打印試題;教師只能瀏覽和根據(jù)需要組卷。本系統(tǒng)主要是對試題組卷的管理,根據(jù)需求分析,可以得到系統(tǒng)流程如圖3-1所示。
SHAPE \* MERGEFORMAT
圖3-1 系統(tǒng)總流程圖
3.4 性能需求
3.4.1 加載數(shù)據(jù)效率要求
本系統(tǒng)的使用不受時間限制,可以24小時正常使用,對于用戶登陸,試卷預覽,答案預覽,試卷生成功能響應時間不宜超過5秒鐘。
3.4.2 界面風格要求
整體以白色和淡藍色為主,輔助米黃色和淡綠色給人清新,舒坦的感覺,在1024*768分辨率下達到最佳顯示效果,界面簡潔清爽,不能過于復雜。
3.5 開發(fā)
3.5.1 軟件環(huán)境
操作系統(tǒng): Windows98以上/ME/2000/XP等
數(shù)據(jù)庫: SQL Server 2000
開發(fā): Visual Basic
開發(fā)工具: VB6.0
3.5.2 硬件環(huán)境
CPU:P = 2 \* ROMAN II200以上
內(nèi)存:256MB以上
硬盤:2.1GB以上(可用空間最好在160MB以上)
4 系統(tǒng)設計
系統(tǒng)設計的目的是確定系統(tǒng)如何完成預定的任務,也就是確定系統(tǒng)的配置方案,并且進而確定組成系統(tǒng)的每個程序的結(jié)構(gòu)。首先設想完成系統(tǒng)功能的若干種合理的物理方案,分析員應該仔細比較這些方案,并且和用戶共同選定一個最佳方案,然后,進行軟件結(jié)構(gòu)設計,確定軟件由哪些模塊組成以及這些模塊之間的動態(tài)調(diào)用關(guān)系。進行軟件結(jié)構(gòu)設計時應該遵循的最主要的原理是模塊獨立原理,也就是說:軟件應該由一組完成相對獨立的子功能模塊組成,這些模塊之間的接口關(guān)系應盡量簡單。
自頂向下逐步求精是進行軟件結(jié)構(gòu)設計的常用途經(jīng),在進行詳細的過程設計和編寫程序之前,首先進行結(jié)構(gòu)設計,其好處在于可以在軟件開發(fā)的早期站在全局高度對軟件結(jié)構(gòu)進行優(yōu)化,在這個時期進行優(yōu)化付出的代價不高,卻可以使軟件質(zhì)量得到重大改進。
試題管理系統(tǒng)和試卷生成系統(tǒng)是兩個連在一起的系統(tǒng),而本系統(tǒng)主要介紹的就是試卷生成系統(tǒng)的設計和方法。
4.1 系統(tǒng)功能模塊圖
根據(jù)需求分析,將系統(tǒng)分為四個模塊:系統(tǒng)管理模塊,試卷生成管理模塊,數(shù)據(jù)庫管理系統(tǒng),系統(tǒng)幫助模塊。系統(tǒng)功能模塊結(jié)構(gòu)如圖4-1所示。
SHAPE \* MERGEFORMAT
圖4-1 系統(tǒng)功能模塊圖
下面對各功能模塊的子功能進行較詳細的討論。
(1) 系統(tǒng)模塊
該模塊包括用戶管理模塊和用戶密碼管理模塊。系統(tǒng)啟動時調(diào)用此模塊,要求用戶先進行登陸。登陸功能模塊如圖4-2所示。
SHAPE \* MERGEFORMAT
圖4-2 登陸模塊功能圖
(2) 試卷生成管理模塊
試卷生成管理模塊主要包括如下子模塊:
n 抽取現(xiàn)有試卷模塊:顯示預覽試卷,保存答案,刪除試卷功能。
n 手動生成試卷模塊:顯示加入試卷,保存試卷功能。
n 自動生成模塊:顯示生成試卷,預覽試卷,預覽答案,保存試卷功能。
詳細的試卷生成管理功能模塊如圖4-3所示。
SHAPE \* MERGEFORMAT
圖4-3 試卷生成管理模塊功能圖
(3) 數(shù)據(jù)庫管理模塊主要包括數(shù)據(jù)庫還原和數(shù)據(jù)庫備份。數(shù)據(jù)庫管理模塊結(jié)構(gòu)如圖4-4所示。
SHAPE \* MERGEFORMAT
圖4-4 數(shù)據(jù)庫管理模塊功能圖
(4) 系統(tǒng)幫助模塊主要包括系統(tǒng)幫助和系統(tǒng)關(guān)于。系統(tǒng)幫助模塊結(jié)構(gòu)如圖4-5所示。
SHAPE \* MERGEFORMAT
圖4-5 系統(tǒng)幫助模塊功能圖
4.2 數(shù)據(jù)表設計
根據(jù)系統(tǒng)功能設計,把數(shù)據(jù)庫命名:STGL,在SQL Server 2000數(shù)據(jù)庫創(chuàng)建了題型表、難度程度表、出卷人表、用戶信息表等。各數(shù)據(jù)表的具體情況如表1至表9所示。
表1 用戶信息表(usermanagement)
表2 題型表(TX)
表3 難度程度表(NYD)
表4 選擇題表(selects)
表5 填空題表(adds)
表6 簡答題表(ask)
表7 閱讀程序題表(YDCX)
表8 出卷人表(SJ)
表9 已存試卷表(SJT)
4.3 組卷算法
4.3.1 現(xiàn)有算法分析
自動組卷是考試系統(tǒng)自動化或半自動化操作的核心目標之一,而如何保證生成的試卷能最大程度的滿足用戶的不同需要,并具有隨機性、科學性、合理性,這是實現(xiàn)中的一個難點。尤其在交互式下用戶對于組卷速度要求較高,而一個理論上較完美的算法可能會以犧牲時間作為代價,往往不能達到預期的效果。因此,選擇一個高效、科學、合理的算法是自動組卷的關(guān)鍵。
以往的具有自動組卷功能的考試系統(tǒng)大多采用隨機選取法和回溯試探法。隨機選取法根據(jù)狀態(tài)空間的控制指標,由隨機的抽取一道試題放入試題庫,此過程不斷重復,直到組卷完畢,或已無法從題庫中抽取滿足控制指標的試題為止。該方法結(jié)構(gòu)簡單,對于單道題的抽取運行速度較快,但是對于整個組卷過程來說組卷成功率低,即使組卷成功,花費時間也令人難以忍受。尤其是當題庫中各狀態(tài)類型平均出題量較低時,組卷往往以失敗而告終。
回溯試探法這是將隨機選取法產(chǎn)生的每一狀態(tài)類型紀錄下來,當搜索失敗時釋放上次紀錄的狀態(tài)類型,然后再依據(jù)一定的規(guī)律變換一種新的狀態(tài)類型進行試探,通過不斷的回溯試探直到試卷生成完畢或退回出發(fā)點為止,這種有條件的深度優(yōu)先算法,對于狀態(tài)類型和出題量都較少的題庫系統(tǒng)而言,組卷成功率較好。
分析上述兩種算法的優(yōu)缺點,不難發(fā)現(xiàn),在限制條件狀態(tài)空間的控制下,隨機選取法有時能夠抽取出一組令用戶滿意的試題。只不過由于它隨機選取試題的范圍太大,無法確定目前條件下哪些區(qū)域能夠抽取合適的試題,反而可能在那些已經(jīng)證明是無法抽取合適試題的區(qū)域內(nèi)反復選題,進行大量的無效操作進入死循環(huán),最終導致組卷失敗;厮菰囂椒ńM卷成功率高,但它是以犧牲大量的時間為代價的,由于本軟件只是個小型的單科考試組卷系統(tǒng),結(jié)構(gòu)簡單,出題量也較少,所以本系統(tǒng)選擇相對簡單,組卷成功率較好的回溯試探法進行組卷。
4.3.2 回溯試探法的應用
回溯算法也叫試探法,它是一種系統(tǒng)地搜索問題的解的方法。回溯算法的基本思想是:從一條路往前走,能進則進,不能進則退回來,換一條路再試。
用回溯算法解決問題的一般步驟為:
1、定義一個解空間,它包含問題的解;
2、利用適于搜索的方法組織解空間;
3、利用深度優(yōu)先法搜索解空間;
4、利用限界函數(shù)避免移動到不可能產(chǎn)生解的子空間。
問題的解空間通常是在搜索問題的解的過程中動態(tài)產(chǎn)生的,這是回溯算法的一個重要特性。
回溯法是一個既帶有系統(tǒng)性又帶有跳躍性的的搜索算法。它在包含問題的所有解的解空間樹中,按照深度優(yōu)先的策略,從根結(jié)點出發(fā)搜索解空間樹。算法搜索至解空間樹的任一結(jié)點時,總是先判斷該結(jié)點是否肯定不包含問題的解。如果肯定不包含,則跳過對以該結(jié)點為根的子樹的系統(tǒng)搜索,逐層向其祖先結(jié)點回溯。否則,進入該子樹,繼續(xù)按深度優(yōu)先的策略進行搜索;厮莘ㄔ谟脕砬髥栴}的所有解時,要回溯到根,且根結(jié)點的所有子樹都已被搜索遍才結(jié)束。而回溯法在用來求問題的任一解時,只要搜索到問題的一個解就可以結(jié)束。
搜索:全面訪問所有可能的情況,分為兩種:不考慮給定問題的特有性質(zhì),按事先頂好的順序,依次運用規(guī)則,即盲目搜索的方法;另一種則考慮問題給定的特有性質(zhì),選用合適的規(guī)則,提高搜索的效率,即啟發(fā)式的搜索。
本系統(tǒng)使用的是回溯法的啟發(fā)式搜索,以試題題型,試題分值和選題數(shù)量為約束條件進行隨機搜索,而把設置的試卷總分數(shù)作為一個解空間。如果各題型分值之和等于用戶設置的試卷總分數(shù),則產(chǎn)生一個有效解,系統(tǒng)生成一份試卷,試題的題型,編號,分值等信息儲存進試題庫表中。通過系統(tǒng)的預覽試卷功能,系統(tǒng)通過所存信息搜索數(shù)據(jù)庫,獲取試題內(nèi)容,并輸入Word文檔中組成一份完整試卷。
4.4 自動組卷
自動組卷是時系統(tǒng)根據(jù)用戶要求,隨機選取試題,組成一份完整的試卷。本系統(tǒng)使用的是回溯探取法隨機選題。其主要過程如下:
。1)用戶輸入選題要求,如各題型數(shù)量,題型分值和題型難度,并設置試卷總分數(shù)。
(2)初始化隨機數(shù)生成器。
(3)系統(tǒng)根據(jù)題型數(shù)量和題型難度要求在各題型表中隨機抽取試題,將抽取到的試題的“編號”、“試題類型”、“分值”等信息存入臨時表LSSJ中,并對其進行排序和比較,如有重復則返回繼續(xù)搜索,防止試題被重復選取,一直到抽取試題數(shù)等于用戶設置的各題型的試題數(shù)量。
。4)系統(tǒng)自動判斷用戶設置的試卷總分值與試題總分值是否相等,是則生成試卷,并將試題信息“編號”、“分值”、“難度”等信息存入數(shù)據(jù)庫表SJT中,且生成“試卷代號”、“試卷創(chuàng)建者”、并判斷“試卷難度”,存入數(shù)據(jù)庫表SJ中。否則試卷生成失敗,并清空臨時表SJ中所有信息。
。5)設置試卷模板。
。6)預覽試卷,系統(tǒng)根據(jù)數(shù)據(jù)庫表SJT中信息搜索題庫試題內(nèi)容,并按設置好的試卷模板導入Word中,生成一份完整的試卷,并以*.doc文件的形式保存。
自動生成試卷的流程如圖4-9所示。
4.5 手動組卷
由于自動生成的試卷,對于試卷知識覆蓋面的問題不好控制,為了解決這各問題,所以本軟件增加了另一種組卷方式,也就是手動生成試卷。此組卷方式的優(yōu)點在于,系統(tǒng)將各題型的試題具體的分到了此科考試的具體章節(jié)和知識點。用戶可以根據(jù)具體章節(jié)和知識點瀏覽此知識點下的各試題,并可以選擇加入試卷,組成一份知識覆蓋面廣的試卷。其主要組卷過程如下:
(1)用戶選擇試題題型,題型分值,試題數(shù)量和知識點,并設置試卷總分值,系統(tǒng)根據(jù)用戶選擇的題型和知識點顯示所有試題。
(2)用戶選擇試題,試題的“編號”、“難度”、“題型”等信息存入臨時表LSST中,如果重復選題,則系統(tǒng)提示“您已選擇此試題!”,否則系統(tǒng)提示“試題添加成功!”。
。3)生成試卷,系統(tǒng)判斷用戶設置分數(shù)是否與試題總分數(shù)相等,是則生成一份完整的試卷,并將試題的“編號”、“難度”、“分值”、“類型”等信息存入數(shù)據(jù)庫表SJT中。且生成“試卷代號、”試卷創(chuàng)建者“,并判斷”試卷難度“,存入數(shù)據(jù)庫表SJ中。否則試卷生成失敗,提示用戶“您生成的試卷分值與設置的試卷分值不等,試卷生成失。 。
。4)設置試卷模板。
(5)預覽試卷,系統(tǒng)根據(jù)數(shù)據(jù)庫表SJT中信息搜索題庫試題內(nèi)容,并按設置好的試卷模板導入Word中,生成一份完整的試卷,并以*.doc文件的形式保存。
SHAPE \* MERGEFORMAT
圖4-9 自動生成試卷流程圖
手動生成試卷的流程如圖4-10所示。
SHAPE \* MERGEFORMAT
圖4-10 手動生成試卷流程圖
4.6 抽取現(xiàn)有試卷
為了讓用戶能很方便的已生成的試卷,本系統(tǒng)增加了抽取現(xiàn)有試卷這個功能模塊。用戶能通過這個模塊能很方便的對現(xiàn)有試卷進行刪除和預覽,同時也能預覽用戶所選擇的試卷的答案。其主要過程如下:
。1)用戶進入抽取現(xiàn)有試卷界面,系統(tǒng)自動搜索數(shù)據(jù)庫表SJ中信息,顯示現(xiàn)有試卷的“代號”,“試卷創(chuàng)建者”,“試卷難度”。
。2)用戶選擇一份已有試卷,系統(tǒng)自動從數(shù)據(jù)庫表SJT中搜索該試卷試題的“編號”, “分值”, “難度”。
(3)預覽試卷,系統(tǒng)根據(jù)數(shù)據(jù)庫表SJT中信息搜索題庫試題內(nèi)容,并按設置好的試卷模板導入Word中,生成一份完整的試卷,并以*.doc文件的形式打開。
(4)保存答案,系統(tǒng)根據(jù)數(shù)據(jù)庫表SJT中信息搜索題庫試題答案,并按試卷模板以 *.doc文件的形式打開。
。5)刪除試卷,系統(tǒng)刪除試卷在數(shù)據(jù)庫表SJT中的信息,系統(tǒng)顯示“刪除試卷成功”。
抽取現(xiàn)有試卷算法的具體流程可用圖4-11直觀說明。
SHAPE \* MERGEFORMAT
圖4-11 抽取現(xiàn)有試卷流程圖
5 關(guān)鍵技術(shù)與系統(tǒng)實現(xiàn)
本系統(tǒng)是一個試卷生成管理系統(tǒng),重點在于組卷,所以主要是對關(guān)于試卷生成的實現(xiàn)的說明。本系統(tǒng)包括抽取現(xiàn)有試卷,自動生成試卷和手動生成試卷三大功能。
5.1 登錄模塊
登錄界面是用戶最先看到的系統(tǒng)的界面,所以直觀上給用戶的感覺很重要,所以做一個好的界面,提高軟件的親和力。本管理系統(tǒng)登錄界面如圖5-1所示。
登陸功能實現(xiàn)的核心代碼如下。
圖5-1 系統(tǒng)登陸界面
Private Sub cmdOK_Click() ''進入..確定
On Error GoTo Err
Dim txtSql As String
UserName = ""
If Trim(txtUserName.Text) = "" Then ''判斷用戶名是否為空
MsgBox "請輸入帳號!", vbOKOnly + vbExclamation, "警告"
txtUserName.SetFocus
Exit Sub
End If
If Trim(txtPassword.Text) = "" Then '判斷密碼是否為空
MsgBox "請輸入密碼!", vbOKOnly + vbExclamation, "警告"
txtPassword.SetFocus
Exit Sub
End If
''判斷是否有這個用戶
txtSql = "select * from 用戶信息表 where 用戶名稱 = '" & txtUserName.Text & "'"
If rs.State Then rs.Close
rs.Open txtSql, CN, adOpenStatic, adLockOptimistic
If rs.EOF = True Then ''如果沒有這個用戶
MsgBox "沒有這個帳號,請重新輸入帳號!", vbOKOnly + vbExclamation, "警告"
txtUserName.Text = ""
txtPassword.Text = ""
txtUserName.SetFocus
如果輸入的用戶名和密碼正確,將對用戶的權(quán)限進行判斷,如果是管理員就進入到管理員模式;如果是教務管理員就進入到教務管理員模式;如果是教師就進入到教師模式;如果用戶沒有權(quán)限,則會警告。具體代碼如下:
If Trim(rs.Fields(1)) = Trim(txtPassword.Text) Then
''判斷權(quán)限
UserPrivs = ""
If Trim(rs.Fields(2)) = "管理員" Then ''管理員權(quán)限
IsUserMode = 1
ElseIf Trim(rs.Fields(2)) = "教務管理員" Then ''教務管理員權(quán)限
IsUserMode = 2
ElseIf Trim(rs.Fields(2)) = "教師" Then ''教師權(quán)限
IsUserMode = 3
Else ''無權(quán)
IsUserMode = 0
MsgBox "你沒有權(quán)限!", vbExclamation, "警告"
End
End If
UserPrivs = Trim(rs.Fields(2))
UserName = Trim(txtUserName.Text)
Unload Me
Mainfrm.Show
Exit Sub
rs.Close
miCount = miCount + 1
If miCount = 3 Then ''三次錯誤,自動退出程序
登錄系統(tǒng)后進入主界面如圖5-2所示。
圖5-2 軟件主界面
軟件主界面是各個功能模塊的調(diào)用接口,主要有以下功能:
(1)題庫已有試卷:點擊后進入抽取現(xiàn)有試卷的功能界面。
(2)自動生成試卷:點擊后進入自動生成試卷的功能界面。
(3)手動生成試卷:點擊后進入手動生成試卷界面。
(4)題庫錄入: 點擊后進入試題錄入界面。
(5)數(shù)據(jù)備份:點擊后自動備份數(shù)據(jù)庫。
(6)關(guān)于菜單:對于本系統(tǒng)版權(quán)的說明。
5.2 試卷生成管理
試卷生成管理分為三個部分:題庫已有試卷、自動生成試卷和手動生成試卷。下面詳細討論各部分功能的實現(xiàn)。
1. 題庫已有試卷
如果題庫中已經(jīng)存在試卷,可以直接從已經(jīng)存在的試卷中抽取試卷,包括如下操作:
v 試卷預覽:通過WORD文檔打開試卷,可以瀏覽已有試卷模版。
v 保存答案:保存所選試卷的答案。
v 刪除試卷:徹底清除已存試卷的任何信息。
其界面如圖5-3所示。
圖5-3 抽取現(xiàn)有試卷
刪除試卷的核心代碼段如下:
Private Sub Command3_Click() '刪除試卷
Dim rst As Recordset
If MsgBox("是否刪除該試卷?", vbYesNo, "確認") = vbYes Then
strSQl = "select * from SJ where SJDH= '" & MStry1.TextMatrix(MStry1.RowSel, 0) & "'"
'確定操作的表和方式
Set rst = QueryExt(strSQl)
rst.Delete
rst.Close
strSQl = "select * from SJT where SJDH= '" & MStry1.TextMatrix(MStry1.RowSel, 0) & "'"
'確定操作的表和方式
Set rst = QueryExt(strSQl)
Do Until rst.EOF
rst.Delete
rst.MoveFirst
Loop
rst.Close
MsgBox "刪除成功", vbExclamation
InitGrid1
InitGrid2
2. 自動生成試卷
自動生成試卷界面下可進行如下操作:
v 生成試卷:系統(tǒng)根據(jù)用戶要求隨機選題,生成試卷。
v 預覽試卷:通過WORD文檔打開剛生成試卷,可以瀏覽生成試卷模版。
v 預覽答案:通過WORD文檔打開剛生成試卷答案,可以瀏覽試卷答案。
v 保存試卷:保存生成試卷“代號”、“創(chuàng)建者”、“難易度”等信息。
其界面如圖5-4所示。
圖5-4 自動生成試卷界面
實現(xiàn)該功能的核心代碼如下:
Public Function LoadObject() '加載選擇題
On Error GoTo DealError
strSQl = "select * from Choice order by BH" '確定操作的表和方式
Set rs = QueryExt(strSQl) '打開紀錄集
If rs.RecordCount > 0 Then
rs.MoveFirst
Do Until rs.EOF
If rs.Fields("ND") = 5 Then
int1 = int1 + 1
Else
If rs.Fields("ND") = 10 Then
int2 = int2 + 1
Else
If rs.Fields("ND") = 15 Then
int3 = int3 + 1
End If
rs.MoveNext
Loop
int4 = int1 + int2 + int3
Label10(0).Caption = int1
Label10(1).Caption = int2
Label10(2).Caption = int3
Label10(3).Caption = int4
End If
rs.Close
Set rs = Nothing
Exit Function
DealError:
ShowError "程序執(zhí)行出錯,錯誤信息如下:" & vbCrLf & Err.Description
End Function
3. 手動生成試卷
自動生成試卷界面下可進行如下操作:
v 加入試卷:選定加入試卷的題目,并記錄其信息。
v 保存試卷:當總分正好100分時,點擊保存試卷,生成試卷并保存其信息。
其界面如圖5-5所示。
圖5-5 手動生成試卷界面
以下為保存試卷功能的核心代碼:
Private Sub Command2_Click()
Dim index1 As Integer
RefreshMarks
Summarks=RandChoice.Summarks+RandPragramfilling.Summarks+ andAnswerQuestion.Summarks + RandPargramReading.Summarks + RandPargramDesign.Summarks
If Summarks = Combo1.Text Then
CalTestDifficult
SaveContest '保存試卷,調(diào)用函數(shù)
MsgBox "保存成功", vbInformation
Else
MsgBox "您設計的試卷與實際總分不合,請修改", vbCritical
End If
4. 生成試卷的模版
生成的試卷必須按照定義的模板保存,圖5-6給出了定義的模板示意。
圖5-6 生成試卷模版
5.3 系統(tǒng)中的關(guān)鍵技術(shù)實現(xiàn)
5.3.1 顯示教材章節(jié)信息供用戶使用
為了顯示教材章節(jié)信息供用戶使用,在數(shù)據(jù)庫里章節(jié)的存放是沒有規(guī)則也即它們的順序不一定按照真實書本的章節(jié)順序來存儲的。但是在顯示章節(jié)信息的時候必須按照書本的章節(jié)順序來顯示。所以特別設置如下的數(shù)據(jù)類型:
Dim Sql As String;
Dim rs As String;
論文選擇了TreeView控件來顯示章節(jié),因為這個控件用起來比較方便。其具體算法代碼如下:
If Not TreeView1.SelectedItem Is Nothing Then
'只響應葉節(jié)點(沒有孩子)
If TreeView1.SelectedItem.Children = 0 Then
Dim Sql As String
Sql = "select BH,Type,TM,ZJ,ND from " & ItemInfo
Sql = Sql & " where ZJ= '"
Sql = Sql & Mid(TreeView1.SelectedItem.Key, 3, 4) & "'"
Set rs = QueryExt(Sql)
DataGrid_Object rs, DataGrid1
Else
5.3.2 手動生成試卷時所選試題的臨時保存處理
手動生成試卷時要不斷的將用戶選擇的題目臨時存儲起來,由于記錄的信息不是很多,論文用數(shù)組把添加進去的試題的題號和類型存儲起來,后面添加的時候檢查在數(shù)組中是否存在,如果存在就證明已經(jīng)添加過了。
If ItemInfo = “Choice” Then
If RandChoice.DataExit(DataGrid1.Columns(0).Text) = True Then
Text1(0).Text = Text1(0).Text + 1
RandChoice.TotalNum = Text1(0).Text
RandChoice.KindOfitem DataGrid1.Columns(4).Text ‘判斷添加試題難度,并
RandChoice.IncreaseContents
RandChoice.SetContent DataGrid1.Columns(0).Text, Text1(0).Text - 1
MsgBox “添加成功!”, vbInformation
Else
MsgBox “您已經(jīng)選擇了此題!”, vbCritical
5.3.3自動生成試卷時生成一個覆蓋知識點廣且試題不重復的試卷處理
自動生成試卷時如何生成一個覆蓋知識點廣且試題不重復的試卷,處理該問題的關(guān)鍵算法在于如何生成一個不重復的隨機數(shù)序列。產(chǎn)生不重復隨機數(shù)算法如下:
(1)首先生成隨機數(shù)
For index1 = 1 To SJ
Do While True
Randomize
tempid = Int(Rnd() * (sum - 1)) + 1
flag = True
For index2 = 1 To index1
If tempid = RandNo(index2) Then
flag = False
Exit For
Next index2
If flag = True Then Exit Do
Loop
RandNo(index1) = tempid
Next index1
(2)然后對生成的隨機數(shù)排序
For index1 = 1 To SJ - 1
tempid = index1
For index2 = index1 + 1 To SJ
If CInt(Trim(RandNo(index2))) < CInt(Trim(RandNo(tempid))) Then
tempid = index2
End If
Next index2
temp = RandNo(index1)
RandNo(index1) = RandNo(tempid)
RandNo(tempid) = temp
Next index1
(3)最后將隨機號對應的記錄集中編號取出
For index1 = 1 To SJ
Dim intemp As Long
intemp = CLng(RandNo(index1))
rs.Move intemp - 1
SaveItemSerial(index1) = Trim(rs.Fields(“BH”))
rs.MoveFirst
Next index1
RItem = True
5.3.4數(shù)據(jù)庫的備份與恢復
1) 數(shù)據(jù)庫備份的部分代碼
Public Function DBBackUp()
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists(App.path & "\數(shù)據(jù)庫備份\shijuanbeifen.mdb") Then fs.DeleteFile App.path & "\數(shù)據(jù)庫備份\shijuanbeifen.mdb"
fs.copyfile App.path & "\shijuan.mdb", App.path & "\數(shù)據(jù)庫備份\shijuanbeifen.mdb"
MsgBox "備份完成!", 64, "數(shù)據(jù)庫備份情況"
End Function
2) 數(shù)據(jù)庫恢復的部分代碼:
Public Function DBRestore()
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
syscnn.Close
If fs.FileExists(App.path & "\shijuan.mdb") Then fs.DeleteFile App.path & "\shijuan.mdb"
fs.copyfile App.path & "\數(shù)據(jù)庫備份\shijuanbeifen.mdb", App.path & "\shijuan.mdb"
Main
MsgBox "已恢復上次備份!", 64, "數(shù)據(jù)庫恢復情況"
6 系統(tǒng)的測試
6.1 測試方法
軟件測試方法一般分成白盒測試和黑盒測試,其各自具體定義如下:
1、黑盒測試
黑盒測試也稱功能測試或數(shù)據(jù)驅(qū)動測試,它是在已知產(chǎn)品所應具有的功能,通過測試來檢測每個功能是否都能正常使用,在測試時,把程序看作一個不能打開的黑盆子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測試者在程序接口進行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當?shù)亟邮蛰斎霐?shù)鋸而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。黑盒測試方法主要有等價類劃分、邊值分析、因—果圖、錯誤推測等,主要用于軟件確認測試。 “黑盒”法著眼于程序外部結(jié)構(gòu)、不考慮內(nèi)部結(jié)構(gòu)、針對軟件界面和軟件功能進行測試!昂诤小狈ㄊ歉F舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程序中所有的錯誤。實際上測試情況有無窮多個,人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進行測試。
2、白盒測試
白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,它是知道產(chǎn)品內(nèi)部工作過程,可通過測試來檢測產(chǎn)品內(nèi)部動作是否按照規(guī)格說明書的規(guī)定正常進行,按照程序內(nèi)部的結(jié)構(gòu)測試程序,程序中的每條通路是否都有能按預定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅(qū)動、基路測試等,主要用于軟件驗證。
6.2 測試配置
1、硬件配置要求:
CPU:P = 2 \* ROMAN II200以上。
內(nèi)存:256MB以上。
硬盤:2.1GB以上(可用空間最好在160MB以上)。
打印機:推薦EPSON LQ-1600K = 2 \* ROMAN II
2、軟件配置要求:
WINDOWS2000/xp中文版操作系統(tǒng)。
本系統(tǒng)運行:首先啟動Windows2000/XP,將本系統(tǒng)拷貝到硬盤相應地目錄下,用附加數(shù)據(jù)庫加載上數(shù)據(jù),運行“EXE文件”即可。
6.3 測試目的
測試在軟件開發(fā)過程中一直都是備受關(guān)注的,即使在傳統(tǒng)的軟件工程中,也有一個明確、獨立的測試階段。隨著軟件危機的頻頻出現(xiàn)以及人們對于軟件本質(zhì)的進一步認識,測試的地位得到了前所未有的提高。測試已經(jīng)不僅僅局限于軟件開發(fā)中的一個階段,它已經(jīng)開始貫穿于整個軟件開發(fā)過程,人們已經(jīng)開始認識到:測試開始的時間越早,測試執(zhí)行的越頻繁,所帶來的整個軟件開發(fā)的下降就會越多。Extreme Programming更是把測試推到了極限的位置,一切軟件開發(fā)活動都要從首先編寫測試代碼開始。
6.4 測試過程
本系統(tǒng)各功能已經(jīng)了解清楚,所以對其進行黑盒測試。黑盒測試主要是對軟件進行功能測試,它是在已知產(chǎn)品所應具有的功能,通過測試來檢測每個功能是否都能正常使用。
6.4.1 測試抽取現(xiàn)有試卷模塊
表6.1 抽取現(xiàn)有試卷模塊用例表
第一個用例是測試系統(tǒng)的預覽試卷功能,其測試結(jié)果為如圖6-2所示。
圖6-2 使用第一個用例后
第二個用例是測試系統(tǒng)的刪除試卷功能,其測試前為如圖6-3,測試結(jié)果為圖6-4所示。其過程顯示刪除試卷功能運行正常。
圖6-3 使用第二個用例前
圖6-4 使用第二個用例后
通過測試用例可知抽取現(xiàn)有試卷模塊的刪除試卷和試卷預覽功能運行正常。
6.4.2 測試自動生成試卷模塊
表6.2 自動抽取試卷模塊用例
圖6-5 使用第一個用例后
圖6-6 使用第二個用例后
通過測試用例可知,試題的總分要與用戶設置的試題總分要相等才能生成試卷,否則提示“你設計的試卷與試題總分不合”,生成試卷失敗。
6.4.3 測試手動生成試卷模塊
表6.3 手動生成試卷模塊
第一次添加試題后,測試結(jié)果如圖6-7所示。
圖6-7 使用第一個測試用例后
第二次添加同一試題后,測試結(jié)果如圖6-8所示。
圖6-8 使用第二個測試用例后
通過測試用例可知,手動生成試卷模塊中,如果用戶重復選擇同一題,則系統(tǒng)提示“您已經(jīng)選擇了此題”,添加試題失敗,避免同一題被多次選入同一份試卷中。
由對各個模塊的功能測試可知,本系統(tǒng)各種功能都能正常使用,對于各數(shù)據(jù)的關(guān)系也處理的很準確,具有了一定的實用性。
結(jié)束語
本軟件的設計目的是在題庫建立維護和試卷生成方面為教學單位和人員提供方便和幫助。通過這幾個月的畢業(yè)設計,我學到很多以前沒有學到的VB開發(fā)技術(shù),在軟件工程學上更是取得了很大的進步。經(jīng)過大量的測試和試用,作者深信本軟件達到了方便和實用的設計目的,并在軟件界面和易用實用等方面有著獨到之處。
總的來說,在這次的畢業(yè)設計種遇到了不少的問題,大部分得到了很好的解決,但也有少部分遺留的問題。
首先便是調(diào)研的不充分。由于以前根本未曾接觸過軟件的整體開發(fā)設計,所以在前期的調(diào)研中相當不充分,開題也有些盲目,以為把屬性和表寫得越多越好,這個問題越到后來越嚴種,而且因為客觀的原因耽誤了進度,因而對開題做了修改。
其次是軟件的編程問題,由于以前對VB只是了解并不能夠靈活運用,所以在畢設期間進行了苦讀,終于可以基本掌握了常用控件的用法和語句編程。
然后就是從一而終的問題了,在開發(fā)過程中我遇到了許許多多的問題,很多地方都不明白,經(jīng)常有打退堂鼓的想法,我經(jīng)常的請教同學,最后的成果雖然不很完美,但我盡力了,并有所收獲。
雖然軟件基本達到設計要求并且達到同行的先進水平,但由于作者水平有限,軟件存在bug也是在所難免的 ,您的意見和建議將極大的幫助我改進并完善軟件。真誠的希望你的參與。
參考文獻:
[1].C.J.Date , 《Database system implementation》,北京:出版社, 2000
[2].Hector Garcial-Molina , Jeffrey D.Ullman, Jennifer Widom,《An introduction to Database Systems(Seventh Edition), 機械工業(yè)出版社,2001
[3].林陳雷, 郭安源, 葛曉東, 《信息化系統(tǒng)開發(fā)實例導航》 , 人民郵電出版社,2003
[4].張立科,《數(shù)據(jù)庫開發(fā)技術(shù)與工程實踐》,人民郵電出版社,2004
[5].張紅軍, 王虹 等 《Visual basic 6.0 中文版高級應用與開發(fā)指南》, 人民郵電出版社, 2002
[6].伍俊良 主編 等 《VB課程設計與系統(tǒng)開發(fā)案例》清華大學出版社, 2002
[7].姚巍,《Visual Basic數(shù)據(jù)庫開發(fā)及工程實例》,人民郵電出版社,2003
[8].求是科技,《Visual Basic 6.0 數(shù)據(jù)庫開發(fā)技術(shù)與工程實踐》,人民郵電出版社,2004
[9].劉瑞新,汪遠征,《Visual Basic程序設計教程》,機械工業(yè)出版社,2001
[10].劉萌,周學明,郭安源,《Visual Basic企業(yè)辦公系統(tǒng)開發(fā)實例導航》,人民郵電出版社,2003
[11].孟小峰,王珊,《數(shù)據(jù)庫系統(tǒng)導論》,機械工業(yè)出版社,2000
[12].張海藩,《軟件工程導論》,清華大學出版社,2003
【試卷生成系統(tǒng)】相關(guān)文章:
基于Delphi的試卷智能生成系統(tǒng)設計Delphi+SQL11-23
學生成績管理系統(tǒng)的設計與實現(xiàn)03-18
一種支持動態(tài)網(wǎng)站生成的模型與系統(tǒng)03-04
多媒體課件的生成與再編輯系統(tǒng)研究與設計03-19
研究草地火災生成原因及火管理系統(tǒng)的應用03-18
在質(zhì)疑中生成智慧03-08