版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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章網上考試系統(tǒng)需求
2、分析3</p><p><b> 2.1現(xiàn)狀分析3</b></p><p> 2.2可行性分析4</p><p> 2.2.1經濟可行性4</p><p> 2.2.2技術可行性4</p><p><b> 2.3設計目標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ā)語言—JSP(Java Server Page)6</p><p> 2.6.2數(shù)據庫—MySQL5.07</p>
4、<p> 第3章 網上考試系統(tǒng)設計8</p><p> 3.1數(shù)據庫設計8</p><p> 3.1.1數(shù)據庫需求分析8</p><p> 3.1.2數(shù)據庫概念結構設計9</p><p> 3.1.3數(shù)據庫邏輯結構設計10</p><p> 3.1.4數(shù)據庫表設計13</p>
5、;<p> 3.2系統(tǒng)結構設計15</p><p> 3.2.1頁面模塊化設計15</p><p> 3.2.2 MVC模式設計(Jsp+Servlet+JavaBean)16</p><p> 第4章 網上考試系統(tǒng)實現(xiàn)17</p><p> 4.1系統(tǒng)各部分的實現(xiàn)方法17</p><p&
6、gt; 4.1.1創(chuàng)建與數(shù)據庫的連接17</p><p> 4.1.2訪問數(shù)據庫的JavaBean18</p><p> 4.1.3用戶及管理員登錄模塊頁面19</p><p> 4.1.4系統(tǒng)主要模塊頁面23</p><p> 4.1.5學生考試模塊的實現(xiàn)頁面25</p><p> 4.1.6教
7、師添加試題制作試卷模塊的實現(xiàn)27</p><p> 第5章 系統(tǒng)測試30</p><p> 5.1什么是軟件測試30</p><p> 5.2軟件測試的目標與方法30</p><p> 5.3系統(tǒng)的不足和展望30</p><p><b> 結束語32</b></p>
8、;<p><b> 致 謝33</b></p><p><b> 參考文獻34</b></p><p><b> 緒 論</b></p><p> 考試是檢驗教學效果的重要手段,也是促進學生學習的重要手段,是教學過程中的一個重要環(huán)節(jié)。學生考試成績的優(yōu)劣,不但反映其對教學內容和
9、應掌握知識的分析、理解、吸收、運用的能力,更反映教師對教學內容的把握和熟練程度。</p><p> 傳統(tǒng)的學校教學中,進行一場考試,要求老師編寫試卷、印試卷、安排考試、監(jiān)考、收集試卷、評改試卷、講評試卷和分析試卷,這是一個繁雜的過程,需要大量人力、物力與時間的投入,已經越來越不適應學校信息化建設與現(xiàn)代教學的需要。尤其在遠程網絡教學中,學生分布廣,不易統(tǒng)一集中安排考試,給校方和學生帶來了眾多的不便。</p&
10、gt;<p> 而網上考試系統(tǒng)不僅減輕了在組織考試、評卷、成績統(tǒng)計等方面所花費的人力和物力,并且突破了時間與空間的限制,不僅節(jié)省了資源,而且提高了評分的客觀性、公正性和準確度,大大改善了考試工作的效率。加上數(shù)據庫技術的利用,大大簡化了傳統(tǒng)考試的過程,因此在線考試是電子化教學的不可缺少的輔助手段。在當今信息時代,計算機技術與網絡技術越來越廣地應用于各個領域,改變著人們的學習、工作、生活乃至思維方式,也引起了教育領域的重大變
11、革。將計算機與網絡技術應用于現(xiàn)代高等教育中,是現(xiàn)代高等教育發(fā)展的需要,也是改革教育模式,提高學校教學效果和教學效率、提高科研和管理水平的必要手段。</p><p> 第1章 系統(tǒng)開發(fā)背景及意義</p><p><b> 1.1系統(tǒng)開發(fā)背景</b></p><p> 隨著計算機技術、網絡技術迅速發(fā)展和高校校園網功能的日益完善,很多高校建立了
12、基于校園網的網絡信息管理平臺,為提高教學管理水平提供了先進的管理手段。目前,基于網絡的在線考試系統(tǒng)己經成為現(xiàn)代考試方式的有力補充和發(fā)展。相對于傳統(tǒng)的筆試,網絡在線考試不僅減輕了在組織考試、評卷、成績統(tǒng)計等方面所花費的人力和物力,并且突破了時間與空間的限制,不僅節(jié)省了資源,而且提高了評分的客觀性、公正性和準確度,大大改善了考試工作的效率。</p><p><b> 1.2系統(tǒng)開發(fā)意義</b>
13、</p><p> 很多學校學生的期末考試仍采用任課教師(個人或集體)考前出題的方式。為解決學生壓題,考前漏題,補(緩)考試題與正式考試試題題量及難度差異問題,教務管理部門通常要求教師同時出多套試卷,其題量與難度要求相同,并且要同時給出答案和評分標準。這樣做雖能解決一些問題,但給教師增加了很大的工作負擔,若上下屆學生的同一門課程由同一教師承擔,則難免幾屆學生用相同幾套試卷;若由不同教師任課出題,則上下屆學生的成
14、績之間又不具有可比性。</p><p> 若建立題庫,每次考試前由題庫中題目隨機生成試卷,則可較好地解決考教分離的問題,也可將廣大教師從每學期末繁重的命題工作中解放出來。近年來,部分學校陸續(xù)開發(fā)了一些基于微機的題庫系統(tǒng),并作為成果向其它學校推廣,但這些題庫一般都是結合本校具體情況,針對單一課程的小型題庫,甚至某些學校購得的題庫系統(tǒng)中的題目本身是不可維護的,即使題目已不適合自己的學生考試使用,也無法更新題庫中的題
15、目。</p><p> 為解決題庫系統(tǒng)中存在的這些問題, 作者經過研究幾種不同的網上系統(tǒng),經充分的考慮,最后給出了一個較為理想的題庫系統(tǒng)解決方案,并結合當前比較使用的B/S結構開發(fā)一個功能完備的網上考試系統(tǒng)。</p><p> 第2章網上考試系統(tǒng)需求分析</p><p><b> 2.1現(xiàn)狀分析</b></p><p&
16、gt; 傳統(tǒng)的考試方法要求組織者提前命題試卷,然后約定一個統(tǒng)一時間,讓所有考生到考場里進行考試。這種模式如圖2-1 所示:</p><p><b> 編輯考題</b></p><p><b> 印刷大量試卷</b></p><p> 安排考場,時間,監(jiān)考人員</p><p><b>
17、; 學生集體考試</b></p><p><b> 閱卷,統(tǒng)計成績</b></p><p> 圖2-1 傳統(tǒng)考試模式</p><p> 這種模式存在有較多的問題:</p><p> 命題:由于考試要求統(tǒng)一進行,所有考生都考同樣的一份試卷,所以試卷的命題工作便一定得非常謹慎小心,試題太難或太容易,都達
18、不到考試目的,尤其是對于一個大規(guī)模的考試,(比如計算機等級考試,英語四,六級考試等),如何正確把握試卷的難度,一直都是讓命題教師最為頭痛的問題之一。而如何不在考試之前使命好的試題泄漏出去,也是組織者費盡心思。</p><p> 試卷印刷:對于大規(guī)模的考試,試卷印刷費工費時,成本高,對紙張資源也是一種浪費。對于涉及地域范圍較廣的考試(如英語四,六級考試),還要考慮試卷大的長途運送費用。在考試的印刷和運輸過程中同樣
19、有試題泄漏出去的問題,任何一個環(huán)節(jié)出了問題,都可能使前面有的工作付諸流水。</p><p> 考場的安排:監(jiān)考人員的培訓與管理。對于大規(guī)模的考試,尤其是到了考試密集期(如期末,期中)。諸多學科的考試都要陸續(xù)開始的時候,對于教室資源和教師數(shù)量相對緊張的學校,如何安排考場,調配監(jiān)考人員,是一件相對繁瑣而又復雜的事情。如果考試再涉及到不同地域之間的同步,如英語四,六級的考試,還要考慮更多的問題。</p>
20、<p> 進行考試:由于同一次考試的試卷相同,要杜絕考生作弊是一個普遍的難題,因此,歷屆組織考試的人動了很多腦筋,如分AB卷,加強監(jiān)考,加重對作弊者的懲罰程度等,但這些都沒能從根本上杜絕作弊。不同地域監(jiān)考的嚴格程度,考試時問控制的嚴格程度,也很難達到統(tǒng)一。過多人為因素的加入,也使得考試的公正性下降。</p><p> 判卷:考試結束后,采用人工判卷比較容易出錯,并可能出現(xiàn)人為造成的不公正現(xiàn)象。&l
21、t;/p><p><b> 2.2可行性分析</b></p><p> 可行性分析也稱為可行性研究,即是在系統(tǒng)調查的基礎上,針對新系統(tǒng)的開發(fā)是否具備必要性和可能性,對新系統(tǒng)的開發(fā)從技術、經濟、管理的方面進行分析和研究,以避免投資失誤,保證新系統(tǒng)的開發(fā)成功??尚行匝芯康哪康木褪怯米钚〉拇鷥r在盡可能短的時間內確定問題是否能夠解決。該系統(tǒng)的可行性分析包括以下幾個方面的內容。
22、</p><p> 2.2.1經濟可行性</p><p> 主要是對項目的經濟效益進行評價,利用計算機來實現(xiàn)網上考試以成為適應當今教學管理的方式。開發(fā)一套能滿足網上考試系統(tǒng)的軟件是十分必要的,實現(xiàn)試卷管理和試卷生成自動化,在減少由于認為失誤而早成損失的同時,也可以使教師減少工作量。本系統(tǒng)在經濟上是可以接受的,并且本系統(tǒng)實施后可以顯著提高考試效率,有助于學院完全實現(xiàn)網絡化管理。所以本系統(tǒng)
23、在經濟上是可行的。</p><p> 2.2.2技術可行性</p><p> 技術上的可行性分析主要分析技術條件是否能順利完成開發(fā)工作,硬、軟件能否滿足開發(fā)者的需要等。</p><p> 軟件方面,網絡化考試需要的各種軟件環(huán)境都已具備,數(shù)據庫服務器方面則有MySQL,均能夠處理大量數(shù)據,同時保持數(shù)據的完整性并提供許多高級管理功能。其靈活性、安全性和易用性為數(shù)據
24、庫編程提供了良好的條件。因此,系統(tǒng)的軟件開發(fā)平臺已成熟可行。</p><p> 硬件方面,科技飛速發(fā)展的今天,硬件更新的速度越來越快,容量越來越大,可靠性越來越高,價格越來越低,其硬件平臺完全能滿足此系統(tǒng)的需要。</p><p><b> 2.3設計目標</b></p><p> 在線考試系統(tǒng)的總體目標:</p><
25、p> 在線考試系統(tǒng)可以幫助教師完成一個考試從題目設計,考試安排,考試實施,考卷批改到分數(shù)計算總結的所有工作。</p><p> 所有的考試數(shù)據和其它數(shù)據庫需要一種主流的方式進行存儲和管理,例如使用數(shù)據庫技術。</p><p> 考試數(shù)據的存放和處理必須對考試保密,需要一定的安全性保障。</p><p> 題目最好有一定的穩(wěn)定性和隨機性。穩(wěn)定性可以保證每
26、一次考試對每一個考生是公平的,隨機性可以避免作弊的發(fā)生。</p><p> 考試的部分客觀題在考生考完之后系統(tǒng)就能自動評分,并保存考生的主觀題答案。</p><p><b> 2.4功能要求</b></p><p> 系統(tǒng)應該具備的基本功能:</p><p> 用戶類別:登錄系統(tǒng)的身份定為三種,一是管理員,二是普
27、通老師,四是學生,只有被授權的用戶才可以使用本系統(tǒng)的資源。 </p><p> 權限管理:系統(tǒng)需要經過有效的身份驗證可以登錄。用戶的身份不同,使用的系統(tǒng)資源也不同??忌豢梢詤⒓釉诰€考試;普通教師可以在線制作試卷,控制考試、成績查詢、添加試題、閱卷等。管理員可添加系系部、教師、專業(yè)、科目信息、查詢修改管理員信息及審批試卷、查詢考生成績。 </p><p> 在線考試功能:考生輸入學號密
28、碼登陸系統(tǒng)后,選擇對應的試卷可進行考試。答題中,有倒計時的功能,考試結束時還沒提交就自動交卷,系統(tǒng)將自動對客觀題進行評分。 </p><p> 在線制作試卷:教師、管理員可在線制作試卷,可設定試題的類型、分值,但教師制作試卷后必須要由管理員審核才能考試。 </p><p> 控制考試功能:可設定每次的考試時間。 </p><p> 考生管理功能:可注冊新增學生
29、用戶,同時查看考生及班級考生的信息。 </p><p> 考生成績查詢功能:提供考生各科目成績的詳細查詢。 </p><p> 試卷審批功能:只有管理員有此權限。教師制作試卷完畢,只有經過管理員審批后才能發(fā)布,發(fā)布后學生才能開考。 </p><p> 除了實現(xiàn)上述功能以外,在線考試系統(tǒng)還應該具有友好、簡潔的界面,安全性要高,穩(wěn)定性要強。</p>
30、<p> 2.5系統(tǒng)開發(fā)環(huán)境配置</p><p> 選擇微軟平臺作為主導,一方面考慮目前微軟的飛速發(fā)展,越來越多的企業(yè)在規(guī)劃內部網絡時,將微軟平臺作為首選方案;令一方面從技術角度來講,微軟平臺上的應用無論是在開發(fā)上,還是在軟件的部署上都是非常容易,而且性能優(yōu)越。具體如下:</p><p> 開發(fā)工具:MyEclipse 8.0</p><p> 輔
31、助開發(fā)工具: Dreamweaver 8</p><p> 數(shù)據庫:MySQL5.0</p><p> 服務器 :Apache Tomcat6.0</p><p> 運行環(huán)境 :安裝JDK1.6支持Java運行。</p><p> 技術:前臺網頁的設計采用JSP技術制作。負責響應用戶對業(yè)務邏輯的請求并根據用戶的請求行為,決定將哪個JS
32、P頁面發(fā)送給客戶由servlet處理,JavaBean則負責數(shù)據的處理。</p><p><b> 2.6系統(tǒng)開發(fā)工具</b></p><p> 本系統(tǒng)是基于JSP+MySQL5.0數(shù)據庫技術實現(xiàn)的,現(xiàn)對JSP技術和SQL Server 2005數(shù)據庫作簡要的介紹。</p><p> 2.6.1開發(fā)語言—JSP(Java Server P
33、age)</p><p> JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。Java Servlet是JSP的技術基礎,而且大型的Web應用程序的開發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術的簡單易用,完全的面向對象,具有平臺無關性且安全可靠,主要面向因特網的等特點。JSP的技術的優(yōu)勢:</p><p> 一次編寫,到處運行。在這一點上Java
34、比PHP更出色,除了系統(tǒng)之外,代碼不需要做任何更改。</p><p> 系統(tǒng)的多平臺支持。基本上可以在所有平臺上的任意環(huán)境中開發(fā),在任意環(huán)境中進行系統(tǒng)部署,在任意環(huán)境中擴展。相比ASP/PHP的局限性是顯而易見的。</p><p> JSP技術是用Java語言作為腳本語言的。Java語言是成熟的、強大的、易擴充的編程語言。</p><p> 高效性與安全性。J
35、SP在執(zhí)行前先被編譯成字節(jié)碼,字節(jié)碼由Java虛擬機解釋執(zhí)行,比源碼解釋效率高。</p><p> 可維護性。由于JSP技術是一種開放的、跨平臺的結構,因此Web服務器、平臺及其他組件能很容易升級或切換,且不會影響JSP基本的應用程序。</p><p> 多樣化和功能強大的開發(fā)工具支持。Java已經有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費得到,并且其中許多已經可以順利的運行于多種平
36、臺之下。</p><p> 2.6.2數(shù)據庫—MySQL5.0</p><p> MySQL是一個精巧的SQL數(shù)據庫管理系統(tǒng),雖然它不是開放源代碼的產品,但在某些情況下你可以自由使用。由于它的強大功能、靈活性、豐富的應用編程接口(API)以及精巧的系統(tǒng)結構,受到了廣大自由軟件愛好者甚至是商業(yè)軟件用戶的青睞,特別是與Apache和PHP/PERL結合,為建立基于數(shù)據庫的動態(tài)網站提供了強大
37、動力。 </p><p> SQL是一種標準化的語言,它使得存儲、更新和存取信息更容易。例如,你能用SQL語言為一個網站檢索產品信息及存儲顧客信息,同時MySQL也足夠快和靈活以允許你存儲記錄文件和圖像。</p><p> 第3章 網上考試系統(tǒng)設計</p><p><b> 3.1數(shù)據庫設計</b></p><p>
38、; 在對網上考試系統(tǒng)數(shù)據庫部分進行設計的過程中,通過對系統(tǒng)功能進行需求分析得到系統(tǒng)的基本信息表,繪制系統(tǒng)業(yè)務流程圖和系統(tǒng)數(shù)據流程圖,分析得到數(shù)據字典;在概率結構設計階段通過對需求階段得到的用戶需求抽象得到數(shù)據庫關系模型的E-R圖;在邏輯結構設計階段得到數(shù)據庫的關系模式并繪制信息表。詳細設計過程如下介紹。</p><p> 3.1.1數(shù)據庫需求分析</p><p> 需求分析是設計數(shù)據
39、庫的起點,需求分析的結果是否準確地反映了用戶的實際要求,將直接影響到后面各個階段的設計,并影響到設計結果是否合理和實用。</p><p> 3.1.1.1系統(tǒng)基本信息</p><p> 綜合以上分析,要實現(xiàn)上面的所有功能模塊,數(shù)據庫共要設計十個表,它們分別是:科目表、班級表、系別表、專業(yè)表、試卷信息表、學生表、學生成績表、學生答題試卷信息表、教師表、題庫表。</p>&l
40、t;p> 3.1.1.2系統(tǒng)層次圖</p><p> 根據所要實現(xiàn)的功能和用戶權限的設置。</p><p> 系統(tǒng)總體的層次圖如下圖3-1所示:</p><p><b> 圖3-1系統(tǒng)層次圖</b></p><p> 3.1.1.3系統(tǒng)數(shù)據流程圖</p><p> 系統(tǒng)數(shù)據流程圖
41、如下圖3-2所示:</p><p><b> 圖3-2數(shù)據流程圖</b></p><p> 3.1.2數(shù)據庫概念結構設計</p><p> 概念設計階段主要是將需求分析階段得到的用戶需求抽象為信息結構(概念模型)的過程,它是整個數(shù)據庫設計的關鍵,包括概念模型設計和新系統(tǒng)流程兩個階段。在需求分析階段所得到的應用需求應該首先抽象為信息世界的結
42、構,才能更好地、更準確地用某一DBMS實現(xiàn)這些需求。</p><p> 概念數(shù)據模型獨立于具體的數(shù)據處理的細節(jié)和數(shù)據庫管理系統(tǒng)。這次設計仍采用傳統(tǒng)的實體聯(lián)系圖作為概念設計的工具。再進行優(yōu)化后,盡量滿足結構清晰、關聯(lián)簡潔、實體個數(shù)適中、屬性分配合理、沒有低級冗余。系統(tǒng)E-R圖如下圖3-3所示:</p><p> 圖3-3 系統(tǒng)E-R圖</p><p> 3.1.
43、3數(shù)據庫邏輯結構設計</p><p> 對于關系型數(shù)據庫,數(shù)據庫的概念結構設計完畢后,要把E-R圖描述的概念數(shù)據模型轉換為等價的關系模式極其約束。邏輯設計的基本工作主要包括如下的3個步驟。</p><p> 3.1.3.1關系模式設計</p><p> 該設計以概念結構設計中的E-R圖為主要依據,這幾出相關的整體邏輯結構。該系統(tǒng)的關系模式如下圖3-4所示:&l
44、t;/p><p> 圖3-4 概念關系模型圖</p><p> 3.1.3.2完整性設計</p><p> 完整性要求用于描述各種信息之間的制約關系,以及關聯(lián)關系,各個數(shù)據項的取值范圍以及各個數(shù)據項是否可以取值。根據實際需要,采取一定的手段來滿足用戶的完整性需求。域完整性約束要求屬性值必須在域中。實體完整性約束要求主鍵必須唯一且不能為空。如用戶信息表中的用戶名設置
45、為主鍵,并且要求唯一且不能為空。</p><p> 3.1.3.3模式優(yōu)化</p><p> 本次采用3NF為規(guī)范準則來分解關系。將一個關系分解為兩個或者多個關系,以滿足規(guī)范,從而避免產生插入異常、刪除異常、更新異常。</p><p> 3.1.4數(shù)據庫表設計</p><p> 學生信息表如圖3-5所示</p><
46、p> 圖3-5 學生信息表</p><p> 教師信息表如圖3-6所示</p><p> 圖3-6 教師信息表</p><p> 題庫信息表如圖3-7所示</p><p> 圖3-7 題庫信息表</p><p> 試卷信息表如圖3-8所示</p><p> 圖3-8 試卷信息
47、表</p><p> 學生答案表如圖3-9所示</p><p> 圖3-9 學生答案表</p><p> 學生成績表如圖3-10所示</p><p> 圖3-10 學生成績表</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> 班級信息表如圖3-14所示</p><p> 圖3-14班級信息表</p><p>&
49、lt;b> 3.2系統(tǒng)結構設計</b></p><p> 3.2.1頁面模塊化設計</p><p> 模塊化設計的要求不僅是為了提高代碼的重用性,更重要的是為了提高代碼的可維護性和穩(wěn)定性。一個模塊化程度高、結構清晰的應用程序,在程序維護時的便利性是可想而知的。最初設計方案時,就要規(guī)劃好哪些模塊是可以提出來多次使用,哪些模塊雖只使用一次,但提出來之后能使代碼更清晰等。
50、</p><p> 網上考試系統(tǒng)是一個典型的數(shù)據庫開發(fā)應用程序,本系統(tǒng)主要用管理員、教師和學生三大模塊組成,各模塊功能如下:</p><p> 管理員模塊:該模塊主要是對系部、專業(yè)、班級、課程進行管理,添加修改學生、教師、信息,添加試題、試卷和審核教師制作的試卷等。</p><p> 教師模塊:該模塊主要是教師通過登錄該系統(tǒng)能夠修改個人信息,添加試題,在線制作
51、試卷,閱卷等。</p><p> 學生模塊:該模塊主要是學生通過登錄該系統(tǒng)能夠修改個人信息(只能修改密碼),進行考試等。</p><p> 3.2.2 MVC模式設計(Jsp+Servlet+JavaBean)</p><p> MVC(Model View Controller)是一個設計模式,它強制性的使應用程序的輸入、處理和輸出分開。使用MVC應用程序被
52、分成三個核心部件:模型、視圖、控制器。它們各自處理自己的任務。</p><p> 視圖是用戶看到并與之交互的界面。如何處理應用程序的界面變得越來越有挑戰(zhàn)性。MVC一個大的好處是它能為你的應用程序處理很多不同的視圖。JSP頁面處于表現(xiàn)層,也就是視力(View即V)的角色。</p><p> 模型表示企業(yè)數(shù)據和業(yè)務規(guī)則。在MVC的三個部件中,模型擁有最多的處理任務。由于應用于模型的代碼只需
53、寫一次就可以被多個視圖重用,所以減少了代碼的重復性。JavaBean則負責數(shù)據的處理,也就是模型(Model即M)的角色。</p><p> 控制器接受用戶的輸入并調用模型和視圖去完成用戶的需求。所以當單擊Web頁面中的超鏈接和發(fā)送HTML表單時,控制器本身不輸出任何東西和做任何處理。它只是接收請求并決定調用哪個模型構件去處理請求,然后用確定用哪個視圖來顯示模型處理返回的數(shù)據。Servlet用來處理請求的事務,
54、充當控制器(Controller即C)的角色,Servlet負責響應用戶對業(yè)務邏輯的請求并根據用戶的請求行為,決定將哪個JSP頁面發(fā)送給客戶。</p><p> 初始的請求由Servlet來處理,Servlet調用商業(yè)邏輯和數(shù)據處理代碼,并創(chuàng)建Bean來表示相應的結果(模型)。然后Servlet確定哪個頁面適合于表達這些特定的結果,并將請求轉發(fā)到相應的頁面(JSP頁面即為視圖),由Servlet確定哪個業(yè)務邏輯
55、適用,應該用哪個JSP頁面相應結果(Servlet就是控制器)。</p><p> 第4章 網上考試系統(tǒng)實現(xiàn)</p><p> 4.1系統(tǒng)各部分的實現(xiàn)方法</p><p> 從系統(tǒng)功能模塊劃分中可以看出,系統(tǒng)總體上有兩個功能模塊組成。各模塊雖然是獨立的,但又統(tǒng)一于同一數(shù)據庫中,便于管理員管理維護數(shù)據庫,同時也便于教師和學生的操作。在介紹系統(tǒng)各模塊的實現(xiàn)方法之前
56、,首先介紹系統(tǒng)與數(shù)據庫的連接方式——使用JavaBean連接連接在服務器tomcat里配置的連接池。再介紹系統(tǒng)主要部分的實現(xiàn)方法。</p><p> 4.1.1創(chuàng)建與數(shù)據庫的連接</p><p> 配置數(shù)據源創(chuàng)建連接池,再通過JavaBean連接到數(shù)據源再對數(shù)據庫進行操作。</p><p> 連接池是創(chuàng)建和管理一個連接的緩沖池的技術,這些連接準備好被任何需要它
57、們的線程使用。連接池可以極大的改善用戶的 Java 應用程序的性能,同時減少全部資源的使用。連接池主要的優(yōu)點有:減少連接創(chuàng)建時間、簡化的編程模式、受控的資源使用。連接池能夠使性能最大化,同時還能將資源利用控制在一定的水平之下,不過如果超過該水平,應用程序將崩潰而不僅僅是變慢。</p><p><b> 配置連接池:</b></p><p> 1.首先要將mysql
58、的驅動包放在tomcat/lib目錄下</p><p> 2.在應用服務器Tomcat 里的/conf下找到一個context.xml文件,在里面添加的內容如下:</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ù)據庫就通過在JavaBean創(chuàng)建的一個叫QueryRunner()方法來訪問。</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ù)據源出錯!");</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ù)據庫的JavaBean<
65、/p><p> JavaBean是一種Java語言寫成的可重用組件。為寫成JavaBean,類必須是具體的和公共的,并且具有無參數(shù)的構造器。JavaBean通過提供符合一致性設計模式的公共方法將內部域暴露成為屬性。眾所周知,屬性名稱符合這種模式,其他Java類可以通過自省機制發(fā)現(xiàn)和操作這些JavaBean屬性。</p><p> 用戶可以使用JavaBean將功能、處理、值、數(shù)據庫訪問和其
66、他任何可以用Java代碼創(chuàng)造的對象進行打包,并且其他的開發(fā)者可以通過內部的JSP頁面、Servlet、其他JavaBean、Applet程序或應用來使用這些對象。用戶可以認為JavaBean提供了一種隨時隨地的復制和粘貼的功能,而不用關心任何改變。</p><p> JSP的一個重要特性就是可以用JavaBean實現(xiàn)功能的擴展。將大部分功能放在JavaBean中完成,以使JSP頁面程序更干凈簡潔、利于維護。Ja
67、vaBean可以很方便的用來捕獲頁面表單的輸入并完成各種業(yè)務邏輯的處理。</p><p> 連接數(shù)據庫的JavaBean——Conn。通過JSP頁面調用此JavaBean,可以實現(xiàn)對數(shù)據庫的連接,數(shù)據表的添加、刪除、更新等操作。</p><p> 4.1.3用戶及管理員登錄模塊頁面</p><p> 用戶登錄頁面比較簡單,為防止用戶登錄的操作錯誤,應設置錯誤處
68、理頁面,在登錄操作過程中,一般發(fā)生的錯誤有:用戶輸入了錯誤的用戶名或密碼、用戶直接單擊了登錄按鈕,對上述情況的判斷就要通過Servlet文件來實現(xiàn)。學生登錄界面如圖4-1所示:</p><p> 圖4-1 學生登錄面</p><p> 管理員教師登錄界面如4-2圖所示:</p><p> 圖4-2 管理員教師登錄界面</p><p>
69、 在登錄頁面時,當用戶提交了登錄資料后,就由“UsersServlet.java”這個servlet進行驗證,它的工作主要是判斷用戶登錄的帳號和密碼是否一致。完成這些工作就必須連接存儲用戶數(shù)據庫取出相關信息記錄。如果用戶輸入了錯誤的用戶名和密碼,通過history.back();返回到登錄界面并提示出錯,如圖4-3所示:</p><p> 圖4-3登錄錯誤提示頁面</p><p> 若
70、用戶提交正確的用戶和密碼后,如果記錄驗證無誤,就通過JSP的request.getRequestDispatcher()方法跳轉到相應的界面;判斷用戶是否輸入正確用戶名和密碼的Java程序片段如下所示:</p><p> //學生登錄信息驗證</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('學號或密碼有誤,請重新登錄!');history.back();</script>");</p><p><b> }</b></p><p><b> }</b></p><p> //教師和管
78、理員登錄信息驗證</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('用戶名或密碼有誤,請重新登錄!');history.back();</script>");</p><p><b> }</b></p><p><b> }</b></p><p> 4.1.4系統(tǒng)主要模塊頁面</p><
89、p> 整個系統(tǒng)都采用JSP+JavaBean+Servletm模式實現(xiàn)。JSP+JavaBean+servlet模式的運用實現(xiàn)了代碼的重復利用;是系統(tǒng)程序易編寫、易維護、易使用;并且可以在任何安裝了Java運行環(huán)境的平臺上使用而不需要重新編譯。系統(tǒng)首頁如圖4-4、4-5、4-6所示。</p><p> 學生登錄系統(tǒng)進入學生選擇考試頁面如圖4-4所示:</p><p> 圖4-4
90、 學生登錄首頁</p><p> 教師登錄系統(tǒng)后,進入教師首頁如下圖4-5所示:</p><p><b> 圖4-5 教師界面</b></p><p> 管理員登錄系統(tǒng)后,進入管理員首頁如下圖4-6所示:</p><p> 圖4-6 管理員首頁</p><p> 不同用戶登錄系統(tǒng)后顯示的
91、界面都是簡單都是一些功能的鏈接。外觀是一個DIV+CSS的后臺管理模版。</p><p> 4.1.5學生考試模塊的實現(xiàn)頁面</p><p> 考生可以通過首頁登錄進入選擇考試頁面,如上圖所示。在該頁面考生能查看考試科目和開考時間,可以修改個人的密碼。修改密碼成功后將自動注銷重新登錄。</p><p> 如果到了開始考試的時間“是否考試”中就會由“等待考試”變
92、成“開始考試”的連接了,考生可以點擊此處進入到考試頁面??荚図撁嬗械褂嫊r顯示,如果時間到了系統(tǒng)會自動提交。</p><p> 學生考試界面如下圖4-7所示。 </p><p><b> 圖4-7 考試頁面</b></p><p><b> 功能實現(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教師添加試題制作試卷模塊的實現(xiàn)</p><p> 教師登錄到系統(tǒng)后通過左邊的管理菜單了解到自己擁有那些功能:題庫信息查看、添加題庫,試卷信息查看,添加試卷,閱卷管理等。題庫添加:先選擇所添加試題的科目和題型再進行添加。系統(tǒng)設置了選擇題,填空題,問答題。</p><p> 教師可以在線制作試卷,設置考試的科目、時間、考試時間段、題型分布、分值分布、考題
105、數(shù)量等,考題數(shù)量必須根據系統(tǒng)提示題庫總數(shù)量設置,不能把考題數(shù)量超出題庫的總數(shù)量。</p><p> 在線制作試卷頁面如下圖4-8所示。</p><p> 圖4-8 在線制作試卷頁面</p><p> 實現(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)測試</b></p><p> 5.1什么是軟件測試</p><p> 軟件測試是在軟件投入運行前,對軟件需求分析、設計規(guī)格說明書和編碼的最終的復審,是軟件質量保證的關鍵步驟。確切的說,軟件測試就是為了發(fā)現(xiàn)錯誤而執(zhí)行的過程。一般分為兩個階段:</p><
116、;p> 1.單元測試:在編完一模塊后進行測試;</p><p> 2.綜合測試:在開發(fā)完軟件后進行綜合測試。</p><p> 5.2軟件測試的目標與方法</p><p> G.Myers給出了關于測試的一些規(guī)則,這些規(guī)則可以看作是測試的目標或定義:</p><p> 1.測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程;</
117、p><p> 2.好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試;</p><p> 3.成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試。</p><p> 測試任何軟件都有兩種方法:黑盒測試和白盒測試法。</p><p> 黑盒測試法(又稱功能測試法)是把程序看成一個黑盒子,完全不考慮程序的內部結構和處理過程,是在程序接口進行的測
118、試,它只檢查程序功能是否按照規(guī)格說明書的規(guī)定正常使用。</p><p> 白盒測試法(又稱結構測試法)是把程序看成裝在一個透明的白盒子里,也就是完全了解程序的結構和處理過程,這種方法按照程序內部的邏輯測試程序,檢驗程序中的每條通路是否都能按照預定要求正確工作。</p><p> 通過測試并不能證明程序就是完全正確的,但我們的目的就是要通過測試保證軟件的可靠性,因此,必須仔細設計測試方案
119、,力爭用最少的測試發(fā)現(xiàn)盡可能多的錯誤。</p><p> 5.3系統(tǒng)的不足和展望</p><p> 對于本次做的網上考試系統(tǒng)有很多的不足和不完善的地方。比如系統(tǒng)的有些功能操作不夠人性話。提示不夠準確,對管理信息的設置很不完善等。尤其是在題庫的設計,沒有設置試題的難易程度,學生考試就不能有層次性的進行測試了。</p><p> 在當今信息時代,計算機技術與網絡技
120、術越來越廣地成熟的應用于各個領域,同時也影響了教育領域的重大變革,網上考試系統(tǒng)也將更多更好的應用在教育教學領域中。以后的網上考試系統(tǒng)將會更加完善使用。</p><p><b> 結束語</b></p><p> 通過這次畢業(yè)設計,對很多東西有了新的認識和新的見解,認識問題的和思考解決辦法有了本質上的進步,特別是對一個系統(tǒng)開發(fā)的模式有了更深的認識,對專業(yè)技能的運用更
121、熟練。</p><p> 網上考試系統(tǒng)的開發(fā)過程中也遇到了很多問題,開始做需求時不確定考試系統(tǒng)到底應該具備那些功能,只知道主要功能就是有試題能考試,但具體流程,怎樣實現(xiàn)這些功能就很模糊,所以查看了很多資料才理清楚。數(shù)據庫設計也是個難點,不明確要實現(xiàn)哪些功能就不能很好的把數(shù)據庫設計好。設計數(shù)據庫就是開發(fā)一個系統(tǒng)的核心。設計數(shù)據庫一定要思路清晰,各個數(shù)據的流向各個表之間的關系一定要弄清楚,透徹。數(shù)據庫設計出錯了對以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- jsp網上購物系統(tǒng)畢業(yè)設計論文
- jsp網上購物系統(tǒng)畢業(yè)設計論文
- 基于jsp技術網上購物系統(tǒng)畢業(yè)設計論文
- 基于jsp技術網上購物系統(tǒng)畢業(yè)設計論文
- jsp網上購物系統(tǒng)畢業(yè)設計
- 畢業(yè)設計---jsp網上購物系統(tǒng)設計
- 網上考試系統(tǒng)畢業(yè)設計論文
- jsp網上鮮花店管理系統(tǒng)畢業(yè)設計論文
- 網上書店系統(tǒng)(論文范文,jsp,java,畢業(yè)設計)
- 網上考試書店系統(tǒng)畢業(yè)設計論文
- 畢業(yè)設計--基于jsp的網上購物系統(tǒng)
- 基于jsp的網上購物系統(tǒng)畢業(yè)設計
- 基于jsp的網上書店畢業(yè)設計論文
- 基于jsp的網上購物系統(tǒng)-畢業(yè)設計
- 畢業(yè)設計(論文)基于jsp技術的網上花店系統(tǒng)設計與實現(xiàn)
- jsp網上商城畢業(yè)設計
- 網上訂餐jsp系統(tǒng)畢業(yè)論文
- 畢業(yè)設計 ----網上考試系統(tǒng)
- 網上考試系統(tǒng)畢業(yè)設計
- 網上考試系統(tǒng)畢業(yè)設計
評論
0/150
提交評論