畢業(yè)設(shè)計(論文)基于jsp的在線考試系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
畢業(yè)設(shè)計(論文)基于jsp的在線考試系統(tǒng)的設(shè)計與實現(xiàn)_第2頁
畢業(yè)設(shè)計(論文)基于jsp的在線考試系統(tǒng)的設(shè)計與實現(xiàn)_第3頁
畢業(yè)設(shè)計(論文)基于jsp的在線考試系統(tǒng)的設(shè)計與實現(xiàn)_第4頁
畢業(yè)設(shè)計(論文)基于jsp的在線考試系統(tǒng)的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于JSP的在線考試系統(tǒng)的設(shè)計與實現(xiàn)(陜理工計算機(jī)系計算機(jī)科學(xué)與技術(shù)專業(yè)051班,陜西 漢中 723000)指導(dǎo)教師: 摘要 人類進(jìn)入21世紀(jì),信息技術(shù)和網(wǎng)絡(luò)技術(shù)的迅速發(fā)展和廣泛應(yīng)用,對社會的政治、經(jīng)濟(jì)、軍事、科技和文化等領(lǐng)域產(chǎn)生越來越深刻的影響,也正在改變著人們的工作、生活、學(xué)習(xí)和交流方式。本文主要論述了如何利用JSP(Java Server Pages)技術(shù)進(jìn)行考試資源網(wǎng)站的開發(fā),作為動態(tài)網(wǎng)站的設(shè)計與數(shù)據(jù)庫是分不開的,網(wǎng)站采用SQL Server 2000數(shù)據(jù)庫作為后臺數(shù)據(jù)庫,在開發(fā)中嚴(yán)謹(jǐn)?shù)刈裱浖こ虒W(xué)的原理,在設(shè)計上具有友好的交互界面,管理員可以在管理界面上對后臺數(shù)據(jù)進(jìn)行更改,從而改變

2、用戶界面的內(nèi)容,在用戶界面上網(wǎng)站提供了最新考試信息、考試資料下載、在線考試等功能,使得人們利用在Internet上獲得重要的信息來改變傳統(tǒng)的學(xué)習(xí)方式。 關(guān)鍵詞 : JSP ; 數(shù)據(jù)庫 ; 網(wǎng)站開發(fā)Abstract The mankind enters 21st century, information technology and rapid development and extensive application, politics, economy, military, science and technology and culture of the society of networ

3、k technology, etc field exert a deeper and deeper influence, changing peoples work , life , study and exchange way too. This text expound the fact how utilize JSP (Java Server Pages ) technology go on , have an examination resource development of website mainly, the design as dynamic website can not

4、 be separated from that the database is, websites adopt Sql server 2000 database as backstage supporters database , the principle of following engineering of software in developing rigorously, have friendly mutual interfaces in the design, the administrator can change backstage supporters data in ma

5、naging interfaces , thus change the content of users interface, website offer latest examination information , have an examination materials download , person who have an examination function online at user interface, make people utilize and obtain important information on Internet to change the tra

6、ditional study way. Keyword : JSP ; Database ; Websites development 目錄 TOC o 1-4 h z u HYPERLINK l _Toc230774591 1.課題描述 PAGEREF _Toc230774591 h 8 HYPERLINK l _Toc230774592 2.系統(tǒng)分析 PAGEREF _Toc230774592 h 9 HYPERLINK l _Toc230774593 需求分析 PAGEREF _Toc230774593 h 9 HYPERLINK l _Toc230774594 功能分析 PAGEREF

7、 _Toc230774594 h 9 HYPERLINK l _Toc230774595 可行性研究 PAGEREF _Toc230774595 h 10 HYPERLINK l _Toc230774596 3.系統(tǒng)總體設(shè)計 PAGEREF _Toc230774596 h 11 HYPERLINK l _Toc230774597 系統(tǒng)目標(biāo) PAGEREF _Toc230774597 h 11 HYPERLINK l _Toc230774598 3.2 系統(tǒng)功能結(jié)構(gòu) PAGEREF _Toc230774598 h 11 HYPERLINK l _Toc230774599 業(yè)務(wù)流程圖 PAGERE

8、F _Toc230774599 h 12 HYPERLINK l _Toc230774600 3.4 系統(tǒng)開發(fā)語言 PAGEREF _Toc230774600 h 12 HYPERLINK l _Toc230774601 3.4.1 JSP的基本概念 PAGEREF _Toc230774601 h 13 HYPERLINK l _Toc230774602 3.4.2 Ajax技術(shù) PAGEREF _Toc230774602 h 13 HYPERLINK l _Toc230774603 系統(tǒng)預(yù)覽 PAGEREF _Toc230774603 h 13 HYPERLINK l _Toc2307746

9、04 開發(fā)環(huán)境 PAGEREF _Toc230774604 h 15 HYPERLINK l _Toc230774605 4數(shù)據(jù)庫設(shè)計 PAGEREF _Toc230774605 h 16 HYPERLINK l _Toc230774606 4.1 數(shù)據(jù)庫分析 PAGEREF _Toc230774606 h 16 HYPERLINK l _Toc230774607 4.2 數(shù)據(jù)庫概念設(shè)計 PAGEREF _Toc230774607 h 16 HYPERLINK l _Toc230774608 數(shù)據(jù)庫邏輯結(jié)構(gòu) PAGEREF _Toc230774608 h 17 HYPERLINK l _Toc

10、230774609 各數(shù)據(jù)表的結(jié)構(gòu) PAGEREF _Toc230774609 h 17 HYPERLINK l _Toc230774610 數(shù)據(jù)表之間的關(guān)系設(shè)計 PAGEREF _Toc230774610 h 19 HYPERLINK l _Toc230774611 5 公共類設(shè)計 PAGEREF _Toc230774611 h 20 HYPERLINK l _Toc230774612 數(shù)據(jù)庫連接及操作類的編寫 PAGEREF _Toc230774612 h 20 HYPERLINK l _Toc230774613 字符串處理類 PAGEREF _Toc230774613 h 22 HYPE

11、RLINK l _Toc230774614 6功能模塊設(shè)計 PAGEREF _Toc230774614 h 23 HYPERLINK l _Toc230774615 前臺首頁設(shè)計 PAGEREF _Toc230774615 h 23 HYPERLINK l _Toc230774616 6.1.1 前臺首頁概述 PAGEREF _Toc230774616 h 23 HYPERLINK l _Toc230774617 前臺首頁技術(shù)分析 PAGEREF _Toc230774617 h 23 HYPERLINK l _Toc230774618 6.1.3 前臺首頁的實現(xiàn)過程 PAGEREF _Toc2

12、30774618 h 24 HYPERLINK l _Toc230774619 考生信息模塊設(shè)計 PAGEREF _Toc230774619 h 24 HYPERLINK l _Toc230774620 6.2.1 考生信息模塊概述 PAGEREF _Toc230774620 h 24 HYPERLINK l _Toc230774621 6.2.2 考生信息模塊的技術(shù)分析 PAGEREF _Toc230774621 h 25 HYPERLINK l _Toc230774622 考生注冊的實現(xiàn)過程 PAGEREF _Toc230774622 h 25 HYPERLINK l _Toc230774

13、623 6.2.4 找回密碼的實現(xiàn)過程 PAGEREF _Toc230774623 h 28 HYPERLINK l _Toc230774624 在線考試模塊設(shè)計 PAGEREF _Toc230774624 h 29 HYPERLINK l _Toc230774625 6.3.1 在線考試模塊的概述 PAGEREF _Toc230774625 h 29 HYPERLINK l _Toc230774626 選擇考試課程的實現(xiàn)過程 PAGEREF _Toc230774626 h 29 HYPERLINK l _Toc230774627 隨機(jī)抽取實體并顯示試題的實現(xiàn)過程 PAGEREF _Toc23

14、0774627 h 30 HYPERLINK l _Toc230774628 6.3.4 自動閱卷并顯示考試成績的實現(xiàn)過程 PAGEREF _Toc230774628 h 31 HYPERLINK l _Toc230774629 6.3.5 單元測試 PAGEREF _Toc230774629 h 32 HYPERLINK l _Toc230774630 臺首頁設(shè)計 PAGEREF _Toc230774630 h 33 HYPERLINK l _Toc230774631 6.4.1 后臺首頁概述 PAGEREF _Toc230774631 h 33 HYPERLINK l _Toc230774

15、632 2 后臺首頁分析 PAGEREF _Toc230774632 h 34 HYPERLINK l _Toc230774633 6.4.3 后臺首頁的實現(xiàn)過程 PAGEREF _Toc230774633 h 34 HYPERLINK l _Toc230774634 考試題目管理額模塊設(shè)計 PAGEREF _Toc230774634 h 34 HYPERLINK l _Toc230774635 考試題目管理模塊的概述 PAGEREF _Toc230774635 h 34 HYPERLINK l _Toc230774636 6.5.2 考試題目管理模塊的技術(shù)分析 PAGEREF _Toc230

16、774636 h 35 HYPERLINK l _Toc230774637 查看考試題目列表的實現(xiàn)過程 PAGEREF _Toc230774637 h 36 HYPERLINK l _Toc230774638 添加考試題目的實現(xiàn)過程 PAGEREF _Toc230774638 h 37 HYPERLINK l _Toc230774639 刪除考試題目的實現(xiàn)過程 PAGEREF _Toc230774639 h 37 HYPERLINK l _Toc230774640 7.軟件測試 PAGEREF _Toc230774640 h 39 HYPERLINK l _Toc230774641 功能測試

17、PAGEREF _Toc230774641 h 39 HYPERLINK l _Toc230774642 性能測試 PAGEREF _Toc230774642 h 40 HYPERLINK l _Toc230774643 可用性測試 PAGEREF _Toc230774643 h 40 HYPERLINK l _Toc230774644 客戶端兼容性測試 PAGEREF _Toc230774644 h 40 HYPERLINK l _Toc230774645 結(jié) 論 PAGEREF _Toc230774645 h 42 HYPERLINK l _Toc230774646 致謝 PAGEREF

18、_Toc230774646 h 43 HYPERLINK l _Toc230774647 參考文獻(xiàn) PAGEREF _Toc230774647 h 44在線考試系統(tǒng)課題產(chǎn)生的背景是當(dāng)今教育信息化的趨勢及我國高校教育信息化系統(tǒng)的建設(shè);目的是充分利用學(xué)?,F(xiàn)有的計算機(jī)軟、硬件資源和網(wǎng)絡(luò)資源實現(xiàn)無紙化考試以避免傳統(tǒng)手工考試的不足。與傳統(tǒng)考試模式相比,網(wǎng)上考試滲入了更多的技術(shù)環(huán)節(jié),對實現(xiàn)安全性的途徑、方法也提出了更高的技術(shù)要求。通過Internet/Intranet來實現(xiàn)網(wǎng)上考試,是現(xiàn)代教育技術(shù)的一個具體實現(xiàn),具有很重要的現(xiàn)實意義??梢杂行Ю眯@網(wǎng)的軟硬件資源,使其發(fā)揮最大效力,更好的為學(xué)校的教學(xué)、科

19、研、管理服務(wù),可以大規(guī)模的實行考試,實現(xiàn)考試的客觀、公證性,自動化組卷、閱卷可以減輕教師的工作強(qiáng)度。傳統(tǒng)考試要求老師刻試卷、印試卷、安排考試、監(jiān)考、收集試卷、評改試卷、講評試卷和分析試卷。這是一個漫長而復(fù)雜的過程,已經(jīng)越來越不適應(yīng)現(xiàn)代教學(xué)的需要。在計算機(jī)技術(shù)迅猛發(fā)展下,給傳統(tǒng)的辦學(xué)提供了新的模式。傳統(tǒng)的考試方式時間長、效率低;同時人工批卷等主觀因素也影響到考試的公正性。這種無紙的在線考試系統(tǒng),使教務(wù)管理突破了時空限制,提高了考試效率和標(biāo)準(zhǔn)化水平;使學(xué)校管理者、教師和學(xué)生可以在任何時候、任何地點通過網(wǎng)絡(luò)進(jìn)行考試。在線考試系統(tǒng)已經(jīng)成為教育技術(shù)發(fā)展與研究的方向。隨著社會經(jīng)濟(jì)的發(fā)展,人們對教育越來越重

20、視??荚囀墙逃械囊粋€重要環(huán)節(jié),近幾年來隨著考試類型不斷增加以及考試要求不斷提高,傳統(tǒng)考試方式要求教師打印考卷、監(jiān)考、批卷,使教師的工作量越來越大,并且這些環(huán)節(jié)由于全部由人工完成,非常容易出錯。因此,許多學(xué)?;蚩荚嚈C(jī)構(gòu)建立網(wǎng)絡(luò)在線考試網(wǎng)站來降低成本和人力物力的投入,同時為考生提供了更全面更靈活的服務(wù)??忌M麑ψ约旱膶W(xué)習(xí)情況進(jìn)行客觀科學(xué)的評價,教務(wù)人員希望有效的改進(jìn)現(xiàn)有的考試模式;提高考試效率,為了滿足考生和教務(wù)人員的要求,在線考試系統(tǒng)應(yīng)包含在線考試成績查詢等功能以滿足用戶的需求。在傳統(tǒng)的學(xué)校教學(xué)中,進(jìn)行一場考試,要求老師刻試卷、印試卷、安排考試、監(jiān)考、收集試卷、評改試卷、講評試卷和分析試卷,

21、這是一個繁雜的過程,需要大量人力、物力與時間的投入,已經(jīng)越來越不適應(yīng)學(xué)校信息化建設(shè)與現(xiàn)代教學(xué)的需要。尤其在遠(yuǎn)程網(wǎng)絡(luò)教學(xué)中,學(xué)生分布廣,不易統(tǒng)一集中安排考試,給校方和學(xué)生帶來了眾多的不便。當(dāng)前盛行的在線考試系統(tǒng),正是信息化建設(shè)的產(chǎn)物,它是傳統(tǒng)考場的延伸。它可以利用互聯(lián)網(wǎng)絡(luò)和局域網(wǎng),隨時隨地的對學(xué)生進(jìn)行考試,評分,加上數(shù)據(jù)庫技術(shù)的利用,使得管理過程簡化,能夠輕松實現(xiàn)查詢,控制等功能。因此在線考試是信息化教學(xué)的不可缺少的輔助手段。顯然,無論采取何種方式,首要考慮的是安全性能。為此,本系統(tǒng)在SSL協(xié)議下完成了在線考試。數(shù)據(jù)、信息、資料等得以安全穩(wěn)定的傳輸。本網(wǎng)站采用B/S(Browser/Server

22、)即瀏覽器/服務(wù)器網(wǎng)絡(luò)體系結(jié)構(gòu),在這種結(jié)構(gòu)下,用戶工作界面通過www瀏覽器來實現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實現(xiàn),客戶端只需要一個瀏覽器,而將所有的業(yè)務(wù)規(guī)則、數(shù)據(jù)處理等放在服務(wù)器端進(jìn)行,這在維護(hù)和開發(fā)上變得簡單、容易,所有的操作只需要針對服務(wù)器進(jìn)行就可以,使得成本降低,并且可選擇的服務(wù)器操作系統(tǒng)是不受限制的.1用戶類別:登錄系統(tǒng)的身份定為四種,一是超級管理員,二是學(xué)校領(lǐng)導(dǎo),三是一般管理員(普通老師),四是學(xué)生,只有被授權(quán)的用戶才可以使用本系統(tǒng)的資源。2權(quán)限管理:系統(tǒng)需要經(jīng)過有效的身份驗證可以登錄。用戶的身份不同,使用的系統(tǒng)資源也不同??忌豢梢詤⒓釉诰€考試;一般管理員(普通教師)

23、可以在線制作試卷,進(jìn)行考生管理,添加學(xué)生信息、控制考試、成績查詢等。學(xué)校領(lǐng)導(dǎo)可添加院系、教師、部門、科目信息及查詢修改管理員信息及審批試卷、查詢考生信息;超級管理員擁有整個系統(tǒng)的全部使用權(quán)限,但查詢修改管理員信息的權(quán)限例外。3在線考試功能:考生輸入準(zhǔn)號證號登陸系統(tǒng)后,選擇對應(yīng)的試卷可進(jìn)行考試。答題完畢后,可自動交卷,系統(tǒng)將自動評分,考生可同時獲得考試成績。4在線制作試卷:一般管理員(教師)、學(xué)校領(lǐng)導(dǎo)和超級管理員可在線制作試卷,可設(shè)定試題的類型、難易程度、分值。5控制考試功能:可設(shè)定每次的考試時間,可禁止或允許考生參加考試,同時可查看考生的考試狀態(tài)。6考生管理功能:可注冊新增學(xué)生用戶,同時查看個

24、別考生及班級考生的信息,也可設(shè)定考生的考試狀態(tài):允許或禁止考試。7考生成績查詢功能:提供考生各科目成績的詳細(xì)查詢。8試卷審批功能:超級管理員及學(xué)校領(lǐng)導(dǎo)有此權(quán)限。教師制作試卷完畢,只有經(jīng)過超級管理員或?qū)W校領(lǐng)導(dǎo)審批后才能發(fā)布,發(fā)布后學(xué)生才能開考。9系統(tǒng)管理功能:一般管理員只可更改登陸密碼。超級管理員及學(xué)校領(lǐng)導(dǎo)除更改密碼外,同時具有高級管理功能,進(jìn)行添加和刪除管理員的帳號??尚行苑治龅哪康木褪且米钚〉拇鷥r在盡可能短的時間內(nèi)確定問題是否能夠解決。通過分析解決分析方法的利弊來判定系統(tǒng)目標(biāo)和規(guī)模是否現(xiàn)實,系統(tǒng)完成后所能帶來的效益是否達(dá)到值得去投資開發(fā)這個系統(tǒng)的程度。在線考試系統(tǒng)的可行性應(yīng)從以下方面考慮。

25、經(jīng)濟(jì)可行性定期的組織考試是各個院校及時掌握學(xué)生學(xué)習(xí)成績的有效方式,利用網(wǎng)絡(luò)在線考試系統(tǒng)一方面可以節(jié)省人力資源降低考試成本,另一方面,在線考試系統(tǒng)能夠快速的進(jìn)行考試和評分,體現(xiàn)考試的客觀與公正性。技術(shù)可行性開發(fā)一個在線考試系統(tǒng)涉及到的核心的技術(shù)問題就是如何實現(xiàn)在不斷刷新頁面的情況下實時顯示考試時間和剩余時間,并做到到達(dá)考試結(jié)束時間自動提交試卷的功能。如果在Ajax技術(shù)出現(xiàn)以前,要實現(xiàn)這些功能比較麻煩,但現(xiàn)在可以輕松實現(xiàn)這些功能,這為網(wǎng)絡(luò)在線考試系統(tǒng)的開發(fā)提供了技術(shù)保障。系統(tǒng)目標(biāo)根據(jù)前面所做的要求分析及用戶的需求可知,網(wǎng)絡(luò)在線考試系統(tǒng)屬于中小型的軟件,在系統(tǒng)實施后,應(yīng)達(dá)到以下目標(biāo):具有空間性。被授

26、權(quán)的用戶可以在異地登錄網(wǎng)絡(luò)考試在線系統(tǒng),而無需到指定地點進(jìn)行考試。操作簡單方便、界面簡潔美觀。系統(tǒng)提供考試時間倒計時功能,使考生實時了解考試剩余時間。隨即抽取試題。實現(xiàn)自動提交試卷功能。當(dāng)考試時間到達(dá)規(guī)定時間時,如果考生還未提交試卷,系統(tǒng)將自動交卷,以保證考試嚴(yán)肅、公正地進(jìn)行。系統(tǒng)自動閱卷,保證成績真實準(zhǔn)確??忌梢圆樵兛荚嚦煽儭O到y(tǒng)運行穩(wěn)定、安全可靠。3.2 系統(tǒng)功能結(jié)構(gòu)根據(jù)網(wǎng)絡(luò)在線考試系統(tǒng)的特點,可以將其分為前臺和后臺兩個部分進(jìn)行設(shè)計。前臺主要用于考生注冊和登錄系統(tǒng)、在線考試、查詢成績及修改個人資料等;后臺主要用于管理員對考生信息、課程信息、考題信息、和考生成績信息等進(jìn)行管理。在線考試系統(tǒng)

27、的前臺功能結(jié)構(gòu)如圖:3.1所示。在線考試系統(tǒng)的后臺功能結(jié)構(gòu)如圖:3.2所示。在線考試系統(tǒng)的前臺考生注冊找回密碼在線考試成績查詢修改個人資料退出系統(tǒng)考試規(guī)則選擇課程準(zhǔn)備考試開始考試自動閱卷顯示考試成績圖3.1 在線考試系統(tǒng)的前臺功能結(jié)構(gòu)圖在線考試系統(tǒng)的后臺管理員信息管理考生試信息管理考生成績查詢課程信息管理套題信息管理考試題目管理退出后臺管理圖3.2 在線考試系統(tǒng)的后臺功能結(jié)構(gòu)圖 在線考試的系統(tǒng)流程如圖3.3所示:找回密碼注冊登錄前臺首頁成績查詢在線考試修改個人資料選擇考試課程準(zhǔn)備考試自動閱卷并顯示成績考生成績查詢考生信息管理管理員信息管理提交試卷開始考試同意規(guī)則登錄后臺首頁hou課程信息管理試

28、題管理管理員考生3.4 系統(tǒng)開發(fā)語言本次設(shè)計是基于Jsp的在線考試系統(tǒng),主要利用了Jsp技術(shù)、Ajax技術(shù)和SQL server2000數(shù)據(jù)庫開發(fā)完成的。 JSP的基本概念Java Server Pages (JSP) 技術(shù)提供了一種簡單快速的方法來創(chuàng)建顯示動態(tài)生成內(nèi)容的 Web 頁面。由業(yè)界處于領(lǐng)先地位的 Sun 公司制定了相關(guān)的 JSP 技術(shù)規(guī)范,該規(guī)范定義了如何在服務(wù)器和 JSP 頁面間進(jìn)行交互,還描述了頁面的格式和語法。 JSP 頁面使用 XML 標(biāo)簽和 scriptlets(一種使用 Java 語言編寫的腳本代碼),封裝了生成頁面內(nèi)容的邏輯。它將各種格式的標(biāo)簽(HTML 或者 XML

29、)直接傳遞回響應(yīng)頁面。通過這種方式,JSP 頁面實現(xiàn)了頁面邏輯與其設(shè)計和顯示的分離。 JSP 技術(shù)是 Java 系列技術(shù)的一部分。JSP 頁面被編譯成 servlets,并可能調(diào)用 JavaBeans 組件(beans) 或 Enterprise JavaBeans 組件(企業(yè) beans),以便在服務(wù)器端處理。因此,JSP 技術(shù)在構(gòu)建可升級的基于 web 的應(yīng)用程序時扮演了重要角色。 JSP 頁面并不局限于任何特定的平臺或 web 服務(wù)器上。JSP 規(guī)范在業(yè)界有著廣泛的適應(yīng)性。JSP的效率和安全性更高;JSP的組件 (Component) 方式更方便;JSP的適應(yīng)平臺更廣。3.4.2 Aja

30、x技術(shù)Ajax 是Asynchronous JavaScript and XML的縮寫,意思是異步的JavaScript與XML。它并不是一門新的語言或技術(shù),而是由 JavaScript、XML、XSLT、CSS、DOM和XML Http Request等多種技術(shù)所組成的,其中XML Http Request對象是Ajax的核心,該對象是由瀏覽器中的JavaScript創(chuàng)建,負(fù)責(zé)在后臺以異步的方式讓客戶端連接到服務(wù)器。這樣開發(fā)人員通過使用 XML Http Request 對象,即可讓一些需要服務(wù)器參與的工作能夠在用戶不知不覺中進(jìn)行。Ajax具體有以下幾個方面的優(yōu)點:(1)減輕服務(wù)器的負(fù)擔(dān)。原

31、則是按需求獲取數(shù)據(jù)。(2)可以把一部分以前由服務(wù)器承擔(dān)的工作轉(zhuǎn)移到客戶端,利用客戶端閑置的資源進(jìn)行處理,節(jié)約空間和成本。(3)無刷新更新頁面,可以通過DOM及時將更新的內(nèi)容顯示在頁面上。(4)可以調(diào)整XML等外部數(shù)據(jù),進(jìn)一步促進(jìn)頁面顯示和數(shù)據(jù)的分離。在線考試系統(tǒng)由多個頁面組成,下面列出幾個重要頁面??忌侨腠撁嫒鐖D:3.4所示,該頁面主要用于實現(xiàn)考生登錄,同時也提供了考生注冊、找回密碼和進(jìn)入后臺的超鏈接;主頁面提供了導(dǎo)航條,如圖3.5所示;在線考試頁面如圖3.6所示,該頁面用于實現(xiàn)在線答題功能,同時提供了顯示考試時間和剩余時間及自動提交試卷的功能。圖3.4 考生登錄頁面圖3.5 主頁面套題信息

32、管理頁面如圖3.7所示,該頁面主要用于實現(xiàn)顯示套題計本信息、批量刪除套題信息等功能,同時還提供了添加套題的超鏈接;添加考試題頁面如圖1.8所示,該頁面主要用于將考試題目添加到數(shù)據(jù)庫,同時實現(xiàn)了在不刷新頁面的情況下,改變課程是自動顯示相關(guān)課程對應(yīng)的套題。在開發(fā)在線考試系統(tǒng)時,需要具備下面的軟件環(huán)境。服務(wù)器端:操作系統(tǒng):Windows 2003。Web 服務(wù)器: Tomcat6.0。Java 開發(fā)包:JDK1.5以上。數(shù)據(jù)庫:SQL Server 2003。瀏覽器:IE 6.0。分辨率:最佳效果為1024*768像素。客戶端:瀏覽器:IE 6.0。分辨率:最佳效果為1024*768。4數(shù)據(jù)庫設(shè)計4

33、.1 數(shù)據(jù)庫分析由于在線考試系統(tǒng)對于數(shù)據(jù)的安全性及完整性要求比較高,并且為了增加程序的使用范圍,還要保證系統(tǒng)可以擁有存儲足夠多數(shù)據(jù)的能力。SQL Server 2000 是一種高性能的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它在SQL Server 7.0的基礎(chǔ)上又?jǐn)U展了系統(tǒng)性能、可靠性、安全性和易用性,逐漸成為在線事物進(jìn)程和數(shù)據(jù)倉庫等最好的數(shù)據(jù)庫平臺。綜上所述,本系統(tǒng)采用SQL Server 2000數(shù)據(jù)庫。4.2 數(shù)據(jù)庫概念設(shè)計根據(jù)以上各節(jié)系統(tǒng)所做的需求分析和系統(tǒng)設(shè)計,規(guī)劃出本系統(tǒng)中使用的數(shù)據(jù)庫實體分別為考生檔案實體、管理員檔案實體、課程檔案實體、套題實體、考試題目實體和考生成績實體??忌鷻n案實體。考生檔案

34、實體包括編號、姓名、密碼、性別、注冊時間、提示問題、問題答案、專業(yè)和身份證號屬性。考生檔案實體的E-R圖如圖4.1所示。考生檔案姓名編號身份證號密碼性別注冊時間專業(yè)問題答案提示問題圖4.1 考生檔案實體E-R套題實體。套題實體包括編號、套題名稱、所屬課程和添加時間屬性。套題實體的E-R 圖如圖4.2所示。套題編號套題名稱所屬課程添加時間試題題目實體考試題目實體包括編號、問題類型、所屬課程、所屬套題、選項A、選項B、選項C、選項D、添加時間、正確答案和備注等屬性??荚囶}目實體的E-R圖如圖4.3所示。考試題目問題類型編號正確答案所屬課程所屬套題選項D選項C選項B選項A圖4.3 考試題目實體E-R

35、各數(shù)據(jù)表的結(jié)構(gòu)本系統(tǒng)共包含6張數(shù)據(jù)表,具體如下所示:tb_Student(考生信息表)表4.1 td_Student表的結(jié)構(gòu)字段名數(shù)據(jù)類型是否為空是否主鍵默認(rèn)值描述idbigint(8)NoYesID號(自動編號)namevarchar(20)NoNull姓名pwdvarchar(20)NoNull密碼sexvarchar(2)NoNull性別joinTimedatetime(8)NoGetdate()注冊時間Questionvarchar(50)NoNull提示問題Answervarchar(50)NoNull問題答案Professionvarchar(30)YesNull專業(yè)cardNov

36、arChar(18)NoNull身份證號tb_TaoTi(套題信息表)套題信息表用來保存套題信息,該表的結(jié)構(gòu)如表4.2所示。表4.2 td_TaoTi表的結(jié)構(gòu)字段名數(shù)據(jù)類型是否為空是否主鍵默認(rèn)值描述idbigint(8)YesID號(自動編號)Namevarchar(50)套題名稱LessonIDbigint(8)所屬課程joinTimeDatetime(8)getdate()添加時間tb_Questions(考試題目信息表)考試題目信息表用來保存考試題目信息,該表中保存著所屬課程和所屬套題的ID,通過這兩個ID可以獲取所屬課程和套題的信息??荚囶}目信息表的結(jié)構(gòu)如表4.3所示。表4.3 tb_

37、Questions表的結(jié)構(gòu)字段名數(shù)據(jù)類型是否為空是否主鍵默認(rèn)值描述idbigint(8)YesID號(自動編號)subjectvarchar(50)問題typechar(6)類型jointimedatetime(6)getdate()添加時間lessonIDint(4)所屬課程IDtaoTiIdbigint(8)所屬套題IDoptionAvarchar(50)選項AoptionBvarchar(50)選項BoptionCvarchar(50)選項CoptionDvarchar(50)選項Danswervarchar(50)正確答案notevarchar(50)允許為空備注tb_stuResul

38、t(考生成績信息表)考試成績信息表用來保存考生成績,該表中的所屬課程字段whichLesson與tb_Lesson表中的name字段相關(guān)聯(lián),并且設(shè)置為級聯(lián)更新??忌煽儽淼慕Y(jié)構(gòu)如表4.4所示。表4.4 tb_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ǐn)?shù)joinTimedatetime(8)getdate()添加時間tb

39、_lesson(課程信息表)課程信息表用來保存課程信息.結(jié)構(gòu)如表4.5所示.字段名數(shù)據(jù)類型是否為空 是否主鍵 默認(rèn)值 描述 idbigint(8) YESID號(自動編號)Namevarchar(60)課程名稱joinTimedatetime(8) getdate() 添加時間 tb_manager(管理員信息表)管理員信息表用來保存管理員信息,結(jié)構(gòu)如表4.6所示.字段名數(shù)據(jù)類型是否為空是否主鍵 默認(rèn)值 描述 Id bigint(8) YES ID號(自動編號) namevarchar(30)管理員名pwdVarchar(30)密碼本系統(tǒng)設(shè)計了如圖4.4所示的數(shù)據(jù)表之間的關(guān)系,該關(guān)系實際上也反

40、映了系統(tǒng)中各個實體之間的關(guān)系。tb_studenttb_stuResutb_Lessontb_questionstb_Taotitb_manager5 公共類設(shè)計 在開發(fā)過程中,經(jīng)常會用到一些公共類,例如數(shù)據(jù)庫連接及操作的類和字符串處理的類。因此,在開發(fā)系統(tǒng)前首先需要設(shè)計這些公共類。字符串處理的類是解決程序中經(jīng)常出現(xiàn)得有關(guān)字符串處理問題的方法,包括將數(shù)據(jù)庫中及頁面中有中文問題的字符串進(jìn)行正確的顯示和對字符串空值進(jìn)行處理的方法。定義用于進(jìn)行數(shù)據(jù)庫連接及操作的類ConnDB,并將其保存到com.wgh.core包中,同時定義所需的全局變量及構(gòu)造方法。代碼如下:public class ConnDB

41、 public Connection conn = null; / 聲明Connection對象的實例public Statement stmt = null; / 聲明Statement對象的實例public ResultSet rs = null; / 聲明ResultSet對象的實例private static String propFileName = /com/connDB.properties; / 指定資源文件保存的位置private static Properties prop = new Properties(); / 創(chuàng)建并實例化Properties對象的實例private

42、 static String dbClassName = com.microsoft.jdbc.sqlserver.SQLServerDriver; /定義保存數(shù)據(jù)庫驅(qū)動的變量private static String dbUrl = jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=db_expressLetter;private static String dbUser = sa;private static String dbPwd = ;public ConnDB() /定義構(gòu)造方法try /捕捉異常/將Properties文件

43、讀取到InputStream對象中InputStream in = getClass().getResourceAsStream(propFileName);prop.load(in); / 通過輸入流對象加載Properties文件dbClassName = prop.getProperty(DB_CLASS_NAME); / 獲取數(shù)據(jù)庫驅(qū)動dbUrl = prop.getProperty(DB_URL, dbUrl);/獲取URLdbUser = prop.getProperty(DB_USER, dbUser);/獲取登錄用戶dbPwd = prop.getProperty(DB_PWD

44、, dbPwd);/獲取密碼 catch (Exception e) e.printStackTrace(); / 輸出異常信息.println(警告: DbConnectionManager.getConnection() 獲得數(shù)據(jù)庫鏈接失敗.rnrn鏈接類型:+ dbClassName+ rn鏈接位置:+ dbUrl+ rn用戶/密碼+ dbUser + / + dbPwd);return conn; * 功能:執(zhí)行查詢語句 */public ResultSet executeQuery(String sql) try / 捕捉異常conn = getConnection(); / 調(diào)用g

45、etConnection()方法構(gòu)造Connection對象的一個實例connstmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rs = stmt.executeQuery(sql); catch (SQLException ex) System.err.println(ex.getMessage(); / 輸出異常信息return rs; / 返回結(jié)果集對象 * 功能:執(zhí)行更新操作public int executeUpdate(String sql) int r

46、esult = 0; / 定義保存返回值的變量try / 捕捉異常conn = getConnection(); / 調(diào)用getConnection()方法構(gòu)造Connection對象的一個實例conn_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);result = stmt.executeUpdate(sql); / 執(zhí)行更新操作 catch (SQLException ex) result = 0; / 將保存返回值的變量賦值為0return result; / 返回保存返回值的變量/*功能:關(guān)閉數(shù)據(jù)庫的連接*/public void clo

47、se() try / 捕捉異常if (rs != null) / 當(dāng)ResultSet對象的實例rs不為空時rs.close(); / 關(guān)閉ResultSet對象if (stmt != null) / 當(dāng)Statement對象的實例stmt不為空時stmt.close(); / 關(guān)閉Statement對象if (conn != null) / 當(dāng)Connection對象的實例conn不為空時conn.close(); / 關(guān)閉Connection對象 catch (Exception e) e.printStackTrace(System.err); / 輸出異常信息字符串處理類是為了解決程序

48、中經(jīng)常出現(xiàn)的有關(guān)字符串處理問題而編寫的類,在本系統(tǒng)中的字符串處理中,只包含一個用于將指定字符串格式化為制定位數(shù)的方法formatNO()。(1)編寫將整形數(shù)據(jù)格式化為指定長度的字符串的ChStr類,將其保存到com.wgh.core包中,并導(dǎo)入所需的包,關(guān)鍵代碼如下:package com.wgh.core;import java.text.NumberFormat;public class ChStr (2)在ChStr類中創(chuàng)建一個方法formatNO(),該方法有兩個int型參數(shù),風(fēng)別是str(要格式化的數(shù)字)和length(格式化后字符串的長度),返回值為格式化后的字符串,具體代碼如下:

49、public String formatNO(int str, int length) perty(java.specification.version); /獲取JDK的版本String laststr = ; try NumberFormat formater = NumberFormat.getNumberInstance();/聲明并實例化NumberFormat的一個實例formater.setMinimumIntegerDigits(length);/指定laststr = formater.format(str).toString().replace(, ); catch (Ex

50、ception e) System.out.println(格式化字符串時的錯誤信息: + e.getMessage();/輸出異常信息 Integer arr=new Integer1;/聲明并初始化數(shù)組arrarr0=new Integer(str);/將要格式化的數(shù)字str賦值給數(shù)組arr的第一個元素laststr = String.format(%0+length+d, arr); return laststr; 6功能模塊設(shè)計 前臺首頁概述考生通過“考生登錄模塊”的驗證后,看以登錄到網(wǎng)絡(luò)在線系統(tǒng)的前臺首頁。前臺首頁主要用于實現(xiàn)前臺功能導(dǎo)航,在該頁面中只包括在線考試、成績查詢、修改個人

51、資料和退出系統(tǒng)4個導(dǎo)航鏈接,如圖6.1所示。圖6.1 前臺首頁運行效果前臺首頁技術(shù)分析由于本系統(tǒng)的前臺首頁主要用于進(jìn)行系統(tǒng)導(dǎo)航,所以在實現(xiàn)時,采用了為圖像設(shè)置熱點的方法,這樣可以增加頁面的靈活度,使頁面不至于太枯燥。為圖像設(shè)置熱點,也可以稱作圖像映射,是指一幅圖像可以建立多個超鏈接,即在圖像上定義多個區(qū)域,每個區(qū)域連接到不同的地址,這樣的區(qū)域稱為熱點(既Hot Spot)。在標(biāo)記中設(shè)置屬性usemap,確定創(chuàng)建圖像熱點。標(biāo)記屬性如表6.1所示:表6.1 在標(biāo)記屬性標(biāo)記屬性 描述 name 圖像映射的名稱 shape 定義圖像熱點的名稱 coords 設(shè)定熱點區(qū)域坐標(biāo) href 設(shè)定熱點區(qū)域的超

52、鏈接地址 alt 設(shè)定熱點區(qū)域超鏈接的描述文字 在標(biāo)記中,根據(jù)屬性shape的取值不同,相應(yīng)坐標(biāo)的設(shè)定也不同。 設(shè)定屬性shape的屬性值為rect。 屬性shape取值為rect,表示矩形區(qū)域。設(shè)定shape的屬性值為circle,表示圓形區(qū)域。屬性shape取值為circle,表示圓形區(qū)域。設(shè)定shape的屬性值為poly。屬性shape取值為poly,表示多邊形區(qū)域。本系統(tǒng)中采用的使設(shè)置多邊形區(qū)域,即將shape的屬性值設(shè)置為poly。 前臺首頁的實現(xiàn)過程(1)在頁面中插入設(shè)置熱點的圖片,并設(shè)置其usemap屬性,代碼如下: (2)在和標(biāo)記中間插入設(shè)置熱點區(qū)域的代碼,具體代碼如下: 考生

53、信息模塊設(shè)計 考生信息模塊概述考生信心模塊主要包括考生注冊、考生登錄、修改個人資料以及找回密碼等4個功能??忌紫纫詾榫W(wǎng)站用戶,然后才被授予登陸網(wǎng)站進(jìn)行一系列操作的權(quán)限;登陸后考生可以修改個人的注冊資料。如果考生忘了登錄密碼,還可以通過網(wǎng)站提供的找回密碼功能快速找回密碼。考生信息模塊系統(tǒng)流程如圖6.2所示: 開始考生注冊找回登錄密碼考生登錄修改個人資料找回密碼結(jié)束結(jié)束圖6.2 考生信息模塊的系統(tǒng)流程圖 考生信息模塊的技術(shù)分析由于本系統(tǒng)采用的是Struts框架,所以在實現(xiàn)考生信息模塊式時,需要編寫考生信息模塊對應(yīng)的ActionForm類和Action實現(xiàn)類。1)編寫考生信息模塊的Action

54、Form類在考生信息模塊中,只涉及到數(shù)據(jù)表tb_Student(考生信息表),雖然根據(jù)這個數(shù)據(jù)表可以得出考生信息模塊的ActionForm類。public class StudentForm extends ActionForm public Date getJoinTime() /定義獲取注冊時間的方法return joinTime;public String getDelIdArray()/定義獲取刪除ID的方法return delIdArray;public void setDelIdArray(String delIdArray)/定義設(shè)置刪除ID的方法this.delIdArray=

55、delIdArray;創(chuàng)建考生信心模塊的Action實現(xiàn)類構(gòu)造方法中分別實例化考生信息模塊的StudentDAO類。Action實現(xiàn)類的主要方法是execute(),該方法會被自動執(zhí)行。考生注冊的實現(xiàn)過程運行網(wǎng)絡(luò)在線考試系統(tǒng),首先進(jìn)入的是考生登錄頁面,在該頁中單擊“注冊”按鈕,既可進(jìn)入到考生注冊的頁面,在該頁面中輸入個人資料及密碼,如圖6.3所示。單擊“保存”按鈕,系統(tǒng)將根據(jù)您輸入的身份證號驗證是否已經(jīng)注冊,如果沒有注冊,將彈出如圖6.4所示的提示框,否則將另進(jìn)行注冊。設(shè)置添加注冊頁面添加注冊信息頁面主要用于收集輸入的考生注冊信息,以及通過自定義的JavaScript函數(shù)驗證輸入信息是否合法。

56、在設(shè)置用于收集注冊信息的表單時,采用的是Strus框架的HTML標(biāo)簽實現(xiàn)的,關(guān)鍵代碼如下: html:form action=/manage/student.do?action=studentAdd 考生姓名:密碼: password1 property=pwd size=20/(密碼由6到20位的數(shù)字或字母組成) 確認(rèn)密碼: 性別: 男 女 提示問題: (如我的生日)問題答案: (如7月17日)專業(yè):身份證號 2)修改考生信息的Action實現(xiàn)類再添加注冊信息頁面中輸入合法的注冊信息后,單擊“保存”按鈕,網(wǎng)頁會訪問一個URL,這個URL是/manage/student.do?action=s

57、tudentAdd。/ 添加考生注冊信息private ActionForward studentAdd(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) StudentForm studentForm = (StudentForm) form;/將接收的表單信息強(qiáng)制轉(zhuǎn)換成ActionForm類型String ret = studentDAO.insert(studentForm);System.out.println(返回值ret: + ret);i

58、f (ret.equals(re) request.setAttribute(error, 您已經(jīng)注冊,直接登錄即可!);/保存錯誤提示信息到error中return mapping.findForward(error);/轉(zhuǎn)到錯誤提示頁面 else if(ret.equals(miss)request.setAttribute(error, 注冊失??!);/保存錯誤提示頁面return mapping.findForward(error);/轉(zhuǎn)到錯誤提示頁面elserequest.setAttribute(ret,ret);/將生成的準(zhǔn)考證號保存到ret中return mapping.fin

59、dForward(studentAdd);/轉(zhuǎn)到考生信息添加成功頁面3)編寫保存考試注冊信息的StudentDAO類的方法保存考生信息使用的StudentDAO類的方法是insert()。在insert()方法中,首先從數(shù)據(jù)表tb_student中查詢輸入的身份證號是否存在,如果存在,將標(biāo)志變量設(shè)置為2;否則,先生成準(zhǔn)考證號,在將輸入的信息保存到考生信息表中,并將生成的準(zhǔn)考證號賦給志識變量,最后返回該標(biāo)志變量。Insert()方法的具體代碼如下:/添加數(shù)據(jù) public String insert(StudentForm s) String sql1=SELECT * FROM tb_stud

60、ent WHERE cardNo=+s.getCardNo()+; ResultSet rs = conn.executeQuery(sql1);/執(zhí)行SQL查詢語句 String sql = ; String falg = miss;/用于記錄返回信息的變量 String ID=; try if (rs.next() /假如存在記錄 falg=re;/表示考生信息已經(jīng)注冊 else /*自動生成準(zhǔn)考證號*/ String sql_max=SELECT max(ID) FROM tb_student; ResultSet rs_max=conn.executeQuery(sql_max);/查

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論