• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. 試卷生成系統

        時間:2024-08-29 23:53:56 計算機網絡畢業論文 我要投稿
        • 相關推薦

        試卷生成系統

          論文關鍵詞:試題庫系統 試卷生成 算法

          論文摘要:教學評價是教學工作的一個重要環節,通常的教學評價方式多為通過試卷進行考試,因而試卷的質量將直接影響到教學評價的結果。一般情況下,教師出試卷時要么到龐大的題庫里一道一道的把題目挑選出來,或是從幾本相關的書里把題挑選出來組成一份試卷,這樣既費時又費力,而且很難保證試題的覆蓋面和把握試卷的難度。為了將老師從繁重的命題工作中解放出來,為了提高命題的質量和的現代化、科學化、規范化,本文開發一個試卷生成系統。

          本文在充分的需求分析基礎上,設計和實現了一個試卷生成系統,主要完成了手動生成試卷、自動生成試卷、抽取現有試卷和用戶管理等功能。通過測試,系統在Windows 98/me/2000/XP平臺下能穩定運行,且基本達到了預期的設計目標,有一定的實用價值。

          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


          前言

          隨著技術的發展和普及,在我們的學習和日常生活中都離不開計算機技術,大到科研的超級計算機,小到我們日常使用的手提電話,實際都是計算機技術的應用,對于學校、企事業單位來說,計算機特別是PC機已經相當普及,大家對計算機的操作更加熟悉,充分發揮設備潛能是一種節約的表現,是一種美德。

          設計編寫試卷生成系統,是基于二種目的:一是充分利用現有的計算機系統減輕工作人員的勞動強度。二是棄傳統的手工整理、以試卷(紙質)的形式存放到室,浪費紙張等原,不利于保護。

          一個好的試卷生成系統,要求界面友好,能方便地生成試卷,試卷的維護(修改、刪除試題)操作簡單,組卷靈活快捷,查詢試題或試卷迅速,以適應各種知識更新對試卷難度的要求,還要具有一定的安全性。為此,在對系統進行概要設計時,就充分考試慮到以上的因素,模塊圍繞實用性設計,比如,編輯模塊就是為了實現試題的錄入、試題的維護、試卷的生成而設計的;查詢模塊是為了實現試題和試卷的快速查詢而設計的;系統管理是考慮系統的安全性,用戶名和密碼,整個設計簡潔明了,同時也就方便了操作。

          本軟件的開發成功為試卷的生成工作又添加了一款實用性較強的軟件,為試卷生成系統告別手工管理的時代又推進了一大步。

          1 緒論

          1.1 開發背景與研究現狀

          在以往的教學中,老師出試卷大多由手工出卷,這樣生成的試卷往往會有知識點分布太集中、難易程度不當、分值分布不均等一些缺點;這樣,既增加了老師的負擔,也沒有達到很好考查學生學習的真實水平,造成教學上的失誤。                                                                      
            基于以上的原因,有很多從事軟件開發的人員,在試卷自動生成方面做了很大的研究。目前這一領域也以良好的發展姿態而不斷進步,早期已經有了一些類似的系統,但經過軟件開發人不斷的完善,大致形成了具備如下功能的系統:

          刪除試題、批量錄入試題、試題交流、合并題庫、自定義試題參數等一些功能,其中試題交流功能非常實用,主要用于同事間交流試題。系統“體積”非常小,壓縮后只有幾百KB。平時只要將一些試題或從網絡下載的試題,按“學科”、“章節”、“知識點”、“題型”、“難易程度”五個參數進行歸類,錄入題庫,需要用時,只要輸入一些查詢條件即可查出所要找的試題。生成試卷非常方便,只需幾分鐘就可以生成一份試卷,生成的試卷還配有答案,更重要的是軟件能與WROD的完美結合,試題、答案的編輯、試卷的排版打印全部由WORD來完成,試卷和答案都可保存為*.DOC格式。

          組卷算法是該系統中的重點,目前被使用的算法主要有三種,分別是隨機選取法,回溯試探法和遺傳算法。這三種算法各有特點,隨機選取法結構簡單,對于單道題的抽取運行速度較快,但是對于整個組卷過程來說組卷成功率低,即使組卷成功,花費時間也令人難以忍受,所以很少被使用。而回溯試探法,同樣結構簡單,但是組卷成功率很高,所以常被使用。遺傳算法是目前很流行的組卷方法,結合了前兩種算法的多個優點,體現了組卷的隨機性和科學性,被廣泛使用中。
            可見,試卷自動生成系統這方面的研究日益成熟,這不但減輕了教師的工作負擔,也使得教學評價更加科學化、規范化,有利用事業的發展。

          1.2論文組織

          論文全面詳細地介紹了試卷生成系統的設計思想、實現原理和使用技巧。論文按如下方式組織。

          第一部分是主要是對系統的開發背景和研究現狀進行詳細的介紹。

          第二部分主要是對開發工具的介紹。

          第三部分是主要是對本系統做詳細的需求分析。

          第四、五、六部分是本文的主要內容,是軟件的開發設計。第四部分主要對于系統組卷的設計,重點介紹了自動生成試卷,手動生成試卷和抽取現有試卷三種組卷算法。而第五部分是系統的實現部分,具體的分析了三種組卷算法的實現過程。同時也仔細說明了系統實現過程中的關鍵技術。第六部分是系統的測試部分,利用測試實例來說明系統的可用性和數據的準確性。


          2 開發工具簡介

          2.1 Visual Basic

          Visual Basic是可視化的Basic,他創建應用程序時,不需要編寫大量的程序代碼來描述和控制界面元素的位置,大小等屬性,只需要簡單的在屏幕中增加已經建立的對象。可視化編程的一個突出特點就是其開發就像一個百寶箱,很多功能都集成在其之中,這就是IDE(Integrated Development Environment),即集成開發環境。IDE是指在相應的開發平臺中集成了編輯器、編譯連接工具、控件器箱輔助工具。例如在VB的集成開發環境中就包括了以下一些主要元素:工具欄、工具箱、工程器窗口、屬性窗口、窗體設計器、代碼編輯器窗口等;

          VB的程序設計風格與傳統設計方法不同,它是面向對象和事件的程序設計方法。面向對象是近年來出現的程序設計技術,它是一種全新的設計和構造軟件的思維方法。在面向對象的程序設計中,“對象”是系統中的基本運行實體。例如窗體和控件,就是VB的對象,VB中的對象是由系統設計好提供給用戶使用的。對象建立、移動、增刪、縮放操作也是由系統規定好的,這比一般的面向對象程序設計中的操作要簡單的多,因此本軟件選擇了VB6.0作為開發工具。

          2.1.1 主要控件及其屬性簡介

          Form類的控件:

          Picture屬性:用來設置窗體的背景圖象。

          Visible屬性:界面是否顯示。

          BackColor屬性:用來控制程序界面的顏色。

          Font屬性:用來控制程序界面的字體。

          StartUpPosition屬性:用來控制程序運行時界面的顯示位置。

          ImageList類的控件:

          ImageHeight屬性:用來設置圖的高度。

          ImageWidth屬性:用來設置圖的寬度。

          MSFlexGrid控件:

          Rows屬性:返回或設置在一個 MSHFlexGrid 中的總行數。

          Cols屬性:返回或設置在一個 MSHFlexGrid 中的總列數。

          AllowBigSelectorBoolean屬性: 返回/設置一個值,定義當在行或列的頭部單擊時,是否該行或列將整個被選中。

          EnterCell的事件:當一個新的單元成為當前活動單元時。

          CommandButton控件:

          Caption屬性:用來指定CommandButton的標題。

          Click事件:用來添加按鈕的單擊事件所執行的程序代碼。

          TreeView控件:顯示 Node 對象的分層列表,每個 Node 對象均由一個標簽和一個可選的位圖組成。

          ImageList屬性:指定的ImageList控件保存在Node對象中使用的點位圖和圖標。

          Node屬性:可以表現為文本,點位圖,線條和加減號的8種組合之一。

          NodeClick時間:用來添加按鈕的單擊事件所執行的程序代碼。

          2.1.2 數據庫連接方式

          簡單的文本文件到各種復雜的關系型數據庫,數據庫應用程序需要面對各種各樣的數據源。Visual basic 6.0提供ADO(Active Data Objects)作為應用程序和OLE-DB連接的橋梁。

          ADO,即Active數據對象(Active Data Objects):實際是一種提供訪問各種數據類型的連接機制。ADO設計為一種極簡單的格式,通過ODBC的方法同數據庫接口相連。用戶可以使用任何一種ODBC數據源,即不僅適合于SQL Server、Oracle、Access等數據庫應用程序,也適合于Excel表格、文本文件、圖形文件和無格式的數據文件。ADO是基于OLE-DB之上的技術,因此ADO通過其內部的屬性和方法提供統一的數據訪問接口方法。本系統就是用ADO對象來連接數據庫的。

          以下是本系統開發過程中用到的一些ADO對象:

          Connection對象:通過“連接”可從應用程序訪問數據源,連接是交換數據所必需的環境。對象模型使用Connection對象使連接概念得以具體。

          Recordset對象:表示的是來自基本表或命令執行結果的記錄全集。Recordset 對象可支持兩類更新:立即更新和批更新。使用立即更新,一旦調用Update方法,對數據的所有更改將被立即寫入基本數據源。也可以使用AddNew和Update方法將值的數組作為參數傳遞,同時更新記錄的若干字段。

          Field對象:代表使用普通數據類型的數據的列。Recordset對象含有由Field對象組成的Fields集合。每個Field對象對應于Recordset中的一列。使用Field對象的Value屬性可設置或返回當前記錄的數據。

          以下是本程序中用到的方法:

          AddNew方法:創建可更新Recordset對象的新記錄。

          Open方法(ADO Connection):打開到數據源的連接。

          Open方法(ADO Recordset):打開記錄集。

          Close方法:關閉打開的對象及任何相關對象。

          Execute方法:執行指定的查詢、SQL語句、存儲過程或特定提供者的文本等內容。

          2.2 SQL Server2000

          SQL Server 是一個關系數據庫管理系統,它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同開發的。于1988 年推出了第一個OS/2 版本在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開發上就分道揚鑣了。Microsoft 將SQL Server 移植到Windows NT系統上專注于開發推廣SQL Server 的Windows NT 版本,Sybase 則較專注于SQL Server在UNIX 操作系統上的應用。在系統中用到的是Microsoft SQL Server 以后簡稱為SQL Server或MS SQL Server。

          SQL Server 2000 是Microsoft 公司推出的SQL Server 數據庫管理系統的最新版本該版本繼承了SQL Server 7.0 版本的優點。同時又比它增加了許多更先進的功能具有使用方便可伸縮性好與相關軟件集成程度高等優點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2000 的大型多處理器的服務器等多種平臺使用。

          目前被廣泛使用的數據庫有SQL Server、Oracle、Access等。Access是一個可視化工具,是風格與Windows完全一樣,用戶想要生成對象并應用,只要使用鼠標進行拖放即可,非常直觀方便。系統還提供了表生成器、查詢生成器、報表設計器以及數據庫向導、表向導、查詢向導、窗體向導、報表向導等工具,使得操作簡便,容易使用和掌握。但是access數據庫有一定的極限,如果數據達到100M左右,很容易造成服務器iis假死,或者消耗掉服務器的內存導致服務器崩潰。

          而SQL Server是基于服務器端的中型的數據庫,可以適合大容量數據的應用,在功能上管理上也要比Access要強得多。在處理海量數據的效率,后臺開發的靈活性,可擴展性等方面強大。因為現在數據庫都使用標準的SQL對數據庫進行管理,所以如果是標準SQL語言,兩者基本上都可以通用的。SQL Server還有更多的擴展,可以用存儲過程,數據庫大小無極限限制。因為本系統需求一個中型,而且安全性強的數據庫,所以選擇SQL Server做為該系統的數據庫。

          2.3 SQL 語言

          SQL(Structured Query Language,結構查詢語言)是一個功能強大的數據庫語言。SQL通常使用于數據庫的通訊。ANSI(美國國家標準學會)聲稱,SQL是關系數據庫管理系統的標準語言。SQL語句通常用于完成一些數據庫的操作任務,比如在數據庫中更新數據,或者從數據庫中檢索數據。使用SQL的常見關系數據庫管理系統有:Oracle、 Sybase、 Microsoft SQL Server、 Access等等。雖然絕大多數的數據庫系統使用SQL,但是它們同樣有它們自立另外的專有擴展功能用于它們的系統。但是,標準的SQL命令,比如“Select”、 “Insert”、 “Update”、 “Delete” 、“Create”和 “Drop”常常被用于完成絕大多數數據庫的操作。MS SQL Server 就是用的Transact- SQL。SQL語言有著非常突出的優點,SQL語言是非過程化的語言、統一的語言、是所有關系數據庫的語言。

          非過程化語言:SQL是一個非過程化的語言,因為它一次處理一個記錄,對數據提供自動導航。SQL允許用戶在高層的數據結構上工作,而不對單個記錄進行操作,可操作記錄集,所有SQL 語句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語句的結果作為另一條SQL語句的輸入。

          統一的語言:SQL可用于所有用戶的DB活動模型,包括系統管理員、數據庫管理員、 應用程序員、決策支持系統人員及許多其它類型的終端用戶。

          所有關系數據庫的公共語言:由于所有主要的關系數據庫管理系統都支持SQL語言,用戶可將使用SQL的技能從一個RDBMS(關系數據庫管理系統)轉到另一個,所有用SQL編寫的程序都是可以移植的。

          SQL為許多任務提供了命令,其中包括:查詢數據、在表中插入、修改和刪除記錄、建立、修改和刪除數據對象、控制對數據和數據對象的存取、保證數據庫一致性和完整性等。

          以前的數據庫管理系統為上述各類操作提供單獨的語言,而SQL 將全部任務統一在一種語言中。

          SQL功能強大,是一種完備的數據處理語言,不僅用于數據庫查詢,而且用于數據庫中的數據修改和更新,概括起來,它可以分成以下幾組:

          DML(Data Manipulation Language,數據操作語言):用于檢索或者修改數據;

          DDL(Data Definition Language,數據定義語言):用于定義數據的結構,比如 創建、修改或者刪除數據庫對象;

          DCL(Data Control Language,數據控制語言):用于定義數據庫用戶的權限。


          3  需求分析

          考試是整個教學過程中的一個重要環節,它是對學生所學知識和能力的一種評價,也是衡量教師教學效果優劣的一種測量手段。但是,目前考試的實施過程不完全科學,命題內容,評分標準等缺乏普遍的可比性,考試不夠客觀和準確。隨著科學的迅速發展和廣泛應用,計算機技術已進入現代教育領域,并形成了一門新興的邊緣科學—計算機輔助教學(Computer Aided Instruction,CAI)。

          3.1用戶需求

          利用計算機建立試題庫,實現計算機自動選題組卷,是CAI工程的重要組成部分,也是實現教考分離的一個重要手段。利用計算機組卷,不僅能節省教師的寶貴時間,提高工作效率,而且能消除出卷人主觀意識的影響,使考試更加標準化,更加客觀,真實,全面地反映反映教學的實際效果,有利于教學質量的提高。建立了試題庫系統以后,可實行教考分離,促使任課老師必須按照教學大綱的要求認真備課,認真組織教學內容,改進教學方法,對提高教學質量和整體教學水平有著非常重要的意義。每次考試后,還可利用計算機對試卷和考試分數進行分析和評價,使考試這一教學環節更加科學化和規范化。

          作為試題庫系統中的一部分,試卷生成系統必須滿足如下需求:

          (1)靈活多樣的組卷方式,如手工組卷和自動組卷。

          (2)既能臨時生成試卷,又能直接使用以前生成的試卷,也就是要求能對生成的試卷進行保存,以便下次直接使用,并能刪除不再需要的試卷。

          (3)試卷的保密性要求,只有授權人員才能生成和查閱試卷。

          (4)試卷生成速度不宜太慢。

          (5)生成的試卷按照規定的模板輸出,并能導出到word文檔中。

          (6)生成的試卷既可以直接打印,也可以在word中修改和打印。

          (7)友好的用戶界面。

          3.2功能需求

          本系統是試卷生成系統,主要有三方面的功能需求,其分別是:

          (1)抽取現有試卷:為了用戶能方便現有的試卷,此模塊主要有預覽試卷,保存答案,刪除試卷三大功能。

          (2)手動生成試卷:為了能按照用戶的意愿組卷,用戶可以按試題所涉及的知識點瀏覽各種題型,生成一份知識覆蓋面廣泛的試卷,并能保存試卷。

          (3)自動生成試卷:用戶能選擇生成試卷的題型,試題數量,試題難度,以及試卷分值,且有預覽試卷,預覽答案,保存試卷和答案的功能。

          3.3 系統流程圖

          根據對用戶的,本系統有三類用戶使用,分別是管理員,教務管理員和教師。這三種身份的人具有不同權限,管理員負責管理系統帳號;教務管理員負責管理試題、審核試題、打印試題;教師只能瀏覽和根據需要組卷。本系統主要是對試題組卷的管理,根據需求分析,可以得到系統流程如圖3-1所示。

         SHAPE  \* MERGEFORMAT

        圖3-1 系統總流程圖

          3.4 性能需求

          3.4.1 加載數據效率要求

          本系統的使用不受時間限制,可以24小時正常使用,對于用戶登陸,試卷預覽,答案預覽,試卷生成功能響應時間不宜超過5秒鐘。

          3.4.2 界面風格要求

          整體以白色和淡藍色為主,輔助米黃色和淡綠色給人清新,舒坦的感覺,在1024*768分辨率下達到最佳顯示效果,界面簡潔清爽,不能過于復雜。

          3.5 開發

          3.5.1 軟件環境

          操作系統: Windows98以上/ME/2000/XP等

          數據庫:  SQL Server 2000

          開發:  Visual Basic

          開發工具:  VB6.0

          3.5.2 硬件環境  

          CPU:P = 2 \* ROMAN II200以上

          內存:256MB以上

          硬盤:2.1GB以上(可用空間最好在160MB以上)


          4 系統設計

          系統設計的目的是確定系統如何完成預定的任務,也就是確定系統的配置方案,并且進而確定組成系統的每個程序的結構。首先設想完成系統功能的若干種合理的物理方案,分析員應該仔細比較這些方案,并且和用戶共同選定一個最佳方案,然后,進行軟件結構設計,確定軟件由哪些模塊組成以及這些模塊之間的動態調用關系。進行軟件結構設計時應該遵循的最主要的原理是模塊獨立原理,也就是說:軟件應該由一組完成相對獨立的子功能模塊組成,這些模塊之間的接口關系應盡量簡單。

          自頂向下逐步求精是進行軟件結構設計的常用途經,在進行詳細的過程設計和編寫程序之前,首先進行結構設計,其好處在于可以在軟件開發的早期站在全局高度對軟件結構進行優化,在這個時期進行優化付出的代價不高,卻可以使軟件質量得到重大改進。

          試題管理系統和試卷生成系統是兩個連在一起的系統,而本系統主要介紹的就是試卷生成系統的設計和方法。

          4.1 系統功能模塊圖

          根據需求分析,將系統分為四個模塊:系統管理模塊,試卷生成管理模塊,數據庫管理系統,系統幫助模塊。系統功能模塊結構如圖4-1所示。

         SHAPE  \* MERGEFORMAT

        圖4-1  系統功能模塊圖

          下面對各功能模塊的子功能進行較詳細的討論。

          (1) 系統模塊

          該模塊包括用戶管理模塊和用戶密碼管理模塊。系統啟動時調用此模塊,要求用戶先進行登陸。登陸功能模塊如圖4-2所示。

         SHAPE  \* MERGEFORMAT

        圖4-2  登陸模塊功能圖

          (2) 試卷生成管理模塊

          試卷生成管理模塊主要包括如下子模塊:

        n         抽取現有試卷模塊:顯示預覽試卷,保存答案,刪除試卷功能。

        n         手動生成試卷模塊:顯示加入試卷,保存試卷功能。

        n         自動生成模塊:顯示生成試卷,預覽試卷,預覽答案,保存試卷功能。

        詳細的試卷生成管理功能模塊如圖4-3所示。

         SHAPE  \* MERGEFORMAT

        圖4-3  試卷生成管理模塊功能圖

        (3) 數據庫管理模塊主要包括數據庫還原和數據庫備份。數據庫管理模塊結構如圖4-4所示。

         SHAPE  \* MERGEFORMAT    

        圖4-4  數據庫管理模塊功能圖

        (4) 系統幫助模塊主要包括系統幫助和系統關于。系統幫助模塊結構如圖4-5所示。

         SHAPE  \* MERGEFORMAT

        圖4-5  系統幫助模塊功能圖

          4.2 數據表設計

          根據系統功能設計,把數據庫命名:STGL,在SQL Server 2000數據庫創建了題型表、難度程度表、出卷人表、用戶信息表等。各數據表的具體情況如表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 現有算法分析

          自動組卷是考試系統自動化或半自動化操作的核心目標之一,而如何保證生成的試卷能最大程度的滿足用戶的不同需要,并具有隨機性、科學性、合理性,這是實現中的一個難點。尤其在交互式下用戶對于組卷速度要求較高,而一個理論上較完美的算法可能會以犧牲時間作為代價,往往不能達到預期的效果。因此,選擇一個高效、科學、合理的算法是自動組卷的關鍵。

          以往的具有自動組卷功能的考試系統大多采用隨機選取法和回溯試探法。隨機選取法根據狀態空間的控制指標,由隨機的抽取一道試題放入試題庫,此過程不斷重復,直到組卷完畢,或已無法從題庫中抽取滿足控制指標的試題為止。該方法結構簡單,對于單道題的抽取運行速度較快,但是對于整個組卷過程來說組卷成功率低,即使組卷成功,花費時間也令人難以忍受。尤其是當題庫中各狀態類型平均出題量較低時,組卷往往以失敗而告終。

          回溯試探法這是將隨機選取法產生的每一狀態類型紀錄下來,當搜索失敗時釋放上次紀錄的狀態類型,然后再依據一定的規律變換一種新的狀態類型進行試探,通過不斷的回溯試探直到試卷生成完畢或退回出發點為止,這種有條件的深度優先算法,對于狀態類型和出題量都較少的題庫系統而言,組卷成功率較好。

          分析上述兩種算法的優缺點,不難發現,在限制條件狀態空間的控制下,隨機選取法有時能夠抽取出一組令用戶滿意的試題。只不過由于它隨機選取試題的范圍太大,無法確定目前條件下哪些區域能夠抽取合適的試題,反而可能在那些已經證明是無法抽取合適試題的區域內反復選題,進行大量的無效操作進入死循環,最終導致組卷失敗。回溯試探法組卷成功率高,但它是以犧牲大量的時間為代價的,由于本軟件只是個小型的單科考試組卷系統,結構簡單,出題量也較少,所以本系統選擇相對簡單,組卷成功率較好的回溯試探法進行組卷。

          4.3.2 回溯試探法的應用

          回溯算法也叫試探法,它是一種系統地搜索問題的解的方法。回溯算法的基本思想是:從一條路往前走,能進則進,不能進則退回來,換一條路再試。

          用回溯算法解決問題的一般步驟為:

          1、定義一個解空間,它包含問題的解;

          2、利用適于搜索的方法組織解空間;

          3、利用深度優先法搜索解空間;

          4、利用限界函數避免移動到不可能產生解的子空間。

          問題的解空間通常是在搜索問題的解的過程中動態產生的,這是回溯算法的一個重要特性。

          回溯法是一個既帶有系統性又帶有跳躍性的的搜索算法。它在包含問題的所有解的解空間樹中,按照深度優先的策略,從根結點出發搜索解空間樹。算法搜索至解空間樹的任一結點時,總是先判斷該結點是否肯定不包含問題的解。如果肯定不包含,則跳過對以該結點為根的子樹的系統搜索,逐層向其祖先結點回溯。否則,進入該子樹,繼續按深度優先的策略進行搜索。回溯法在用來求問題的所有解時,要回溯到根,且根結點的所有子樹都已被搜索遍才結束。而回溯法在用來求問題的任一解時,只要搜索到問題的一個解就可以結束。

          搜索:全面訪問所有可能的情況,分為兩種:不考慮給定問題的特有性質,按事先頂好的順序,依次運用規則,即盲目搜索的方法;另一種則考慮問題給定的特有性質,選用合適的規則,提高搜索的效率,即啟發式的搜索。

          本系統使用的是回溯法的啟發式搜索,以試題題型,試題分值和選題數量為約束條件進行隨機搜索,而把設置的試卷總分數作為一個解空間。如果各題型分值之和等于用戶設置的試卷總分數,則產生一個有效解,系統生成一份試卷,試題的題型,編號,分值等信息儲存進試題庫表中。通過系統的預覽試卷功能,系統通過所存信息搜索數據庫,獲取試題內容,并輸入Word文檔中組成一份完整試卷。

          4.4 自動組卷

          自動組卷是時系統根據用戶要求,隨機選取試題,組成一份完整的試卷。本系統使用的是回溯探取法隨機選題。其主要過程如下:

          (1)用戶輸入選題要求,如各題型數量,題型分值和題型難度,并設置試卷總分數。

          (2)初始化隨機數生成器。

          (3)系統根據題型數量和題型難度要求在各題型表中隨機抽取試題,將抽取到的試題的“編號”、“試題類型”、“分值”等信息存入臨時表LSSJ中,并對其進行排序和比較,如有重復則返回繼續搜索,防止試題被重復選取,一直到抽取試題數等于用戶設置的各題型的試題數量。

          (4)系統自動判斷用戶設置的試卷總分值與試題總分值是否相等,是則生成試卷,并將試題信息“編號”、“分值”、“難度”等信息存入數據庫表SJT中,且生成“試卷代號”、“試卷創建者”、并判斷“試卷難度”,存入數據庫表SJ中。否則試卷生成失敗,并清空臨時表SJ中所有信息。

          (5)設置試卷模板。

          (6)預覽試卷,系統根據數據庫表SJT中信息搜索題庫試題內容,并按設置好的試卷模板導入Word中,生成一份完整的試卷,并以*.doc文件的形式保存。

          自動生成試卷的流程如圖4-9所示。

          4.5 手動組卷

          由于自動生成的試卷,對于試卷知識覆蓋面的問題不好控制,為了解決這各問題,所以本軟件增加了另一種組卷方式,也就是手動生成試卷。此組卷方式的優點在于,系統將各題型的試題具體的分到了此科考試的具體章節和知識點。用戶可以根據具體章節和知識點瀏覽此知識點下的各試題,并可以選擇加入試卷,組成一份知識覆蓋面廣的試卷。其主要組卷過程如下:

          (1)用戶選擇試題題型,題型分值,試題數量和知識點,并設置試卷總分值,系統根據用戶選擇的題型和知識點顯示所有試題。

          (2)用戶選擇試題,試題的“編號”、“難度”、“題型”等信息存入臨時表LSST中,如果重復選題,則系統提示“您已選擇此試題!”,否則系統提示“試題添加成功!”。

          (3)生成試卷,系統判斷用戶設置分數是否與試題總分數相等,是則生成一份完整的試卷,并將試題的“編號”、“難度”、“分值”、“類型”等信息存入數據庫表SJT中。且生成“試卷代號、”試卷創建者“,并判斷”試卷難度“,存入數據庫表SJ中。否則試卷生成失敗,提示用戶“您生成的試卷分值與設置的試卷分值不等,試卷生成失敗!”。

          (4)設置試卷模板。

          (5)預覽試卷,系統根據數據庫表SJT中信息搜索題庫試題內容,并按設置好的試卷模板導入Word中,生成一份完整的試卷,并以*.doc文件的形式保存。

         SHAPE  \* MERGEFORMAT

        圖4-9  自動生成試卷流程圖

        手動生成試卷的流程如圖4-10所示。

         SHAPE  \* MERGEFORMAT

        圖4-10  手動生成試卷流程圖

          4.6 抽取現有試卷

          為了讓用戶能很方便的已生成的試卷,本系統增加了抽取現有試卷這個功能模塊。用戶能通過這個模塊能很方便的對現有試卷進行刪除和預覽,同時也能預覽用戶所選擇的試卷的答案。其主要過程如下:

          (1)用戶進入抽取現有試卷界面,系統自動搜索數據庫表SJ中信息,顯示現有試卷的“代號”,“試卷創建者”,“試卷難度”。

          (2)用戶選擇一份已有試卷,系統自動從數據庫表SJT中搜索該試卷試題的“編號”, “分值”, “難度”。

          (3)預覽試卷,系統根據數據庫表SJT中信息搜索題庫試題內容,并按設置好的試卷模板導入Word中,生成一份完整的試卷,并以*.doc文件的形式打開。

          (4)保存答案,系統根據數據庫表SJT中信息搜索題庫試題答案,并按試卷模板以 *.doc文件的形式打開。

          (5)刪除試卷,系統刪除試卷在數據庫表SJT中的信息,系統顯示“刪除試卷成功”。

          抽取現有試卷算法的具體流程可用圖4-11直觀說明。

         SHAPE  \* MERGEFORMAT

        圖4-11  抽取現有試卷流程圖


          5 關鍵技術與系統實現

          本系統是一個試卷生成管理系統,重點在于組卷,所以主要是對關于試卷生成的實現的說明。本系統包括抽取現有試卷,自動生成試卷和手動生成試卷三大功能。

          5.1 登錄模塊

          登錄界面是用戶最先看到的系統的界面,所以直觀上給用戶的感覺很重要,所以做一個好的界面,提高軟件的親和力。本管理系統登錄界面如圖5-1所示。

        登陸功能實現的核心代碼如下。

        圖5-1  系統登陸界面

        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

        如果輸入的用戶名和密碼正確,將對用戶的權限進行判斷,如果是管理員就進入到管理員模式;如果是教務管理員就進入到教務管理員模式;如果是教師就進入到教師模式;如果用戶沒有權限,則會警告。具體代碼如下:

                If Trim(rs.Fields(1)) = Trim(txtPassword.Text) Then

                ''判斷權限

                    UserPrivs = ""

                    If Trim(rs.Fields(2)) = "管理員" Then ''管理員權限

                        IsUserMode = 1

                    ElseIf Trim(rs.Fields(2)) = "教務管理員" Then ''教務管理員權限

                        IsUserMode = 2

                        ElseIf Trim(rs.Fields(2)) = "教師" Then ''教師權限

                        IsUserMode = 3    

                    Else ''無權

                        IsUserMode = 0

                        MsgBox "你沒有權限!", 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 ''三次錯誤,自動退出程序

        登錄系統后進入主界面如圖5-2所示。

        圖5-2  軟件主界面

        軟件主界面是各個功能模塊的調用接口,主要有以下功能:

        (1)題庫已有試卷:點擊后進入抽取現有試卷的功能界面。

        (2)自動生成試卷:點擊后進入自動生成試卷的功能界面。

        (3)手動生成試卷:點擊后進入手動生成試卷界面。

        (4)題庫錄入: 點擊后進入試題錄入界面。

        (5)數據備份:點擊后自動備份數據庫。

        (6)關于菜單:對于本系統版權的說明。

          5.2 試卷生成管理

          試卷生成管理分為三個部分:題庫已有試卷、自動生成試卷和手動生成試卷。下面詳細討論各部分功能的實現。

        1.       題庫已有試卷

        如果題庫中已經存在試卷,可以直接從已經存在的試卷中抽取試卷,包括如下操作:

        v        試卷預覽:通過WORD文檔打開試卷,可以瀏覽已有試卷模版。

        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.       自動生成試卷

        自動生成試卷界面下可進行如下操作:

        v        生成試卷:系統根據用戶要求隨機選題,生成試卷。

        v        預覽試卷:通過WORD文檔打開剛生成試卷,可以瀏覽生成試卷模版。

        v        預覽答案:通過WORD文檔打開剛生成試卷答案,可以瀏覽試卷答案。

        v        保存試卷:保存生成試卷“代號”、“創建者”、“難易度”等信息。

        其界面如圖5-4所示。

        圖5-4  自動生成試卷界面

        實現該功能的核心代碼如下:

        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 "程序執行出錯,錯誤信息如下:" & 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 '保存試卷,調用函數

        MsgBox "保存成功", vbInformation

        Else

        MsgBox "您設計的試卷與實際總分不合,請修改", vbCritical

        End If

        4.       生成試卷的模版

        生成的試卷必須按照定義的模板保存,圖5-6給出了定義的模板示意。

        圖5-6  生成試卷模版

          5.3 系統中的關鍵技術實現

          5.3.1 顯示教材章節信息供用戶使用

          為了顯示教材章節信息供用戶使用,在數據庫里章節的存放是沒有規則也即它們的順序不一定按照真實書本的章節順序來存儲的。但是在顯示章節信息的時候必須按照書本的章節順序來顯示。所以特別設置如下的數據類型:

                 Dim Sql As String;

        Dim rs As String;

        論文選擇了TreeView控件來顯示章節,因為這個控件用起來比較方便。其具體算法代碼如下:

        If Not TreeView1.SelectedItem Is Nothing Then

              '只響應葉節點(沒有孩子)

              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 手動生成試卷時所選試題的臨時保存處理

        手動生成試卷時要不斷的將用戶選擇的題目臨時存儲起來,由于記錄的信息不是很多,論文用數組把添加進去的試題的題號和類型存儲起來,后面添加的時候檢查在數組中是否存在,如果存在就證明已經添加過了。

        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 “您已經選擇了此題!”, vbCritical

        5.3.3自動生成試卷時生成一個覆蓋知識點廣且試題不重復的試卷處理

        自動生成試卷時如何生成一個覆蓋知識點廣且試題不重復的試卷,處理該問題的關鍵算法在于如何生成一個不重復的隨機數序列。產生不重復隨機數算法如下:

        (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、黑盒測試

          黑盒測試也稱功能測試或數據驅動測試,它是在已知產品所應具有的功能,通過測試來檢測每個功能是否都能正常使用,在測試時,把程序看作一個不能打開的黑盆子,在完全不考慮程序內部結構和內部特性的情況下,測試者在程序接口進行測試,它只檢查程序功能是否按照需求規格說明書的規定正常使用,程序是否能適當地接收輸入數鋸而產生正確的輸出信息,并且保持外部信息(如數據庫或文件)的完整性。黑盒測試方法主要有等價類劃分、邊值分析、因—果圖、錯誤推測等,主要用于軟件確認測試。 “黑盒”法著眼于程序外部結構、不考慮內部結構、針對軟件界面和軟件功能進行測試。“黑盒”法是窮舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程序中所有的錯誤。實際上測試情況有無窮多個,人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進行測試。
            2、白盒測試
          白盒測試也稱結構測試或邏輯驅動測試,它是知道產品內部工作過程,可通過測試來檢測產品內部動作是否按照規格說明書的規定正常進行,按照程序內部的結構測試程序,程序中的每條通路是否都有能按預定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅動、基路測試等,主要用于軟件驗證。

          6.2 測試配置

        1、硬件配置要求:

        CPU:P = 2 \* ROMAN II200以上。

        內存:256MB以上。

        硬盤:2.1GB以上(可用空間最好在160MB以上)。

        打印機:推薦EPSON  LQ-1600K = 2 \* ROMAN II

        2、軟件配置要求:

        WINDOWS2000/xp中文版操作系統。

        本系統運行:首先啟動Windows2000/XP,將本系統拷貝到硬盤相應地目錄下,用附加數據庫加載上數據,運行“EXE文件”即可。

          6.3 測試目的

          測試在軟件開發過程中一直都是備受關注的,即使在傳統的軟件工程中,也有一個明確、獨立的測試階段。隨著軟件危機的頻頻出現以及人們對于軟件本質的進一步認識,測試的地位得到了前所未有的提高。測試已經不僅僅局限于軟件開發中的一個階段,它已經開始貫穿于整個軟件開發過程,人們已經開始認識到:測試開始的時間越早,測試執行的越頻繁,所帶來的整個軟件開發的下降就會越多。Extreme Programming更是把測試推到了極限的位置,一切軟件開發活動都要從首先編寫測試代碼開始。

          6.4 測試過程

          本系統各功能已經了解清楚,所以對其進行黑盒測試。黑盒測試主要是對軟件進行功能測試,它是在已知產品所應具有的功能,通過測試來檢測每個功能是否都能正常使用。

          6.4.1 測試抽取現有試卷模塊

        表6.1  抽取現有試卷模塊用例表

        第一個用例是測試系統的預覽試卷功能,其測試結果為如圖6-2所示。

        圖6-2  使用第一個用例后

        第二個用例是測試系統的刪除試卷功能,其測試前為如圖6-3,測試結果為圖6-4所示。其過程顯示刪除試卷功能運行正常。

        圖6-3  使用第二個用例前

        圖6-4  使用第二個用例后

        通過測試用例可知抽取現有試卷模塊的刪除試卷和試卷預覽功能運行正常。

        6.4.2 測試自動生成試卷模塊

        表6.2  自動抽取試卷模塊用例

        圖6-5  使用第一個用例后

        圖6-6  使用第二個用例后

        通過測試用例可知,試題的總分要與用戶設置的試題總分要相等才能生成試卷,否則提示“你設計的試卷與試題總分不合”,生成試卷失敗。

        6.4.3 測試手動生成試卷模塊

        表6.3  手動生成試卷模塊

        第一次添加試題后,測試結果如圖6-7所示。

        圖6-7  使用第一個測試用例后

        第二次添加同一試題后,測試結果如圖6-8所示。

        圖6-8 使用第二個測試用例后

          通過測試用例可知,手動生成試卷模塊中,如果用戶重復選擇同一題,則系統提示“您已經選擇了此題”,添加試題失敗,避免同一題被多次選入同一份試卷中。

          由對各個模塊的功能測試可知,本系統各種功能都能正常使用,對于各數據的關系也處理的很準確,具有了一定的實用性。


          結束語

          本軟件的設計目的是在題庫建立維護和試卷生成方面為教學單位和人員提供方便和幫助。通過這幾個月的畢業設計,我學到很多以前沒有學到的VB開發技術,在軟件工程學上更是取得了很大的進步。經過大量的測試和試用,作者深信本軟件達到了方便和實用的設計目的,并在軟件界面和易用實用等方面有著獨到之處。

          總的來說,在這次的畢業設計種遇到了不少的問題,大部分得到了很好的解決,但也有少部分遺留的問題。

          首先便是調研的不充分。由于以前根本未曾接觸過軟件的整體開發設計,所以在前期的調研中相當不充分,開題也有些盲目,以為把屬性和表寫得越多越好,這個問題越到后來越嚴種,而且因為客觀的原因耽誤了進度,因而對開題做了修改。

          其次是軟件的編程問題,由于以前對VB只是了解并不能夠靈活運用,所以在畢設期間進行了苦讀,終于可以基本掌握了常用控件的用法和語句編程。

          然后就是從一而終的問題了,在開發過程中我遇到了許許多多的問題,很多地方都不明白,經常有打退堂鼓的想法,我經常的請教同學,最后的成果雖然不很完美,但我盡力了,并有所收獲。

          雖然軟件基本達到設計要求并且達到同行的先進水平,但由于作者水平有限,軟件存在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), 機械工業出版社,2001

        [3].林陳雷, 郭安源, 葛曉東, 《信息化系統開發實例導航》 , 人民郵電出版社,2003

        [4].張立科,《數據庫開發技術與工程實踐》,人民郵電出版社,2004

        [5].張紅軍, 王虹 等 《Visual basic 6.0 中文版高級應用與開發指南》, 人民郵電出版社, 2002

        [6].伍俊良 主編 等 《VB課程設計與系統開發案例》清華大學出版社, 2002

        [7].姚巍,《Visual Basic數據庫開發及工程實例》,人民郵電出版社,2003

        [8].求是科技,《Visual Basic 6.0 數據庫開發技術與工程實踐》,人民郵電出版社,2004

        [9].劉瑞新,汪遠征,《Visual Basic程序設計教程》,機械工業出版社,2001

        [10].劉萌,周學明,郭安源,《Visual Basic企業辦公系統開發實例導航》,人民郵電出版社,2003

        [11].孟小峰,王珊,《數據庫系統導論》,機械工業出版社,2000

        [12].張海藩,《軟件工程導論》,清華大學出版社,2003               

        【試卷生成系統】相關文章:

        試卷智能生成系統設計vb+SQL03-08

        基于Delphi的試卷智能生成系統設計Delphi+SQL11-23

        學生成績管理系統的開發03-17

        學生成績管理系統的設計與實現03-18

        談學生成績管理系統的開發03-20

        一種支持動態網站生成的模型與系統03-04

        多媒體課件的生成與再編輯系統研究與設計03-19

        研究草地火災生成原因及火管理系統的應用03-18

        在質疑中生成智慧03-08

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲中文字幕一区在线播放 | 日本十八禁免费看污网站 | 日本天码AⅤ片在线电影 | 中文字幕日本免费视片 | 偷偷做久久久久免费网站 | 中文字幕日韩精品欧美一区久久 |