版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 1 引言</b></p><p> 網(wǎng)絡(luò)化教育代表了教育改革的一個(gè)發(fā)展方向,已經(jīng)成為現(xiàn)代教育的一個(gè)特征,并對(duì)教育的發(fā)展形成新的推動(dòng)力。隨著Internet/Intranet的迅速發(fā)展和廣泛普及,建立在其上的遠(yuǎn)程教育成為現(xiàn)代教育技術(shù)未來(lái)發(fā)展方向之一,考試測(cè)試作為遠(yuǎn)程教育的一個(gè)子系統(tǒng)也成為一個(gè)重要的研究領(lǐng)域?,F(xiàn)代遠(yuǎn)程教育作為一種新的教學(xué)手段已經(jīng)開(kāi)始進(jìn)入我們的生活
2、,正在給傳統(tǒng)教育模式帶來(lái)新的變革,并對(duì)教育的發(fā)展形成新的推動(dòng)力。</p><p> Internet技術(shù)的發(fā)展使得考試的技術(shù)手段和載體發(fā)生了革命性的變化,Internet的開(kāi)放性、分布性的特點(diǎn)和基于Internet的巨大的計(jì)算能力使得考試突破了時(shí)間和空間的限制?;贗nternet的考試系統(tǒng)正成為人們的研究熱點(diǎn)之一。與傳統(tǒng)考試模式相比,網(wǎng)上考試具有無(wú)可比擬的優(yōu)越性,它可以將傳統(tǒng)考試過(guò)程中的試卷組織、審定印制、傳
3、送收集、登記發(fā)放、評(píng)判歸檔各個(gè)環(huán)節(jié)縮小到一至兩個(gè)環(huán)節(jié),幾乎屏蔽了所有人工直接干預(yù)考試活動(dòng)的可能性,不但能夠節(jié)約大量的時(shí)日、人力、物力與財(cái)力,而且還可以大幅度提高考試成績(jī)的客觀性和公正性。</p><p> 網(wǎng)上考試系統(tǒng)課題產(chǎn)生的背景是當(dāng)今教育信息化的趨勢(shì)及我國(guó)高校教育信息化系統(tǒng)的建設(shè),目的是充分利用學(xué)?,F(xiàn)有的計(jì)算機(jī)軟、硬件資源和網(wǎng)絡(luò)資源實(shí)現(xiàn)無(wú)紙化考試以避免傳統(tǒng)手工考試的不足。與傳統(tǒng)考試模式相比,網(wǎng)上考試滲入了更
4、多的技術(shù)環(huán)節(jié),對(duì)實(shí)現(xiàn)安全性的途徑、方法也提出了更高的技術(shù)要求。通過(guò)Internet/Intranet來(lái)實(shí)現(xiàn)網(wǎng)上考試,是現(xiàn)代教育技術(shù)的一個(gè)具體實(shí)現(xiàn),具有很重要的現(xiàn)實(shí)意義??梢詫?shí)現(xiàn)教考分離以及考務(wù)工作的全自動(dòng)化管理,可以有效利用校園網(wǎng)的軟硬件資源,使其發(fā)揮最大效力,更好的為學(xué)校的教學(xué)、科研、管理服務(wù),可以大規(guī)模的實(shí)行考試,實(shí)現(xiàn)考試的客觀、公證性,自動(dòng)化組卷、閱卷可以減輕教師的工作強(qiáng)度。傳統(tǒng)考試要求老師刻試卷、印試卷、安排考試、監(jiān)考、收集試卷
5、、評(píng)改試卷、講評(píng)試卷和分析試卷。這是一個(gè)漫長(zhǎng)而復(fù)雜的過(guò)程,已經(jīng)越來(lái)越不適應(yīng)現(xiàn)代教學(xué)的需要。網(wǎng)絡(luò)考試系統(tǒng)是傳統(tǒng)考場(chǎng)的延伸,它可以利用網(wǎng)絡(luò)的無(wú)限廣闊空間,隨時(shí)隨地的對(duì)學(xué)生進(jìn)行考試,加上Web數(shù)據(jù)庫(kù)技術(shù)的利用,大大簡(jiǎn)化了傳統(tǒng)考試的過(guò)程。</p><p> 本系統(tǒng)以Internet為平臺(tái),研究了基于Web考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),包括系統(tǒng)需求分析和系統(tǒng)功能設(shè)計(jì)以及數(shù)據(jù)庫(kù)設(shè)計(jì)。重點(diǎn)闡述了試題庫(kù)管理模塊、試卷管理模塊、在線練習(xí)
6、模塊的設(shè)計(jì)。特別是試卷管理模塊中的自動(dòng)組卷功能常用的算法進(jìn)行了比較。最后選擇簡(jiǎn)單產(chǎn)生隨機(jī)數(shù)的方法來(lái)隨機(jī)生成試題。</p><p><b> 2 系統(tǒng)需求分析</b></p><p> 2.1 國(guó)內(nèi)外研究現(xiàn)狀</p><p> 針對(duì)傳統(tǒng)紙面化考試的種種缺陷,目前在國(guó)內(nèi)外就網(wǎng)絡(luò)化考試系統(tǒng)在理論研究和技術(shù)實(shí)踐方面的探索,大體經(jīng)歷的三個(gè)階段發(fā)
7、展:</p><p> 一是單機(jī)化考試,即基于單機(jī)的計(jì)算機(jī)考試系統(tǒng),單機(jī)化考試,考前逐機(jī)安裝考試系統(tǒng),考后,逐機(jī)手工閱卷,用軟盤回收成績(jī),然后將成績(jī)匯總上報(bào)。在回收過(guò)程中一旦軟盤或軟驅(qū)發(fā)生故障則需要換盤或修復(fù)軟驅(qū)后重新回收。這種“半手工半機(jī)器”的單機(jī)化考試,更沒(méi)有充分利用網(wǎng)絡(luò)的優(yōu)點(diǎn)。在當(dāng)今學(xué)校規(guī)模不斷擴(kuò)大,參加考試的學(xué)生不斷增加的情況下,單機(jī)化考試的考務(wù)工作量越來(lái)越重。</p><p>
8、 二是C/S架構(gòu)下的網(wǎng)絡(luò)化考試,這是一種基于局域網(wǎng)的考試,典型的例子是美國(guó)ATA公司研發(fā)的“ATA考試系統(tǒng)”,它用于考試的機(jī)器分為服務(wù)器(Server)和客戶機(jī)(Client)兩種,優(yōu)點(diǎn)是作到了對(duì)客戶機(jī)的靈活控制和試卷的自動(dòng)回收,缺點(diǎn)是需要分別開(kāi)發(fā)和安裝相應(yīng)的考試服務(wù)系統(tǒng)和考試客戶系統(tǒng),在這點(diǎn)上與單機(jī)化考試的考前準(zhǔn)備工作量相比是有增無(wú)減。</p><p> 三是B/S架構(gòu)下的網(wǎng)絡(luò)化考試,這是一種基于Web的網(wǎng)
9、絡(luò)化考試,目前應(yīng)用比較廣泛,如清華大學(xué)的“清華網(wǎng)絡(luò)學(xué)堂”、“清華在線教育”等網(wǎng)絡(luò)教學(xué)平臺(tái)中都采用了這種考試方式,以適應(yīng)和促進(jìn)網(wǎng)絡(luò)教學(xué)和遠(yuǎn)程教育。它將軟件、試題、成績(jī)等全部存放在服務(wù)器上,客戶機(jī)只要是能上網(wǎng)的微機(jī)即可;它突破時(shí)空限制,可在任何時(shí)間、任何能夠上網(wǎng)的地點(diǎn)進(jìn)行遠(yuǎn)程考試和考務(wù)工作。它可自動(dòng)生成和打印試卷;它能實(shí)現(xiàn)中途換機(jī)等意外情況下的繼續(xù)考試;考試結(jié)束時(shí)可迅速給出客觀題考試成績(jī),主觀題部分也是以網(wǎng)上閱卷的方式進(jìn)行并實(shí)時(shí)提交成績(jī)。這
10、種閱卷給了考生最大的公平感。這些都使得網(wǎng)絡(luò)化考試比傳統(tǒng)的紙面考試和單機(jī)化考試具有無(wú)以比擬的效率和公平上的優(yōu)越性,是現(xiàn)代化考試發(fā)展的方向。</p><p> 2.2 本系統(tǒng)的優(yōu)點(diǎn)</p><p> (1)可以創(chuàng)立電子試題庫(kù),方便地實(shí)現(xiàn)試題的數(shù)字化管理。</p><p> 所謂題庫(kù)就是試題的倉(cāng)庫(kù),是把許多題目集合到一起,供試卷編制者隨時(shí)查詢和使用的集合。目前我國(guó)
11、廣大教育工作者的試題管理工作仍然停留在手工操作的低水平上,程式不外乎于先把試題抄寫(xiě)到卡片紙上,再分別放置于不同的試題柜中,不僅復(fù)制極其困難,而且更新、查找也十分麻煩,效率極其低下。在先進(jìn)理論指導(dǎo)下的使用計(jì)算機(jī)管理試題的電子題庫(kù),具有科學(xué)、高效、經(jīng)濟(jì)、靈活、方便等顯著特點(diǎn),為題目的保存、分類和檢索提供了便利,為編制試卷提供了高效率和低成本的手段。電子題庫(kù)是網(wǎng)絡(luò)考試系統(tǒng)的重要組成部分,也是考試系統(tǒng)中最具有特色和實(shí)用價(jià)值的模塊之一。</
12、p><p> (2)可以按照科學(xué)的策略智能組卷,從而提高出卷效率。</p><p> 網(wǎng)絡(luò)考試系統(tǒng)以電子試題庫(kù)為依托,可以按照系統(tǒng)制定的組卷策略自動(dòng)的抽題成卷,極大的提高了出卷效率。為一些面向社會(huì)開(kāi)放的常年考場(chǎng),提供了海量試卷資源的有力支持。也可以被廣大教師用來(lái)輔助教學(xué)和測(cè)驗(yàn)。</p><p> (3)可以具有操作性和交互性。</p><p&g
13、t; 計(jì)算機(jī)考試系統(tǒng)與傳統(tǒng)紙上考試相比,有一個(gè)顯著的優(yōu)點(diǎn)和特點(diǎn)就是具有操作性和交互性??梢愿玫摹霸O(shè)置一定的情景讓學(xué)生表現(xiàn),以此衡量學(xué)生的心理品質(zhì)”。如計(jì)算機(jī)應(yīng)用技能的考試等,使用計(jì)算機(jī)模擬就具有紙面考試無(wú)法比擬的效果。計(jì)算機(jī)考試系統(tǒng)可以根據(jù)學(xué)生的反應(yīng),對(duì)試題進(jìn)行調(diào)整和反饋,使一些非經(jīng)典的測(cè)量理論。能夠在實(shí)踐中得以實(shí)現(xiàn),發(fā)揮出它們的優(yōu)點(diǎn)和長(zhǎng)處。而網(wǎng)絡(luò)化考試很好地繼承了這個(gè)優(yōu)點(diǎn)。</p><p> (4)使考試
14、和判卷更具規(guī)范性和合理性。</p><p> 網(wǎng)絡(luò)考試系統(tǒng)使用計(jì)算機(jī)系統(tǒng)來(lái)進(jìn)行考試和自動(dòng)判卷。具有更好的規(guī)范性和合理性。試題的呈現(xiàn)和判卷的標(biāo)準(zhǔn)都是嚴(yán)格統(tǒng)一的,一般不會(huì)發(fā)生學(xué)生忘記書(shū)寫(xiě)姓名,答題卡填寫(xiě)方法不正確或錯(cuò)位等意外丟分情況。學(xué)生答題過(guò)程中,由于系統(tǒng)限制也必將更加規(guī)范,不會(huì)出現(xiàn)筆試中經(jīng)常出現(xiàn)的由于學(xué)生沒(méi)有嚴(yán)格按照答題要求做,判卷時(shí)被強(qiáng)行扣分的事情。判卷由系統(tǒng)自動(dòng)完成,極大的提高了準(zhǔn)確性,防止了人工判卷時(shí)經(jīng)常
15、出現(xiàn)的錯(cuò)判、漏判和分?jǐn)?shù)計(jì)算錯(cuò)誤的情況。使考試更加公正合理,具有權(quán)威性。</p><p> (5)實(shí)現(xiàn)自動(dòng)判卷和試卷的有效保存。</p><p> 如果說(shuō)考試使教師教學(xué)過(guò)程中重要工作之一的話,那么判卷又是教師在考試實(shí)施過(guò)程中最重要和最煩瑣的工作之一。判卷有兩個(gè)基本的要求,那就是快速和準(zhǔn)確。學(xué)生希望在最短的時(shí)間內(nèi)知道自己準(zhǔn)確的考試成績(jī),在集體中的位置知道問(wèn)題出現(xiàn)的所在和應(yīng)該努力的方向。這也
16、是考試教育功能的重要體現(xiàn)。如果判卷越慢這種對(duì)學(xué)生的反饋和激勵(lì)的效果就會(huì)越小,達(dá)不到原有的考試目的。快速和準(zhǔn)確對(duì)傳統(tǒng)的教師手工判卷來(lái)說(shuō)是一對(duì)矛盾,加重了教師的工作負(fù)擔(dān)。而使用考試系統(tǒng)的自動(dòng)判卷功能,能很好的解決這些問(wèn)題。甚至在學(xué)生考試完成后,他就能馬上看到自己的成績(jī)。試卷的保存工作很好解決,它可以在數(shù)數(shù)據(jù)庫(kù)中直接保存試卷內(nèi)容,還可以把試卷的內(nèi)容以Word文檔的形式保存成Word文件,以便于下次調(diào)閱試卷。</p><p&
17、gt; 2.3 可行性分析</p><p> 可行性分析也稱為可行性研究,即是在系統(tǒng)調(diào)查的基礎(chǔ)上,針對(duì)新系統(tǒng)的開(kāi)發(fā)是否具備必要性和可能性,對(duì)新系統(tǒng)的開(kāi)發(fā)從技術(shù)、經(jīng)濟(jì)、社會(huì)的方面進(jìn)行分析和研究,以避免投資失誤,保證新系統(tǒng)的開(kāi)發(fā)成功。可行性研究的目的就是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。該系統(tǒng)的可行性分析包括以下幾個(gè)方面的內(nèi)容。</p><p><b> (
18、1)經(jīng)濟(jì)可行性</b></p><p> 主要是對(duì)項(xiàng)目的經(jīng)濟(jì)效益進(jìn)行評(píng)價(jià),本系統(tǒng)作為一個(gè)畢業(yè)設(shè)計(jì),無(wú)需開(kāi)發(fā)經(jīng)費(fèi),對(duì)于我們?cè)诮?jīng)濟(jì)上是可以接受的。所以本系統(tǒng)在經(jīng)濟(jì)上是可行的。</p><p><b> (2)技術(shù)可行性</b></p><p> 技術(shù)上的可行性分析主要分析技術(shù)條件是否能順利完成開(kāi)發(fā)工作,硬、軟件能否滿足開(kāi)發(fā)者的需要
19、等。試題庫(kù)系統(tǒng)及組卷算法需要的各種軟件環(huán)境都已具備,如,開(kāi)發(fā)用Visual studio .Net 2003,C#語(yǔ)言,IIS服務(wù)器,數(shù)據(jù)庫(kù)服務(wù)器方面則有SQL Server,均能夠處理大量數(shù)據(jù),同時(shí)保持?jǐn)?shù)據(jù)的完整性并提供許多高級(jí)管理功能。其靈活性、安全性和易用性為數(shù)據(jù)庫(kù)編程提供了良好的條件。因此,系統(tǒng)的軟件開(kāi)發(fā)平臺(tái)已成熟可行。</p><p><b> (3)操作可行性</b></
20、p><p> 目前,大學(xué)的校園網(wǎng)路覆蓋了教學(xué)區(qū)和學(xué)生區(qū)的主要建筑物及部分家屬宿舍,從而滿足校內(nèi)各學(xué)院,各職能部門,各直屬單位上網(wǎng)需求。學(xué)校良好的網(wǎng)絡(luò)設(shè)施為開(kāi)發(fā)使用無(wú)紙化網(wǎng)絡(luò)考試系統(tǒng)提供了堅(jiān)實(shí)的基礎(chǔ)。</p><p> 綜上所述,此系統(tǒng)開(kāi)發(fā)目標(biāo)已明確,在技術(shù)和經(jīng)濟(jì)等方面都可行,并且投入少、見(jiàn)效快。因此系統(tǒng)的開(kāi)發(fā)是完全可行的。</p><p><b> 3
21、 開(kāi)發(fā)環(huán)境簡(jiǎn)介</b></p><p> 3.1 Visual studio .NET</p><p> Visual Studio .NET 是一套完整的開(kāi)發(fā)工具,用于生成 ASP Web 應(yīng)用程序、XML Web services、桌面應(yīng)用程序和移動(dòng)應(yīng)用程序。Visual Basic .NET、Visual C++ .NET、Visual C#.NET 和 Visua
22、l J#.NET 全都使用相同的集成開(kāi)發(fā)環(huán)境 (IDE),該環(huán)境允許它們共享工具并有助于創(chuàng)建混合語(yǔ)言解決方案。另外,這些語(yǔ)言利用了.NET Framework 的功能,此框架提供對(duì)簡(jiǎn)化 ASP Web 應(yīng)用程序和 XML Web services 開(kāi)發(fā)的關(guān)鍵技術(shù)的訪問(wèn)。</p><p> ASP.NET是建立在通用語(yǔ)言運(yùn)行時(shí)刻庫(kù)(CLR)上的應(yīng)用程序框架,用來(lái)在服務(wù)器端創(chuàng)建功能強(qiáng)大的Web應(yīng)用程序,ASP.NE
23、T提供了幾個(gè)超越以前Web開(kāi)發(fā)模式的優(yōu)點(diǎn):</p><p><b> (1)性能強(qiáng)</b></p><p> ASP.NET是運(yùn)行在服務(wù)器端的編譯后的CLR代碼,它利用提前綁定、即時(shí)編譯、本地優(yōu)化和緩存服務(wù)來(lái)提高性能,性能遠(yuǎn)優(yōu)于以往寫(xiě)的每一行代碼。</p><p> (2)世界級(jí)水平的開(kāi)發(fā)工具支持</p><p>
24、 在Visual Studio.NET的集成開(kāi)發(fā)環(huán)境(IDE)中,ASP.NET框架由豐富的工具箱和設(shè)計(jì)器組成,采用所見(jiàn)即所得的編輯方式。</p><p> (3)具有伸縮性和擴(kuò)展性</p><p> 由于ASP.NET基于(CLR),因此,整個(gè).NET平臺(tái)強(qiáng)大且富有彈性,可以應(yīng)用于Web應(yīng)用程序開(kāi)發(fā)者.NET框架的類庫(kù)、消息以及數(shù)據(jù)訪問(wèn)解決方案,都可以緊密地集成到Web。</
25、p><p> ASP.NET也是語(yǔ)言中立的,因此,可選擇自己最熟悉的語(yǔ)言,如C#,VB,VC++.NET等,或通過(guò)幾種語(yǔ)言共同完成一個(gè)應(yīng)用。ASP.NET提供一種良好的擴(kuò)充結(jié)構(gòu),允許開(kāi)發(fā)者在適當(dāng)?shù)募?jí)別“插入”代碼,事實(shí)上,使用自己編寫(xiě)的組件,執(zhí)行自定義驗(yàn)證或狀態(tài)服務(wù)變得十分容易。</p><p><b> (4)使用更加簡(jiǎn)單</b></p><p&
26、gt; ASP.NET使執(zhí)行日常工作變得容易,如從簡(jiǎn)單的表單提交,客戶端驗(yàn)證到部署站點(diǎn)配置都得到了簡(jiǎn)化。此外,CLR簡(jiǎn)化了部署,用來(lái)管理代碼服務(wù),例如,自動(dòng)參照和垃圾回收。</p><p><b> (5)安全性</b></p><p> 內(nèi)建的Windows驗(yàn)證每一個(gè)應(yīng)用程序的獨(dú)立配置,可以認(rèn)定應(yīng)用程序是安全的。</p><p> W
27、eb服務(wù)作為一種新的基于Internet的分布式解決方案,Web服務(wù)完全是基于標(biāo)準(zhǔn)的技術(shù),正是采用了上述的技術(shù)標(biāo)準(zhǔn),使得它主要具有如下優(yōu)勢(shì):</p><p> (a)平臺(tái)無(wú)關(guān)性。正是由于Web服務(wù)采用基于XML的SOAP協(xié)議,才使它可以跨平臺(tái)操作。</p><p> (b)通用的通信通道。Web服務(wù)運(yùn)行是以Internet作為其通信機(jī)制的。SOAP協(xié)議可以綁定到HTTP協(xié)議上,由于幾乎
28、所有的防火墻都允許HTTP通過(guò),因此,它可以穿越防火墻,提供一個(gè)通用的通信通道。</p><p> (c)服務(wù)器中立性。由于Web服務(wù)接口描述使用基于XML的WSDL,并且客戶機(jī)和服務(wù)器之間的消息傳遞使用SOAP協(xié)議,因此,開(kāi)發(fā)使用的語(yǔ)言和服務(wù)器軟件無(wú)關(guān)。</p><p> 3.2 Microsoft SQL Server 2000簡(jiǎn)介</p><p> M
29、icrosoft® SQL Server? 2000 由一系列產(chǎn)品組成,不僅能夠滿足最大的數(shù)據(jù)處理系統(tǒng)和商業(yè) Web 站點(diǎn)存儲(chǔ)數(shù)據(jù)的需要,還能為個(gè)人或小企業(yè)提供易于使用的數(shù)據(jù)存儲(chǔ)服務(wù)。</p><p> Microsoft® SQL Server? 2000 的特性包括: </p><p> (1)Internet 集成</p><p>
30、SQL Server 2000 數(shù)據(jù)庫(kù)引擎提供完整的 XML 支持。它還具有構(gòu)成最大的 Web 站點(diǎn)的數(shù)據(jù)存儲(chǔ)組件所需的可伸縮性、可用性和安全功能。SQL Server 2000 程序設(shè)計(jì)模型與 Windows DNA 構(gòu)架集成,用以開(kāi)發(fā) Web 應(yīng)用程序,并且 SQL Server 2000 支持 English Query 和 Microsoft 搜索服務(wù)等功能,在 Web 應(yīng)用程序中包含了用戶友好的查詢和強(qiáng)大的搜索功能。</
31、p><p> (2)可伸縮性和可用性 </p><p> 同一個(gè)數(shù)據(jù)庫(kù)引擎可以在不同的平臺(tái)上使用,從運(yùn)行 Microsoft Windows® 98 的便攜式電腦,到運(yùn)行 Microsoft Windows 2000 數(shù)據(jù)中心版的大型多處理器服務(wù)器。SQL Server 2000 企業(yè)版支持聯(lián)合服務(wù)器、索引視圖和大型內(nèi)存支持等功能,使其得以升級(jí)到最大Web 站點(diǎn)所需的性能級(jí)別。&
32、lt;/p><p> (3)企業(yè)級(jí)數(shù)據(jù)庫(kù)功能 </p><p> SQL Server 2000關(guān)系數(shù)據(jù)庫(kù)引擎支持當(dāng)今苛刻的數(shù)據(jù)處理環(huán)境所需的功能。數(shù)據(jù)庫(kù)引擎充分保護(hù)數(shù)據(jù)完整性,同時(shí)將管理上千個(gè)并發(fā)修改數(shù)據(jù)庫(kù)的用戶的開(kāi)銷減到最小。SQL Server 2000 分布式查詢使您得以引用來(lái)自不同數(shù)據(jù)源的數(shù)據(jù),就好像這些數(shù)據(jù)是SQL Server 2000數(shù)據(jù)庫(kù)的一部分,同時(shí)分布式事務(wù)支持充分保
33、護(hù)任何分布式數(shù)據(jù)更新的完整性。復(fù)制同樣使您得以維護(hù)多個(gè)數(shù)據(jù)復(fù)本,同時(shí)確保單獨(dú)的數(shù)據(jù)復(fù)本保持同步。可將一組數(shù)據(jù)復(fù)制到多個(gè)移動(dòng)的脫接用戶,使這些用戶自主地工作,然后將他們所做的修改合并回發(fā)布服務(wù)器。</p><p> (4)易于安裝、部署和使用</p><p> SQL Server 2000 中包括一系列管理和開(kāi)發(fā)工具,這些工具可改進(jìn)在多個(gè)站點(diǎn)上安裝、部署、管理和使用 SQL Serve
34、r 的過(guò)程。SQL Server 2000 還支持基于標(biāo)準(zhǔn)的、與 Windows DNA 集成的程序設(shè)計(jì)模型,使 SQL Server 數(shù)據(jù)庫(kù)和數(shù)據(jù)倉(cāng)庫(kù)的使用成為生成強(qiáng)大的可伸縮系統(tǒng)的無(wú)縫部分。這些功能使您得以快速交付SQL Serve應(yīng)用程序,使客戶只需最少的安裝和管理開(kāi)銷即可實(shí)現(xiàn)這些應(yīng)用程序。</p><p><b> (5)數(shù)據(jù)倉(cāng)庫(kù)</b></p><p>
35、 SQL Server 2000 中包括析取和分析匯總數(shù)據(jù)以進(jìn)行聯(lián)機(jī)分析處理 (OLAP) 的工具。SQL Server 中還包括一些工具,可用來(lái)直觀地設(shè)計(jì)數(shù)據(jù)庫(kù)并通過(guò) English Query來(lái)分析數(shù)據(jù)。</p><p><b> 4 系統(tǒng)設(shè)計(jì)</b></p><p><b> 4.1 概念設(shè)計(jì)</b></p><
36、p> 根據(jù)系統(tǒng)需求分析,可畫(huà)出下如圖4-1的ER圖:</p><p><b> 圖4-1 ER圖</b></p><p><b> 4.2 邏輯設(shè)計(jì)</b></p><p> 將上述ER圖,轉(zhuǎn)化為如下關(guān)系模式: </p><p> 判斷題(編號(hào), 題干, 答案, 所在章節(jié), 難度,
37、 添加時(shí)間, 解析)</p><p> 綜合題(編號(hào), 題干, 答案, 所在章節(jié), 難度, 添加時(shí)間, 解析)</p><p> 填空題(編號(hào), 題干, 答案, 所在章節(jié), 難度, 添加時(shí)間, 解析, 填空數(shù)目, 是否有序)</p><p> 單選題(編號(hào), 題干, 答案, 所在章節(jié), 難度, 添加時(shí)間, 解析, 選項(xiàng)A, 選項(xiàng)B, 選項(xiàng)C, 選項(xiàng)D)<
38、/p><p> 多選題(編號(hào), 題干, 答案, 所在章節(jié), 難度, 添加時(shí)間, 解析, 選項(xiàng)A, 選項(xiàng)B, 選項(xiàng)C, 選項(xiàng)D)</p><p> 用戶(編號(hào), 用戶名, 密碼, 權(quán)限, 真實(shí)姓名, 性別, 電子郵件, 班級(jí), 添加時(shí)間)</p><p> 試卷類型(編號(hào), 類型名稱, 試卷總分,填空題分值, 填空題個(gè)數(shù), 判斷題分值, 判斷題個(gè)數(shù), 單選題分值,
39、單選題個(gè)數(shù), 多選題分值, 多選題個(gè)數(shù), 綜合題分值, 綜合題個(gè)數(shù))</p><p> 試卷信息(編號(hào), 試卷名稱, 專業(yè)名稱, 類型編號(hào), 考試方式, 考試時(shí)間, 擬卷時(shí)間, 試卷內(nèi)容, 試卷保存位置)</p><p><b> 4.3 物理設(shè)計(jì)</b></p><p> 根據(jù)數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu),并結(jié)合需求分析的內(nèi)容,數(shù)據(jù)庫(kù)的物
40、理結(jié)構(gòu)設(shè)計(jì)如下圖:</p><p> 試卷類型:tk_type 數(shù)據(jù)表結(jié)構(gòu)如表4-1</p><p> 試題信息表:tk_mess 數(shù)據(jù)表結(jié)構(gòu)如表4-2</p><p> 計(jì)算題:tk_count 數(shù)據(jù)表結(jié)構(gòu)如表4-3</p><p> 判斷題表:tk_pd 數(shù)據(jù)表結(jié)構(gòu)如表4-4</p><p> 填空題表:
41、tk_pd 數(shù)據(jù)表結(jié)構(gòu)如表4-5</p><p> 單選題表:tk_single 數(shù)據(jù)表結(jié)構(gòu)如表4-6</p><p> 多選題表:tk_multi 數(shù)據(jù)表結(jié)構(gòu)如表4-7</p><p> 用戶表:tk_user數(shù)據(jù)表結(jié)構(gòu)如表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)功能模塊及實(shí)現(xiàn)過(guò)程</p><p> 本系統(tǒng)主要由登陸注冊(cè)模塊、試題庫(kù)管理模塊、試卷管理模塊和在線練習(xí)模塊組成,其中各模塊還由各種小模塊組成。系統(tǒng)設(shè)計(jì)時(shí)采用類封裝的方法,把系統(tǒng)中各個(gè)操作放
44、在類里面處理,這樣有利于編程過(guò)程中的代碼復(fù)用,提高編程效率,縮小程序的大小。系統(tǒng)中各個(gè)模塊的操作類都放在config.cs文件中,這個(gè)文件中還包含對(duì)數(shù)據(jù)庫(kù)的連接類,它在這里提供一個(gè)通用的數(shù)據(jù)庫(kù)連接方法,這樣有利于程序的移植和對(duì)數(shù)據(jù)庫(kù)訪問(wèn)的高效性。系統(tǒng)對(duì)數(shù)據(jù)庫(kù)的連接字符串是放在Web.config文件中的,下面的是連接數(shù)據(jù)庫(kù)的方法:</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 登陸注冊(cè)模塊</p><p> 登陸注冊(cè)模塊由一個(gè)登陸頁(yè)面和一個(gè)注冊(cè)頁(yè)面組成。登陸頁(yè)面中可以進(jìn)行學(xué)生登陸和管理員登陸,登陸時(shí)如果輸入用戶名、密碼和選擇用戶角色,點(diǎn)登陸按鈕就能進(jìn)行系統(tǒng)登陸。當(dāng)用戶第一次進(jìn)入系統(tǒng)時(shí),由于還沒(méi)有注冊(cè),是不能直接進(jìn)行登陸的,這時(shí)用戶可以點(diǎn)擊“注冊(cè)”按鈕,這時(shí)系統(tǒng)轉(zhuǎn)達(dá)到注冊(cè)頁(yè)面,用戶可以在這里填寫(xiě)用戶信息進(jìn)行注冊(cè),值得注意的是這里注冊(cè)的用戶只有學(xué)生權(quán)限,而沒(méi)有管理員權(quán)限。
47、注冊(cè)成功后返回登陸頁(yè)面,此時(shí)用戶可以通過(guò)剛才注冊(cè)的賬號(hào)和密碼進(jìn)行登陸。</p><p> 圖5-1登陸頁(yè)面 圖5-2 注冊(cè)頁(yè)面</p><p> 5.2 試題庫(kù)管理模塊</p><p> 試題庫(kù)管理模塊功能主要由三個(gè)子模塊完成,分別是添加試題、修改試題和刪除試題三個(gè)模塊。</p><p>
48、5.2.1 添加試題</p><p> 因?yàn)樵囶}庫(kù)是由單選題、多選題、判斷題、填空題和綜合題五種類型的題目組成,所以試題庫(kù)試題的添加也分成五個(gè)添加頁(yè)面,分別是“單選題添加”、“多選題添加”、“判斷題添加”、“填空題添加”和“綜合題添加”。圖5-3為單選題添加頁(yè)面,在此頁(yè)面中,管理員可以通來(lái)兩個(gè)下拉菜單選擇試題要添加到的章節(jié)和試題的難度,然后在下面相應(yīng)的文本區(qū)域?qū)懭朐囶}信息,當(dāng)試題信息填寫(xiě)完成時(shí),單擊“添加”即
49、可進(jìn)行試題的添加。此處的添加是一條條記錄的形式向數(shù)據(jù)庫(kù)中寫(xiě)入試題信息。其他如“多選題添加”、“判斷題添加”和“填空題添加”類似“單選題添加”頁(yè),此處就不給予介紹。</p><p> 圖5-3 添加單選題</p><p> 圖5-4 添加多選題</p><p> 上圖5-4是綜合題添加頁(yè)面,這個(gè)頁(yè)面主要不同其他幾個(gè)添加頁(yè)面之處在于這里添加了一個(gè)形如Word文檔編
50、輯器的控件,這里增加這個(gè)控件的主要目的是為了輸入特殊字符和各種表達(dá)式。例如各種數(shù)學(xué)表達(dá)式,公式,數(shù)學(xué)符號(hào)等,有這個(gè)控件有利于綜合試題信息的添加,使網(wǎng)絡(luò)化考試更接近紙面化考試。</p><p> 5.2.2 修改試題</p><p> 同添加一樣,修改試題模模塊也有五個(gè)頁(yè)面組成。如下圖5-5是單選題修改頁(yè)面,在頁(yè)面中可以找到一條紅線,紅線的上半部分可以用來(lái)確定你要修改試題的位置,換言之
51、,就是能找到所在修改的試題。在兩個(gè)下拉列表框中選擇試題所在的章節(jié),和試題的難度,單擊“確定”按鈕,下面就可以顯示出所選章節(jié)和難度的試題總數(shù),并在紅線下方顯示第一題試題信息,可以通過(guò)“下一題”和“上一題”按鈕查看下一題或上一題直到末尾,還可在轉(zhuǎn)到后面的文本框中填寫(xiě)在轉(zhuǎn)到第幾題,再點(diǎn)擊“GO”按鈕跳轉(zhuǎn)相應(yīng)的試題。</p><p> 在紅線下面的下拉列表框中選擇把試題修改到那個(gè)章節(jié)和進(jìn)行難度調(diào)整,在下面各文本框中對(duì)試
52、題信進(jìn)行修改。</p><p> 圖5-5 修改單選題</p><p> 在對(duì)試題信息修改之后,務(wù)必點(diǎn)擊“修改此題”按鈕,再接著去修改另外一題,在修改試題結(jié)束時(shí),務(wù)必單擊“修改完成”,這樣就可以保存修改結(jié)果。因?yàn)橄到y(tǒng)算法是把滿足條件的試題選出來(lái)放入到一個(gè)數(shù)據(jù)表(DataTable)中,當(dāng)修改完一個(gè)試題的信息后點(diǎn)擊修改此題按鈕只是把修改后的信自己寫(xiě)入到數(shù)據(jù)表(DataTable)中,下面
53、是他的源代碼:</p><p> DataRow myrow=mytable.Rows[i];</p><p> myrow.BeginEdit();//開(kāi)始修改行中數(shù)據(jù)</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();//修改行結(jié)束</p><p> 同樣在修改完成后單擊“修改完成”是為了將修改過(guò)的數(shù)據(jù)表(DataTable)中的數(shù)據(jù)推進(jìn)到數(shù)據(jù)庫(kù)中,這樣
57、就完成了試題的修改,在沒(méi)有點(diǎn)擊修改完成就退出了該頁(yè),那么修改是不成功的。</p><p> 其他如“多選題修改”、“判斷題修改”、“填空題修改”、“綜合題修改”頁(yè)面也是同樣的道理,操作步驟也是一樣。</p><p> 5.2.3 刪除試題</p><p> 類似于修改和刪除頁(yè)面,這個(gè)模塊也由五個(gè)頁(yè)面組成,分別對(duì)填空題、判斷題、單選題,多選題,綜合題進(jìn)行刪除操
58、作。如下圖5-6是單選題刪除頁(yè)面。此頁(yè)面中可以通過(guò)下拉列表框選擇要?jiǎng)h除的試題所在的章節(jié)和難度,單擊“確定”,下面的表格中顯示出滿足條件的所有單選題。在表格中,能看到試題的一部分信息,如要查看試題詳細(xì)信息,點(diǎn)擊“查看”,就可以查看試題的詳細(xì)信息。如果要?jiǎng)h除試題,選中要?jiǎng)h除的試題前的單選按鈕,如果要一次刪除多個(gè)也可以選中多個(gè)單選框,單擊“刪除試題”按鈕,即可對(duì)選中試題進(jìn)行刪除。</p><p> 圖5-6 刪除單選
59、題</p><p> 下面是刪除試題按鈕的操作源代碼:</p><p><b> int j=0;</b></p><p> for(i=0;i<DataGrid1.Items.Count;i++)//對(duì)數(shù)據(jù)表中的數(shù)據(jù)行進(jìn)行遍歷</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("請(qǐng)選擇您要?jiǎng)h除的題目!",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> 試卷管理模塊由四個(gè)部分組成,分別是添加試卷類型、刪除試卷類型、添加試卷和刪除試卷。</p><p> 5.3.1 添加試卷類型</p><p> 添加試卷類型頁(yè)面如下圖5-7,在此頁(yè)面中可以添加一個(gè)新的試卷類型,一個(gè)新的試卷類型由試卷類型名、試卷總分和各個(gè)題目的個(gè)數(shù)及分值組成。試卷類型名不能一樣,即
66、不能輸入與試題庫(kù)中一樣的試卷類型名,同時(shí)還要保證試卷總分等于各種類型試題個(gè)數(shù)與分值乘積的總和,如不符系統(tǒng)會(huì)提示出錯(cuò)。沒(méi)有的題型可以不填。點(diǎn)擊“添加類型”即完成試卷類型的添加。</p><p><b> 圖5-7 添加試卷</b></p><p> 5.3.2 刪除試卷類型</p><p> 刪除試卷類型操作與刪除試題庫(kù)中試題操作相似,參
67、照上面刪除試題操作即可。</p><p> 5.3.3 添加試卷</p><p> 如下圖5-8是生成試卷頁(yè)面,首先請(qǐng)閱讀下面組卷說(shuō)明,然后選擇生成試卷所用的試卷類型,再填寫(xiě)下面有關(guān)試卷的信息,同時(shí)保證試卷名稱與試卷庫(kù)中的試卷不能同名,否則系統(tǒng)提示出錯(cuò)。確定信息和試卷類型正確后點(diǎn)擊“確定”按鈕。系統(tǒng)轉(zhuǎn)到如圖5-9頁(yè)面,在此頁(yè)面中你可以進(jìn)一步確定所選擇將要生成試卷的詳細(xì)信息,如若不對(duì),
68、可進(jìn)行修改,然后點(diǎn)擊生成試卷。</p><p> 圖5-8 生成試卷1</p><p> 圖5-9 生成試卷2</p><p> 當(dāng)點(diǎn)擊生成試卷后,系統(tǒng)將按照組卷算法從試題庫(kù)中抽取試題,并把試題顯示出來(lái),如點(diǎn)擊“保存試卷”還能把試卷以Word文檔的形式保存下來(lái),生成試卷頁(yè)面如下圖5-10。在該頁(yè)面中主要實(shí)現(xiàn)的兩個(gè)功能是組卷和把試卷寫(xiě)成Word文檔。</p
69、><p> 圖5-10 顯示試卷</p><p> 組卷的過(guò)程是這樣的:按照試卷類型,獲得各種類型試題的數(shù)目,試卷的難度是按容易40%,較易30%,較難20%,難10%的比例分配的。按照這個(gè)比例,算出每種類型試題的各個(gè)難度的題目數(shù)。首選建立兩個(gè)ArrayList數(shù)組arr和selectrow,同時(shí)還要建立一個(gè)存放滿足條件試題的數(shù)據(jù)表(例如tktempTb)arr用來(lái)存放滿足條件的試題,se
70、lect用來(lái)存放隨機(jī)產(chǎn)生的行號(hào)。在相應(yīng)的試題庫(kù)中選出該難度的試題,并放入到一個(gè)數(shù)據(jù)表中,獲得其數(shù)據(jù)表總行數(shù)rownum通過(guò)隨機(jī)函數(shù)Row=r.Next(rownum);產(chǎn)生隨機(jī)行Row,并把Row放入到selectrow中,通過(guò)for循環(huán)控制產(chǎn)生題目的個(gè)數(shù),每次產(chǎn)生的隨機(jī)行數(shù)與selectrow中的數(shù)據(jù)進(jìn)行比較,如果相同,則重新產(chǎn)生一個(gè)隨機(jī)行,否則把產(chǎn)生新的數(shù)據(jù)行加入到結(jié)果數(shù)據(jù)表(tktempTb)中。下面是產(chǎn)生一個(gè)難度試題的源代碼:&
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是填空題較易題型的個(gè)數(shù)</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);//把滿足條件的試題加入到數(shù)據(jù)表中</p><p><b> }</b></p><p> 同理,其他類型的題型也按照同樣的方法產(chǎn)生。在所有的試題生成以后,就要把存入數(shù)據(jù)表中的內(nèi)容用arr數(shù)組來(lái)存貯,下面是源代碼:(以產(chǎn)生填空為例)</p>
76、<p> arr.Add(new PositionData("<tr><td class=tdsize>填空題("+tkscore+"分×"+tknum+"個(gè))</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控件示出來(lái)的,把存放試題的arr數(shù)級(jí)做為Repeater控件的數(shù)據(jù)源,這樣試卷就顯示出來(lái)了。</p><p> 在生成試卷的同時(shí),系統(tǒng)還把試卷以Word文檔的形式保存下來(lái)。系統(tǒng)寫(xiě)Word的方式是程序控制的方式。在類CCWordApp.cs中定義了要生成Wor
80、d文檔所要用到的Word宏的函數(shù)。寫(xiě)Word實(shí)際上是調(diào)用Word宏來(lái)實(shí)現(xiàn)的。試卷生成時(shí)把試卷的保存路徑存入到數(shù)據(jù)庫(kù),點(diǎn)擊“保存試卷”實(shí)際上是跳轉(zhuǎn)到Word文檔,例如Response.Redirect(docpath);。下面是系統(tǒng)寫(xiě)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(" 考試時(shí)間:");</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+"個(gè))");</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、 刪除試卷操作與刪除試題庫(kù)中試題操作相似,參照上面刪除試題操作即可。不同的是刪除試卷不僅要?jiǎng)h除試題庫(kù)中的關(guān)于選中的某個(gè)試卷的記錄,還要?jiǎng)h除在組卷時(shí)生成的Word文檔。這里用到了一個(gè)文件操作,在引用中添加一個(gè)using system.IO,在刪除每一個(gè)行時(shí)間同時(shí)刪除與這個(gè)試卷記錄相關(guān)的那個(gè)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("請(qǐng)選擇您要?jiǎng)h除的題目!",Page);</p><p> updatetest delete=new updatetest();</p&
95、gt;<p> delete.detest(ds.Tables[0]);</p><p> BindGrid();</p><p> 5.4 在線練習(xí)模塊</p><p> 在線練習(xí)部分分為章節(jié)練習(xí)和綜合練習(xí)兩個(gè)部分。如下圖5-11是章節(jié)練習(xí)頁(yè)面,在此頁(yè)面中用戶可以根據(jù)自己的學(xué)習(xí)情況選擇想練習(xí)的章節(jié)、練習(xí)的題型、練習(xí)難度和題目的個(gè)數(shù),再點(diǎn)擊“
96、開(kāi)始練習(xí)”按鈕,系統(tǒng)開(kāi)始按用戶選擇和輸入的條件生成練習(xí)試題。如圖5-12是用戶練習(xí)頁(yè)面,此頁(yè)面中用戶可以進(jìn)行答題,用戶可以把答案填寫(xiě)在右邊的答題表中,在用戶答題完成之后用戶可以點(diǎn)擊“顯示答案”,就可以看到參考答案,系統(tǒng)還可以把用戶答案和試題庫(kù)中的參考答案進(jìn)行比較,判斷用戶答案的對(duì)錯(cuò),并給出標(biāo)記,有于用戶看到自己的答案情況。</p><p> 圖5-11 章節(jié)在線練習(xí)</p><p>
97、在線練習(xí)的試題的生成方式和組卷系統(tǒng)的類似,也是先獲取要選出題的個(gè)數(shù),然后利用產(chǎn)生隨機(jī)行的方法獲得試題,再把行號(hào)加入到一個(gè)數(shù)組,下次抽取的行號(hào)在此數(shù)組中就丟棄,如不在就選取該題,這樣也是為了保證抽到的試題是不一樣的,這樣可以保證一份練習(xí)題中不會(huì)出現(xiàn)相同的題目。</p><p> 圖5-12 章節(jié)在線練習(xí)答題</p><p> 綜合練習(xí)頁(yè)面也和章節(jié)練習(xí)相似,在頁(yè)面中可以選擇練習(xí)的難度,系統(tǒng)
98、再根據(jù)設(shè)定好的題型生成試題。也可以點(diǎn)擊“查看答案”可以看到該試題的詳細(xì)情況,包括試題參考答案和解析。</p><p> 6 系統(tǒng)實(shí)現(xiàn)遇到的問(wèn)題及解決方案</p><p> 在系統(tǒng)實(shí)現(xiàn)的過(guò)程中遇到了各種各樣的問(wèn)題,這些問(wèn)題有些是人為因素的原因,有些是沒(méi)有掌握相應(yīng)的技術(shù)方法的原因。下面是系統(tǒng)在實(shí)現(xiàn)過(guò)程中遇到的一些主要影響系統(tǒng)設(shè)計(jì)進(jìn)度的問(wèn)題:</p><p> 問(wèn)
99、題1:系統(tǒng)登陸成功時(shí)不能提示用戶和用戶沒(méi)有權(quán)限時(shí)不提示的問(wèn)題。</p><p><b> 解決方案:</b></p><p> 系統(tǒng)在用戶輸入用戶名和密碼之后登陸成功不能提示用戶登陸成功而直接返回首頁(yè),經(jīng)研究發(fā)現(xiàn)是因?yàn)槭躌esponse.Redirect("index.aspx");語(yǔ)句的限制只能直接跳轉(zhuǎn),后來(lái)選擇一種彈出對(duì)話框的方法,conf
100、ig.Confirm("登陸成功!","Button2",Page);語(yǔ)句是用來(lái)顯示一個(gè)登陸成功對(duì)話框,點(diǎn)擊“確定”之后返回首頁(yè)。Button2的事件是Response.Redirect("index.aspx");。而用戶沒(méi)有權(quán)限時(shí)只能直接返回首頁(yè)也是受Response.Redirect("index.aspx");語(yǔ)句的影響,經(jīng)研究采用一個(gè)中間頁(yè)面的方法
101、來(lái)提示用戶,下圖5-13就是出現(xiàn)錯(cuò)誤時(shí)的頁(yè)面。</p><p> 圖5-13 出錯(cuò)頁(yè)面</p><p> 問(wèn)題2:綜合題添加時(shí)因加入了Word文檔編輯器而導(dǎo)致不能進(jìn)行正常數(shù)據(jù)庫(kù)寫(xiě)入操作,這主要發(fā)生在綜合題的添加修改。</p><p><b> 解決方案:</b></p><p> 問(wèn)題現(xiàn)象是從客戶端(txtque
102、stion="<P><FONT face=幼圓 col...")中檢測(cè)到有潛在危險(xiǎn)的 Request.Form 值,請(qǐng)求驗(yàn)證過(guò)程檢測(cè)到有潛在危險(xiǎn)的客戶端輸入值,對(duì)請(qǐng)求的處理已經(jīng)中止。該值可能指示危及應(yīng)用程序安全的嘗試,如跨站點(diǎn)的腳本攻擊。通過(guò)在 Page 指令或 配置節(jié)中設(shè)置 validateRequest=false 可以禁用請(qǐng)求驗(yàn)證。但是,在這種情況下,強(qiáng)烈建議應(yīng)用程序顯式檢查所有輸入。問(wèn)題的解
103、決辦法是在Web.config文件的<system.web>后面加入<pages validateRequest="false"/>語(yǔ)句。該語(yǔ)句可以禁用請(qǐng)求證,這樣就可以進(jìn)行正常的數(shù)據(jù)庫(kù)寫(xiě)入。</p><p> 問(wèn)題3:修改和刪除試題庫(kù)中試題時(shí)把修改和刪除后的數(shù)據(jù)表整體推進(jìn)到數(shù)據(jù)庫(kù)中的問(wèn)題。</p><p><b> 解決方案:&l
104、t;/b></p><p> 修改試題庫(kù)中的試題是對(duì)選中試題形成的數(shù)據(jù)表的數(shù)據(jù)行進(jìn)行修改,當(dāng)修改完成后,點(diǎn)擊“修改完成”是把修改后的數(shù)據(jù)表推進(jìn)到數(shù)據(jù)庫(kù)中,剛開(kāi)始時(shí)實(shí)現(xiàn)此功能有很大的困難,主要找不到正確的方法寫(xiě)進(jìn)數(shù)據(jù)庫(kù),后經(jīng)研究發(fā)現(xiàn),使用編者系統(tǒng)生成的代碼能有效的把數(shù)據(jù)表推進(jìn)到數(shù)據(jù)庫(kù)中。因此,把修改后的數(shù)據(jù)表作為參數(shù)傳給類中的函數(shù)進(jìn)行處理,從面把整個(gè)修改后的數(shù)據(jù)表寫(xiě)入到數(shù)據(jù)庫(kù)中。刪除試題也和修改試題一樣,也
105、是選對(duì)數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行刪除數(shù)據(jù)行的操作,刪除數(shù)據(jù)行完成之后再把整個(gè)數(shù)據(jù)表推進(jìn)到數(shù)據(jù)庫(kù)中。</p><p> 問(wèn)題4:組卷算法實(shí)現(xiàn)產(chǎn)生的問(wèn)題。</p><p><b> 解決方案:</b></p><p> 最初設(shè)計(jì)組卷算法是這樣設(shè)計(jì)的:從數(shù)據(jù)庫(kù)中選出滿足用戶輸入條件的試題到一張數(shù)據(jù)表中(例如tkTb),再用隨機(jī)函數(shù)產(chǎn)生這個(gè)數(shù)據(jù)表中的隨機(jī)
106、行(Row=r.Next(rownum);)(r是隨機(jī)函數(shù)Random的對(duì)象)并把此行加入到另一個(gè)數(shù)據(jù)表中(tktempTb),該表用來(lái)保存選出的符合要求的試題,然后再刪除原數(shù)據(jù)表(tkTb)中的這一行,再重新計(jì)算行數(shù),再用隨機(jī)函數(shù)產(chǎn)生新行,再把新行加入到保存結(jié)果的數(shù)據(jù)表(tktempTb)中。問(wèn)題是在產(chǎn)生一個(gè)數(shù)據(jù)行之后不能再更新數(shù)據(jù)表的行數(shù),導(dǎo)致不能產(chǎn)生有效的新的數(shù)據(jù)行。經(jīng)研究,采用了一個(gè)新的替代方案,方案是這樣的:從數(shù)據(jù)庫(kù)中選出滿足
107、用戶輸入條件的試題到一張數(shù)據(jù)表中(例如tkTb),再用隨機(jī)函數(shù)產(chǎn)生這個(gè)數(shù)據(jù)表中的隨機(jī)行(Row=r.Next(rownum);),把這個(gè)行加入到一個(gè)數(shù)組中(例如selectrow),再把行中的數(shù)據(jù)加入到保存結(jié)果的數(shù)據(jù)表(tktempTb)中,再產(chǎn)生新的隨機(jī)行,并把此行號(hào)跟數(shù)組中的行號(hào)進(jìn)行比較,如果數(shù)組中有就丟棄,沒(méi)有就把這一行加入到數(shù)組,并把這一行的數(shù)據(jù)加入到保存結(jié)果的數(shù)據(jù)表中。這樣就實(shí)現(xiàn)在隨機(jī)產(chǎn)生試題的問(wèn)題。</p>&
108、lt;p> 問(wèn)題5:在對(duì)試卷進(jìn)行保存調(diào)用CCWordApp.cs類創(chuàng)建Word類時(shí)產(chǎn)生拒絕訪問(wèn)的問(wèn)題,主要現(xiàn)象是:ASP.NET 未被授權(quán)訪問(wèn)所請(qǐng)求的資源。</p><p><b> 解決方案:</b></p><p> 請(qǐng)考慮授予 ASP.NET 請(qǐng)求標(biāo)識(shí)訪問(wèn)此資源的權(quán)限。ASP.NET 有一個(gè)在應(yīng)用程序沒(méi)有模擬時(shí)使用的基進(jìn)程標(biāo)識(shí)(通常,在 IIS 5
109、上為 {MACHINE}\ASPNET,在 IIS 6 上為網(wǎng)絡(luò)服務(wù))。如果應(yīng)用程序正在通過(guò)<identity impersonate="true"/>模擬,則標(biāo)識(shí)將為匿名用戶(通常為 IUSR_MACHINENAME)或經(jīng)過(guò)身份驗(yàn)證的請(qǐng)求用戶。經(jīng)研究,只需要在Web.config文件的<system.web>后面加入<identity impersonate="true&qu
110、ot;/>即可解決此問(wèn)題。</p><p> 以上五個(gè)問(wèn)題是系統(tǒng)實(shí)現(xiàn)過(guò)程中的幾個(gè)關(guān)鍵性的問(wèn)題,也是很有代表性的問(wèn)題,解決這幾個(gè)問(wèn)題花費(fèi)了一定的時(shí)間。同時(shí)在系統(tǒng)的設(shè)計(jì)過(guò)程中還有各式各樣的人為及技術(shù)問(wèn)題,就不詳述。</p><p><b> 7 系統(tǒng)測(cè)試</b></p><p><b> 7.1 測(cè)試目的</b>
111、;</p><p> 軟件測(cè)試是軟件代碼生成后必不可少的一步,軟件測(cè)試包括功能代碼的測(cè)試、系統(tǒng)功能的完整性測(cè)試、性能測(cè)試、安全性測(cè)試、數(shù)據(jù)庫(kù)的一致性測(cè)試等,測(cè)試的目的是盡可能多的發(fā)現(xiàn)軟件制作過(guò)程中的錯(cuò)誤及運(yùn)行時(shí)錯(cuò)誤,通過(guò)測(cè)試使軟件的錯(cuò)誤減少,使系統(tǒng)的可靠性進(jìn)一步提高。</p><p> 7.2 軟件測(cè)試內(nèi)容</p><p> (1)根據(jù)需求分析劃定系統(tǒng)測(cè)試的
112、功能范圍,即需求分析中的功能在系統(tǒng)中得到充分體現(xiàn)。</p><p> (2)分模塊測(cè)試軟件的功能,包括軟件的界面要求、功能體現(xiàn)、性能要求、穩(wěn)定性要求、是否達(dá)到操作便捷、靈活性要求、安全性要求;各模塊之間的關(guān)系是否與需求分析中的一致等。</p><p> (3)綜合測(cè)試,在分塊測(cè)試之后,將所有模塊作為一個(gè)整體進(jìn)行測(cè)試,測(cè)試整個(gè)系統(tǒng)的功能和性能,檢驗(yàn)其是否滿足用戶的需求。</p>
113、;<p><b> 7.3 測(cè)試時(shí)間</b></p><p> 本系統(tǒng)的測(cè)試分為以下幾個(gè)階段進(jìn)行:</p><p> 第一階段:根據(jù)需求分析劃定軟件中要測(cè)試的功能和性能的范圍,確定測(cè)試的內(nèi)容,測(cè)試時(shí)間:2006.5.15~2006.5.20。</p><p> 第二階段:分模塊對(duì)系統(tǒng)中的各模塊進(jìn)行測(cè)試,對(duì)需求分析中各模塊
114、的功能和性能及用戶的特殊需求進(jìn)行測(cè)試,記下各模塊的所有的問(wèn)題,及時(shí)解決。測(cè)試時(shí)間:2006.5.20~2006.5.21。</p><p> 第三階段:在模塊測(cè)試的基礎(chǔ)上將各模塊拼接進(jìn)行整體功能和性能的測(cè)試。測(cè)試時(shí)間:2006.5.21~2006.5.25。</p><p> 第四階段:綜合測(cè)試。測(cè)試時(shí)間:2006.5.25~2006.5.25。</p><p>
115、;<b> 7.4 測(cè)試結(jié)果</b></p><p> 測(cè)試中出現(xiàn)了一些功能實(shí)現(xiàn)上的錯(cuò)誤,尤其是在單元代碼測(cè)試階段,一些功能在特殊情況下實(shí)現(xiàn)不了。測(cè)試結(jié)果為一般。</p><p> 參加測(cè)試人員: 黃從建</p><p> 7.4.1 數(shù)據(jù)測(cè)試</p><p> (1)登陸注冊(cè)數(shù)據(jù)測(cè)試,如表7-1</
116、p><p><b> 表7-1</b></p><p> (2)添加和修改試題庫(kù)數(shù)據(jù)測(cè)試,如表7-2</p><p><b> 表7-2</b></p><p> (3)添加試卷類型和添加試卷數(shù)據(jù)測(cè)試,如表7-3</p><p><b> 表7-3</b
117、></p><p> (4)在線練習(xí)數(shù)據(jù)測(cè)試,如表7-4</p><p><b> 表7-4</b></p><p> 測(cè)試結(jié)果:通過(guò)測(cè)試,各數(shù)據(jù)滿足需求分析的結(jié)果。</p><p> 7.4.2 模塊測(cè)試</p><p> 模塊測(cè)試是對(duì)系統(tǒng)各功能模塊的功能是否正常和是否達(dá)到需求
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 試題庫(kù)管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 試題庫(kù)管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 基于試題庫(kù)自動(dòng)組卷系統(tǒng).doc
- 通用試題庫(kù)管理及自動(dòng)組卷系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)
- 基于試題庫(kù)自動(dòng)組卷系統(tǒng).doc
- 基于試題庫(kù)自動(dòng)組卷系統(tǒng).doc
- 48562.通用試題庫(kù)管理及組卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 通用試題庫(kù)管理及自動(dòng)組卷系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn).pdf
- 試題庫(kù)管理系統(tǒng)本科畢業(yè)設(shè)計(jì)
- 試題庫(kù)系統(tǒng)畢業(yè)設(shè)計(jì)
- 試題庫(kù)建設(shè)及組卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于遺傳算法的試題庫(kù)管理及自動(dòng)組卷系統(tǒng)的研究.pdf
- 基于SOA試題庫(kù)自動(dòng)組卷系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā).pdf
- 高職院校試題庫(kù)組卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 無(wú)紙化考試題庫(kù)管理與組卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于遺傳算法的試題庫(kù)組卷研究
- vb試題庫(kù)自動(dòng)組卷系統(tǒng)設(shè)計(jì)(論文+源代碼)
- 基于web的畢業(yè)設(shè)計(jì)管理系統(tǒng)
- 畢業(yè)設(shè)計(jì)---基于web的畢業(yè)設(shè)計(jì)選題管理系統(tǒng)
- 基于通用試題庫(kù)的智能組卷系統(tǒng)的開(kāi)發(fā)與實(shí)現(xiàn).pdf
評(píng)論
0/150
提交評(píng)論