畢業(yè)設(shè)計(jì)論文---jsp網(wǎng)上考試系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  目 錄</b></p><p><b>  緒 論1</b></p><p>  第1章 系統(tǒng)開發(fā)背景及意義2</p><p>  1.1系統(tǒng)開發(fā)背景2</p><p>  1.2系統(tǒng)開發(fā)意義2</p><p>  第2章網(wǎng)上考試系統(tǒng)需求

2、分析3</p><p><b>  2.1現(xiàn)狀分析3</b></p><p>  2.2可行性分析4</p><p>  2.2.1經(jīng)濟(jì)可行性4</p><p>  2.2.2技術(shù)可行性4</p><p><b>  2.3設(shè)計(jì)目標(biāo)5</b></p>

3、<p><b>  2.4功能要求5</b></p><p>  2.5系統(tǒng)開發(fā)環(huán)境配置6</p><p>  2.6系統(tǒng)開發(fā)工具6</p><p>  2.6.1開發(fā)語(yǔ)言—JSP(Java Server Page)6</p><p>  2.6.2數(shù)據(jù)庫(kù)—MySQL5.07</p>

4、<p>  第3章 網(wǎng)上考試系統(tǒng)設(shè)計(jì)8</p><p>  3.1數(shù)據(jù)庫(kù)設(shè)計(jì)8</p><p>  3.1.1數(shù)據(jù)庫(kù)需求分析8</p><p>  3.1.2數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)9</p><p>  3.1.3數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)10</p><p>  3.1.4數(shù)據(jù)庫(kù)表設(shè)計(jì)13</p>

5、;<p>  3.2系統(tǒng)結(jié)構(gòu)設(shè)計(jì)15</p><p>  3.2.1頁(yè)面模塊化設(shè)計(jì)15</p><p>  3.2.2 MVC模式設(shè)計(jì)(Jsp+Servlet+JavaBean)16</p><p>  第4章 網(wǎng)上考試系統(tǒng)實(shí)現(xiàn)17</p><p>  4.1系統(tǒng)各部分的實(shí)現(xiàn)方法17</p><p&

6、gt;  4.1.1創(chuàng)建與數(shù)據(jù)庫(kù)的連接17</p><p>  4.1.2訪問數(shù)據(jù)庫(kù)的JavaBean18</p><p>  4.1.3用戶及管理員登錄模塊頁(yè)面19</p><p>  4.1.4系統(tǒng)主要模塊頁(yè)面23</p><p>  4.1.5學(xué)生考試模塊的實(shí)現(xiàn)頁(yè)面25</p><p>  4.1.6教

7、師添加試題制作試卷模塊的實(shí)現(xiàn)27</p><p>  第5章 系統(tǒng)測(cè)試30</p><p>  5.1什么是軟件測(cè)試30</p><p>  5.2軟件測(cè)試的目標(biāo)與方法30</p><p>  5.3系統(tǒng)的不足和展望30</p><p><b>  結(jié)束語(yǔ)32</b></p>

8、;<p><b>  致 謝33</b></p><p><b>  參考文獻(xiàn)34</b></p><p><b>  緒 論</b></p><p>  考試是檢驗(yàn)教學(xué)效果的重要手段,也是促進(jìn)學(xué)生學(xué)習(xí)的重要手段,是教學(xué)過程中的一個(gè)重要環(huán)節(jié)。學(xué)生考試成績(jī)的優(yōu)劣,不但反映其對(duì)教學(xué)內(nèi)容和

9、應(yīng)掌握知識(shí)的分析、理解、吸收、運(yùn)用的能力,更反映教師對(duì)教學(xué)內(nèi)容的把握和熟練程度。</p><p>  傳統(tǒng)的學(xué)校教學(xué)中,進(jìn)行一場(chǎng)考試,要求老師編寫試卷、印試卷、安排考試、監(jiān)考、收集試卷、評(píng)改試卷、講評(píng)試卷和分析試卷,這是一個(gè)繁雜的過程,需要大量人力、物力與時(shí)間的投入,已經(jīng)越來(lái)越不適應(yīng)學(xué)校信息化建設(shè)與現(xiàn)代教學(xué)的需要。尤其在遠(yuǎn)程網(wǎng)絡(luò)教學(xué)中,學(xué)生分布廣,不易統(tǒng)一集中安排考試,給校方和學(xué)生帶來(lái)了眾多的不便。</p&

10、gt;<p>  而網(wǎng)上考試系統(tǒng)不僅減輕了在組織考試、評(píng)卷、成績(jī)統(tǒng)計(jì)等方面所花費(fèi)的人力和物力,并且突破了時(shí)間與空間的限制,不僅節(jié)省了資源,而且提高了評(píng)分的客觀性、公正性和準(zhǔn)確度,大大改善了考試工作的效率。加上數(shù)據(jù)庫(kù)技術(shù)的利用,大大簡(jiǎn)化了傳統(tǒng)考試的過程,因此在線考試是電子化教學(xué)的不可缺少的輔助手段。在當(dāng)今信息時(shí)代,計(jì)算機(jī)技術(shù)與網(wǎng)絡(luò)技術(shù)越來(lái)越廣地應(yīng)用于各個(gè)領(lǐng)域,改變著人們的學(xué)習(xí)、工作、生活乃至思維方式,也引起了教育領(lǐng)域的重大變

11、革。將計(jì)算機(jī)與網(wǎng)絡(luò)技術(shù)應(yīng)用于現(xiàn)代高等教育中,是現(xiàn)代高等教育發(fā)展的需要,也是改革教育模式,提高學(xué)校教學(xué)效果和教學(xué)效率、提高科研和管理水平的必要手段。</p><p>  第1章 系統(tǒng)開發(fā)背景及意義</p><p><b>  1.1系統(tǒng)開發(fā)背景</b></p><p>  隨著計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)迅速發(fā)展和高校校園網(wǎng)功能的日益完善,很多高校建立了

12、基于校園網(wǎng)的網(wǎng)絡(luò)信息管理平臺(tái),為提高教學(xué)管理水平提供了先進(jìn)的管理手段。目前,基于網(wǎng)絡(luò)的在線考試系統(tǒng)己經(jīng)成為現(xiàn)代考試方式的有力補(bǔ)充和發(fā)展。相對(duì)于傳統(tǒng)的筆試,網(wǎng)絡(luò)在線考試不僅減輕了在組織考試、評(píng)卷、成績(jī)統(tǒng)計(jì)等方面所花費(fèi)的人力和物力,并且突破了時(shí)間與空間的限制,不僅節(jié)省了資源,而且提高了評(píng)分的客觀性、公正性和準(zhǔn)確度,大大改善了考試工作的效率。</p><p><b>  1.2系統(tǒng)開發(fā)意義</b>

13、</p><p>  很多學(xué)校學(xué)生的期末考試仍采用任課教師(個(gè)人或集體)考前出題的方式。為解決學(xué)生壓題,考前漏題,補(bǔ)(緩)考試題與正式考試試題題量及難度差異問題,教務(wù)管理部門通常要求教師同時(shí)出多套試卷,其題量與難度要求相同,并且要同時(shí)給出答案和評(píng)分標(biāo)準(zhǔn)。這樣做雖能解決一些問題,但給教師增加了很大的工作負(fù)擔(dān),若上下屆學(xué)生的同一門課程由同一教師承擔(dān),則難免幾屆學(xué)生用相同幾套試卷;若由不同教師任課出題,則上下屆學(xué)生的成

14、績(jī)之間又不具有可比性。</p><p>  若建立題庫(kù),每次考試前由題庫(kù)中題目隨機(jī)生成試卷,則可較好地解決考教分離的問題,也可將廣大教師從每學(xué)期末繁重的命題工作中解放出來(lái)。近年來(lái),部分學(xué)校陸續(xù)開發(fā)了一些基于微機(jī)的題庫(kù)系統(tǒng),并作為成果向其它學(xué)校推廣,但這些題庫(kù)一般都是結(jié)合本校具體情況,針對(duì)單一課程的小型題庫(kù),甚至某些學(xué)校購(gòu)得的題庫(kù)系統(tǒng)中的題目本身是不可維護(hù)的,即使題目已不適合自己的學(xué)生考試使用,也無(wú)法更新題庫(kù)中的題

15、目。</p><p>  為解決題庫(kù)系統(tǒng)中存在的這些問題, 作者經(jīng)過研究幾種不同的網(wǎng)上系統(tǒng),經(jīng)充分的考慮,最后給出了一個(gè)較為理想的題庫(kù)系統(tǒng)解決方案,并結(jié)合當(dāng)前比較使用的B/S結(jié)構(gòu)開發(fā)一個(gè)功能完備的網(wǎng)上考試系統(tǒng)。</p><p>  第2章網(wǎng)上考試系統(tǒng)需求分析</p><p><b>  2.1現(xiàn)狀分析</b></p><p&

16、gt;  傳統(tǒng)的考試方法要求組織者提前命題試卷,然后約定一個(gè)統(tǒng)一時(shí)間,讓所有考生到考場(chǎng)里進(jìn)行考試。這種模式如圖2-1 所示:</p><p><b>  編輯考題</b></p><p><b>  印刷大量試卷</b></p><p>  安排考場(chǎng),時(shí)間,監(jiān)考人員</p><p><b>

17、;  學(xué)生集體考試</b></p><p><b>  閱卷,統(tǒng)計(jì)成績(jī)</b></p><p>  圖2-1 傳統(tǒng)考試模式</p><p>  這種模式存在有較多的問題:</p><p>  命題:由于考試要求統(tǒng)一進(jìn)行,所有考生都考同樣的一份試卷,所以試卷的命題工作便一定得非常謹(jǐn)慎小心,試題太難或太容易,都達(dá)

18、不到考試目的,尤其是對(duì)于一個(gè)大規(guī)模的考試,(比如計(jì)算機(jī)等級(jí)考試,英語(yǔ)四,六級(jí)考試等),如何正確把握試卷的難度,一直都是讓命題教師最為頭痛的問題之一。而如何不在考試之前使命好的試題泄漏出去,也是組織者費(fèi)盡心思。</p><p>  試卷印刷:對(duì)于大規(guī)模的考試,試卷印刷費(fèi)工費(fèi)時(shí),成本高,對(duì)紙張資源也是一種浪費(fèi)。對(duì)于涉及地域范圍較廣的考試(如英語(yǔ)四,六級(jí)考試),還要考慮試卷大的長(zhǎng)途運(yùn)送費(fèi)用。在考試的印刷和運(yùn)輸過程中同樣

19、有試題泄漏出去的問題,任何一個(gè)環(huán)節(jié)出了問題,都可能使前面有的工作付諸流水。</p><p>  考場(chǎng)的安排:監(jiān)考人員的培訓(xùn)與管理。對(duì)于大規(guī)模的考試,尤其是到了考試密集期(如期末,期中)。諸多學(xué)科的考試都要陸續(xù)開始的時(shí)候,對(duì)于教室資源和教師數(shù)量相對(duì)緊張的學(xué)校,如何安排考場(chǎng),調(diào)配監(jiān)考人員,是一件相對(duì)繁瑣而又復(fù)雜的事情。如果考試再涉及到不同地域之間的同步,如英語(yǔ)四,六級(jí)的考試,還要考慮更多的問題。</p>

20、<p>  進(jìn)行考試:由于同一次考試的試卷相同,要杜絕考生作弊是一個(gè)普遍的難題,因此,歷屆組織考試的人動(dòng)了很多腦筋,如分AB卷,加強(qiáng)監(jiān)考,加重對(duì)作弊者的懲罰程度等,但這些都沒能從根本上杜絕作弊。不同地域監(jiān)考的嚴(yán)格程度,考試時(shí)問控制的嚴(yán)格程度,也很難達(dá)到統(tǒng)一。過多人為因素的加入,也使得考試的公正性下降。</p><p>  判卷:考試結(jié)束后,采用人工判卷比較容易出錯(cuò),并可能出現(xiàn)人為造成的不公正現(xiàn)象。&l

21、t;/p><p><b>  2.2可行性分析</b></p><p>  可行性分析也稱為可行性研究,即是在系統(tǒng)調(diào)查的基礎(chǔ)上,針對(duì)新系統(tǒng)的開發(fā)是否具備必要性和可能性,對(duì)新系統(tǒng)的開發(fā)從技術(shù)、經(jīng)濟(jì)、管理的方面進(jìn)行分析和研究,以避免投資失誤,保證新系統(tǒng)的開發(fā)成功??尚行匝芯康哪康木褪怯米钚〉拇鷥r(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決。該系統(tǒng)的可行性分析包括以下幾個(gè)方面的內(nèi)容。

22、</p><p>  2.2.1經(jīng)濟(jì)可行性</p><p>  主要是對(duì)項(xiàng)目的經(jīng)濟(jì)效益進(jìn)行評(píng)價(jià),利用計(jì)算機(jī)來(lái)實(shí)現(xiàn)網(wǎng)上考試以成為適應(yīng)當(dāng)今教學(xué)管理的方式。開發(fā)一套能滿足網(wǎng)上考試系統(tǒng)的軟件是十分必要的,實(shí)現(xiàn)試卷管理和試卷生成自動(dòng)化,在減少由于認(rèn)為失誤而早成損失的同時(shí),也可以使教師減少工作量。本系統(tǒng)在經(jīng)濟(jì)上是可以接受的,并且本系統(tǒng)實(shí)施后可以顯著提高考試效率,有助于學(xué)院完全實(shí)現(xiàn)網(wǎng)絡(luò)化管理。所以本系統(tǒng)

23、在經(jīng)濟(jì)上是可行的。</p><p>  2.2.2技術(shù)可行性</p><p>  技術(shù)上的可行性分析主要分析技術(shù)條件是否能順利完成開發(fā)工作,硬、軟件能否滿足開發(fā)者的需要等。</p><p>  軟件方面,網(wǎng)絡(luò)化考試需要的各種軟件環(huán)境都已具備,數(shù)據(jù)庫(kù)服務(wù)器方面則有MySQL,均能夠處理大量數(shù)據(jù),同時(shí)保持?jǐn)?shù)據(jù)的完整性并提供許多高級(jí)管理功能。其靈活性、安全性和易用性為數(shù)據(jù)

24、庫(kù)編程提供了良好的條件。因此,系統(tǒng)的軟件開發(fā)平臺(tái)已成熟可行。</p><p>  硬件方面,科技飛速發(fā)展的今天,硬件更新的速度越來(lái)越快,容量越來(lái)越大,可靠性越來(lái)越高,價(jià)格越來(lái)越低,其硬件平臺(tái)完全能滿足此系統(tǒng)的需要。</p><p><b>  2.3設(shè)計(jì)目標(biāo)</b></p><p>  在線考試系統(tǒng)的總體目標(biāo):</p><

25、p>  在線考試系統(tǒng)可以幫助教師完成一個(gè)考試從題目設(shè)計(jì),考試安排,考試實(shí)施,考卷批改到分?jǐn)?shù)計(jì)算總結(jié)的所有工作。</p><p>  所有的考試數(shù)據(jù)和其它數(shù)據(jù)庫(kù)需要一種主流的方式進(jìn)行存儲(chǔ)和管理,例如使用數(shù)據(jù)庫(kù)技術(shù)。</p><p>  考試數(shù)據(jù)的存放和處理必須對(duì)考試保密,需要一定的安全性保障。</p><p>  題目最好有一定的穩(wěn)定性和隨機(jī)性。穩(wěn)定性可以保證每

26、一次考試對(duì)每一個(gè)考生是公平的,隨機(jī)性可以避免作弊的發(fā)生。</p><p>  考試的部分客觀題在考生考完之后系統(tǒng)就能自動(dòng)評(píng)分,并保存考生的主觀題答案。</p><p><b>  2.4功能要求</b></p><p>  系統(tǒng)應(yīng)該具備的基本功能:</p><p>  用戶類別:登錄系統(tǒng)的身份定為三種,一是管理員,二是普

27、通老師,四是學(xué)生,只有被授權(quán)的用戶才可以使用本系統(tǒng)的資源。 </p><p>  權(quán)限管理:系統(tǒng)需要經(jīng)過有效的身份驗(yàn)證可以登錄。用戶的身份不同,使用的系統(tǒng)資源也不同??忌豢梢詤⒓釉诰€考試;普通教師可以在線制作試卷,控制考試、成績(jī)查詢、添加試題、閱卷等。管理員可添加系系部、教師、專業(yè)、科目信息、查詢修改管理員信息及審批試卷、查詢考生成績(jī)。 </p><p>  在線考試功能:考生輸入學(xué)號(hào)密

28、碼登陸系統(tǒng)后,選擇對(duì)應(yīng)的試卷可進(jìn)行考試。答題中,有倒計(jì)時(shí)的功能,考試結(jié)束時(shí)還沒提交就自動(dòng)交卷,系統(tǒng)將自動(dòng)對(duì)客觀題進(jìn)行評(píng)分。 </p><p>  在線制作試卷:教師、管理員可在線制作試卷,可設(shè)定試題的類型、分值,但教師制作試卷后必須要由管理員審核才能考試。 </p><p>  控制考試功能:可設(shè)定每次的考試時(shí)間。 </p><p>  考生管理功能:可注冊(cè)新增學(xué)生

29、用戶,同時(shí)查看考生及班級(jí)考生的信息。 </p><p>  考生成績(jī)查詢功能:提供考生各科目成績(jī)的詳細(xì)查詢。 </p><p>  試卷審批功能:只有管理員有此權(quán)限。教師制作試卷完畢,只有經(jīng)過管理員審批后才能發(fā)布,發(fā)布后學(xué)生才能開考。 </p><p>  除了實(shí)現(xiàn)上述功能以外,在線考試系統(tǒng)還應(yīng)該具有友好、簡(jiǎn)潔的界面,安全性要高,穩(wěn)定性要強(qiáng)。</p>

30、<p>  2.5系統(tǒng)開發(fā)環(huán)境配置</p><p>  選擇微軟平臺(tái)作為主導(dǎo),一方面考慮目前微軟的飛速發(fā)展,越來(lái)越多的企業(yè)在規(guī)劃內(nèi)部網(wǎng)絡(luò)時(shí),將微軟平臺(tái)作為首選方案;令一方面從技術(shù)角度來(lái)講,微軟平臺(tái)上的應(yīng)用無(wú)論是在開發(fā)上,還是在軟件的部署上都是非常容易,而且性能優(yōu)越。具體如下:</p><p>  開發(fā)工具:MyEclipse 8.0</p><p>  輔

31、助開發(fā)工具: Dreamweaver 8</p><p>  數(shù)據(jù)庫(kù):MySQL5.0</p><p>  服務(wù)器 :Apache Tomcat6.0</p><p>  運(yùn)行環(huán)境 :安裝JDK1.6支持Java運(yùn)行。</p><p>  技術(shù):前臺(tái)網(wǎng)頁(yè)的設(shè)計(jì)采用JSP技術(shù)制作。負(fù)責(zé)響應(yīng)用戶對(duì)業(yè)務(wù)邏輯的請(qǐng)求并根據(jù)用戶的請(qǐng)求行為,決定將哪個(gè)JS

32、P頁(yè)面發(fā)送給客戶由servlet處理,JavaBean則負(fù)責(zé)數(shù)據(jù)的處理。</p><p><b>  2.6系統(tǒng)開發(fā)工具</b></p><p>  本系統(tǒng)是基于JSP+MySQL5.0數(shù)據(jù)庫(kù)技術(shù)實(shí)現(xiàn)的,現(xiàn)對(duì)JSP技術(shù)和SQL Server 2005數(shù)據(jù)庫(kù)作簡(jiǎn)要的介紹。</p><p>  2.6.1開發(fā)語(yǔ)言—JSP(Java Server P

33、age)</p><p>  JSP頁(yè)面由HTML代碼和嵌入其中的Java代碼所組成。Java Servlet是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡(jiǎn)單易用,完全的面向?qū)ο?,具有平臺(tái)無(wú)關(guān)性且安全可靠,主要面向因特網(wǎng)的等特點(diǎn)。JSP的技術(shù)的優(yōu)勢(shì):</p><p>  一次編寫,到處運(yùn)行。在這一點(diǎn)上Java

34、比PHP更出色,除了系統(tǒng)之外,代碼不需要做任何更改。</p><p>  系統(tǒng)的多平臺(tái)支持?;旧峡梢栽谒衅脚_(tái)上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP/PHP的局限性是顯而易見的。</p><p>  JSP技術(shù)是用Java語(yǔ)言作為腳本語(yǔ)言的。Java語(yǔ)言是成熟的、強(qiáng)大的、易擴(kuò)充的編程語(yǔ)言。</p><p>  高效性與安全性。J

35、SP在執(zhí)行前先被編譯成字節(jié)碼,字節(jié)碼由Java虛擬機(jī)解釋執(zhí)行,比源碼解釋效率高。</p><p>  可維護(hù)性。由于JSP技術(shù)是一種開放的、跨平臺(tái)的結(jié)構(gòu),因此Web服務(wù)器、平臺(tái)及其他組件能很容易升級(jí)或切換,且不會(huì)影響JSP基本的應(yīng)用程序。</p><p>  多樣化和功能強(qiáng)大的開發(fā)工具支持。Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平

36、臺(tái)之下。</p><p>  2.6.2數(shù)據(jù)庫(kù)—MySQL5.0</p><p>  MySQL是一個(gè)精巧的SQL數(shù)據(jù)庫(kù)管理系統(tǒng),雖然它不是開放源代碼的產(chǎn)品,但在某些情況下你可以自由使用。由于它的強(qiáng)大功能、靈活性、豐富的應(yīng)用編程接口(API)以及精巧的系統(tǒng)結(jié)構(gòu),受到了廣大自由軟件愛好者甚至是商業(yè)軟件用戶的青睞,特別是與Apache和PHP/PERL結(jié)合,為建立基于數(shù)據(jù)庫(kù)的動(dòng)態(tài)網(wǎng)站提供了強(qiáng)大

37、動(dòng)力。 </p><p>  SQL是一種標(biāo)準(zhǔn)化的語(yǔ)言,它使得存儲(chǔ)、更新和存取信息更容易。例如,你能用SQL語(yǔ)言為一個(gè)網(wǎng)站檢索產(chǎn)品信息及存儲(chǔ)顧客信息,同時(shí)MySQL也足夠快和靈活以允許你存儲(chǔ)記錄文件和圖像。</p><p>  第3章 網(wǎng)上考試系統(tǒng)設(shè)計(jì)</p><p><b>  3.1數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p>

38、;  在對(duì)網(wǎng)上考試系統(tǒng)數(shù)據(jù)庫(kù)部分進(jìn)行設(shè)計(jì)的過程中,通過對(duì)系統(tǒng)功能進(jìn)行需求分析得到系統(tǒng)的基本信息表,繪制系統(tǒng)業(yè)務(wù)流程圖和系統(tǒng)數(shù)據(jù)流程圖,分析得到數(shù)據(jù)字典;在概率結(jié)構(gòu)設(shè)計(jì)階段通過對(duì)需求階段得到的用戶需求抽象得到數(shù)據(jù)庫(kù)關(guān)系模型的E-R圖;在邏輯結(jié)構(gòu)設(shè)計(jì)階段得到數(shù)據(jù)庫(kù)的關(guān)系模式并繪制信息表。詳細(xì)設(shè)計(jì)過程如下介紹。</p><p>  3.1.1數(shù)據(jù)庫(kù)需求分析</p><p>  需求分析是設(shè)計(jì)數(shù)據(jù)

39、庫(kù)的起點(diǎn),需求分析的結(jié)果是否準(zhǔn)確地反映了用戶的實(shí)際要求,將直接影響到后面各個(gè)階段的設(shè)計(jì),并影響到設(shè)計(jì)結(jié)果是否合理和實(shí)用。</p><p>  3.1.1.1系統(tǒng)基本信息</p><p>  綜合以上分析,要實(shí)現(xiàn)上面的所有功能模塊,數(shù)據(jù)庫(kù)共要設(shè)計(jì)十個(gè)表,它們分別是:科目表、班級(jí)表、系別表、專業(yè)表、試卷信息表、學(xué)生表、學(xué)生成績(jī)表、學(xué)生答題試卷信息表、教師表、題庫(kù)表。</p>&l

40、t;p>  3.1.1.2系統(tǒng)層次圖</p><p>  根據(jù)所要實(shí)現(xiàn)的功能和用戶權(quán)限的設(shè)置。</p><p>  系統(tǒng)總體的層次圖如下圖3-1所示:</p><p><b>  圖3-1系統(tǒng)層次圖</b></p><p>  3.1.1.3系統(tǒng)數(shù)據(jù)流程圖</p><p>  系統(tǒng)數(shù)據(jù)流程圖

41、如下圖3-2所示:</p><p><b>  圖3-2數(shù)據(jù)流程圖</b></p><p>  3.1.2數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)</p><p>  概念設(shè)計(jì)階段主要是將需求分析階段得到的用戶需求抽象為信息結(jié)構(gòu)(概念模型)的過程,它是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵,包括概念模型設(shè)計(jì)和新系統(tǒng)流程兩個(gè)階段。在需求分析階段所得到的應(yīng)用需求應(yīng)該首先抽象為信息世界的結(jié)

42、構(gòu),才能更好地、更準(zhǔn)確地用某一DBMS實(shí)現(xiàn)這些需求。</p><p>  概念數(shù)據(jù)模型獨(dú)立于具體的數(shù)據(jù)處理的細(xì)節(jié)和數(shù)據(jù)庫(kù)管理系統(tǒng)。這次設(shè)計(jì)仍采用傳統(tǒng)的實(shí)體聯(lián)系圖作為概念設(shè)計(jì)的工具。再進(jìn)行優(yōu)化后,盡量滿足結(jié)構(gòu)清晰、關(guān)聯(lián)簡(jiǎn)潔、實(shí)體個(gè)數(shù)適中、屬性分配合理、沒有低級(jí)冗余。系統(tǒng)E-R圖如下圖3-3所示:</p><p>  圖3-3 系統(tǒng)E-R圖</p><p>  3.1.

43、3數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)</p><p>  對(duì)于關(guān)系型數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)完畢后,要把E-R圖描述的概念數(shù)據(jù)模型轉(zhuǎn)換為等價(jià)的關(guān)系模式極其約束。邏輯設(shè)計(jì)的基本工作主要包括如下的3個(gè)步驟。</p><p>  3.1.3.1關(guān)系模式設(shè)計(jì)</p><p>  該設(shè)計(jì)以概念結(jié)構(gòu)設(shè)計(jì)中的E-R圖為主要依據(jù),這幾出相關(guān)的整體邏輯結(jié)構(gòu)。該系統(tǒng)的關(guān)系模式如下圖3-4所示:&l

44、t;/p><p>  圖3-4 概念關(guān)系模型圖</p><p>  3.1.3.2完整性設(shè)計(jì)</p><p>  完整性要求用于描述各種信息之間的制約關(guān)系,以及關(guān)聯(lián)關(guān)系,各個(gè)數(shù)據(jù)項(xiàng)的取值范圍以及各個(gè)數(shù)據(jù)項(xiàng)是否可以取值。根據(jù)實(shí)際需要,采取一定的手段來(lái)滿足用戶的完整性需求。域完整性約束要求屬性值必須在域中。實(shí)體完整性約束要求主鍵必須唯一且不能為空。如用戶信息表中的用戶名設(shè)置

45、為主鍵,并且要求唯一且不能為空。</p><p>  3.1.3.3模式優(yōu)化</p><p>  本次采用3NF為規(guī)范準(zhǔn)則來(lái)分解關(guān)系。將一個(gè)關(guān)系分解為兩個(gè)或者多個(gè)關(guān)系,以滿足規(guī)范,從而避免產(chǎn)生插入異常、刪除異常、更新異常。</p><p>  3.1.4數(shù)據(jù)庫(kù)表設(shè)計(jì)</p><p>  學(xué)生信息表如圖3-5所示</p><

46、p>  圖3-5 學(xué)生信息表</p><p>  教師信息表如圖3-6所示</p><p>  圖3-6 教師信息表</p><p>  題庫(kù)信息表如圖3-7所示</p><p>  圖3-7 題庫(kù)信息表</p><p>  試卷信息表如圖3-8所示</p><p>  圖3-8 試卷信息

47、表</p><p>  學(xué)生答案表如圖3-9所示</p><p>  圖3-9 學(xué)生答案表</p><p>  學(xué)生成績(jī)表如圖3-10所示</p><p>  圖3-10 學(xué)生成績(jī)表</p><p>  系部信息表如圖3-11所示</p><p>  圖3-11 系部信息表</p>

48、<p>  專業(yè)信息表如圖3-12所示</p><p>  圖3-12 專業(yè)信息表</p><p>  科目信息表如表3-13所示</p><p>  表3-13 科目信息表</p><p>  班級(jí)信息表如圖3-14所示</p><p>  圖3-14班級(jí)信息表</p><p>&

49、lt;b>  3.2系統(tǒng)結(jié)構(gòu)設(shè)計(jì)</b></p><p>  3.2.1頁(yè)面模塊化設(shè)計(jì)</p><p>  模塊化設(shè)計(jì)的要求不僅是為了提高代碼的重用性,更重要的是為了提高代碼的可維護(hù)性和穩(wěn)定性。一個(gè)模塊化程度高、結(jié)構(gòu)清晰的應(yīng)用程序,在程序維護(hù)時(shí)的便利性是可想而知的。最初設(shè)計(jì)方案時(shí),就要規(guī)劃好哪些模塊是可以提出來(lái)多次使用,哪些模塊雖只使用一次,但提出來(lái)之后能使代碼更清晰等。

50、</p><p>  網(wǎng)上考試系統(tǒng)是一個(gè)典型的數(shù)據(jù)庫(kù)開發(fā)應(yīng)用程序,本系統(tǒng)主要用管理員、教師和學(xué)生三大模塊組成,各模塊功能如下:</p><p>  管理員模塊:該模塊主要是對(duì)系部、專業(yè)、班級(jí)、課程進(jìn)行管理,添加修改學(xué)生、教師、信息,添加試題、試卷和審核教師制作的試卷等。</p><p>  教師模塊:該模塊主要是教師通過登錄該系統(tǒng)能夠修改個(gè)人信息,添加試題,在線制作

51、試卷,閱卷等。</p><p>  學(xué)生模塊:該模塊主要是學(xué)生通過登錄該系統(tǒng)能夠修改個(gè)人信息(只能修改密碼),進(jìn)行考試等。</p><p>  3.2.2 MVC模式設(shè)計(jì)(Jsp+Servlet+JavaBean)</p><p>  MVC(Model View Controller)是一個(gè)設(shè)計(jì)模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。使用MVC應(yīng)用程序被

52、分成三個(gè)核心部件:模型、視圖、控制器。它們各自處理自己的任務(wù)。</p><p>  視圖是用戶看到并與之交互的界面。如何處理應(yīng)用程序的界面變得越來(lái)越有挑戰(zhàn)性。MVC一個(gè)大的好處是它能為你的應(yīng)用程序處理很多不同的視圖。JSP頁(yè)面處于表現(xiàn)層,也就是視力(View即V)的角色。</p><p>  模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC的三個(gè)部件中,模型擁有最多的處理任務(wù)。由于應(yīng)用于模型的代碼只需

53、寫一次就可以被多個(gè)視圖重用,所以減少了代碼的重復(fù)性。JavaBean則負(fù)責(zé)數(shù)據(jù)的處理,也就是模型(Model即M)的角色。</p><p>  控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。所以當(dāng)單擊Web頁(yè)面中的超鏈接和發(fā)送HTML表單時(shí),控制器本身不輸出任何東西和做任何處理。它只是接收請(qǐng)求并決定調(diào)用哪個(gè)模型構(gòu)件去處理請(qǐng)求,然后用確定用哪個(gè)視圖來(lái)顯示模型處理返回的數(shù)據(jù)。Servlet用來(lái)處理請(qǐng)求的事務(wù),

54、充當(dāng)控制器(Controller即C)的角色,Servlet負(fù)責(zé)響應(yīng)用戶對(duì)業(yè)務(wù)邏輯的請(qǐng)求并根據(jù)用戶的請(qǐng)求行為,決定將哪個(gè)JSP頁(yè)面發(fā)送給客戶。</p><p>  初始的請(qǐng)求由Servlet來(lái)處理,Servlet調(diào)用商業(yè)邏輯和數(shù)據(jù)處理代碼,并創(chuàng)建Bean來(lái)表示相應(yīng)的結(jié)果(模型)。然后Servlet確定哪個(gè)頁(yè)面適合于表達(dá)這些特定的結(jié)果,并將請(qǐng)求轉(zhuǎn)發(fā)到相應(yīng)的頁(yè)面(JSP頁(yè)面即為視圖),由Servlet確定哪個(gè)業(yè)務(wù)邏輯

55、適用,應(yīng)該用哪個(gè)JSP頁(yè)面相應(yīng)結(jié)果(Servlet就是控制器)。</p><p>  第4章 網(wǎng)上考試系統(tǒng)實(shí)現(xiàn)</p><p>  4.1系統(tǒng)各部分的實(shí)現(xiàn)方法</p><p>  從系統(tǒng)功能模塊劃分中可以看出,系統(tǒng)總體上有兩個(gè)功能模塊組成。各模塊雖然是獨(dú)立的,但又統(tǒng)一于同一數(shù)據(jù)庫(kù)中,便于管理員管理維護(hù)數(shù)據(jù)庫(kù),同時(shí)也便于教師和學(xué)生的操作。在介紹系統(tǒng)各模塊的實(shí)現(xiàn)方法之前

56、,首先介紹系統(tǒng)與數(shù)據(jù)庫(kù)的連接方式——使用JavaBean連接連接在服務(wù)器tomcat里配置的連接池。再介紹系統(tǒng)主要部分的實(shí)現(xiàn)方法。</p><p>  4.1.1創(chuàng)建與數(shù)據(jù)庫(kù)的連接</p><p>  配置數(shù)據(jù)源創(chuàng)建連接池,再通過JavaBean連接到數(shù)據(jù)源再對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。</p><p>  連接池是創(chuàng)建和管理一個(gè)連接的緩沖池的技術(shù),這些連接準(zhǔn)備好被任何需要它

57、們的線程使用。連接池可以極大的改善用戶的 Java 應(yīng)用程序的性能,同時(shí)減少全部資源的使用。連接池主要的優(yōu)點(diǎn)有:減少連接創(chuàng)建時(shí)間、簡(jiǎn)化的編程模式、受控的資源使用。連接池能夠使性能最大化,同時(shí)還能將資源利用控制在一定的水平之下,不過如果超過該水平,應(yīng)用程序?qū)⒈罎⒍粌H僅是變慢。</p><p><b>  配置連接池:</b></p><p>  1.首先要將mysql

58、的驅(qū)動(dòng)包放在tomcat/lib目錄下</p><p>  2.在應(yīng)用服務(wù)器Tomcat 里的/conf下找到一個(gè)context.xml文件,在里面添加的內(nèi)容如下:</p><p>  <Resource name="jdbc/examolds"</p><p>  auth="Container"</p>

59、<p>  type="javax.sql.DataSource"</p><p>  driverClassName="org.gjt.mm.mysql.Driver"</p><p>  url="jdbc:mysql://127.0.0.1/examol"</p><p>  userna

60、me="root"</p><p>  password="123"</p><p>  maxIdle="30"</p><p>  maxWait="10000"</p><p>  maxActive="100"/></p&g

61、t;<p>  </Context></p><p>  需要訪問數(shù)據(jù)庫(kù)就通過在JavaBean創(chuàng)建的一個(gè)叫QueryRunner()方法來(lái)訪問。</p><p><b>  代碼如下:</b></p><p>  public class Conn {</p><p>  public sta

62、tic QueryRunner getQueryRunner() {</p><p>  DataSource ds = null;</p><p><b>  try {</b></p><p>  Context context = new InitialContext();</p><p>  ds=(DataSo

63、urce)context.lookup("java:/comp/env/jdbc/examolds");</p><p>  } catch (Exception e) {</p><p>  System.out.println("獲取數(shù)據(jù)源出錯(cuò)!");</p><p><b>  }</b></

64、p><p>  QueryRunner qr = new QueryRunner(ds);</p><p>  return qr;</p><p><b>  }</b></p><p><b>  }</b></p><p>  4.1.2訪問數(shù)據(jù)庫(kù)的JavaBean<

65、/p><p>  JavaBean是一種Java語(yǔ)言寫成的可重用組件。為寫成JavaBean,類必須是具體的和公共的,并且具有無(wú)參數(shù)的構(gòu)造器。JavaBean通過提供符合一致性設(shè)計(jì)模式的公共方法將內(nèi)部域暴露成為屬性。眾所周知,屬性名稱符合這種模式,其他Java類可以通過自省機(jī)制發(fā)現(xiàn)和操作這些JavaBean屬性。</p><p>  用戶可以使用JavaBean將功能、處理、值、數(shù)據(jù)庫(kù)訪問和其

66、他任何可以用Java代碼創(chuàng)造的對(duì)象進(jìn)行打包,并且其他的開發(fā)者可以通過內(nèi)部的JSP頁(yè)面、Servlet、其他JavaBean、Applet程序或應(yīng)用來(lái)使用這些對(duì)象。用戶可以認(rèn)為JavaBean提供了一種隨時(shí)隨地的復(fù)制和粘貼的功能,而不用關(guān)心任何改變。</p><p>  JSP的一個(gè)重要特性就是可以用JavaBean實(shí)現(xiàn)功能的擴(kuò)展。將大部分功能放在JavaBean中完成,以使JSP頁(yè)面程序更干凈簡(jiǎn)潔、利于維護(hù)。Ja

67、vaBean可以很方便的用來(lái)捕獲頁(yè)面表單的輸入并完成各種業(yè)務(wù)邏輯的處理。</p><p>  連接數(shù)據(jù)庫(kù)的JavaBean——Conn。通過JSP頁(yè)面調(diào)用此JavaBean,可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的連接,數(shù)據(jù)表的添加、刪除、更新等操作。</p><p>  4.1.3用戶及管理員登錄模塊頁(yè)面</p><p>  用戶登錄頁(yè)面比較簡(jiǎn)單,為防止用戶登錄的操作錯(cuò)誤,應(yīng)設(shè)置錯(cuò)誤處

68、理頁(yè)面,在登錄操作過程中,一般發(fā)生的錯(cuò)誤有:用戶輸入了錯(cuò)誤的用戶名或密碼、用戶直接單擊了登錄按鈕,對(duì)上述情況的判斷就要通過Servlet文件來(lái)實(shí)現(xiàn)。學(xué)生登錄界面如圖4-1所示:</p><p>  圖4-1 學(xué)生登錄面</p><p>  管理員教師登錄界面如4-2圖所示:</p><p>  圖4-2 管理員教師登錄界面</p><p> 

69、 在登錄頁(yè)面時(shí),當(dāng)用戶提交了登錄資料后,就由“UsersServlet.java”這個(gè)servlet進(jìn)行驗(yàn)證,它的工作主要是判斷用戶登錄的帳號(hào)和密碼是否一致。完成這些工作就必須連接存儲(chǔ)用戶數(shù)據(jù)庫(kù)取出相關(guān)信息記錄。如果用戶輸入了錯(cuò)誤的用戶名和密碼,通過history.back();返回到登錄界面并提示出錯(cuò),如圖4-3所示:</p><p>  圖4-3登錄錯(cuò)誤提示頁(yè)面</p><p>  若

70、用戶提交正確的用戶和密碼后,如果記錄驗(yàn)證無(wú)誤,就通過JSP的request.getRequestDispatcher()方法跳轉(zhuǎn)到相應(yīng)的界面;判斷用戶是否輸入正確用戶名和密碼的Java程序片段如下所示:</p><p>  //學(xué)生登錄信息驗(yàn)證</p><p>  public void stu(HttpServletRequest request, HttpServletResponse

71、 response) throws ServletException, IOException {</p><p>  String StuId = request.getParameter("StuId");</p><p>  String StuPwd = request.getParameter("StuPwd");</p>&

72、lt;p>  String sql = "select * from student where StuId=? and StuPwd=?";</p><p>  String params[] = { StuId, StuPwd };</p><p>  QueryRunner qr = Conn.getQueryRunner();</p><

73、;p>  Student student = null;</p><p>  List list = null;</p><p><b>  try {</b></p><p>  list = (List) qr.query(sql, new BeanListHandler(Student.class),params);</p&g

74、t;<p>  } catch (SQLException e) {</p><p><b>  }</b></p><p>  if (list.size() > 0) {</p><p>  student = (Student) list.get(0);</p><p>  HttpSessio

75、n session = request.getSession();</p><p>  session.setAttribute("student", student);request.getRequestDispatcher("/servlet/OptionExamSelect").forward(request, response);</p><

76、p><b>  } else {</b></p><p>  response.setContentType("text ml;charset=UTF-8");</p><p>  PrintWriter out = response.getWriter();</p><p>  out.println("&

77、lt;script language = javascript>alert('學(xué)號(hào)或密碼有誤,請(qǐng)重新登錄!');history.back();</script>");</p><p><b>  }</b></p><p><b>  }</b></p><p>  //教師和管

78、理員登錄信息驗(yàn)證</p><p>  public void tea(HttpServletRequest request, HttpServletResponse response)</p><p>  throws ServletException, IOException {</p><p>  String TeaId = request.getParame

79、ter("TeaId");</p><p>  String TeaPwd = request.getParameter("TeaPwd");</p><p>  System.out.println(TeaId);</p><p>  System.out.println(TeaPwd);</p><p&

80、gt;  String sql = "select * from teacher where TeaId=? and TeaPwd=?";</p><p>  String params[] = { TeaId, TeaPwd };</p><p>  QueryRunner qr = Conn.getQueryRunner();</p><p>

81、;  Teacher teacher = null;</p><p>  List list = null;</p><p><b>  try {</b></p><p>  list=(List)qr.query(sql,new BeanListHandler(Teacher.class),params);</p><p

82、>  } catch (SQLException e) {</p><p><b>  }</b></p><p>  if (list.size() > 0) {</p><p>  teacher = (Teacher) list.get(0);</p><p>  System.out.println(

83、teacher.getTealimit());</p><p><b>  // 老師登錄</b></p><p>  if (teacher.getTealimit().equals("0")) {</p><p>  HttpSession session = request.getSession();</p>

84、;<p>  session.setAttribute("teacher", teacher);</p><p>  response.sendRedirect("/examOL/teacher/main.jsp");</p><p><b>  }</b></p><p><b>

85、;  // 管理員登錄</b></p><p>  if (teacher.getTealimit().equals("1")) {</p><p>  HttpSession session = request.getSession();</p><p>  session.setAttribute("teacher&qu

86、ot;, teacher);</p><p>  response.sendRedirect("/examOL/admin/main.jsp");</p><p><b>  }</b></p><p><b>  } else {</b></p><p>  response.

87、setContentType("text ml;charset=UTF-8");</p><p>  PrintWriter out = response.getWriter();</p><p><b>  out</b></p><p>  .println("<script language = jav

88、ascript>alert('用戶名或密碼有誤,請(qǐng)重新登錄!');history.back();</script>");</p><p><b>  }</b></p><p><b>  }</b></p><p>  4.1.4系統(tǒng)主要模塊頁(yè)面</p><

89、p>  整個(gè)系統(tǒng)都采用JSP+JavaBean+Servletm模式實(shí)現(xiàn)。JSP+JavaBean+servlet模式的運(yùn)用實(shí)現(xiàn)了代碼的重復(fù)利用;是系統(tǒng)程序易編寫、易維護(hù)、易使用;并且可以在任何安裝了Java運(yùn)行環(huán)境的平臺(tái)上使用而不需要重新編譯。系統(tǒng)首頁(yè)如圖4-4、4-5、4-6所示。</p><p>  學(xué)生登錄系統(tǒng)進(jìn)入學(xué)生選擇考試頁(yè)面如圖4-4所示:</p><p>  圖4-4

90、 學(xué)生登錄首頁(yè)</p><p>  教師登錄系統(tǒng)后,進(jìn)入教師首頁(yè)如下圖4-5所示:</p><p><b>  圖4-5 教師界面</b></p><p>  管理員登錄系統(tǒng)后,進(jìn)入管理員首頁(yè)如下圖4-6所示:</p><p>  圖4-6 管理員首頁(yè)</p><p>  不同用戶登錄系統(tǒng)后顯示的

91、界面都是簡(jiǎn)單都是一些功能的鏈接。外觀是一個(gè)DIV+CSS的后臺(tái)管理模版。</p><p>  4.1.5學(xué)生考試模塊的實(shí)現(xiàn)頁(yè)面</p><p>  考生可以通過首頁(yè)登錄進(jìn)入選擇考試頁(yè)面,如上圖所示。在該頁(yè)面考生能查看考試科目和開考時(shí)間,可以修改個(gè)人的密碼。修改密碼成功后將自動(dòng)注銷重新登錄。</p><p>  如果到了開始考試的時(shí)間“是否考試”中就會(huì)由“等待考試”變

92、成“開始考試”的連接了,考生可以點(diǎn)擊此處進(jìn)入到考試頁(yè)面??荚図?yè)面有倒計(jì)時(shí)顯示,如果時(shí)間到了系統(tǒng)會(huì)自動(dòng)提交。</p><p>  學(xué)生考試界面如下圖4-7所示。 </p><p><b>  圖4-7 考試頁(yè)面</b></p><p><b>  功能實(shí)現(xiàn)代碼如下:</b></p><p>  sql

93、 = "SELECT * FROM test ,subject WHERE test.SubNum = subject.SubNum AND test.TesNum = "+ id;</p><p>  Paper paper = null;</p><p><b>  try {</b></p><p>  List

94、list = (List) qr.query(sql, new BeanListHandler(Paper.class));</p><p>  paper = (Paper) list.get(0);</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><

95、;p><b>  }</b></p><p>  sql = "select * from question where SubNum="+ paper.getSubNum() + " "+ "AND question.QueType = '選擇題' "+ "order By rand() Limi

96、t " + paper.getTesSinCount();</p><p>  System.out.println("選擇題" + sql);</p><p>  List sincount = null;</p><p><b>  try {</b></p><p>  sincoun

97、t = (List) qr.query(sql, new BeanListHandler(</p><p>  Question.class));</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b>

98、</p><p>  sql = "select * from question where SubNum="+ paper.getSubNum() + " "+ "AND question.QueType = '填空題' "+ "order By rand() Limit " + paper.getTesBlaCo

99、unt();</p><p>  System.out.println("填空題" + sql);</p><p>  List blabount = null;</p><p><b>  try {</b></p><p>  blabount = (List) qr.query(sql, new

100、 BeanListHandler(</p><p>  Question.class));</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  sql =

101、 "select * from question where SubNum="+ paper.getSubNum() + " "</p><p>  + "AND question.QueType = '問答題' "</p><p>  + "order By rand() Limit " +

102、 paper.getTesAnsCount();</p><p>  System.out.println("問答題" + sql);</p><p>  List anscount = null;</p><p><b>  try {</b></p><p>  anscount = (List)

103、 qr.query(sql, new BeanListHandler(</p><p>  Question.class));</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p>

104、<p>  4.1.6教師添加試題制作試卷模塊的實(shí)現(xiàn)</p><p>  教師登錄到系統(tǒng)后通過左邊的管理菜單了解到自己擁有那些功能:題庫(kù)信息查看、添加題庫(kù),試卷信息查看,添加試卷,閱卷管理等。題庫(kù)添加:先選擇所添加試題的科目和題型再進(jìn)行添加。系統(tǒng)設(shè)置了選擇題,填空題,問答題。</p><p>  教師可以在線制作試卷,設(shè)置考試的科目、時(shí)間、考試時(shí)間段、題型分布、分值分布、考題

105、數(shù)量等,考題數(shù)量必須根據(jù)系統(tǒng)提示題庫(kù)總數(shù)量設(shè)置,不能把考題數(shù)量超出題庫(kù)的總數(shù)量。</p><p>  在線制作試卷頁(yè)面如下圖4-8所示。</p><p>  圖4-8 在線制作試卷頁(yè)面</p><p>  實(shí)現(xiàn)在線制作試卷代碼如下:</p><p>  request.setCharacterEncoding("UTF-8"

106、;);</p><p>  String SubNum = request.getParameter("subnum");</p><p>  String TeaNum = request.getParameter("teanum");</p><p>  String TesName = request.getParame

107、ter("TesName");</p><p>  String TesTotalper = request.getParameter("TesTotalper");</p><p>  String TesSinCount = request.getParameter("TesSinCount");</p><

108、;p>  String TesBlaCount = request.getParameter("TesBlaCount");</p><p>  String TesAnsCount = request.getParameter("TesAnsCount");</p><p>  String TesSinPer = request.getPa

109、rameter("TesSinPer");</p><p>  String TesBlaPer = request.getParameter("TesBlaPer");</p><p>  String TesAnsPer = request.getParameter("TesAnsPer");</p><p

110、>  String TesTime = request.getParameter("TesTime");</p><p>  String atarttime = request.getParameter("atarttime");</p><p>  String endtime = request.getParameter("en

111、dtime");</p><p>  String done = request.getParameter("done");</p><p>  System.out.println(SubNum);</p><p>  String sql = "insert into test "+ "(SubNum,

112、TeaNum,TesName,TesTotalper,TesSinCount,TesSinPer,TesBlaCount,TesBlaPer,TesAnsCount,TesAnsPer,TesTime,atarttime,endtime,Done,addtime) "+ "values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,now())";</p><p>  St

113、ring params[] = { SubNum, TeaNum, TesName, TesTotalper, TesSinCount, TesSinPer, TesBlaCount, TesBlaPer, TesAnsCount, TesAnsPer, TesTime, atarttime, endtime, done };</p><p>  QueryRunner qr = Conn.getQueryRun

114、ner();</p><p><b>  try {</b></p><p>  qr.update(sql, params);</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>

115、;  }</b></p><p><b>  第5章 系統(tǒng)測(cè)試</b></p><p>  5.1什么是軟件測(cè)試</p><p>  軟件測(cè)試是在軟件投入運(yùn)行前,對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說(shuō)明書和編碼的最終的復(fù)審,是軟件質(zhì)量保證的關(guān)鍵步驟。確切的說(shuō),軟件測(cè)試就是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行的過程。一般分為兩個(gè)階段:</p><

116、;p>  1.單元測(cè)試:在編完一模塊后進(jìn)行測(cè)試;</p><p>  2.綜合測(cè)試:在開發(fā)完軟件后進(jìn)行綜合測(cè)試。</p><p>  5.2軟件測(cè)試的目標(biāo)與方法</p><p>  G.Myers給出了關(guān)于測(cè)試的一些規(guī)則,這些規(guī)則可以看作是測(cè)試的目標(biāo)或定義:</p><p>  1.測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過程;</

117、p><p>  2.好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試;</p><p>  3.成功的測(cè)試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。</p><p>  測(cè)試任何軟件都有兩種方法:黑盒測(cè)試和白盒測(cè)試法。</p><p>  黑盒測(cè)試法(又稱功能測(cè)試法)是把程序看成一個(gè)黑盒子,完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程,是在程序接口進(jìn)行的測(cè)

118、試,它只檢查程序功能是否按照規(guī)格說(shuō)明書的規(guī)定正常使用。</p><p>  白盒測(cè)試法(又稱結(jié)構(gòu)測(cè)試法)是把程序看成裝在一個(gè)透明的白盒子里,也就是完全了解程序的結(jié)構(gòu)和處理過程,這種方法按照程序內(nèi)部的邏輯測(cè)試程序,檢驗(yàn)程序中的每條通路是否都能按照預(yù)定要求正確工作。</p><p>  通過測(cè)試并不能證明程序就是完全正確的,但我們的目的就是要通過測(cè)試保證軟件的可靠性,因此,必須仔細(xì)設(shè)計(jì)測(cè)試方案

119、,力爭(zhēng)用最少的測(cè)試發(fā)現(xiàn)盡可能多的錯(cuò)誤。</p><p>  5.3系統(tǒng)的不足和展望</p><p>  對(duì)于本次做的網(wǎng)上考試系統(tǒng)有很多的不足和不完善的地方。比如系統(tǒng)的有些功能操作不夠人性話。提示不夠準(zhǔn)確,對(duì)管理信息的設(shè)置很不完善等。尤其是在題庫(kù)的設(shè)計(jì),沒有設(shè)置試題的難易程度,學(xué)生考試就不能有層次性的進(jìn)行測(cè)試了。</p><p>  在當(dāng)今信息時(shí)代,計(jì)算機(jī)技術(shù)與網(wǎng)絡(luò)技

120、術(shù)越來(lái)越廣地成熟的應(yīng)用于各個(gè)領(lǐng)域,同時(shí)也影響了教育領(lǐng)域的重大變革,網(wǎng)上考試系統(tǒng)也將更多更好的應(yīng)用在教育教學(xué)領(lǐng)域中。以后的網(wǎng)上考試系統(tǒng)將會(huì)更加完善使用。</p><p><b>  結(jié)束語(yǔ)</b></p><p>  通過這次畢業(yè)設(shè)計(jì),對(duì)很多東西有了新的認(rèn)識(shí)和新的見解,認(rèn)識(shí)問題的和思考解決辦法有了本質(zhì)上的進(jìn)步,特別是對(duì)一個(gè)系統(tǒng)開發(fā)的模式有了更深的認(rèn)識(shí),對(duì)專業(yè)技能的運(yùn)用更

121、熟練。</p><p>  網(wǎng)上考試系統(tǒng)的開發(fā)過程中也遇到了很多問題,開始做需求時(shí)不確定考試系統(tǒng)到底應(yīng)該具備那些功能,只知道主要功能就是有試題能考試,但具體流程,怎樣實(shí)現(xiàn)這些功能就很模糊,所以查看了很多資料才理清楚。數(shù)據(jù)庫(kù)設(shè)計(jì)也是個(gè)難點(diǎn),不明確要實(shí)現(xiàn)哪些功能就不能很好的把數(shù)據(jù)庫(kù)設(shè)計(jì)好。設(shè)計(jì)數(shù)據(jù)庫(kù)就是開發(fā)一個(gè)系統(tǒng)的核心。設(shè)計(jì)數(shù)據(jù)庫(kù)一定要思路清晰,各個(gè)數(shù)據(jù)的流向各個(gè)表之間的關(guān)系一定要弄清楚,透徹。數(shù)據(jù)庫(kù)設(shè)計(jì)出錯(cuò)了對(duì)以

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論