版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
畢業(yè)設(shè)計(jì)說明書基于Web的網(wǎng)絡(luò)在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)基于Web的網(wǎng)絡(luò)在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘
要:隨著信息技術(shù)的飛速發(fā)展,依賴計(jì)算機(jī)互聯(lián)網(wǎng)技術(shù)的在線考試系統(tǒng)也蓬勃發(fā)展。在線考試系統(tǒng)旨在實(shí)現(xiàn)考試的無紙化管理,基于計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)進(jìn)行在線考試系統(tǒng)的使用,既方便了校方對考試的管理,也方便了考生,特別適合考生分布廣,不易集中的遠(yuǎn)程教育。因此,運(yùn)用在線考試系統(tǒng),可以幫助教育培訓(xùn)機(jī)構(gòu)進(jìn)行更系統(tǒng)、更科學(xué)的管理。在線考試系統(tǒng)作為一種嶄新的、有著極大優(yōu)越性的教學(xué)評價(jià)手段,正日益成為數(shù)據(jù)庫管理技術(shù)廣泛應(yīng)用的一個(gè)熱點(diǎn)研究方向。在線考試系統(tǒng)實(shí)現(xiàn)了系統(tǒng)管理、考生管理、在線考試、在線制作試卷、控制學(xué)生考試、試卷審批等基本功能。系統(tǒng)提出了網(wǎng)絡(luò)在線考試系統(tǒng)的完整解決方案,實(shí)現(xiàn)了題目分類的特殊原則:考試題目,試題類型,難度,分?jǐn)?shù)等由命題人自己定制。系統(tǒng)可以完畢試卷的定制,試卷的自動生成,并可以對試卷進(jìn)行修改。系統(tǒng)采用B/S開發(fā)模式,以Java作為開發(fā)平臺,結(jié)合JSP、JavaScript、Html等語言,以Tomcat為服務(wù)器和SQLServer2023為后臺數(shù)據(jù)庫。整個(gè)系統(tǒng)層次結(jié)構(gòu)簡樸,操作容易,并具有一定的安全性??忌柚讼到y(tǒng),可以隨時(shí)隨地的進(jìn)行課程結(jié)業(yè)考試。同樣,老師使用該系統(tǒng)能更高效、更便捷的組織在線考試。關(guān)鍵詞:在線考試系統(tǒng);B/S模式;SQLServer2023數(shù)據(jù)庫TheDesignandImplementationoftheWeb-basedOnlineExaminationSystemAbstract:Withtheadventofinformationtechnology,theonlineexaminationsystemwhichrelyontheInternettechnologygrowsrapidly.Theonlineexaminationsystemaimsatachievingthepaperlessexaminationmanagement.Theonlineexaminationsystem,whichbasesoncomputerandnetworktechnology,isconveniencefortheexammanagement,butalsoforthestudents.Simultaneously,suchasystemisabsolutelysuitableforthestudentsindistanceeducationwhoaredispersiveanddifficulttoconcentrateonthecourse.
So,utilizetheonlineexaminationsystemcanhelpeducationandtrainingorganizationstocarryonmoresystematic,morescientificmanagement.Asakindofnewteachingmethodthatwithgreatsuperiority,theonlineexaminationsystemisbecomingahotspotofdatabasemanagementgradually.Theonlineexaminationsystemimplementsthefollowingfunctions:systemmanagement,examineemanagement,onlineexaminations,onlineproductionofthepapers,controlexaminationsandpaperprocessing.Thesystemputsforwardthecompletesettlementschemeofonlineexaminationsystemofcross-domaincommunication,andrealizedtheclassifiedspecialprincipleoftitle:thefractionsetcarehadsomethingmadetoorderbypropositionpersononeselfdegreeofdifficultyexaminationquestionstypeexaminationtitle.Thesystemcanaccomplishhavingsomethingmadetoorderofexaminationpaper,thevoluntarilyformationofexaminationpaper,andcanrevise.ThesystembasesonB/Sdevelopmentmodel,usingJavaasadevelopmentplatform,whichutilizesJSP,JavaScript,andHtmllanguageaswell.ThewebserverisTomcat.DatabaseserverisSQLServer2023.Thesystemstructureissimple,easyandsafe.Examineecanexamatanytimebyusingthesystem.Simultaneouslyteacherscanusethesystemtoorganizeonlineexaminationmoreefficientlyandconveniently.
Keywords:Theonlineexaminationsystem;B/Spattern;SQLServer2023Database目錄1概述 11.1課題背景與意義 11.1.1課題開發(fā)背景 11.1.2課題開發(fā)意義 12開發(fā)工具與環(huán)境 12.1課題開發(fā)工具與環(huán)境 12.1.1JAVA和JSP技術(shù)簡介 12.2SQLServer2023服務(wù)器 22.2.1SQLServer概述 22.2.2SQLServer的重要功能 22.3Tomcat服務(wù)器架構(gòu) 32.3.1JDK的安裝與配置 32.3.2Tomcat的安裝與配置 32.4總體開發(fā) 43系統(tǒng)分析 43.1需求分析 43.2可行性研究 43.3系統(tǒng)目的 53.4系統(tǒng)功能結(jié)構(gòu) 53.5業(yè)務(wù)流程圖 63.6開發(fā)環(huán)境 64數(shù)據(jù)庫設(shè)計(jì) 74.1數(shù)據(jù)庫分析 74.2數(shù)據(jù)庫概念設(shè)計(jì) 74.3數(shù)據(jù)庫邏輯結(jié)構(gòu) 94.4數(shù)據(jù)表之間的關(guān)系設(shè)計(jì) 115具體設(shè)計(jì) 125.1前臺首頁模塊設(shè)計(jì) 125.1.1前臺首頁概述 125.1.2前臺首頁技術(shù)分析 125.1.3前臺首頁的實(shí)現(xiàn)過程 135.2考生信息模塊設(shè)計(jì) 135.2.1考生信息模塊概述 135.2.2考生信息模塊的技術(shù)分析 145.2.3考生注冊的實(shí)現(xiàn)過程 165.2.4找回密碼的實(shí)現(xiàn)過程 195.3在線考試模塊設(shè)計(jì) 215.3.1在線考試模塊的概述 215.3.2在線考試模塊的技術(shù)分析 225.3.3選擇考試課程的實(shí)現(xiàn)過程 225.3.4隨機(jī)抽取試題并顯示試題的實(shí)現(xiàn)過程 245.3.5自動閱卷并顯示考試成績的實(shí)現(xiàn)過程 265.4后臺首頁模塊概述 275.5考試題目管理模塊設(shè)計(jì) 275.5.1考試題目管理模塊的概述 275.5.2查看考試題目列表的實(shí)現(xiàn)過程 285.5.3添加考試題目的實(shí)現(xiàn)過程 285.6套題信息管理模塊概述 295.7課程信息管理模塊概述 305.8考生成績查詢模塊概述 305.9考生信息管理模塊概述 305.10管理員信息管理模塊概述 316軟件開發(fā)與測試 316.1軟件開發(fā)技術(shù)概述 316.2通過Ajax技術(shù)實(shí)現(xiàn)計(jì)時(shí)與顯示剩余時(shí)間 316.3軟件測試的過程 327結(jié)束語 33參考文獻(xiàn) 34致謝 35附錄 36附錄1源程序清單 36附錄1.1公共模塊設(shè)計(jì) 36附錄1.2考生信息模塊設(shè)計(jì) 42附錄1.3在線考試模塊設(shè)計(jì) 54附錄1.4考試題目管理模塊設(shè)計(jì) 61基于Web的網(wǎng)絡(luò)在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)1概述1.1課題背景與意義1.1.1課題開發(fā)背景傳統(tǒng)的考試從出題、組卷、印刷,到試卷分發(fā)、答題、收卷,再到判卷、公布成績,整個(gè)過程都需要人工參與,周期長,工作量大,容易犯錯(cuò),還要有適當(dāng)?shù)谋C芄ぷ鳎沟谜麄€(gè)考試的成本較大。所以,實(shí)現(xiàn)無紙化、網(wǎng)絡(luò)化、自動化的計(jì)算機(jī)考試系統(tǒng),具有深遠(yuǎn)的現(xiàn)實(shí)意義和實(shí)用價(jià)值。網(wǎng)絡(luò)考試系統(tǒng)是傳統(tǒng)考場的延伸,它可以運(yùn)用網(wǎng)絡(luò)的無限廣闊空間,隨時(shí)隨地的對學(xué)生進(jìn)行考試,加上數(shù)據(jù)庫技術(shù)的運(yùn)用,大大簡化了傳統(tǒng)考試的過程。因此網(wǎng)絡(luò)考試系統(tǒng)是電子化教學(xué)不可缺少的一個(gè)重要環(huán)節(jié)。網(wǎng)絡(luò)考試系統(tǒng)的實(shí)現(xiàn)技術(shù)有多種,可以采用傳統(tǒng)的客戶機(jī)/服務(wù)器型的MIS型架構(gòu),Web技術(shù)超越了傳統(tǒng)的"客戶機(jī)/服務(wù)器"兩層結(jié)構(gòu),采用了三層體系結(jié)構(gòu):用戶界面層/事務(wù)層/數(shù)據(jù)庫層,因此Web結(jié)構(gòu)有著更好的安全性,在用戶機(jī)上不需要安裝任何應(yīng)用程序,應(yīng)用程序可以安裝在事務(wù)層所在的計(jì)算機(jī)上,試題存放在數(shù)據(jù)庫服務(wù)器上,當(dāng)然,事務(wù)層和數(shù)據(jù)庫可以是同一臺機(jī)器(假如條件允許,還是應(yīng)當(dāng)把這兩層分開在不同的計(jì)算機(jī)上),所以,本文所討論的考試系統(tǒng)采用Web技術(shù)實(shí)現(xiàn)。1.1.2課題開發(fā)意義用Browser/Web模式來設(shè)計(jì)考試系統(tǒng)比較合適,服務(wù)器端我們采用SQLSERVER數(shù)據(jù)庫系統(tǒng)和JSP組件來構(gòu)成考試的應(yīng)用服務(wù)系統(tǒng);客戶端采用瀏覽器來完畢考試全過程,同時(shí)可進(jìn)行遠(yuǎn)程系統(tǒng)維護(hù)和管理。運(yùn)用網(wǎng)絡(luò)和數(shù)據(jù)庫技術(shù),結(jié)合目前硬件價(jià)格普遍下跌與寬帶網(wǎng)大力建設(shè)的有利優(yōu)勢,應(yīng)用JAVAServerPage技術(shù),開發(fā)了基于B/S模式多用戶在線考試系統(tǒng)這一程序。它運(yùn)用方便、操作簡樸,效率很高(同時(shí),它規(guī)定計(jì)算機(jī)配置也很高,特別是服務(wù)器端).基于Web技術(shù)的網(wǎng)絡(luò)考試系統(tǒng)可以借助于遍布全球的因特網(wǎng)進(jìn)行,因此考試既可以在本地進(jìn)行,也可以在異地進(jìn)行,大大拓展了考試的靈活性。試卷可以根據(jù)題庫中的內(nèi)容即時(shí)生成,可避免考試前的壓題;并且可以采用大量標(biāo)準(zhǔn)化試題,從而使用計(jì)算機(jī)判卷,大大提高閱卷效率;還可以直接把成績送到數(shù)據(jù)庫中,進(jìn)行記錄、排序等操作??忌ㄟ^姓名、準(zhǔn)考證號碼和口令進(jìn)行登錄,考試答案也存放在服務(wù)器中,這樣考試的公平性、答案的安全性可以得到有效的保證。因此,采用網(wǎng)絡(luò)考試方式將是以后考試發(fā)展的趨勢。2開發(fā)工具與環(huán)境2.1課題開發(fā)工具與環(huán)境2.1.1JAVA和JSP技術(shù)簡介a)將內(nèi)容的生成和顯示進(jìn)行分離用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML或者XML標(biāo)記來設(shè)計(jì)和格式化最終頁面,并使用JSP標(biāo)記或者小腳本來生成頁面上的動態(tài)內(nèi)容(內(nèi)容是根據(jù)請求變化的,例如請求賬戶信息)。生成內(nèi)容的邏輯被封裝在標(biāo)記和JavaBeans組件中,并且捆綁在腳本中,所有的腳本在服務(wù)器端運(yùn)營。由于核心邏輯被封裝在標(biāo)記和JavaBeans中,所以Web管理人員和頁面設(shè)計(jì)者,可以編輯和使用JSP頁面,而不影響內(nèi)容的生成。在服務(wù)器端,JSP引擎解釋JSP標(biāo)記和腳本,生成所請求的內(nèi)容(例如,通過訪問JavaBeans組件,使用JDBC技術(shù)訪問數(shù)據(jù)庫或者包含文獻(xiàn)),并且將結(jié)果以HTML(或者XML)頁面的形式發(fā)送回瀏覽器。這既有助于作者保護(hù)自己的代碼,又能保證任何基于HTML的Web瀏覽器的完全可用性。b)可重用組件大多數(shù)JSP頁面依賴于可重用的、跨平臺的組件(JavaBeans)來執(zhí)行應(yīng)用程序所規(guī)定的復(fù)雜的解決。開發(fā)人員可以共享和互換執(zhí)行普通操作的組件,或者使得這些組件為更多的使用者和客戶團(tuán)隊(duì)所使用?;诮M件的方法加速了總體開發(fā)過程,并且使得各種組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開發(fā)努力中得到平衡。c)采用標(biāo)記Web頁面開發(fā)人員不會都是熟悉腳本語言的編程人員。JSP技術(shù)封裝了許多功能,這些功能是在易用的、與JSP相關(guān)的XML標(biāo)記中進(jìn)行動態(tài)內(nèi)容生成所需要的。標(biāo)準(zhǔn)的JSP標(biāo)記可以訪問和實(shí)例化JavaBeans組件,設(shè)立或者檢索組件屬性,下載Applet,以及執(zhí)行用其他方法更難于編碼和耗時(shí)的功能。d)適應(yīng)平臺幾乎所有平臺都支持Java,JSP+JavaBeans幾乎可以在所有平臺下通行無阻。從一個(gè)平臺移植到此外一個(gè)平臺,JSP和JavaBeans甚至不用重新編譯,由于Java字節(jié)碼都是標(biāo)準(zhǔn)的與平臺無關(guān)的。e)數(shù)據(jù)庫連接Java中連接數(shù)據(jù)庫的技術(shù)是JDBC,Java程序通過JDBC驅(qū)動程序與數(shù)據(jù)庫相連,執(zhí)行查詢、提取數(shù)據(jù)等操作。Sun公司還開發(fā)了JDBC-ODBCbridge,運(yùn)用此技術(shù)Java程序可以訪問帶有ODBC驅(qū)動程序的數(shù)據(jù)庫,目前大多數(shù)數(shù)據(jù)庫系統(tǒng)都帶有ODBC驅(qū)動程序,所以Java程序能訪問諸如Oracle、Sybase、MSSQLServer和MSAccess等數(shù)據(jù)庫。2.2SQLServer2023服務(wù)器2.2.1SQLServer概述SQLServer是美國Microsoft公司開發(fā)的一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),是目前世界上最著名的關(guān)系數(shù)據(jù)庫管理系統(tǒng)之一。它在性能和可擴(kuò)展方面確立了世界領(lǐng)先的地位,是一套完全的數(shù)據(jù)庫和數(shù)據(jù)分析解決方案,使用戶可以快速創(chuàng)建下一代的可擴(kuò)展電子商務(wù)和數(shù)據(jù)倉庫解決方案。MicrosoftSQLServer2023在數(shù)據(jù)庫服務(wù)器自動調(diào)整和自動管理技術(shù)方面在數(shù)據(jù)庫領(lǐng)域中處在領(lǐng)先地位,使客戶可以集中精力解決商業(yè)戰(zhàn)略上的問題,而不是去細(xì)微調(diào)整數(shù)據(jù)庫服務(wù)器的各項(xiàng)參數(shù)。2.2.2SQLServer的重要功能a)數(shù)據(jù)庫管理功能作為數(shù)據(jù)庫管理系統(tǒng),SQLServer自然應(yīng)當(dāng)具有數(shù)據(jù)庫管理功能。它的數(shù)據(jù)庫由包含數(shù)據(jù)的表集合和其他對象(如視圖、索引、存儲過程和觸發(fā)器)組成,目的是為執(zhí)行與數(shù)據(jù)有關(guān)的活動提供支持。存儲在數(shù)據(jù)庫中的數(shù)據(jù)通常與特定的主題或過程相關(guān)。b)數(shù)據(jù)倉庫功能SQLServer2023提供了一套全新的綜合分析服務(wù)系統(tǒng)。分析服務(wù)為商業(yè)活動提供了集成的OLAP服務(wù)和數(shù)據(jù)挖掘功能。OLAP可以通過多維存儲技術(shù)對大型、復(fù)雜數(shù)據(jù)集執(zhí)行快速、高級的分析工作。數(shù)據(jù)挖掘功能可以揭示出隱藏在大量數(shù)據(jù)中的傾向及趨勢。SQLServer針對涉及集成數(shù)據(jù)挖掘、OLAP服務(wù)、安全性服務(wù)及通過Internet對多維數(shù)據(jù)集進(jìn)行訪問和鏈接分析提供新的數(shù)據(jù)倉庫功能。c)電子商務(wù)SQLServer不僅提供電子商務(wù)所需的可伸縮性與可擴(kuò)展性之外,還提供了豐富的數(shù)據(jù)庫編程能力,以保證系統(tǒng)的協(xié)同工作和靈活性。SQLServer2023不僅支持集中化數(shù)據(jù)庫管理功能,并且還最大限度地實(shí)現(xiàn)了管理與優(yōu)化工作的自動化,從而,減輕了有關(guān)管理人員的承擔(dān)。d)完備的Web功能SQLServer2023允許通過HTTP協(xié)議,在Web上進(jìn)行高性能、基于標(biāo)準(zhǔn)的安全訪問。基于Web的客戶端擁有訪問關(guān)系型數(shù)據(jù)存儲和訪問分析服務(wù)的能力。e)分布式數(shù)據(jù)復(fù)制功能它可以將一個(gè)數(shù)據(jù)庫中的數(shù)據(jù)復(fù)制到通過局域網(wǎng)、廣域網(wǎng)或Internet網(wǎng)絡(luò)連接的不同地點(diǎn)服務(wù)器或同一服務(wù)器中的不同數(shù)據(jù)庫中,并可以自動保持這些數(shù)據(jù)同步,使各個(gè)數(shù)據(jù)庫中具有相同的數(shù)據(jù)。2.3Tomcat服務(wù)器架構(gòu)Tomcat由Apache組織開發(fā)的一種常用Web服務(wù)器,提供Web服務(wù)。一種JSP引擎,自身具有Web功能,可以作為獨(dú)立的Web服務(wù)器使用。但是,在作為Web服務(wù)器方面,Tomcat解決靜態(tài)HTML頁面時(shí)不如Apache迅速,也沒有Apache健壯,一般選用Tomcat與Apache結(jié)合的方式,讓后者對網(wǎng)站的靜態(tài)頁面的請求提供服務(wù),而Tomcat作為專用的JSP引擎,提供JSP解析,得以更好的性能。2.3.1JDK的安裝與配置 a)找到path變量后單擊[編輯]按鈕;彈出[編輯系統(tǒng)變量]對話框。在[變量值]文本框中輸入“c:\jdk\bin”,然后單擊[擬定]按鈕。同時(shí)新建classpath變量。b)在[系統(tǒng)變量]選項(xiàng)組中單擊[新建]按鈕,在[變量名]文本框中輸入“classpath”,在[變量值]文本框中輸入“c:\jdk\lib\tools.jar;c:\jdk\lib\dt.jar;”然后單擊[擬定]按鈕。c)用同樣的方法把c:\jdk添加到JAVA_HOME環(huán)境變量中。2.3.2Tomcat的安裝與配置在這里我們設(shè)默認(rèn)安裝目錄為c:\Tomcat安裝完畢,更改環(huán)境變量,用同樣的方法把c:\Tomcat添加到TOMCAT_HOME環(huán)境變量中。啟動Tomcat,在瀏覽器的[地址]下拉列表框中輸入“http://localhost:8080/”,假如看到的是在左上方有一只可愛的小貓,則表達(dá)Tomcat安裝成功。2.4總體開發(fā)在線考試系統(tǒng)采用了三層的模式架構(gòu):JSP-JavaBean-SqlServer2023開發(fā),即前端由JSP網(wǎng)頁實(shí)現(xiàn)表現(xiàn)邏輯,中間使用JavaBean的組件實(shí)現(xiàn)系統(tǒng)內(nèi)部復(fù)雜的業(yè)務(wù)邏輯,后端使用SqlServer2023數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)邏輯。系統(tǒng)采用的開發(fā)工具是:Myeclipse,Dreamweaver2023網(wǎng)頁編輯工具;采用的數(shù)據(jù)庫是:SQLServer2023;采用的服務(wù)器是:ApacheTomcat。其中Java中連接數(shù)據(jù)庫的技術(shù)是JDBC。3系統(tǒng)分析3.1需求分析隨著社會經(jīng)濟(jì)的發(fā)展,人們對教育越來越重視。考試是教育中的一個(gè)重要環(huán)節(jié),近幾年來隨著考試的類型不斷增長以及考試規(guī)定不斷提高,傳統(tǒng)的考試方式規(guī)定教師打印考卷、監(jiān)考、批卷、使教師的工作量與來越大,并且這些環(huán)節(jié)由于所有由人工完畢,非常容易犯錯(cuò)。因此,許多學(xué)?;蚩荚嚈C(jī)構(gòu)建立網(wǎng)絡(luò)在線考試網(wǎng)站來減少管理成本和減少人力物力的投入,同時(shí),為考生提供更全面、更靈活的服務(wù)??忌M麑ψ约旱膶W(xué)習(xí)情況進(jìn)行客觀、科學(xué)的評價(jià);教務(wù)人員希望有效地改善現(xiàn)有的考試模式,提高考試效率。為了滿足考生和教務(wù)人員的規(guī)定,網(wǎng)絡(luò)在線考試系統(tǒng)應(yīng)包含在線考試、成績查詢等功能,以滿足用戶的需求。3.2可行性研究可行性分析的目的就是要用最小的代價(jià)在盡也許短的時(shí)間內(nèi)擬定問題是否可以解決。通過度析解決方法的利弊,來鑒定系統(tǒng)目的和規(guī)模是否現(xiàn)實(shí),系統(tǒng)完畢后所能帶來的效益是否達(dá)成值得去投資開發(fā)這個(gè)系統(tǒng)的限度。網(wǎng)絡(luò)在線考試系統(tǒng)的可行性可從以下幾個(gè)方面考慮。a)經(jīng)濟(jì)可行性定期的組織考試是各個(gè)院校及時(shí)掌握學(xué)生學(xué)習(xí)成績的有效方式,運(yùn)用網(wǎng)絡(luò)在線考試系統(tǒng),一方面可以節(jié)省人力資源,減少考試成本;另一方面,在線考試系統(tǒng)可以快速的進(jìn)行考試和評分,體現(xiàn)出考試的客觀和公正性。b)技術(shù)可行性開發(fā)一個(gè)網(wǎng)絡(luò)在線考試系統(tǒng),涉及到最核心的技術(shù)問題就是如何實(shí)現(xiàn)在不刷新頁面的情況下實(shí)時(shí)顯示考試時(shí)間及剩余考試時(shí)間,并做到到達(dá)考試結(jié)束時(shí)間自動提交試卷的功能。假如在Ajax技術(shù)出現(xiàn)以前,要實(shí)現(xiàn)這些功能會比較麻煩,但現(xiàn)在通過Ajax技術(shù)可以輕松實(shí)現(xiàn)這些功能,這為網(wǎng)絡(luò)在線考試系統(tǒng)的開發(fā)提供了技術(shù)保障。3.3系統(tǒng)目的根據(jù)前面所做的需求分析和用戶的需求可知,網(wǎng)絡(luò)在線考試系統(tǒng)屬于中小型的軟件,在系統(tǒng)實(shí)行后,應(yīng)達(dá)成以下目的:a)具有空間性。被授權(quán)的用戶可以在異地登錄網(wǎng)絡(luò)在線考試系統(tǒng),而無需到指定地點(diǎn)進(jìn)行考試。b)操作簡樸方便、界面簡潔美觀。c)系統(tǒng)提供考試時(shí)間倒計(jì)時(shí)功能,使考生實(shí)時(shí)了解考試剩余時(shí)間。d)隨機(jī)抽取試題。e)實(shí)現(xiàn)自動提交試卷的功能。當(dāng)考試時(shí)間到達(dá)規(guī)定期間時(shí),假如考生尚未提交試卷,系統(tǒng)將自動交卷,以保證考試嚴(yán)厲、公正地進(jìn)行。f)系統(tǒng)自動閱卷,保證成績真實(shí)準(zhǔn)確。g)考生可以查詢考試成績。3.4系統(tǒng)功能結(jié)構(gòu)根據(jù)網(wǎng)絡(luò)在線考試系統(tǒng)的特點(diǎn),可以將其分為前臺和后臺兩個(gè)部分進(jìn)行設(shè)計(jì)。前臺重要用于考生注冊和登錄系統(tǒng)、在線考試、查詢成績以及修改個(gè)人資料等;后臺重要用于管理員對考生信息、課程信息、考題信息和考生成績信息等進(jìn)行管理。網(wǎng)絡(luò)在線考試系統(tǒng)的前臺功能如圖3-1所示:網(wǎng)絡(luò)在線考試系統(tǒng)的前臺網(wǎng)絡(luò)在線考試系統(tǒng)的前臺考生注冊找回密碼 在線考試成績查詢修改個(gè)人資料退出系統(tǒng)考試規(guī)則選擇考試準(zhǔn)備考試開始考試自動閱卷顯示考試成績圖3-1網(wǎng)絡(luò)在線考試系統(tǒng)的前臺功能結(jié)構(gòu)網(wǎng)絡(luò)在線考試系統(tǒng)的后臺功能結(jié)構(gòu)如圖3-2所示:網(wǎng)絡(luò)在線考試系統(tǒng)的后臺網(wǎng)絡(luò)在線考試系統(tǒng)的后臺管理員信息管理考生信息管理考生成績查詢課程信息管理套題信息管理考試題目管理退出后臺管理圖3-2網(wǎng)絡(luò)在線考試系統(tǒng)的后臺功能結(jié)構(gòu)3.5業(yè)務(wù)流程圖網(wǎng)絡(luò)在線考試的系統(tǒng)流程如圖3-3所示:圖3-3系統(tǒng)流程圖3.6開發(fā)環(huán)境在開發(fā)網(wǎng)絡(luò)在線考試系統(tǒng)時(shí),需要具有下面的軟件環(huán)境:服務(wù)器端:a)操作系統(tǒng):WindowsXP。b)Web服務(wù)器:Tomcat5.5。c)Java開發(fā)包:JDK1.5以上。d)數(shù)據(jù)庫:SQLServer2023。e)瀏覽器:IE6.0。f)分辨率:最佳效果為1024*768像素??蛻舳耍篴)瀏覽器:IE6.0。b)分辨率:最佳效果為1024*768像素。4數(shù)據(jù)庫設(shè)計(jì)4.1數(shù)據(jù)庫分析由于網(wǎng)絡(luò)在線考試系統(tǒng)對于數(shù)據(jù)的安全性及完整性規(guī)定比較高,并且為了增長程序的合用范圍,還要保證系統(tǒng)可以擁有存儲足夠多數(shù)據(jù)的能力。SQLServer2023是一種高性能的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它在SQLServer7.0的基礎(chǔ)上又?jǐn)U展了系統(tǒng)性能、可靠性、安全性和易用性,逐漸成為在線事務(wù)進(jìn)程和數(shù)據(jù)倉庫等最佳的數(shù)據(jù)庫平臺。綜上所述,本系統(tǒng)采用SQLServer2023數(shù)據(jù)庫。4.2數(shù)據(jù)庫概念設(shè)計(jì)根據(jù)對系統(tǒng)所做的需求分析和系統(tǒng)設(shè)計(jì),規(guī)劃出本系統(tǒng)中使用的數(shù)據(jù)庫實(shí)體分別為考生檔案實(shí)體、管理員檔案實(shí)體、課程檔案實(shí)體、套題實(shí)體、考試題目實(shí)體和考生成績實(shí)體。a)考生檔案實(shí)體考生檔案實(shí)體涉及編號、姓名、密碼、性別、注冊時(shí)間、提醒問題、問題答案、專業(yè)和身份證號屬性。考生檔案實(shí)體的E-R圖如圖4-1所示:考生檔案考生檔案密碼性別提醒問題問題答案專業(yè)注冊時(shí)間身份證號編號姓名圖4-1考生檔案實(shí)體E-R圖b)管理員檔案實(shí)體管理員檔案實(shí)體涉及編號、管理員名、管理員密碼屬性。管理員檔案實(shí)體的E-R圖如圖4-2所示:管理員檔案管理員檔案編號管理員姓名管理員密碼圖4-2管理員檔案實(shí)體E-R圖c)課程檔案實(shí)體課程檔案實(shí)體涉及課程編號、課程名、添加時(shí)間屬性。課程檔案實(shí)體的E-R圖如圖4-3所示:課程檔案課程檔案課程編號課程名添加時(shí)間圖4-3課程檔案實(shí)體E-R圖d)考試題目實(shí)體考試題目實(shí)體涉及編號、問題類型、所屬課程、所屬套題、選項(xiàng)A、選項(xiàng)B、選項(xiàng)C、選項(xiàng)D、添加時(shí)間、對的答案和備注等屬性??荚囶}目實(shí)體的E-R圖如圖4-4所示:考試題目考試題目所屬課程問題類型所屬套題選項(xiàng)A選項(xiàng)B選項(xiàng)C選項(xiàng)D編號對的答案選項(xiàng)B選項(xiàng)C圖4-4考試題目實(shí)體E-R圖e)套題實(shí)體套題實(shí)體涉及編號、套題名稱、所屬課程、和添加時(shí)間屬性。套題實(shí)體的E-R圖如圖4-5所示:套題實(shí)體套題實(shí)體編號套題名稱所屬課程添加時(shí)間圖4-5套題實(shí)體E-R圖f)考生成績實(shí)體考生成績實(shí)體涉及編號、準(zhǔn)考證號、所屬課程、單選題分?jǐn)?shù)、多選題分?jǐn)?shù)、合計(jì)分?jǐn)?shù)、添加時(shí)間屬性??忌煽儗?shí)體的E-R圖如圖4-6所示:考生成績考生成績編號準(zhǔn)考證號所屬課程單選題分?jǐn)?shù)多選題分?jǐn)?shù)合計(jì)分?jǐn)?shù)添加時(shí)間圖4-6考生成績實(shí)體的E-R圖4.3數(shù)據(jù)庫邏輯結(jié)構(gòu)a)tb_manager(管理員信息表)管理員信息表用來保存管理員信息,該表的結(jié)構(gòu)如表4-1所示:表4-1tb_manager表的結(jié)構(gòu)字段名數(shù)據(jù)類型是否為空是否主鍵默認(rèn)值描述idbigint(8)NoYesID號namevarchar(30)NoNull管理員名pwdvarchar(30)NoNull管理員密碼b)tb_Student(考生信息表)考生信息表用來保存考生信息,該表的結(jié)構(gòu)如表4-2所示:表4-2tb_Student表的結(jié)構(gòu)字段名數(shù)據(jù)類型是否為空是否主鍵默認(rèn)值描述idbigint(8)NoYesID號namevarchar(20)NoNull姓名pwdvarchar(20)NoNull密碼sexvarchar(2)NoNull性別joinTimedatetime(8)Nogetdate()注冊時(shí)間questionvarchar(50)NoNull提醒問題answervarchar(50)NoNull問題答案prefesionvarchar(30)YesNull專業(yè)cardNovarchar(18)NoNull身份證號c)tb_stuResult(考生成績信息表)考生成績信息表用來保存考生成績,該表中的所屬課程字段whichLesson與tb_Lesson表中的Name字段相關(guān)聯(lián),并且設(shè)立為級聯(lián)更新??忌煽冃畔⒈淼慕Y(jié)構(gòu)如表4-3所示:表4-3tb_stuResult表的結(jié)構(gòu)字段名數(shù)據(jù)類型是否為空是否主鍵默認(rèn)值描述idbigint(8)YesID號stuIdvarchar(16)準(zhǔn)考證號whichLessonvarchar(60)所屬課程resSingleint(4)單選題分?jǐn)?shù)resMoreint(4)多選題分?jǐn)?shù)resTotalint(4)允許為空合計(jì)分?jǐn)?shù)joinTimedatetime(8)getdate()添加時(shí)間d)tb_TaoTi(套題信息表)套題信息表用來保存套題信息,該表中保存著所屬套題ID,套題名稱,套題所屬課程以及套題的添加時(shí)間信息。該表的結(jié)構(gòu)如表4-4所示:表4-4tb_TaoTi表的結(jié)構(gòu)字段名數(shù)據(jù)類型是否為空是否主鍵默認(rèn)值描述idbigint(8)YesYesID號namevarchar(50)套題名稱LessonIdbigint(8)所屬課程joinTimedatetime(8)getDate()添加時(shí)間e)tb_Lesson(課程信息表)課程信息表用來保存課程信息,該表中保存著所屬課程的ID,課程名以及課程的添加時(shí)間信息。該表的結(jié)構(gòu)如表4-5所示:表4-5tb_Lesson表的結(jié)構(gòu)字段名數(shù)據(jù)類型是否為空是否主鍵默認(rèn)值描述idbigint(8)NoYesID號namevarchar(60)NoNull課程名joinTimedatetime(8)NoNull添加時(shí)間f)tb_Questions(考試題目信息表)考試題目信息表用來保存考試題目信息??荚囶}目信息表的結(jié)構(gòu)如表4-6所示:表4-6tb_Questions表的結(jié)構(gòu)字段名數(shù)據(jù)類型是否為空是否主鍵默認(rèn)值描述idbigint(8)YesID號subjectvarchar(50)問題typechar(6)類型joinTimedatetime(6)getdate()添加時(shí)間LessonIdint(4)所屬課程IDtaotiIdbigint(8)所屬套題IDoptionAvarchar(50)選項(xiàng)AoptionBvarchar(50)選項(xiàng)BoptionCvarchar(50)選項(xiàng)CoptionDvarchar(50)選項(xiàng)Danswervarchar(50)對的答案notevarchar(50)允許為空備注4.4數(shù)據(jù)表之間的關(guān)系設(shè)計(jì)本系統(tǒng)設(shè)計(jì)了如圖4-7所示的數(shù)據(jù)表之間的關(guān)系,該關(guān)系事實(shí)上也反映了系統(tǒng)中各個(gè)實(shí)體之間的關(guān)系。圖4-7數(shù)據(jù)表之間的關(guān)系圖5具體設(shè)計(jì)5.1前臺首頁模塊設(shè)計(jì)5.1.1前臺首頁概述考生通過“考生登錄”模塊的驗(yàn)證后,可以登錄到網(wǎng)絡(luò)在線考試的前臺首頁,如圖5-1所示。前臺首頁重要用于實(shí)現(xiàn)前臺功能導(dǎo)航,在該頁面中只涉及在線考試、成績查詢、修改個(gè)人資料和退出4個(gè)導(dǎo)航鏈接。圖5-1前臺首頁的運(yùn)營效果5.1.2前臺首頁技術(shù)分析由于本系統(tǒng)的前臺首頁重要用于進(jìn)行系統(tǒng)導(dǎo)航,所以在實(shí)現(xiàn)時(shí),采用了為圖像設(shè)立熱點(diǎn)的方法,這樣可以增長頁面的靈活度,使頁面不至于太枯燥。下面將對如何設(shè)立圖像的熱點(diǎn)進(jìn)行具體介紹。為圖像設(shè)立熱點(diǎn),也可以稱作圖像映射,是指一幅圖像可以建立多個(gè)超鏈接,即在圖像上定義多個(gè)區(qū)域,每個(gè)區(qū)域鏈接到不同的地址,這樣的區(qū)域稱為熱點(diǎn)。圖像映射有服務(wù)器端映射(Server-side-ImageMap)和客戶端映射(Client-side-ImageMap)兩種。目前使用最多的是客戶端映射,由于客戶端映射使圖像上相應(yīng)的坐標(biāo)以及超鏈接的URL地址都在瀏覽器讀入,省去和服務(wù)器之間互傳坐標(biāo)和URL的時(shí)間。在HTML文獻(xiàn)中,使用標(biāo)記<map>可認(rèn)為圖像設(shè)立熱點(diǎn),語法格式如下:<imgsrc=“file_name”usemap=“#MapName”><mapname=“MapName”><areashape=“value”cords=“坐標(biāo)”href=“URL”alt=“描述文字”><areashape=“value”cords=“坐標(biāo)”href=“URL”alt=“描述文字”>…</map>在<img>標(biāo)記中設(shè)立屬性usemap,擬定創(chuàng)建圖像熱點(diǎn)。標(biāo)記<map>屬性如表5-1所示:表5-1標(biāo)記<map>的屬性標(biāo)記<map>的屬性描述name圖像映射的名稱shape定義圖像熱點(diǎn)的名稱coords設(shè)定熱點(diǎn)區(qū)域的圖標(biāo)href設(shè)定熱點(diǎn)區(qū)域的超鏈接地址alt設(shè)定熱點(diǎn)區(qū)域超鏈接描述文字在標(biāo)記<map>中,根據(jù)屬性shape的取值不同,相應(yīng)坐標(biāo)的設(shè)定也不同。5.1.3前臺首頁的實(shí)現(xiàn)過程a)在頁面中插入要設(shè)立熱點(diǎn)的圖片,并設(shè)立其usemap屬性,代碼如下:<imgsrc=“Images/default_mid.JPG”width=“778”height=“254”border=“0”usemap=“b)在<map>和</map>標(biāo)記中間插入設(shè)立熱點(diǎn)區(qū)域的代碼,具體代碼如下:<mapname="Map"><areashape="poly"coords="190,65,190,65,215,82,194,98,105,113,103,81"href="examRule.jsp"><areashape="poly"coords="313,59,402,45,435,56,406,78,311,90,313,58"href="manage/stuResult.do?action=stuResultQueryS&ID=${student}"><areashape="poly"coords="380,141,508,119,541,139,521,154,385,176"href="manage/student.do?action=modifyQuery&ID=${student}"><areashape="poly"coords="602,58,690,46,715,63,696,76,602,91"href="logout.jsp"></map>5.2考生信息模塊設(shè)計(jì)5.2.1考生信息模塊概述考生信息模塊重要涉及考生注冊、考生登錄、修改個(gè)人資料以及找回密碼等四個(gè)功能。考生一方面要注冊成為網(wǎng)站用戶,然后才干被授權(quán)登錄網(wǎng)站進(jìn)行一系列操作的權(quán)限;登錄后考生還可以修改個(gè)人的注冊資料。假如考生忘掉了登錄密碼,還可以通過網(wǎng)站提供的找回密碼功能快速找回密碼。考生信息模塊的系統(tǒng)流程如圖5-2所示:開始結(jié)束開始結(jié)束是否找回密碼否修改個(gè)人資料是考生注冊找回登錄密碼考生登錄是否5.2.2考生信息模塊的技術(shù)分析由于本系統(tǒng)采用的是Struts框架,所以在實(shí)現(xiàn)考生信息模塊時(shí),需要編寫考生信息模塊相應(yīng)的ActionForm類和Action實(shí)現(xiàn)類。下面將具體介紹如何編寫考生信息模塊的ActionForm類和Action實(shí)現(xiàn)類。a)編寫考生信息模塊的ActionForm類在考生信息模塊中,只涉及到數(shù)據(jù)表tb_Student(考生信息表),雖然根據(jù)這個(gè)數(shù)據(jù)表可以得出考生信息模塊的ActionForm類。但是本模塊中應(yīng)用的ActionForm類中并不是只涉及這些屬性。由于在修改個(gè)人資料時(shí),需要驗(yàn)證輸入的原密碼是否對的,所以還需要在考生信息的ActionForm類中添加一個(gè)oldpwd屬性,同時(shí),在進(jìn)行批量刪除考生信息時(shí),還需要添加一個(gè)保存要刪除考生ID號的delldArray屬性,由于是批量屬性,所以該屬性類型為字符串?dāng)?shù)組。publicclassStudentFormextendsActionForm{publicDategetJoinTime;…privateStringoldpwd; //原密碼privateString[]delIdArray=newString[0];publicDategetJoinTime(){ returnjoinTime; } publicvoidsetJoinTime(DatejoinTime){ this.joinTime=joinTime; }publicString[]getDelIdArray(){ returndelIdArray; } publicvoidsetDelIdArray(String[]delIdArray){ this.delIdArray=delIdArray; }…}b)創(chuàng)建考生信息模塊的Action類考生信息模塊的Action實(shí)現(xiàn)類Student繼承了Action類。在該類中,一方面需要在該類的構(gòu)造方法中分別實(shí)例化考生信息模塊的StudentDAO類。Action實(shí)現(xiàn)類的重要方法是execute(),該方法會被自動執(zhí)行,這個(gè)方法自身沒有具體的事務(wù),它是根據(jù)HttpServletRequest的getParameter()方法獲取的action參數(shù)值執(zhí)行相應(yīng)方法的??忌畔⒛K的Action實(shí)現(xiàn)類的關(guān)鍵代碼如下:publicclassStudentextendsAction{…publicActionForwardexecute(ActionMappingmapping,ActionFormform, HttpServletRequestrequest,HttpServletResponseresponse){ Stringaction=request.getParameter("action");if("studentQuery".equals(action)){ returnstudentQuery(mapping,form,request,response); }elseif("login".equals(action)){ returnstudentLogin(mapping,form,request,response); }elseif("studentAdd".equals(action)){ returnstudentAdd(mapping,form,request,response); }elseif("studentDel".equals(action)){ returnstudentDel(mapping,form,request,response); }elseif("modifyQuery".equals(action)){ returnmodifyQuery(mapping,form,request,response); }elseif("studentModify".equals(action)){ returnstudentModify(mapping,form,request,response); }elseif("seekPwd1".equals(action)){ returnseekPwd1(mapping,form,request,response); }elseif("seekPwd2".equals(action)){ returnseekPwd2(mapping,form,request,response); }else{request.setAttribute("error","您的操作有誤!");//將錯(cuò)誤信息保存到error中returnmapping.findForward("error"); //轉(zhuǎn)到顯示錯(cuò)誤信息的頁面 } }…//此處省略了該類中其他方法,這些方法將在后面的具體過程中給出}5.2.3考生注冊的實(shí)現(xiàn)過程運(yùn)營網(wǎng)絡(luò)在線考試系統(tǒng),一方面進(jìn)入的是考生登錄頁面,在該頁面中單擊“注冊”按鈕,即可進(jìn)入考生注冊頁面,在該頁面中輸入個(gè)人資料及密碼等一系列信息,如圖5-3所示。單擊“保存”按鈕,系統(tǒng)將根據(jù)您輸入的身份證號進(jìn)行驗(yàn)證是否已經(jīng)注冊,假如注冊成功,將彈出如圖5-4所示的窗口;假如注冊失敗,將彈出如圖5-5所示的提醒框。圖5-3考生注冊界面的運(yùn)營效果圖5-4注冊成功對話框圖5-5注冊失敗對話框設(shè)計(jì)添加注冊信息頁面添加注冊信息頁面重要用于收集輸入的考生注冊信息,及通過自定義的JavaScript的函數(shù)驗(yàn)證輸入信息是否合法。在設(shè)立用于收集注冊信息的表單時(shí),采用的是Struts框架的HTML標(biāo)簽實(shí)現(xiàn)的,關(guān)鍵代碼如下:<html:formaction="/manage/student.do?action=studentAdd"method="post"onsubmit="returncheckForm(studentForm)">考生姓名:<html:textproperty="name"size="20"/>密碼:<html:passwordstyleId="password1"property="pwd"size="20"/>確認(rèn)密碼:<html:passwordstyleId="password2"property="pwd"size="20"/>性別:<html:optionvalue="男">男</html:option><html:optionvalue="女">女</html:option></html:select>提醒問題:<html:textproperty="question"size="40"/>問題答案:<html:textproperty="answer"size="40"/>專業(yè):<html:textproperty="profession"size="40"/>身份證號:<html:textproperty="cardNo"size="40"/><html:submitproperty="submit"styleClass="btn_grey"value="保存"/><html:resetproperty="reset"styleClass="btn_grey"value="取消"/><html:buttonproperty="button"styleClass="btn_grey"value="返回"onclick="window.location.href='index.jsp'"/></html:form>修改考生信息的Action實(shí)現(xiàn)類在添加注冊信息頁面中輸入合法的注冊信息后,單擊“保存”按鈕,網(wǎng)頁會訪問一個(gè)URL,這個(gè)URL是/manage/student.do?action=studentAdd。從該URL地址中可以知道添加注冊信息頁面涉及到的action參數(shù)值為studentAdd,也就是當(dāng)action=studentAdd時(shí),會調(diào)用保存考生注冊信息的customerAdd()。在該方法中,一方面需要將接受到的表單信息強(qiáng)制轉(zhuǎn)換成ActionForm類型,然后調(diào)用StudentDAO類中的insert()方法,將考生信息保存到數(shù)據(jù)表中,并將返回值保存到變量ret中,假如返回值為re,表達(dá)該考生信息已經(jīng)注冊,將提醒信息“您已經(jīng)注冊,直接登錄即可!”保存到HttpServletRequest對象的error參數(shù)中,然后將頁面重定向到錯(cuò)誤提醒信息頁面;否則,假如返回值為miss,表達(dá)注冊失敗,將錯(cuò)誤提醒信息“注冊失敗”保存到HttpServletRequest對象的error參數(shù)中,然后將頁面重定向到錯(cuò)誤提醒信息頁面;否則表達(dá)注冊成功,將返回的準(zhǔn)考證號保存到HttpServletRequest對象的ret參數(shù)中,然后將頁面重定向到考生注冊成功頁面。保存考生注冊信息的方法studentAdd()的具體代碼如下:privateActionForwardstudentAdd(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){ StudentFormstudentForm=(StudentForm)form; Stringret=studentDAO.insert(studentForm); if(ret.equals("re")){ request.setAttribute("error","您已經(jīng)注冊,直接登錄即可!"); returnmapping.findForward("error"); }elseif(ret.equals("miss")){ request.setAttribute("error","注冊失??!"); returnmapping.findForward("error"); }else{ request.setAttribute("ret",ret); returnmapping.findForward("studentAdd"); } }c)編寫保存考生注冊信息的StudentDAO類的方法保存考生信息使用的StudentDAO類的方法是insert()。在insert()方法中,一方面從數(shù)據(jù)表tb_student中查詢輸入的身份證號是否存在,假如存在,將標(biāo)志變量設(shè)立為2;否則,先生成準(zhǔn)考證號,再將輸入的信息保存到考生信息表中,并將生成的準(zhǔn)考證號賦給標(biāo)志變量,最后返回該標(biāo)記變量。5.2.4找回密碼的實(shí)現(xiàn)過程運(yùn)營網(wǎng)絡(luò)在線考試系統(tǒng)時(shí),一方面進(jìn)入的是考生登錄頁面,在該頁面中單擊“找回密碼”按鈕,即可進(jìn)入到找回密碼第一步頁面,如圖5-6所示,用于輸入準(zhǔn)考證號,在該頁面中輸入準(zhǔn)考證號。單擊“下一步”按鈕,即可進(jìn)入到找回密碼第二步頁面,如圖5-7所示,用于輸入密碼提醒問題答案,在該頁面的“密碼提醒問題”文本框中將顯示提醒問題,在“密碼提醒答案”文本框中輸入密碼提醒問題的答案。單擊“下一步”按鈕,進(jìn)入到找回密碼第三步頁面,如圖5-8所示,用于顯示找回的密碼。圖5-6找回密碼第一步圖5-7找回密碼第二步圖5-8找回密碼第三步a)實(shí)現(xiàn)找回密碼第一步輸入準(zhǔn)考證號在找回密碼第一步頁面中,只需要放置一個(gè)用于獲取準(zhǔn)考證號的表單及相應(yīng)的表單元素即可,關(guān)鍵代碼如下:<html:formaction="/manage/student.do?action=seekPwd1"method="post"onsubmit="returncheckForm(studentForm)">準(zhǔn)考證號:<html:textproperty="ID"size="40"/><html:submitproperty="submit"styleClass="btn_grey"value="下一步"/><html:resetproperty="reset"styleClass="btn_grey"value="取消"/><html:buttonproperty="button"styleClass="btn_grey"value="返回"onclick="window.location.href='index.jsp'"/></html:form>找回密碼第一步相應(yīng)的方法seekPwd1()的具體代碼如下:privateActionForwardseekPwd1(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){ StudentFormstudentForm=(StudentForm)form; StudentForms=studentDAO.seekPwd(studentForm); request.setAttribute("seekPwd2",s); if(s.getID().equals("")){ request.setAttribute("error","您輸入的準(zhǔn)考證號不存在!"); returnmapping.findForward("error"); }else{ returnmapping.findForward("seekPwd1"); }}b)實(shí)現(xiàn)找回密碼第二步輸入密碼提醒問題答案在找回密碼第二步頁面中,一方面添加一個(gè)表單,并將第一步中返回的提醒問題答案顯示在相應(yīng)的文本框中,然后在該表單中添加一個(gè)用于記錄考生檔案ID的隱藏域,最后在該表單中添加用于輸入密碼提醒問題答案的文本框及相應(yīng)的按鈕,關(guān)鍵代碼如下:<html:formaction="/manage/student.do?action=seekPwd2"method="post"onsubmit="returncheckForm(studentForm)">密碼提醒問題:<html:textproperty="question"size="40"name="seekPwd2"readonly="true"/>密碼提醒答案:<html:textproperty="answer"size="40"/><html:submitstyleClass="btn_grey"value="下一步"/><html:resetstyleClass="btn_grey"value="取消"/></html:form>c)實(shí)現(xiàn)找回密碼第三步成功找回密碼準(zhǔn)考證號:<html:textproperty="ID"size="40"name="seekPwd3"readonly="true"/>密碼<html:textproperty="pwd"size="40"name="seekPwd3"readonly="true"/>5.3在線考試模塊設(shè)計(jì)5.3.1在線考試模塊的概述開始批準(zhǔn)考試規(guī)則選擇考試課程準(zhǔn)備考試隨機(jī)抽取試題并開始答題提交試卷/到達(dá)考試時(shí)間開始批準(zhǔn)考試規(guī)則選擇考試課程準(zhǔn)備考試隨機(jī)抽取試題并開始答題提交試卷/到達(dá)考試時(shí)間顯示本次考試成績否是否是結(jié)束圖5-9在線考試模塊的系統(tǒng)流程圖5.3.2在線考試模塊的技術(shù)分析由于本系統(tǒng)采用的是Struts框架,所以在實(shí)現(xiàn)在線考試模塊時(shí),需要編寫在線考試模塊相應(yīng)的ActionForm類和Action類。下面將具體介紹如何編寫在線考試模塊的ActionForm類和Action類。a)編寫在線考試模塊的ActionForm類在線考試模塊涉及的數(shù)據(jù)表是tb_Lesson(課程信息表)、tb_Questions(考試題目信息表)和tb_stuResult(考試成績表),通過這3個(gè)數(shù)據(jù)表可以創(chuàng)建出相應(yīng)的ActionForm類,可以在各自相應(yīng)的模塊中創(chuàng)建。b)創(chuàng)建在線考試模塊的Action類在線考試模塊的Action實(shí)現(xiàn)類Student繼承了Action類。在該類中,一方面需要在該類的構(gòu)造方法中分別實(shí)例化在線考試模塊的StartExamDAO類。Action實(shí)現(xiàn)類的重要方法是execute(),該方法會被自動執(zhí)行,這個(gè)方法自身沒有具體的事務(wù),它是根據(jù)HttpServletRequest的getParameter()方法獲取的action參數(shù)值執(zhí)行相應(yīng)方法的。在線考試模塊Action實(shí)現(xiàn)類的關(guān)鍵代碼如下:publicclassStartExamextendsAction{…//此處省略了聲明并實(shí)例化StartExamDAO類的代碼publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){Stringaction=request.getParameter("action");//獲取action參數(shù)的值if("startExam".equals(action)){ returnstartExam(mapping,form,request,response); }elseif("submitTestPaper".equals(action)){ returnsubmitTestPaper(mapping,form,request,response); }elseif("showStartTime".equals(action)){//顯示考試計(jì)時(shí) returnshowStartTime(mapping,form,request,response); }elseif("showRemainTime".equals(action)){//顯示考試時(shí)間 returnshowRemainTime(mapping,form,request,response); }else{ request.setAttribute("error","操作失??!"); returnmapping.findForward("error"); } }…//此處省略了該類中其他方法,這些方法將在后面的具體過程中給出}5.3.3選擇考試課程的實(shí)現(xiàn)過程考生登錄到網(wǎng)絡(luò)在線考試的前臺首頁后,單擊“在線考試”超鏈接,將進(jìn)入到考試規(guī)則頁面,在該頁面中單擊“批準(zhǔn)”按鈕,如圖5-10所示,即可進(jìn)入到選擇考試課程頁面,在該頁面中將以下拉列表框的形式顯示需要參與考試的課程,如圖5-11所示。假如沒有需要考試的課程,系統(tǒng)將給出提醒對話框,并返回到網(wǎng)絡(luò)在線考試的前臺首頁,如圖5-12所示:圖5-10運(yùn)營考試規(guī)則的界面圖5-11選擇考試課程的運(yùn)營結(jié)果圖5-12無考試課程對話框界面在考試規(guī)則頁面中,單擊“批準(zhǔn)”按鈕,將訪問一個(gè)URL地址,該地址為/manage/lesson.do?action=selectLesson,從該URL地址中可以知道選擇考試課程頁面涉及到的action的參數(shù)值為selectLesson,也就是當(dāng)action=selectedLesson時(shí),會調(diào)用查詢指定考生的課程相應(yīng)的方法selectLesson()。在該方法中,一方面獲取準(zhǔn)考證號,然后調(diào)用LessonDAO()類中的query()方法,并將獲取的準(zhǔn)考證號作為query()方法的參數(shù),最后根據(jù)query()方法返回的List集合的大小,轉(zhuǎn)到相應(yīng)的頁面。查詢需要考試的課程的方法selectLesson()的具體代碼如下:privateActionForwardselectLesson(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){HttpSessionsession=request.getSession();Stringstu=session.getAttribute("student").toString();//獲取準(zhǔn)考證號Listlist=lessonDAO.query(stu); //查詢涉及考試題目的課程列表,但不涉及已經(jīng)考過的科目 if(list.size()<1){ returnmapping.findForward("noenLesson"); }else{request.setAttribute("lessonList",list); returnmapping.findForward("selectLesson"); }}5.3.4隨機(jī)抽取試題并顯示試題的實(shí)現(xiàn)過程考生登錄到網(wǎng)絡(luò)在線考試的前臺首頁后,單擊“在線考試”超鏈接,將進(jìn)入到考試規(guī)則頁面,在該頁面中單擊“批準(zhǔn)”按鈕,進(jìn)入到選擇考試課程頁面,在該頁面中選擇要考試的課程,并單擊“擬定”按鈕,進(jìn)入到準(zhǔn)備考試頁面,如圖5-13所示。在該頁面中,單擊“開始考試”按鈕,將關(guān)閉當(dāng)前窗口,并打開新的窗口顯示試題,如圖5-14所示:圖5-13準(zhǔn)備考試頁面圖5-14隨機(jī)抽取試題并顯示試題的運(yùn)營結(jié)果在準(zhǔn)備考試頁面中,單擊“開始考試”按鈕,將調(diào)用JavaScript關(guān)閉窗口并打開新的窗口,用于顯示試題,具體代碼如下:<html:buttonproperty="button"styleClass="btn_grey"value="開始考試"onclick="window.opener=null;window.close();window.open('startExam.do?action=startExam','','width=786,height=600,scrollbars=1');"/>a)隨機(jī)抽取試題的方法randomGetQuestion()。在randomGetQuestion()方法中,一方面獲取指定課程所擁有的套題ID,然后將獲取的套題ID保存到一個(gè)數(shù)組中,并根據(jù)套題的個(gè)數(shù)獲取一個(gè)隨機(jī)數(shù),即保存套題ID數(shù)組的指定下標(biāo),最后根據(jù)該下標(biāo)獲取相應(yīng)的套題ID并返回。隨機(jī)抽取試題的方法randomGetQuestion()方法的關(guān)鍵代碼如下:publicintrandomGetQuestion(intlessonID){ intquestionsID=0; Stringsql="SELECTtaoTiIDFROM(SELECTdistinctlessonID,taoTiIDfrom"+"(SELECTlessonId,taoTiIDFROMtb_questionsGROUPBYtaoTiID,lessonID,type)"+"aslessonTaoTiGROUPBYlessonId,taoTiIDhavingcount(taoTiID)>1)astemp"+"WHERElessonID="+lessonID+""; ResultSetrs=conn.executeQuery(sql); inti=0;try{ rs.last(); intrecordNum=rs.getRow(); rs.first(); int[]id=newint[recordNum];do{id[i]=rs.getInt(1);i++;}while(rs.next());intrand=Math.abs(newRandom().nextInt(id.length));questionsID=id[rand];}catch(Exceptionex){ ex.printStackTrace();} returnquestionsID;}b)開始考試時(shí)保存考試成績的方法startSaveResult()。為了防止試題泄露,可以通過在開始考試時(shí)先將考試信息保存到考生成績表中,然后等提交試卷時(shí),再修改考試成績實(shí)現(xiàn),這樣即使考生并不提交試卷,下次也同樣不能再進(jìn)行考試了。在startSaveResult()方法中,需要根據(jù)傳遞的課程ID參數(shù)獲取相應(yīng)的課程名稱,然后再將準(zhǔn)考證號、所屬課程及單選題成績(設(shè)立為0)和多選題成績(設(shè)立為0)保存到考生成績表信息表中。開始考試時(shí)保存考試成績的方法startSaveResult()的關(guān)鍵代碼如下:publicintstartSaveResult(StringstudentID,intlessonID){Stringlesson=((LessonForm)lessonDAO.query(lessonID).get(0)).getName(); Stringsql="INSERTINTOtb_stuResult(stuId,whichLesson,resSingle,resMore)values('"+studentID+"','"+lesson+"',0,0)";intret=conn.executeUpdate(sql); returnret;}c)獲取試題的方法queryExam()。queryExam()方法包含兩個(gè)參數(shù),一個(gè)用于指定套題ID,另一個(gè)用于指定試題類型的參數(shù),假如該參數(shù)的值為0,就代表查詢指定套題中的單選題,否則為1,就代表查詢多選題,在將試題保存到相應(yīng)的ActionForm中時(shí),還需要先將字符型的對的答案分割為數(shù)組,再保存到相應(yīng)屬性中。5.3.5自動閱卷并顯示考試成績的實(shí)現(xiàn)過程在顯示試題頁面中,單擊“交卷”按鈕或是到達(dá)考試結(jié)束時(shí)間時(shí),系統(tǒng)將自動閱卷并將考試成績以對話框的形式反饋給考生,如圖5-15所示:圖5-15顯示考試成績對話框5.4后臺首頁模塊概述網(wǎng)絡(luò)在線考試系統(tǒng)的后臺首頁是管理員對網(wǎng)站信息進(jìn)行管理的首頁面。在該頁面中,管理員可以清楚地了解網(wǎng)站后臺管理系統(tǒng)包含的基本操作。網(wǎng)絡(luò)在線考試系統(tǒng)后臺首頁包含的重要模塊如下:a)管理員信息管理:重要涉及管理員信息列表、添加管理員、修改管理員和刪除管理員。b)考生信息管理:重要涉及查看注冊考生信息列表和刪除已注冊的考生信息。c)考生成績查詢:重要用于根據(jù)準(zhǔn)考證號、考試課程或考試時(shí)間模糊查詢考生成績。d)課程信息管理:重要涉及查看課程列表、添加課程信息和刪除課程信息。e)套題信息管理:重要涉及查看套題信息列表、添加套題信息、修改套題信息和刪除套題信息。f)考試題目管理:重要涉及查看考試題目列表、添加考試題目、修改考試題目和刪除考試題目。g)退出管理:重要用于退出后臺管理系統(tǒng)。為了方便管理員管理,在網(wǎng)絡(luò)在線考試系統(tǒng)的后臺首頁中顯示考生成績查詢頁面,其運(yùn)營結(jié)果如圖5-16所示:圖5-16網(wǎng)絡(luò)在線考試系統(tǒng)的后臺首頁的運(yùn)營結(jié)果5.5考試題目管理模塊設(shè)計(jì)5.5.1考試題目管理模塊的概述考試題目管理模塊重要涉及查看考試題目列表、添加考試題目信息、修改考試題目信息和刪除考試題目信息4個(gè)功能??荚囶}目管理模塊的框架如圖5-17所示:開始開始考試題目列表查看考試題目列表添加考試題目信息修改考試題目信息刪除考試題目信息圖5-17考試題目管理模塊的框架圖5.5.2查看考試題目列表的實(shí)現(xiàn)過程管理員登錄后,單擊“考試題目管理”超鏈接,進(jìn)入到查看考試題目列表頁面,在該頁面中將以列表形式顯示所有考試題目信息,同時(shí)提供添加考試題目、修改考試題目和刪除考試題目的超鏈接。查看考試題目列表頁面的運(yùn)營效果如圖5-18所示:圖5-18查看考試題目列表頁面的運(yùn)營效果5.5.3添加考試題目的實(shí)現(xiàn)過程管理員登錄系統(tǒng)后,單擊“考試題目管理”超鏈接,進(jìn)入到查看考試題目列表頁面,在該頁面中單擊“添加考試題目”超鏈接,進(jìn)入到添加考試題目頁面。在該頁面的“屬性課程”下拉列表框中選擇“計(jì)算機(jī)專業(yè)英語”,在“所屬套題”下拉列表框中將顯示該課程相應(yīng)的套題名稱。添加考試題目頁面的運(yùn)營結(jié)果如圖5-19所示:圖5-19添加考試題目頁面的運(yùn)營結(jié)果5.6套題信息管理模塊概述套題信息管理模塊重要涉及修改套題信息、添加套題和刪除套題3個(gè)功能。假如想要修改套題信息,單擊“修改按鈕”,跳出如圖5-20所示的頁面,可以修改套題名稱,該套題所屬課程,單擊“保存”按鈕,修改套題信息就成功了。假如要添加套題,就單擊“添加”按鈕,輸入套題名稱,并選擇該套題所屬課程,點(diǎn)擊“保存”按鈕,完畢了套題的添加。刪除套題的方法類似。圖5-20修改套題信息頁面的運(yùn)營效果5.7課程信息管理模塊概述課程信息管理模塊重要涉及查看課程信息、添加課程和刪除課程3個(gè)功能。假如想要添加課程,單擊“添加課程”,跳出如圖5-21所示的頁面,填寫課程名稱后,單擊“保存”按鈕,添加課程就成功了。假如要刪除套題,就單擊“刪除”按鈕,確認(rèn)刪除。圖5-21添加課程信息頁面運(yùn)營結(jié)果5.8考生成績查詢模塊概述考生成績查詢模塊可以按照準(zhǔn)考證號、考試課程和考試時(shí)間3種查詢條件來查詢成績,或者也可以輸入關(guān)鍵字來進(jìn)行查詢考生的成績。如圖5-22所示:圖5-22考生成績查詢頁面的運(yùn)營效果5.9考生信息管理模塊概述考生信息管理模塊重要涉及查看注冊考生信息列表和刪除已注冊的考生信息2個(gè)功能。5.10管理員信息管理模塊概述管理員信息管理重要涉及管理員信息列表、添加管理員、修改管理員和刪除管理員。假如要添加管理員,單擊“添加管理員信息”按鈕,跳出如圖5-23所示的對話框,輸入管理員名稱,密碼,并進(jìn)行確認(rèn)密碼后,點(diǎn)擊“保存”按鈕,就可以完畢管理員信息的添加了。刪除管理員,點(diǎn)擊“刪除”按鈕,確認(rèn)是否刪除后,就可以完畢操作。圖5-23添加管理員信息頁面運(yùn)營結(jié)果6軟件開發(fā)與測試6.1軟件開發(fā)技術(shù)概述Ajax技術(shù)是AsynchronousJavaScriptandXML的縮寫,意思是異步的JavaScript和XML。Ajax并不是一門新的語言或技術(shù),它是JavaScript、XML、CSS、DOM等多種已有技術(shù)的組合,它可以實(shí)現(xiàn)客戶端的異步請求操作。這樣可以實(shí)現(xiàn)在不需要刷新頁面的情況下與服務(wù)器進(jìn)行通信的效果,從而減少了用戶的等待時(shí)間。6.2通過Ajax技術(shù)實(shí)現(xiàn)計(jì)時(shí)與顯示剩余時(shí)間在通過Ajax技術(shù)實(shí)現(xiàn)計(jì)時(shí)與顯示剩余時(shí)間,一方面需要創(chuàng)建一個(gè)封裝Ajax必須實(shí)現(xiàn)的功能的對象AjaxRequest,并將其代碼保存為AjaxRequest.js,然后在開始考試頁面中包含該文獻(xiàn),具體代碼如下:<scriptlanguage=“javascript”src=“..//JS/AjaxRequest.js”></script>由于通過Ajax技術(shù)實(shí)現(xiàn)計(jì)時(shí)與顯示剩余時(shí)間表的方法類似,下面以實(shí)現(xiàn)自動計(jì)時(shí)為例進(jìn)行介紹。編寫調(diào)用AjaxRequest對象的函數(shù)、錯(cuò)誤解決函數(shù)和返回值解決函數(shù),具體代碼如下:<scriptlanguage="javascript">functionshowStartTime(){varloader=newnet.AjaxRequest("startExam.do?action=showStartTime&nocache="+newDate().getTime(),deal_s,onerror,"GET");}functiononerror(){window.open('../index.jsp','','toolbar,menubar,scrollbars,resizable,status,location,directories,copyhistory,height=600,width=778');window.close();}functiondeal_s(){ showStartTimediv.innerHTML=this.req.responseText;}
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物標(biāo)志物在藥物臨床試驗(yàn)中的臨床轉(zhuǎn)化策略-1
- 生物材料細(xì)胞相容性優(yōu)化策略研究
- 生物制劑治療的安全性監(jiān)測要點(diǎn)
- 冶金地質(zhì)財(cái)務(wù)部會計(jì)崗位考試題集含答案
- 會計(jì)師面試題集及答案參考
- 深度解析(2026)《GBT 19560-2025煤的高壓等溫吸附試驗(yàn)方法 》
- 深度解析(2026)GBT 19466.4-2016塑料 差示掃描量熱法(DSC) 第4部分:比熱容的測定
- 深度解析(2026)《GBT 19405.2-2003表面安裝技術(shù) 第2部分表面安裝元器件的運(yùn)輸和貯存條件 應(yīng)用指南》
- 企業(yè)培訓(xùn)師面試題及課程開發(fā)方法含答案
- 深度解析(2026)《GBT 19230.5-2003評價(jià)汽油清凈劑使用效果的試驗(yàn)方法 第5部分 汽油清凈劑對汽油機(jī)進(jìn)氣閥和燃燒室沉積物生成傾向影響的發(fā)動機(jī)臺架試驗(yàn)方法(Ford 2.3L方法)》
- JG/T 254-2015建筑用遮陽軟卷簾
- TCNFPIA1003-2022采暖用人造板及其制品中甲醛釋放限量
- 大健康產(chǎn)業(yè)可行性研究報(bào)告
- 腸易激綜合征中西醫(yī)結(jié)合診療專家共識(2025)解讀課件
- 庫存周轉(zhuǎn)率提升計(jì)劃
- 護(hù)理部競聘副主任
- 《統(tǒng)計(jì)學(xué)-基于Excel》(第 4 版)課件 賈俊平 第5-9章 概率分布- 時(shí)間序列分析和預(yù)測
- 中國計(jì)量大學(xué)《文科數(shù)學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 中國普通食物營養(yǎng)成分表(修正版)
- 20道長鑫存儲設(shè)備工程師崗位常見面試問題含HR常問問題考察點(diǎn)及參考回答
- 抖音ip孵化合同范本
評論
0/150
提交評論