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