版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- jsp網(wǎng)上購(gòu)物系統(tǒng)畢業(yè)設(shè)計(jì)論文
- jsp網(wǎng)上購(gòu)物系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 基于jsp技術(shù)網(wǎng)上購(gòu)物系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 基于jsp技術(shù)網(wǎng)上購(gòu)物系統(tǒng)畢業(yè)設(shè)計(jì)論文
- jsp網(wǎng)上購(gòu)物系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---jsp網(wǎng)上購(gòu)物系統(tǒng)設(shè)計(jì)
- 網(wǎng)上考試系統(tǒng)畢業(yè)設(shè)計(jì)論文
- jsp網(wǎng)上鮮花店管理系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 網(wǎng)上書店系統(tǒng)(論文范文,jsp,java,畢業(yè)設(shè)計(jì))
- 網(wǎng)上考試書店系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)--基于jsp的網(wǎng)上購(gòu)物系統(tǒng)
- 基于jsp的網(wǎng)上購(gòu)物系統(tǒng)畢業(yè)設(shè)計(jì)
- 基于jsp的網(wǎng)上書店畢業(yè)設(shè)計(jì)論文
- 基于jsp的網(wǎng)上購(gòu)物系統(tǒng)-畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)基于jsp技術(shù)的網(wǎng)上花店系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- jsp網(wǎng)上商城畢業(yè)設(shè)計(jì)
- 網(wǎng)上訂餐jsp系統(tǒng)畢業(yè)論文
- 畢業(yè)設(shè)計(jì) ----網(wǎng)上考試系統(tǒng)
- 網(wǎng)上考試系統(tǒng)畢業(yè)設(shè)計(jì)
- 網(wǎng)上考試系統(tǒng)畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論