畢業(yè)設計---基于web版的試題庫管理及組卷系統(tǒng)_第1頁
已閱讀1頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  1 引言</b></p><p>  網絡化教育代表了教育改革的一個發(fā)展方向,已經成為現(xiàn)代教育的一個特征,并對教育的發(fā)展形成新的推動力。隨著Internet/Intranet的迅速發(fā)展和廣泛普及,建立在其上的遠程教育成為現(xiàn)代教育技術未來發(fā)展方向之一,考試測試作為遠程教育的一個子系統(tǒng)也成為一個重要的研究領域?,F(xiàn)代遠程教育作為一種新的教學手段已經開始進入我們的生活

2、,正在給傳統(tǒng)教育模式帶來新的變革,并對教育的發(fā)展形成新的推動力。</p><p>  Internet技術的發(fā)展使得考試的技術手段和載體發(fā)生了革命性的變化,Internet的開放性、分布性的特點和基于Internet的巨大的計算能力使得考試突破了時間和空間的限制?;贗nternet的考試系統(tǒng)正成為人們的研究熱點之一。與傳統(tǒng)考試模式相比,網上考試具有無可比擬的優(yōu)越性,它可以將傳統(tǒng)考試過程中的試卷組織、審定印制、傳

3、送收集、登記發(fā)放、評判歸檔各個環(huán)節(jié)縮小到一至兩個環(huán)節(jié),幾乎屏蔽了所有人工直接干預考試活動的可能性,不但能夠節(jié)約大量的時日、人力、物力與財力,而且還可以大幅度提高考試成績的客觀性和公正性。</p><p>  網上考試系統(tǒng)課題產生的背景是當今教育信息化的趨勢及我國高校教育信息化系統(tǒng)的建設,目的是充分利用學?,F(xiàn)有的計算機軟、硬件資源和網絡資源實現(xiàn)無紙化考試以避免傳統(tǒng)手工考試的不足。與傳統(tǒng)考試模式相比,網上考試滲入了更

4、多的技術環(huán)節(jié),對實現(xiàn)安全性的途徑、方法也提出了更高的技術要求。通過Internet/Intranet來實現(xiàn)網上考試,是現(xiàn)代教育技術的一個具體實現(xiàn),具有很重要的現(xiàn)實意義。可以實現(xiàn)教考分離以及考務工作的全自動化管理,可以有效利用校園網的軟硬件資源,使其發(fā)揮最大效力,更好的為學校的教學、科研、管理服務,可以大規(guī)模的實行考試,實現(xiàn)考試的客觀、公證性,自動化組卷、閱卷可以減輕教師的工作強度。傳統(tǒng)考試要求老師刻試卷、印試卷、安排考試、監(jiān)考、收集試卷

5、、評改試卷、講評試卷和分析試卷。這是一個漫長而復雜的過程,已經越來越不適應現(xiàn)代教學的需要。網絡考試系統(tǒng)是傳統(tǒng)考場的延伸,它可以利用網絡的無限廣闊空間,隨時隨地的對學生進行考試,加上Web數據庫技術的利用,大大簡化了傳統(tǒng)考試的過程。</p><p>  本系統(tǒng)以Internet為平臺,研究了基于Web考試系統(tǒng)的設計與實現(xiàn),包括系統(tǒng)需求分析和系統(tǒng)功能設計以及數據庫設計。重點闡述了試題庫管理模塊、試卷管理模塊、在線練習

6、模塊的設計。特別是試卷管理模塊中的自動組卷功能常用的算法進行了比較。最后選擇簡單產生隨機數的方法來隨機生成試題。</p><p><b>  2 系統(tǒng)需求分析</b></p><p>  2.1 國內外研究現(xiàn)狀</p><p>  針對傳統(tǒng)紙面化考試的種種缺陷,目前在國內外就網絡化考試系統(tǒng)在理論研究和技術實踐方面的探索,大體經歷的三個階段發(fā)

7、展:</p><p>  一是單機化考試,即基于單機的計算機考試系統(tǒng),單機化考試,考前逐機安裝考試系統(tǒng),考后,逐機手工閱卷,用軟盤回收成績,然后將成績匯總上報。在回收過程中一旦軟盤或軟驅發(fā)生故障則需要換盤或修復軟驅后重新回收。這種“半手工半機器”的單機化考試,更沒有充分利用網絡的優(yōu)點。在當今學校規(guī)模不斷擴大,參加考試的學生不斷增加的情況下,單機化考試的考務工作量越來越重。</p><p>

8、  二是C/S架構下的網絡化考試,這是一種基于局域網的考試,典型的例子是美國ATA公司研發(fā)的“ATA考試系統(tǒng)”,它用于考試的機器分為服務器(Server)和客戶機(Client)兩種,優(yōu)點是作到了對客戶機的靈活控制和試卷的自動回收,缺點是需要分別開發(fā)和安裝相應的考試服務系統(tǒng)和考試客戶系統(tǒng),在這點上與單機化考試的考前準備工作量相比是有增無減。</p><p>  三是B/S架構下的網絡化考試,這是一種基于Web的網

9、絡化考試,目前應用比較廣泛,如清華大學的“清華網絡學堂”、“清華在線教育”等網絡教學平臺中都采用了這種考試方式,以適應和促進網絡教學和遠程教育。它將軟件、試題、成績等全部存放在服務器上,客戶機只要是能上網的微機即可;它突破時空限制,可在任何時間、任何能夠上網的地點進行遠程考試和考務工作。它可自動生成和打印試卷;它能實現(xiàn)中途換機等意外情況下的繼續(xù)考試;考試結束時可迅速給出客觀題考試成績,主觀題部分也是以網上閱卷的方式進行并實時提交成績。這

10、種閱卷給了考生最大的公平感。這些都使得網絡化考試比傳統(tǒng)的紙面考試和單機化考試具有無以比擬的效率和公平上的優(yōu)越性,是現(xiàn)代化考試發(fā)展的方向。</p><p>  2.2 本系統(tǒng)的優(yōu)點</p><p>  (1)可以創(chuàng)立電子試題庫,方便地實現(xiàn)試題的數字化管理。</p><p>  所謂題庫就是試題的倉庫,是把許多題目集合到一起,供試卷編制者隨時查詢和使用的集合。目前我國

11、廣大教育工作者的試題管理工作仍然停留在手工操作的低水平上,程式不外乎于先把試題抄寫到卡片紙上,再分別放置于不同的試題柜中,不僅復制極其困難,而且更新、查找也十分麻煩,效率極其低下。在先進理論指導下的使用計算機管理試題的電子題庫,具有科學、高效、經濟、靈活、方便等顯著特點,為題目的保存、分類和檢索提供了便利,為編制試卷提供了高效率和低成本的手段。電子題庫是網絡考試系統(tǒng)的重要組成部分,也是考試系統(tǒng)中最具有特色和實用價值的模塊之一。</

12、p><p>  (2)可以按照科學的策略智能組卷,從而提高出卷效率。</p><p>  網絡考試系統(tǒng)以電子試題庫為依托,可以按照系統(tǒng)制定的組卷策略自動的抽題成卷,極大的提高了出卷效率。為一些面向社會開放的常年考場,提供了海量試卷資源的有力支持。也可以被廣大教師用來輔助教學和測驗。</p><p>  (3)可以具有操作性和交互性。</p><p&g

13、t;  計算機考試系統(tǒng)與傳統(tǒng)紙上考試相比,有一個顯著的優(yōu)點和特點就是具有操作性和交互性??梢愿玫摹霸O置一定的情景讓學生表現(xiàn),以此衡量學生的心理品質”。如計算機應用技能的考試等,使用計算機模擬就具有紙面考試無法比擬的效果。計算機考試系統(tǒng)可以根據學生的反應,對試題進行調整和反饋,使一些非經典的測量理論。能夠在實踐中得以實現(xiàn),發(fā)揮出它們的優(yōu)點和長處。而網絡化考試很好地繼承了這個優(yōu)點。</p><p>  (4)使考試

14、和判卷更具規(guī)范性和合理性。</p><p>  網絡考試系統(tǒng)使用計算機系統(tǒng)來進行考試和自動判卷。具有更好的規(guī)范性和合理性。試題的呈現(xiàn)和判卷的標準都是嚴格統(tǒng)一的,一般不會發(fā)生學生忘記書寫姓名,答題卡填寫方法不正確或錯位等意外丟分情況。學生答題過程中,由于系統(tǒng)限制也必將更加規(guī)范,不會出現(xiàn)筆試中經常出現(xiàn)的由于學生沒有嚴格按照答題要求做,判卷時被強行扣分的事情。判卷由系統(tǒng)自動完成,極大的提高了準確性,防止了人工判卷時經常

15、出現(xiàn)的錯判、漏判和分數計算錯誤的情況。使考試更加公正合理,具有權威性。</p><p>  (5)實現(xiàn)自動判卷和試卷的有效保存。</p><p>  如果說考試使教師教學過程中重要工作之一的話,那么判卷又是教師在考試實施過程中最重要和最煩瑣的工作之一。判卷有兩個基本的要求,那就是快速和準確。學生希望在最短的時間內知道自己準確的考試成績,在集體中的位置知道問題出現(xiàn)的所在和應該努力的方向。這也

16、是考試教育功能的重要體現(xiàn)。如果判卷越慢這種對學生的反饋和激勵的效果就會越小,達不到原有的考試目的。快速和準確對傳統(tǒng)的教師手工判卷來說是一對矛盾,加重了教師的工作負擔。而使用考試系統(tǒng)的自動判卷功能,能很好的解決這些問題。甚至在學生考試完成后,他就能馬上看到自己的成績。試卷的保存工作很好解決,它可以在數數據庫中直接保存試卷內容,還可以把試卷的內容以Word文檔的形式保存成Word文件,以便于下次調閱試卷。</p><p&

17、gt;  2.3 可行性分析</p><p>  可行性分析也稱為可行性研究,即是在系統(tǒng)調查的基礎上,針對新系統(tǒng)的開發(fā)是否具備必要性和可能性,對新系統(tǒng)的開發(fā)從技術、經濟、社會的方面進行分析和研究,以避免投資失誤,保證新系統(tǒng)的開發(fā)成功??尚行匝芯康哪康木褪怯米钚〉拇鷥r在盡可能短的時間內確定問題是否能夠解決。該系統(tǒng)的可行性分析包括以下幾個方面的內容。</p><p><b>  (

18、1)經濟可行性</b></p><p>  主要是對項目的經濟效益進行評價,本系統(tǒng)作為一個畢業(yè)設計,無需開發(fā)經費,對于我們在經濟上是可以接受的。所以本系統(tǒng)在經濟上是可行的。</p><p><b>  (2)技術可行性</b></p><p>  技術上的可行性分析主要分析技術條件是否能順利完成開發(fā)工作,硬、軟件能否滿足開發(fā)者的需要

19、等。試題庫系統(tǒng)及組卷算法需要的各種軟件環(huán)境都已具備,如,開發(fā)用Visual studio .Net 2003,C#語言,IIS服務器,數據庫服務器方面則有SQL Server,均能夠處理大量數據,同時保持數據的完整性并提供許多高級管理功能。其靈活性、安全性和易用性為數據庫編程提供了良好的條件。因此,系統(tǒng)的軟件開發(fā)平臺已成熟可行。</p><p><b>  (3)操作可行性</b></

20、p><p>  目前,大學的校園網路覆蓋了教學區(qū)和學生區(qū)的主要建筑物及部分家屬宿舍,從而滿足校內各學院,各職能部門,各直屬單位上網需求。學校良好的網絡設施為開發(fā)使用無紙化網絡考試系統(tǒng)提供了堅實的基礎。</p><p>  綜上所述,此系統(tǒng)開發(fā)目標已明確,在技術和經濟等方面都可行,并且投入少、見效快。因此系統(tǒng)的開發(fā)是完全可行的。</p><p><b>  3

21、 開發(fā)環(huán)境簡介</b></p><p>  3.1 Visual studio .NET</p><p>  Visual Studio .NET 是一套完整的開發(fā)工具,用于生成 ASP Web 應用程序、XML Web services、桌面應用程序和移動應用程序。Visual Basic .NET、Visual C++ .NET、Visual C#.NET 和 Visua

22、l J#.NET 全都使用相同的集成開發(fā)環(huán)境 (IDE),該環(huán)境允許它們共享工具并有助于創(chuàng)建混合語言解決方案。另外,這些語言利用了.NET Framework 的功能,此框架提供對簡化 ASP Web 應用程序和 XML Web services 開發(fā)的關鍵技術的訪問。</p><p>  ASP.NET是建立在通用語言運行時刻庫(CLR)上的應用程序框架,用來在服務器端創(chuàng)建功能強大的Web應用程序,ASP.NE

23、T提供了幾個超越以前Web開發(fā)模式的優(yōu)點:</p><p><b>  (1)性能強</b></p><p>  ASP.NET是運行在服務器端的編譯后的CLR代碼,它利用提前綁定、即時編譯、本地優(yōu)化和緩存服務來提高性能,性能遠優(yōu)于以往寫的每一行代碼。</p><p>  (2)世界級水平的開發(fā)工具支持</p><p>

24、  在Visual Studio.NET的集成開發(fā)環(huán)境(IDE)中,ASP.NET框架由豐富的工具箱和設計器組成,采用所見即所得的編輯方式。</p><p>  (3)具有伸縮性和擴展性</p><p>  由于ASP.NET基于(CLR),因此,整個.NET平臺強大且富有彈性,可以應用于Web應用程序開發(fā)者.NET框架的類庫、消息以及數據訪問解決方案,都可以緊密地集成到Web。</

25、p><p>  ASP.NET也是語言中立的,因此,可選擇自己最熟悉的語言,如C#,VB,VC++.NET等,或通過幾種語言共同完成一個應用。ASP.NET提供一種良好的擴充結構,允許開發(fā)者在適當的級別“插入”代碼,事實上,使用自己編寫的組件,執(zhí)行自定義驗證或狀態(tài)服務變得十分容易。</p><p><b>  (4)使用更加簡單</b></p><p&

26、gt;  ASP.NET使執(zhí)行日常工作變得容易,如從簡單的表單提交,客戶端驗證到部署站點配置都得到了簡化。此外,CLR簡化了部署,用來管理代碼服務,例如,自動參照和垃圾回收。</p><p><b>  (5)安全性</b></p><p>  內建的Windows驗證每一個應用程序的獨立配置,可以認定應用程序是安全的。</p><p>  W

27、eb服務作為一種新的基于Internet的分布式解決方案,Web服務完全是基于標準的技術,正是采用了上述的技術標準,使得它主要具有如下優(yōu)勢:</p><p>  (a)平臺無關性。正是由于Web服務采用基于XML的SOAP協(xié)議,才使它可以跨平臺操作。</p><p>  (b)通用的通信通道。Web服務運行是以Internet作為其通信機制的。SOAP協(xié)議可以綁定到HTTP協(xié)議上,由于幾乎

28、所有的防火墻都允許HTTP通過,因此,它可以穿越防火墻,提供一個通用的通信通道。</p><p>  (c)服務器中立性。由于Web服務接口描述使用基于XML的WSDL,并且客戶機和服務器之間的消息傳遞使用SOAP協(xié)議,因此,開發(fā)使用的語言和服務器軟件無關。</p><p>  3.2 Microsoft SQL Server 2000簡介</p><p>  M

29、icrosoft® SQL Server? 2000 由一系列產品組成,不僅能夠滿足最大的數據處理系統(tǒng)和商業(yè) Web 站點存儲數據的需要,還能為個人或小企業(yè)提供易于使用的數據存儲服務。</p><p>  Microsoft® SQL Server? 2000 的特性包括: </p><p>  (1)Internet 集成</p><p>  

30、SQL Server 2000 數據庫引擎提供完整的 XML 支持。它還具有構成最大的 Web 站點的數據存儲組件所需的可伸縮性、可用性和安全功能。SQL Server 2000 程序設計模型與 Windows DNA 構架集成,用以開發(fā) Web 應用程序,并且 SQL Server 2000 支持 English Query 和 Microsoft 搜索服務等功能,在 Web 應用程序中包含了用戶友好的查詢和強大的搜索功能。</

31、p><p>  (2)可伸縮性和可用性 </p><p>  同一個數據庫引擎可以在不同的平臺上使用,從運行 Microsoft Windows® 98 的便攜式電腦,到運行 Microsoft Windows 2000 數據中心版的大型多處理器服務器。SQL Server 2000 企業(yè)版支持聯(lián)合服務器、索引視圖和大型內存支持等功能,使其得以升級到最大Web 站點所需的性能級別。&

32、lt;/p><p>  (3)企業(yè)級數據庫功能 </p><p>  SQL Server 2000關系數據庫引擎支持當今苛刻的數據處理環(huán)境所需的功能。數據庫引擎充分保護數據完整性,同時將管理上千個并發(fā)修改數據庫的用戶的開銷減到最小。SQL Server 2000 分布式查詢使您得以引用來自不同數據源的數據,就好像這些數據是SQL Server 2000數據庫的一部分,同時分布式事務支持充分保

33、護任何分布式數據更新的完整性。復制同樣使您得以維護多個數據復本,同時確保單獨的數據復本保持同步??蓪⒁唤M數據復制到多個移動的脫接用戶,使這些用戶自主地工作,然后將他們所做的修改合并回發(fā)布服務器。</p><p>  (4)易于安裝、部署和使用</p><p>  SQL Server 2000 中包括一系列管理和開發(fā)工具,這些工具可改進在多個站點上安裝、部署、管理和使用 SQL Serve

34、r 的過程。SQL Server 2000 還支持基于標準的、與 Windows DNA 集成的程序設計模型,使 SQL Server 數據庫和數據倉庫的使用成為生成強大的可伸縮系統(tǒng)的無縫部分。這些功能使您得以快速交付SQL Serve應用程序,使客戶只需最少的安裝和管理開銷即可實現(xiàn)這些應用程序。</p><p><b>  (5)數據倉庫</b></p><p> 

35、 SQL Server 2000 中包括析取和分析匯總數據以進行聯(lián)機分析處理 (OLAP) 的工具。SQL Server 中還包括一些工具,可用來直觀地設計數據庫并通過 English Query來分析數據。</p><p><b>  4 系統(tǒng)設計</b></p><p><b>  4.1 概念設計</b></p><

36、p>  根據系統(tǒng)需求分析,可畫出下如圖4-1的ER圖:</p><p><b>  圖4-1 ER圖</b></p><p><b>  4.2 邏輯設計</b></p><p>  將上述ER圖,轉化為如下關系模式: </p><p>  判斷題(編號, 題干, 答案, 所在章節(jié), 難度,

37、 添加時間, 解析)</p><p>  綜合題(編號, 題干, 答案, 所在章節(jié), 難度, 添加時間, 解析)</p><p>  填空題(編號, 題干, 答案, 所在章節(jié), 難度, 添加時間, 解析, 填空數目, 是否有序)</p><p>  單選題(編號, 題干, 答案, 所在章節(jié), 難度, 添加時間, 解析, 選項A, 選項B, 選項C, 選項D)<

38、/p><p>  多選題(編號, 題干, 答案, 所在章節(jié), 難度, 添加時間, 解析, 選項A, 選項B, 選項C, 選項D)</p><p>  用戶(編號, 用戶名, 密碼, 權限, 真實姓名, 性別, 電子郵件, 班級, 添加時間)</p><p>  試卷類型(編號, 類型名稱, 試卷總分,填空題分值, 填空題個數, 判斷題分值, 判斷題個數, 單選題分值,

39、單選題個數, 多選題分值, 多選題個數, 綜合題分值, 綜合題個數)</p><p>  試卷信息(編號, 試卷名稱, 專業(yè)名稱, 類型編號, 考試方式, 考試時間, 擬卷時間, 試卷內容, 試卷保存位置)</p><p><b>  4.3 物理設計</b></p><p>  根據數據庫邏輯設計的數據結構,并結合需求分析的內容,數據庫的物

40、理結構設計如下圖:</p><p>  試卷類型:tk_type 數據表結構如表4-1</p><p>  試題信息表:tk_mess 數據表結構如表4-2</p><p>  計算題:tk_count 數據表結構如表4-3</p><p>  判斷題表:tk_pd 數據表結構如表4-4</p><p>  填空題表:

41、tk_pd 數據表結構如表4-5</p><p>  單選題表:tk_single 數據表結構如表4-6</p><p>  多選題表:tk_multi 數據表結構如表4-7</p><p>  用戶表:tk_user數據表結構如表4-8</p><p><b>  表4-1</b></p><p&g

42、t;<b>  表4-2</b></p><p><b>  表4-3</b></p><p><b>  表4-4</b></p><p><b>  表4-5</b></p><p><b>  表 4-6</b></p&g

43、t;<p><b>  表 4-7</b></p><p><b>  表4-8</b></p><p>  5 系統(tǒng)功能模塊及實現(xiàn)過程</p><p>  本系統(tǒng)主要由登陸注冊模塊、試題庫管理模塊、試卷管理模塊和在線練習模塊組成,其中各模塊還由各種小模塊組成。系統(tǒng)設計時采用類封裝的方法,把系統(tǒng)中各個操作放

44、在類里面處理,這樣有利于編程過程中的代碼復用,提高編程效率,縮小程序的大小。系統(tǒng)中各個模塊的操作類都放在config.cs文件中,這個文件中還包含對數據庫的連接類,它在這里提供一個通用的數據庫連接方法,這樣有利于程序的移植和對數據庫訪問的高效性。系統(tǒng)對數據庫的連接字符串是放在Web.config文件中的,下面的是連接數據庫的方法:</p><p>  <appSettings></p>

45、<p>  <add key="con" value="workstation id=WOLF;packet size=4096;user id=sa;pwd=111;data source=wolf;initial catalog=exam;" /></p><p>  </appSettings></p><p>

46、;  5.1 登陸注冊模塊</p><p>  登陸注冊模塊由一個登陸頁面和一個注冊頁面組成。登陸頁面中可以進行學生登陸和管理員登陸,登陸時如果輸入用戶名、密碼和選擇用戶角色,點登陸按鈕就能進行系統(tǒng)登陸。當用戶第一次進入系統(tǒng)時,由于還沒有注冊,是不能直接進行登陸的,這時用戶可以點擊“注冊”按鈕,這時系統(tǒng)轉達到注冊頁面,用戶可以在這里填寫用戶信息進行注冊,值得注意的是這里注冊的用戶只有學生權限,而沒有管理員權限。

47、注冊成功后返回登陸頁面,此時用戶可以通過剛才注冊的賬號和密碼進行登陸。</p><p>  圖5-1登陸頁面 圖5-2 注冊頁面</p><p>  5.2 試題庫管理模塊</p><p>  試題庫管理模塊功能主要由三個子模塊完成,分別是添加試題、修改試題和刪除試題三個模塊。</p><p>  

48、5.2.1 添加試題</p><p>  因為試題庫是由單選題、多選題、判斷題、填空題和綜合題五種類型的題目組成,所以試題庫試題的添加也分成五個添加頁面,分別是“單選題添加”、“多選題添加”、“判斷題添加”、“填空題添加”和“綜合題添加”。圖5-3為單選題添加頁面,在此頁面中,管理員可以通來兩個下拉菜單選擇試題要添加到的章節(jié)和試題的難度,然后在下面相應的文本區(qū)域寫入試題信息,當試題信息填寫完成時,單擊“添加”即

49、可進行試題的添加。此處的添加是一條條記錄的形式向數據庫中寫入試題信息。其他如“多選題添加”、“判斷題添加”和“填空題添加”類似“單選題添加”頁,此處就不給予介紹。</p><p>  圖5-3 添加單選題</p><p>  圖5-4 添加多選題</p><p>  上圖5-4是綜合題添加頁面,這個頁面主要不同其他幾個添加頁面之處在于這里添加了一個形如Word文檔編

50、輯器的控件,這里增加這個控件的主要目的是為了輸入特殊字符和各種表達式。例如各種數學表達式,公式,數學符號等,有這個控件有利于綜合試題信息的添加,使網絡化考試更接近紙面化考試。</p><p>  5.2.2 修改試題</p><p>  同添加一樣,修改試題模模塊也有五個頁面組成。如下圖5-5是單選題修改頁面,在頁面中可以找到一條紅線,紅線的上半部分可以用來確定你要修改試題的位置,換言之

51、,就是能找到所在修改的試題。在兩個下拉列表框中選擇試題所在的章節(jié),和試題的難度,單擊“確定”按鈕,下面就可以顯示出所選章節(jié)和難度的試題總數,并在紅線下方顯示第一題試題信息,可以通過“下一題”和“上一題”按鈕查看下一題或上一題直到末尾,還可在轉到后面的文本框中填寫在轉到第幾題,再點擊“GO”按鈕跳轉相應的試題。</p><p>  在紅線下面的下拉列表框中選擇把試題修改到那個章節(jié)和進行難度調整,在下面各文本框中對試

52、題信進行修改。</p><p>  圖5-5 修改單選題</p><p>  在對試題信息修改之后,務必點擊“修改此題”按鈕,再接著去修改另外一題,在修改試題結束時,務必單擊“修改完成”,這樣就可以保存修改結果。因為系統(tǒng)算法是把滿足條件的試題選出來放入到一個數據表(DataTable)中,當修改完一個試題的信息后點擊修改此題按鈕只是把修改后的信自己寫入到數據表(DataTable)中,下面

53、是他的源代碼:</p><p>  DataRow myrow=mytable.Rows[i];</p><p>  myrow.BeginEdit();//開始修改行中數據</p><p>  myrow["question"]=txtquestion.Text;</p><p>  myrow["help&q

54、uot;]=txthelp.Text;</p><p>  myrow["tkey"]=select.SelectedValue;</p><p>  myrow["addtime"]=DateTime.Now.ToString();</p><p>  myrow["A"]=txtselectA.Text

55、;</p><p>  myrow["B"]=txtselectB.Text;</p><p>  myrow["C"]=txtselectC.Text;</p><p>  myrow["D"]=txtselectD.Text;</p><p>  myrow["chap

56、ter"]=chapter1.SelectedValue;</p><p>  myrow["dif"]=dif1.SelectedValue;</p><p>  myrow.EndEdit();//修改行結束</p><p>  同樣在修改完成后單擊“修改完成”是為了將修改過的數據表(DataTable)中的數據推進到數據庫中,這樣

57、就完成了試題的修改,在沒有點擊修改完成就退出了該頁,那么修改是不成功的。</p><p>  其他如“多選題修改”、“判斷題修改”、“填空題修改”、“綜合題修改”頁面也是同樣的道理,操作步驟也是一樣。</p><p>  5.2.3 刪除試題</p><p>  類似于修改和刪除頁面,這個模塊也由五個頁面組成,分別對填空題、判斷題、單選題,多選題,綜合題進行刪除操

58、作。如下圖5-6是單選題刪除頁面。此頁面中可以通過下拉列表框選擇要刪除的試題所在的章節(jié)和難度,單擊“確定”,下面的表格中顯示出滿足條件的所有單選題。在表格中,能看到試題的一部分信息,如要查看試題詳細信息,點擊“查看”,就可以查看試題的詳細信息。如果要刪除試題,選中要刪除的試題前的單選按鈕,如果要一次刪除多個也可以選中多個單選框,單擊“刪除試題”按鈕,即可對選中試題進行刪除。</p><p>  圖5-6 刪除單選

59、題</p><p>  下面是刪除試題按鈕的操作源代碼:</p><p><b>  int j=0;</b></p><p>  for(i=0;i<DataGrid1.Items.Count;i++)//對數據表中的數據行進行遍歷</p><p><b>  {</b></p>

60、<p>  DataGridItem item=DataGrid1.Items[i];</p><p>  CheckBox select=(CheckBox)item.FindControl("CheckBox1");</p><p>  if(select.Checked)//找到選中行</p><p><b>  {

61、</b></p><p>  DataRow myrow=ds.Tables[0].Rows[i];</p><p>  myrow.Delete();//刪除選中行</p><p><b>  j++;</b></p><p><b>  }</b></p><p&

62、gt;<b>  }</b></p><p><b>  if(j==0)</b></p><p>  config.Alert("請選擇您要刪除的題目!",Page);</p><p>  updatetest delete=new updatetest();</p><p>

63、  delete.desingle(ds.Tables[0]);</p><p>  BindGrid();</p><p>  for(i=0;i<DataGrid1.Items.Count;i++)</p><p><b>  {</b></p><p>  int b=i+1;</p><

64、p>  DataGridItem item=DataGrid1.Items[i];</p><p>  Label num=(Label)item.FindControl("num");</p><p>  num.Text=b.ToString();</p><p><b>  }</b></p>&l

65、t;p>  5.3 試卷管理模塊</p><p>  試卷管理模塊由四個部分組成,分別是添加試卷類型、刪除試卷類型、添加試卷和刪除試卷。</p><p>  5.3.1 添加試卷類型</p><p>  添加試卷類型頁面如下圖5-7,在此頁面中可以添加一個新的試卷類型,一個新的試卷類型由試卷類型名、試卷總分和各個題目的個數及分值組成。試卷類型名不能一樣,即

66、不能輸入與試題庫中一樣的試卷類型名,同時還要保證試卷總分等于各種類型試題個數與分值乘積的總和,如不符系統(tǒng)會提示出錯。沒有的題型可以不填。點擊“添加類型”即完成試卷類型的添加。</p><p><b>  圖5-7 添加試卷</b></p><p>  5.3.2 刪除試卷類型</p><p>  刪除試卷類型操作與刪除試題庫中試題操作相似,參

67、照上面刪除試題操作即可。</p><p>  5.3.3 添加試卷</p><p>  如下圖5-8是生成試卷頁面,首先請閱讀下面組卷說明,然后選擇生成試卷所用的試卷類型,再填寫下面有關試卷的信息,同時保證試卷名稱與試卷庫中的試卷不能同名,否則系統(tǒng)提示出錯。確定信息和試卷類型正確后點擊“確定”按鈕。系統(tǒng)轉到如圖5-9頁面,在此頁面中你可以進一步確定所選擇將要生成試卷的詳細信息,如若不對,

68、可進行修改,然后點擊生成試卷。</p><p>  圖5-8 生成試卷1</p><p>  圖5-9 生成試卷2</p><p>  當點擊生成試卷后,系統(tǒng)將按照組卷算法從試題庫中抽取試題,并把試題顯示出來,如點擊“保存試卷”還能把試卷以Word文檔的形式保存下來,生成試卷頁面如下圖5-10。在該頁面中主要實現(xiàn)的兩個功能是組卷和把試卷寫成Word文檔。</p

69、><p>  圖5-10 顯示試卷</p><p>  組卷的過程是這樣的:按照試卷類型,獲得各種類型試題的數目,試卷的難度是按容易40%,較易30%,較難20%,難10%的比例分配的。按照這個比例,算出每種類型試題的各個難度的題目數。首選建立兩個ArrayList數組arr和selectrow,同時還要建立一個存放滿足條件試題的數據表(例如tktempTb)arr用來存放滿足條件的試題,se

70、lect用來存放隨機產生的行號。在相應的試題庫中選出該難度的試題,并放入到一個數據表中,獲得其數據表總行數rownum通過隨機函數Row=r.Next(rownum);產生隨機行Row,并把Row放入到selectrow中,通過for循環(huán)控制產生題目的個數,每次產生的隨機行數與selectrow中的數據進行比較,如果相同,則重新產生一個隨機行,否則把產生新的數據行加入到結果數據表(tktempTb)中。下面是產生一個難度試題的源代碼:&

71、lt;/p><p>  createtest show=new createtest();</p><p>  tkTb=show.tkdif1().Tables[0];</p><p>  rownum=tkTb.Rows.Count;</p><p>  Row=r.Next(rownum);</p><p>  fo

72、r(int i=dif1;i>0;i--)//dif1是填空題較易題型的個數</p><p><b>  {</b></p><p>  while(true)</p><p><b>  {</b></p><p>  if(!selectrow.Contains(Row))//判斷行Row

73、是否民被選出</p><p><b>  break;</b></p><p>  Row=r.Next(rownum);</p><p><b>  }</b></p><p>  selectrow.Add(Row);</p><p>  DataRow findrow=

74、tkTb.Rows[Row];</p><p>  DataRow addrow=tktempTb.NewRow();</p><p>  addrow["question"]=findrow["question"];</p><p>  addrow["tkey"]=findrow["tkey&

75、quot;];</p><p>  tktempTb.Rows.Add(addrow);//把滿足條件的試題加入到數據表中</p><p><b>  }</b></p><p>  同理,其他類型的題型也按照同樣的方法產生。在所有的試題生成以后,就要把存入數據表中的內容用arr數組來存貯,下面是源代碼:(以產生填空為例)</p>

76、<p>  arr.Add(new PositionData("<tr><td class=tdsize>填空題("+tkscore+"分×"+tknum+"個)</td></tr>"));</p><p>  for(int m=0;m<tktempTb.Rows.Count;

77、m++)//顯示符合要求的填空試題</p><p><b>  {</b></p><p>  int b=m+1;</p><p>  DataRow myrow=tktempTb.Rows[m];</p><p>  arr.Add(new PositionData("<font color=red&

78、gt;"+b.ToString()+"</font>"+"."+myrow["question"].ToString()));</p><p>  arr.Add(new PositionData("<tr><td height=2></td></tr>"));&l

79、t;/p><p><b>  }</b></p><p>  顯示試卷是用Repeater控件示出來的,把存放試題的arr數級做為Repeater控件的數據源,這樣試卷就顯示出來了。</p><p>  在生成試卷的同時,系統(tǒng)還把試卷以Word文檔的形式保存下來。系統(tǒng)寫Word的方式是程序控制的方式。在類CCWordApp.cs中定義了要生成Wor

80、d文檔所要用到的Word宏的函數。寫Word實際上是調用Word宏來實現(xiàn)的。試卷生成時把試卷的保存路徑存入到數據庫,點擊“保存試卷”實際上是跳轉到Word文檔,例如Response.Redirect(docpath);。下面是系統(tǒng)寫Word源代碼:</p><p>  CCWordApp ccw=new CCWordApp();</p><p>  ccw.Open();</p>

81、;<p>  ccw.SetAlignment("Center");</p><p>  ccw.SetFontSize(18);</p><p>  ccw.InsertText(testname);</p><p>  ccw.InsertLineBreak();</p><p>  ccw.SetAli

82、gnment("Center");</p><p>  ccw.SetFontSize(14);</p><p>  ccw.InsertText("專業(yè)名稱:");</p><p>  ccw.InsertText(zhuanyename);</p><p>  ccw.InsertText(&quo

83、t; 考試類型:");</p><p>  ccw.InsertText(testmode);</p><p>  ccw.InsertText(" 考試時間:");</p><p>  ccw.InsertText(testtime);</p><p>  ccw.InsertLineBreak(2);&l

84、t;/p><p>  if(tktempTb.Rows.Count>0)</p><p><b>  {</b></p><p>  ccw.SetFontSize(14);</p><p>  ccw.SetAlignment("Left");</p><p>  ccw.

85、InsertText("填空題("+tkscore+"分"+"×"+tknum+"個)");</p><p>  ccw.InsertLineBreak();</p><p>  for(int i=0;i<tktempTb.Rows.Count;i++)</p><p>

86、;<b>  {</b></p><p>  ccw.SetFontSize(12);</p><p>  ccw.SetAlignment("Left");</p><p>  int b=i+1;</p><p>  DataRow myrow=tktempTb.Rows[i]; cc

87、w.InsertText(b.ToString()+"."+myrow["question"].ToString());</p><p>  ccw.InsertLineBreak();</p><p>  ccw.SetLeftIndent(14);</p><p>  ccw.InsertText(" 答案:&

88、quot;+myrow["tkey"].ToString());</p><p>  ccw.InsertLineBreak();</p><p><b>  }</b></p><p><b>  }</b></p><p>  docpath="";<

89、;/p><p>  docpath="test/"+testname+".doc";</p><p>  ccw.SaveAs(Server.MapPath(docpath));</p><p>  ccw.Quit();</p><p>  5.3.4 刪除試卷</p><p>

90、  刪除試卷操作與刪除試題庫中試題操作相似,參照上面刪除試題操作即可。不同的是刪除試卷不僅要刪除試題庫中的關于選中的某個試卷的記錄,還要刪除在組卷時生成的Word文檔。這里用到了一個文件操作,在引用中添加一個using system.IO,在刪除每一個行時間同時刪除與這個試卷記錄相關的那個Word文件。下面是刪除試卷按鈕的主要代碼:</p><p><b>  int j=0;</b><

91、;/p><p>  for(i=0;i<DataGrid1.Items.Count;i++)</p><p><b>  {</b></p><p>  DataGridItem item=DataGrid1.Items[i];</p><p>  CheckBox select=(CheckBox)item.Find

92、Control("CheckBox1");</p><p>  if(select.Checked)</p><p><b>  {</b></p><p>  DataRow myrow=ds.Tables[0].Rows[i];</p><p>  string docpath=myrow[&qu

93、ot;docpath"].ToString();</p><p>  File.Delete(Server.MapPath(docpath));</p><p>  myrow.Delete();</p><p><b>  j++;</b></p><p><b>  }</b><

94、/p><p><b>  }</b></p><p><b>  if(j==0)</b></p><p>  config.Alert("請選擇您要刪除的題目!",Page);</p><p>  updatetest delete=new updatetest();</p&

95、gt;<p>  delete.detest(ds.Tables[0]);</p><p>  BindGrid();</p><p>  5.4 在線練習模塊</p><p>  在線練習部分分為章節(jié)練習和綜合練習兩個部分。如下圖5-11是章節(jié)練習頁面,在此頁面中用戶可以根據自己的學習情況選擇想練習的章節(jié)、練習的題型、練習難度和題目的個數,再點擊“

96、開始練習”按鈕,系統(tǒng)開始按用戶選擇和輸入的條件生成練習試題。如圖5-12是用戶練習頁面,此頁面中用戶可以進行答題,用戶可以把答案填寫在右邊的答題表中,在用戶答題完成之后用戶可以點擊“顯示答案”,就可以看到參考答案,系統(tǒng)還可以把用戶答案和試題庫中的參考答案進行比較,判斷用戶答案的對錯,并給出標記,有于用戶看到自己的答案情況。</p><p>  圖5-11 章節(jié)在線練習</p><p>  

97、在線練習的試題的生成方式和組卷系統(tǒng)的類似,也是先獲取要選出題的個數,然后利用產生隨機行的方法獲得試題,再把行號加入到一個數組,下次抽取的行號在此數組中就丟棄,如不在就選取該題,這樣也是為了保證抽到的試題是不一樣的,這樣可以保證一份練習題中不會出現(xiàn)相同的題目。</p><p>  圖5-12 章節(jié)在線練習答題</p><p>  綜合練習頁面也和章節(jié)練習相似,在頁面中可以選擇練習的難度,系統(tǒng)

98、再根據設定好的題型生成試題。也可以點擊“查看答案”可以看到該試題的詳細情況,包括試題參考答案和解析。</p><p>  6 系統(tǒng)實現(xiàn)遇到的問題及解決方案</p><p>  在系統(tǒng)實現(xiàn)的過程中遇到了各種各樣的問題,這些問題有些是人為因素的原因,有些是沒有掌握相應的技術方法的原因。下面是系統(tǒng)在實現(xiàn)過程中遇到的一些主要影響系統(tǒng)設計進度的問題:</p><p>  問

99、題1:系統(tǒng)登陸成功時不能提示用戶和用戶沒有權限時不提示的問題。</p><p><b>  解決方案:</b></p><p>  系統(tǒng)在用戶輸入用戶名和密碼之后登陸成功不能提示用戶登陸成功而直接返回首頁,經研究發(fā)現(xiàn)是因為受Response.Redirect("index.aspx");語句的限制只能直接跳轉,后來選擇一種彈出對話框的方法,conf

100、ig.Confirm("登陸成功!","Button2",Page);語句是用來顯示一個登陸成功對話框,點擊“確定”之后返回首頁。Button2的事件是Response.Redirect("index.aspx");。而用戶沒有權限時只能直接返回首頁也是受Response.Redirect("index.aspx");語句的影響,經研究采用一個中間頁面的方法

101、來提示用戶,下圖5-13就是出現(xiàn)錯誤時的頁面。</p><p>  圖5-13 出錯頁面</p><p>  問題2:綜合題添加時因加入了Word文檔編輯器而導致不能進行正常數據庫寫入操作,這主要發(fā)生在綜合題的添加修改。</p><p><b>  解決方案:</b></p><p>  問題現(xiàn)象是從客戶端(txtque

102、stion="<P><FONT face=幼圓 col...")中檢測到有潛在危險的 Request.Form 值,請求驗證過程檢測到有潛在危險的客戶端輸入值,對請求的處理已經中止。該值可能指示危及應用程序安全的嘗試,如跨站點的腳本攻擊。通過在 Page 指令或 配置節(jié)中設置 validateRequest=false 可以禁用請求驗證。但是,在這種情況下,強烈建議應用程序顯式檢查所有輸入。問題的解

103、決辦法是在Web.config文件的<system.web>后面加入<pages validateRequest="false"/>語句。該語句可以禁用請求證,這樣就可以進行正常的數據庫寫入。</p><p>  問題3:修改和刪除試題庫中試題時把修改和刪除后的數據表整體推進到數據庫中的問題。</p><p><b>  解決方案:&l

104、t;/b></p><p>  修改試題庫中的試題是對選中試題形成的數據表的數據行進行修改,當修改完成后,點擊“修改完成”是把修改后的數據表推進到數據庫中,剛開始時實現(xiàn)此功能有很大的困難,主要找不到正確的方法寫進數據庫,后經研究發(fā)現(xiàn),使用編者系統(tǒng)生成的代碼能有效的把數據表推進到數據庫中。因此,把修改后的數據表作為參數傳給類中的函數進行處理,從面把整個修改后的數據表寫入到數據庫中。刪除試題也和修改試題一樣,也

105、是選對數據表中的數據進行刪除數據行的操作,刪除數據行完成之后再把整個數據表推進到數據庫中。</p><p>  問題4:組卷算法實現(xiàn)產生的問題。</p><p><b>  解決方案:</b></p><p>  最初設計組卷算法是這樣設計的:從數據庫中選出滿足用戶輸入條件的試題到一張數據表中(例如tkTb),再用隨機函數產生這個數據表中的隨機

106、行(Row=r.Next(rownum);)(r是隨機函數Random的對象)并把此行加入到另一個數據表中(tktempTb),該表用來保存選出的符合要求的試題,然后再刪除原數據表(tkTb)中的這一行,再重新計算行數,再用隨機函數產生新行,再把新行加入到保存結果的數據表(tktempTb)中。問題是在產生一個數據行之后不能再更新數據表的行數,導致不能產生有效的新的數據行。經研究,采用了一個新的替代方案,方案是這樣的:從數據庫中選出滿足

107、用戶輸入條件的試題到一張數據表中(例如tkTb),再用隨機函數產生這個數據表中的隨機行(Row=r.Next(rownum);),把這個行加入到一個數組中(例如selectrow),再把行中的數據加入到保存結果的數據表(tktempTb)中,再產生新的隨機行,并把此行號跟數組中的行號進行比較,如果數組中有就丟棄,沒有就把這一行加入到數組,并把這一行的數據加入到保存結果的數據表中。這樣就實現(xiàn)在隨機產生試題的問題。</p>&

108、lt;p>  問題5:在對試卷進行保存調用CCWordApp.cs類創(chuàng)建Word類時產生拒絕訪問的問題,主要現(xiàn)象是:ASP.NET 未被授權訪問所請求的資源。</p><p><b>  解決方案:</b></p><p>  請考慮授予 ASP.NET 請求標識訪問此資源的權限。ASP.NET 有一個在應用程序沒有模擬時使用的基進程標識(通常,在 IIS 5

109、上為 {MACHINE}\ASPNET,在 IIS 6 上為網絡服務)。如果應用程序正在通過<identity impersonate="true"/>模擬,則標識將為匿名用戶(通常為 IUSR_MACHINENAME)或經過身份驗證的請求用戶。經研究,只需要在Web.config文件的<system.web>后面加入<identity impersonate="true&qu

110、ot;/>即可解決此問題。</p><p>  以上五個問題是系統(tǒng)實現(xiàn)過程中的幾個關鍵性的問題,也是很有代表性的問題,解決這幾個問題花費了一定的時間。同時在系統(tǒng)的設計過程中還有各式各樣的人為及技術問題,就不詳述。</p><p><b>  7 系統(tǒng)測試</b></p><p><b>  7.1 測試目的</b>

111、;</p><p>  軟件測試是軟件代碼生成后必不可少的一步,軟件測試包括功能代碼的測試、系統(tǒng)功能的完整性測試、性能測試、安全性測試、數據庫的一致性測試等,測試的目的是盡可能多的發(fā)現(xiàn)軟件制作過程中的錯誤及運行時錯誤,通過測試使軟件的錯誤減少,使系統(tǒng)的可靠性進一步提高。</p><p>  7.2 軟件測試內容</p><p>  (1)根據需求分析劃定系統(tǒng)測試的

112、功能范圍,即需求分析中的功能在系統(tǒng)中得到充分體現(xiàn)。</p><p>  (2)分模塊測試軟件的功能,包括軟件的界面要求、功能體現(xiàn)、性能要求、穩(wěn)定性要求、是否達到操作便捷、靈活性要求、安全性要求;各模塊之間的關系是否與需求分析中的一致等。</p><p>  (3)綜合測試,在分塊測試之后,將所有模塊作為一個整體進行測試,測試整個系統(tǒng)的功能和性能,檢驗其是否滿足用戶的需求。</p>

113、;<p><b>  7.3 測試時間</b></p><p>  本系統(tǒng)的測試分為以下幾個階段進行:</p><p>  第一階段:根據需求分析劃定軟件中要測試的功能和性能的范圍,確定測試的內容,測試時間:2006.5.15~2006.5.20。</p><p>  第二階段:分模塊對系統(tǒng)中的各模塊進行測試,對需求分析中各模塊

114、的功能和性能及用戶的特殊需求進行測試,記下各模塊的所有的問題,及時解決。測試時間:2006.5.20~2006.5.21。</p><p>  第三階段:在模塊測試的基礎上將各模塊拼接進行整體功能和性能的測試。測試時間:2006.5.21~2006.5.25。</p><p>  第四階段:綜合測試。測試時間:2006.5.25~2006.5.25。</p><p>

115、;<b>  7.4 測試結果</b></p><p>  測試中出現(xiàn)了一些功能實現(xiàn)上的錯誤,尤其是在單元代碼測試階段,一些功能在特殊情況下實現(xiàn)不了。測試結果為一般。</p><p>  參加測試人員: 黃從建</p><p>  7.4.1 數據測試</p><p>  (1)登陸注冊數據測試,如表7-1</

116、p><p><b>  表7-1</b></p><p>  (2)添加和修改試題庫數據測試,如表7-2</p><p><b>  表7-2</b></p><p>  (3)添加試卷類型和添加試卷數據測試,如表7-3</p><p><b>  表7-3</b

117、></p><p>  (4)在線練習數據測試,如表7-4</p><p><b>  表7-4</b></p><p>  測試結果:通過測試,各數據滿足需求分析的結果。</p><p>  7.4.2 模塊測試</p><p>  模塊測試是對系統(tǒng)各功能模塊的功能是否正常和是否達到需求

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論