版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 蘭州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院本科生畢業(yè)論文(設(shè)計(jì))題 目:基于JAVA技術(shù)的在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 有需要的聯(lián)系我 296117806我還有在線測(cè)試的全部文件目錄 TOC h z t 一級(jí)標(biāo)題,1,二級(jí)標(biāo)題,2 HYPERLINK l _Toc263671354 摘要 PAGEREF _Toc263671354 h I HYPERLINK l _Toc263671355 ABSTRACT PAGEREF _Toc263671355 h II HYPERLINK l _Toc263671356 引言 PAGEREF _Toc263671356 h 1 HYPERLINK l _Toc2636
2、71357 第1章 系統(tǒng)概述 PAGEREF _Toc263671357 h 1 HYPERLINK l _Toc263671358 1.1 項(xiàng)目目標(biāo) PAGEREF _Toc263671358 h 1 HYPERLINK l _Toc263671359 1.3 開發(fā)工具簡(jiǎn)介 PAGEREF _Toc263671359 h 1 HYPERLINK l _Toc263671360 第2章需求分析 PAGEREF _Toc263671360 h 3 HYPERLINK l _Toc263671361 2.1 任務(wù)概述 PAGEREF _Toc263671361 h 3 HYPERLINK l _T
3、oc263671362 2.2 功能需求分析 PAGEREF _Toc263671362 h 3 HYPERLINK l _Toc263671363 2.3 數(shù)據(jù)庫(kù)連接技術(shù) PAGEREF _Toc263671363 h 4 HYPERLINK l _Toc263671364 2.4 MVC設(shè)計(jì)模式 PAGEREF _Toc263671364 h 4 HYPERLINK l _Toc263671365 第3章 系統(tǒng)設(shè)計(jì) PAGEREF _Toc263671365 h 6 HYPERLINK l _Toc263671366 3.1 系統(tǒng)功能模塊設(shè)計(jì) PAGEREF _Toc263671366 h
4、 6 HYPERLINK l _Toc263671367 3.3 數(shù)據(jù)庫(kù)設(shè)計(jì) PAGEREF _Toc263671367 h 8 HYPERLINK l _Toc263671368 第4章 詳細(xì)設(shè)計(jì) PAGEREF _Toc263671368 h 10 HYPERLINK l _Toc263671369 4.1 系統(tǒng)模塊設(shè)計(jì) PAGEREF _Toc263671369 h 10 HYPERLINK l _Toc263671370 4.2 關(guān)鍵技術(shù)解決 PAGEREF _Toc263671370 h 19 HYPERLINK l _Toc263671371 結(jié)束語(yǔ) PAGEREF _Toc263
5、671371 h 22 HYPERLINK l _Toc263671372 參考文獻(xiàn) PAGEREF _Toc263671372 h 23 HYPERLINK l _Toc263671373 致謝 PAGEREF _Toc263671373 h 24摘要在線考試是一種通過互聯(lián)網(wǎng)絡(luò)或局域網(wǎng)進(jìn)行的新型考試方式,可實(shí)現(xiàn)考試的無(wú)紙化管理,這樣即方便校方考務(wù)的管理,也方便了考生,尤其適合考生分布廣,不易集中的遠(yuǎn)程教育?;诖吮救死肑AVA技術(shù)開發(fā)了一款在線考試系統(tǒng)。該系統(tǒng)分為教師和學(xué)生兩種用戶,教師用戶可以對(duì)系統(tǒng)進(jìn)行試題的增加、刪除、修改、查詢操作,對(duì)考生的添加與刪除操作,對(duì)試卷的生成與刪除以及對(duì)學(xué)生
6、成績(jī)的查詢操作;學(xué)生用戶可以進(jìn)行在線考試和考試成績(jī)的查詢操作。本文主要從系統(tǒng)概述、需求分析、系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、結(jié)論五部分介紹了基于JAVA技術(shù)的在線考試系統(tǒng)的分析、設(shè)計(jì)和開發(fā)的全部過程。關(guān)鍵詞:在線考試;B/S模式;MVC模式;JSP;Oracle數(shù)據(jù)庫(kù)ABSTRACTOnline examination is a new form of examination through the Internet or the local area network to work , and it can make the paperless management came true . Meanwh
7、ile it is convenient to the school management of authorities examining, and it also has facilitated the examinee, especially suit to the distance learning which the examinee is to distribute broadly and difficult to concentrate. Based on this I developed an on-line examination system by using Java t
8、echnologies. This system divides into two kinds of users include teachers and students , the teachers may add examination questions to the system, the deletion, the revision, the inquiry operation, to the examinees increase and deletion operation, to the production and deletion of examination paper
9、as well as to student achievement inquiry operation .The student can take the online examination and the examination score inquiry operation. The text mainly introduced the whole process of the online examinations analysis ,design and development which based on the JAVA technology through the five p
10、arts :the system survey, the demand analysis, the system design, the detailed design and the conclusion.Keyword: online examination,mode of B/ S,mode of MVC,JSP,databases of the oracle引言考試是學(xué)校教育或公司機(jī)構(gòu)考察人員的一種主要方式。在傳統(tǒng)的學(xué)校教學(xué)中,進(jìn)行一場(chǎng)考試,要求老師刻試卷、印試卷、安排考試、監(jiān)考、收集試卷、評(píng)改試卷、講評(píng)試卷和分析試卷,這是一個(gè)繁雜的過程,需要大量人力、物力與時(shí)間的投入,已經(jīng)越來越不適
11、應(yīng)學(xué)校信息化建設(shè)與現(xiàn)代教學(xué)的需要。尤其在遠(yuǎn)程網(wǎng)絡(luò)教學(xué)中,學(xué)生分布廣,不易統(tǒng)一集中安排考試,給校方和學(xué)生帶來了眾多的不便。而在線考試系統(tǒng),正是信息化建設(shè)的產(chǎn)物,它是傳統(tǒng)考場(chǎng)的延伸。它可以利用互聯(lián)網(wǎng)絡(luò)和局域網(wǎng),隨時(shí)隨地的對(duì)學(xué)生進(jìn)行考試,加上數(shù)據(jù)庫(kù)技術(shù)的利用,大大簡(jiǎn)化了傳統(tǒng)考試的過程,因此在線考試是電子化教學(xué)不可缺少的輔助手段。在當(dāng)今信息時(shí)代,計(jì)算機(jī)技術(shù)與網(wǎng)絡(luò)技術(shù)越來越廣地應(yīng)用于各個(gè)領(lǐng)域,改變著人們的學(xué)習(xí)、工作、生活乃至思維方式,也引起了教育領(lǐng)域的重大變革。將計(jì)算機(jī)與網(wǎng)絡(luò)技術(shù)應(yīng)用于現(xiàn)代高等教育中,是現(xiàn)代高等教育發(fā)展的需要,也是改革教育模式,提高學(xué)校教學(xué)效果和教學(xué)效率、提高科研和管理水平的必要手段。第
12、1章 系統(tǒng)概述1.1 項(xiàng)目目標(biāo)(1)在線考試系統(tǒng)的總體目標(biāo):在線考試系統(tǒng)可以幫助教師完成一個(gè)考試從題目設(shè)計(jì),考試安排,考試實(shí)施,分?jǐn)?shù)統(tǒng)計(jì)總結(jié)的所有工作。所有的考試數(shù)據(jù)和其它數(shù)據(jù)庫(kù)需要一種主流的方式進(jìn)行存儲(chǔ)和管理,例如使用數(shù)據(jù)庫(kù)技術(shù)。考試數(shù)據(jù)的存放和處理必須對(duì)考試保密,需要一定的安全性保障。(2)對(duì)學(xué)生用戶目標(biāo):這個(gè)軟件是分布式的,這意味著只要有考試客戶端可以連接到考試應(yīng)用服務(wù)器,任何考生在任何地方只要進(jìn)行身份確認(rèn),就能完成考試。題目最好有一定的穩(wěn)定性和隨機(jī)性。穩(wěn)定性可以保證每一次考試對(duì)每一個(gè)考生是公平的,隨機(jī)性可以避免作弊的發(fā)生。(3)對(duì)教師用戶的目標(biāo):教師可以進(jìn)行考試設(shè)計(jì)和安排。通過管理學(xué)生
13、用戶,教師可以進(jìn)行考試的身份管理??忌目荚嚪?jǐn)?shù)可以被保存下來,供教師進(jìn)行統(tǒng)計(jì)和查看。1.3 開發(fā)工具簡(jiǎn)介開發(fā)在線考試系統(tǒng),使用了以下開發(fā)工具及開發(fā)模式:選擇Oracle作為后臺(tái)的數(shù)據(jù)庫(kù),選擇JAVA、JSP、JavaScript、Html作為應(yīng)用程序開發(fā)工具,運(yùn)用Tomcat服務(wù)器技術(shù),整個(gè)系統(tǒng)完全基于B/S (Browser/Server)模式進(jìn)行設(shè)計(jì)。(1)JAVA簡(jiǎn)介Java是Sun公司推出的新的一代面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言,特別適合于Internet應(yīng)用程序開發(fā)。Java的產(chǎn)生與流行是當(dāng)今Internet發(fā)展的客觀要求,Java是一門各方面性能都很好的編程語(yǔ)言,它的基本特點(diǎn)是簡(jiǎn)單、面向?qū)?/p>
14、象、分布式、健壯的、安全的、結(jié)構(gòu)中立的、可移植的、性能很優(yōu)異的、多線程的、動(dòng)態(tài)的,特別適合在Internet環(huán)境上開發(fā)的應(yīng)用系統(tǒng)。(2)Web應(yīng)用程序開發(fā)環(huán)境JSP技術(shù)JSP的全稱是Java Server Pages,它是SUN推出的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。它在傳統(tǒng)的靜態(tài)頁(yè)面文件(*.html)中加入JAVA程序片段和JSP標(biāo)記,就構(gòu)成了JSP頁(yè)面。JSP具有以下的優(yōu)點(diǎn):將業(yè)務(wù)層與視圖層分離:使用JSP技術(shù),網(wǎng)絡(luò)開發(fā)人員可充分使用HTML來設(shè)計(jì)頁(yè)面顯示部分(如字體顏色等),并使用JSP指令或者JAVA程序片段來生成網(wǎng)頁(yè)上的動(dòng)態(tài)內(nèi)容;能夠跨平臺(tái):JSP支持絕大部分平臺(tái),包括現(xiàn)在非常流行的LINUX
15、系統(tǒng),應(yīng)用非常廣泛的Apache服務(wù)器也提供了支持JSP的服務(wù);組件的開發(fā)和使用很方便:如ASP的組件是由C+,VB等語(yǔ)言開發(fā)的,并需要注冊(cè)才能使用;而JSP的組件是用Java開發(fā)的,可以直接使用;一次編寫,處處運(yùn)行:作為JAVA開發(fā)平臺(tái)的一部分,JSP具有JAVA的所有優(yōu)點(diǎn)。(3)Tomcat應(yīng)用服務(wù)器目前支持JSP的應(yīng)用服務(wù)器是較多的,Tomcat是其中較為流行的一個(gè)Web服務(wù)器,Tomcat是一個(gè)免費(fèi)的開源的Serlvet容器,在Tomcat中,應(yīng)用程序的部署很簡(jiǎn)單,你只需將你的項(xiàng)目放到Tomcat的webapps目錄下,Tomcat會(huì)自動(dòng)檢測(cè)到這個(gè)文件。你在瀏覽器中訪問這個(gè)應(yīng)用的JSP
16、時(shí),通常第一次會(huì)很慢,因?yàn)門omcat要將JSP轉(zhuǎn)化為Servlet文件,然后編譯。編譯以后,訪問將會(huì)很快。 Tomcat也具有傳統(tǒng)的Web服務(wù)器的功能:處理Html頁(yè)面。但是與Apache相比,它的處理靜態(tài)Html的能力就不如Apache。我們可以將Tomcat和Apache集成到一塊,讓Apache處理靜態(tài)Html,而Tomcat處理JSP和Servlet。Tomcat是一個(gè)很好的工具,不僅僅因?yàn)槠涿赓M(fèi),功能強(qiáng)大,更因?yàn)槠溟_放性,越來越受到人們的重視。(4)ORACLE數(shù)據(jù)庫(kù)ORACLE 數(shù)據(jù)庫(kù)系統(tǒng)是美國(guó)ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫(kù)為核心的一組軟件產(chǎn)品,是目前最流行的客戶
17、/服務(wù)器(CLIENT/SERVER)或B/S體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)之一。ORACLE數(shù)據(jù)庫(kù)是目前世界上使用最為廣泛的數(shù)據(jù)庫(kù)管理系統(tǒng),作為一個(gè)通用的數(shù)據(jù)庫(kù)系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個(gè)關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫(kù)它實(shí)現(xiàn)了分布式處理功能。但它的所有知識(shí),只要在一種機(jī)型上學(xué)習(xí)了ORACLE知識(shí),便能在各種類型的機(jī)器上使用它。ORACLE 具有如下特性: 數(shù)據(jù)的大容量性。數(shù)據(jù)的保存的持久性。數(shù)據(jù)的共享性。數(shù)據(jù)的可靠性。(5)B/S 開發(fā)模式伴隨著Internet的迅速發(fā)展,計(jì)算機(jī)技術(shù)正在由基于C/S(client/ Server)模式的應(yīng)用系統(tǒng)轉(zhuǎn)變?yōu)榛贐/S模式的應(yīng)用系
18、統(tǒng)。過去,網(wǎng)絡(luò)軟件的開發(fā)都采用C/S(client)模式,在這種模式下,主要的業(yè)務(wù)邏輯都集中于客戶端程序,因此,必然導(dǎo)致以下問題:系統(tǒng)安裝、調(diào)試、維護(hù)和升級(jí)困難。由于客戶端的硬件配置可能存在差異,軟件環(huán)境各不相同,因此,在安裝時(shí),必須對(duì)每一個(gè)客戶端分別進(jìn)行配置,同樣,在軟件升級(jí)時(shí)也要對(duì)客戶端分別處理。在整個(gè)系統(tǒng)中,業(yè)務(wù)邏輯和用戶界面都集中到了客戶端,必然會(huì)增加安全隱患。B/S模式帶來了巨大的好處:開發(fā)成本及維護(hù)成本降低。由于B/S架構(gòu)管理軟件只安裝在服務(wù)器端(Server)上,即應(yīng)用程序在部署、升級(jí)、維護(hù)時(shí),只需要在服務(wù)器端進(jìn)行配置就可以了,網(wǎng)絡(luò)管理人員只需要管理服務(wù)器就行了,用戶界面和主要事
19、務(wù)邏輯在服務(wù)器(Server)端,用戶完全通過WWW瀏覽器訪問,極少部分事務(wù)邏輯在前端(Browser)實(shí)現(xiàn),所有的客戶端只有瀏覽器,網(wǎng)絡(luò)管理人員只需要做硬件維護(hù)。良好的安全性能,防火墻技術(shù)可以保證后臺(tái)數(shù)據(jù)庫(kù)的安全性。所有的配置工作都集中在服務(wù)器端而所有客戶端請(qǐng)求都是通過DBMS來訪問數(shù)據(jù)庫(kù),從而大大減少了數(shù)據(jù)直接暴露的風(fēng)險(xiǎn)。第2章需求分析2.1 任務(wù)概述在線考試管理系統(tǒng)主要實(shí)現(xiàn)題庫(kù)管理、在線制作試卷、在線控制考試、自動(dòng)評(píng)分(選擇題)、自動(dòng)交卷、考生管理、成績(jī)查詢、試卷管理等功能,充分利用計(jì)算機(jī)科學(xué)與技術(shù),改變傳統(tǒng)的考試操作方式,實(shí)現(xiàn)無(wú)紙化考試的模式。2.2 功能需求分析系統(tǒng)主要功能模塊:系統(tǒng)
20、分為教師用戶和學(xué)生用戶,教師用戶可以對(duì)系統(tǒng)進(jìn)行試題管理、考生管理、試卷管理以及成績(jī)管理;學(xué)生用戶可以進(jìn)行在線考試和考試成績(jī)的查詢操作。用戶訪問用例圖如圖2-1所示:教師用戶學(xué)生用戶圖2-1 用戶訪問用例圖系統(tǒng)成績(jī)查詢成績(jī)管理在線考試學(xué)生管理試卷管理題庫(kù)管理2.3 數(shù)據(jù)庫(kù)連接技術(shù)對(duì)于數(shù)據(jù)庫(kù)的連接,本系統(tǒng)的數(shù)據(jù)訪問接口采用JDBC數(shù)據(jù)驅(qū)動(dòng)程序,以純Java的方式來連接數(shù)據(jù)庫(kù),為訪問不同的數(shù)據(jù)庫(kù)提供統(tǒng)一的接口。JDBC(Java Data Base Connectivity,java數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行SQL語(yǔ)句的Java API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問,它由一組用Java語(yǔ)言編寫的
21、類和接口組成。有了JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送SQL語(yǔ)句就是一件很容易的事。有了JDBC API,就不必為訪問Sybase數(shù)據(jù)庫(kù)專門寫一個(gè)程序,為訪問Oracle數(shù)據(jù)庫(kù)又專門寫一個(gè)程序,或?yàn)樵L問Informix數(shù)據(jù)庫(kù)又編寫另一個(gè)程序等等,程序員只需用JDBC API寫一個(gè)程序就夠了,它可向相應(yīng)數(shù)據(jù)庫(kù)發(fā)送SQL調(diào)用。同時(shí),將Java語(yǔ)言和JDBC結(jié)合起來使程序員不必為不同的平臺(tái)編寫不同的應(yīng)用程序,只須寫一遍程序就可以讓它在任何平臺(tái)上運(yùn)行,這也是Java語(yǔ)言“編寫一次,處處運(yùn)行”的優(yōu)勢(shì)。Java 具有堅(jiān)固、安全、易于使用、易于理解和可以從網(wǎng)絡(luò)上自動(dòng)下載等特性,是編寫數(shù)據(jù)庫(kù)應(yīng)用程序的杰出語(yǔ)言。所需要
22、的只是 Java應(yīng)用程序與各種不同數(shù)據(jù)庫(kù)之間進(jìn)行對(duì)話的方法。而 JDBC 正是作為此種用途的機(jī)制。2.4 MVC設(shè)計(jì)模式 系統(tǒng)采用MVC設(shè)計(jì)模式,主要是將程序開發(fā)分為MODEL層(數(shù)據(jù)持久層)、VIEW(界面表示層)、CONTROL層(控制層)這三個(gè)層面,并將這三個(gè)層面分開來,形成了一個(gè)立體的架構(gòu)。三個(gè)層次之間的主要交互如下所示:見圖 2-2圖2-2 MVC模式三層框架圖(1)MVC模型介紹 MVC英文即Model-View-Controller,即把一個(gè)應(yīng)用的輸入、處理、輸出流程按照Model、View、Controller的方式進(jìn)行分離,這樣一個(gè)應(yīng)用被分成三個(gè)層模型層、視圖層、控制層。視圖
23、(View)代表用戶交互界面, 模型(Model):就是業(yè)務(wù)流程/狀態(tài)的處理以及業(yè)務(wù)規(guī)則的制定。業(yè)務(wù)流程的處理過程對(duì)其它層來說是黑箱操作,模型接受視圖請(qǐng)求的數(shù)據(jù),并返回最終的處理結(jié)果。業(yè)務(wù)模型還有一個(gè)很重要的模型那就是數(shù)據(jù)模型。數(shù)據(jù)模型主要指實(shí)體對(duì)象的數(shù)據(jù)保存(持續(xù)化)。 控制(Controller)可以理解為從用戶接收請(qǐng)求, 將模型與視圖匹配在一起,共同完成用戶的請(qǐng)求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個(gè)分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請(qǐng)求。(2)MVC設(shè)計(jì)模式的優(yōu)點(diǎn)首先,最重要的是應(yīng)該有多個(gè)視圖對(duì)應(yīng)一個(gè)模型的能力。在目前用戶需求的快速變化下,
24、可能有多種方式訪問應(yīng)用的要求。其次,由于模型返回的數(shù)據(jù)不帶任何顯示格式,因而這些模型也可直接應(yīng)用于接口的使用。 再次,由于一個(gè)應(yīng)用被分離為三層,因此有時(shí)改變其中的一層就能滿足應(yīng)用的改變。一個(gè)應(yīng)用的業(yè)務(wù)流程或者業(yè)務(wù)規(guī)則的改變只需改動(dòng)MVC的模型層。 控制層的概念也很有效,由于它把不同的模型和不同的視圖組合在一起完成不同的請(qǐng)求,因此,控制層可以說是包含了用戶請(qǐng)求權(quán)限的概念。 最后,它還有利于軟件工程化管理。由于不同的層各司其職,每一層不同的應(yīng)用具有某些相同的特征,有利于通過工程化、工具化產(chǎn)生管理程序代碼第3章 系統(tǒng)設(shè)計(jì)3.1 系統(tǒng)功能模塊設(shè)計(jì)(1)系統(tǒng)功能結(jié)構(gòu)圖系統(tǒng)分為教師用戶和學(xué)生用戶,教師用戶
25、可以對(duì)系統(tǒng)進(jìn)行試題的增、刪、改、查操作,考生的添加與刪除操作,試卷生成與刪除以及學(xué)生成績(jī)的查詢操作;學(xué)生用戶可以進(jìn)行在線考試和考試成績(jī)的查詢操作。整個(gè)系統(tǒng)的功能結(jié)構(gòu)圖如圖3-1所示:在線考試系統(tǒng)教師用戶添加試題試卷管 理成績(jī)管 理題庫(kù)管 理修改信息在線考試成績(jī)查詢修改試題刪除試題查詢?cè)囶}生成試卷刪除試卷刪除學(xué)生圖3-1 系統(tǒng)功能模塊圖成績(jī)查詢添加學(xué)生學(xué)生管 理學(xué)生用戶教師用戶權(quán)限:題庫(kù)管理:用于對(duì)單個(gè)試題的增、刪除、改等基本維護(hù)以及對(duì)試題進(jìn)行按科目查詢。試卷管理:進(jìn)行試卷的組合和試卷的刪除。成績(jī)管理:對(duì)每次考試的學(xué)生成績(jī)可以進(jìn)行查看。學(xué)生管理:添加參加考試學(xué)生的基本信息。學(xué)生用戶權(quán)限:學(xué)生用戶
26、可以進(jìn)行在線考試、個(gè)人信息修改以及考試成績(jī)查詢。(2)系統(tǒng)的用例圖如圖3-2所示:圖3-2 系統(tǒng)用例圖(3)用戶登錄類圖如圖3-3所示:圖3-3 用戶登陸類圖(4)系統(tǒng)操作序列圖如圖3-4所示:圖3-4 系統(tǒng)操作時(shí)序圖3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)(1)主要數(shù)據(jù)庫(kù)表的介紹根據(jù)系統(tǒng)需要和考試需要,設(shè)立了如下數(shù)據(jù)庫(kù)表:試題表(question):用于保存所有試題的描述信息答案及所屬科目。見表3-1選項(xiàng)表(choices):用于保存所有試題的所有選項(xiàng)及所屬試題。見表3-2所屬科目表(Subject):用于錄入試題相關(guān)的科目應(yīng)用。見表3-3成績(jī)表(scorelist):用于存儲(chǔ)學(xué)生的考試成績(jī)。見表3-4教師表(t
27、eacher):用于保存教師的登陸的基本信息。見表3-5學(xué)生表(student):用于保存學(xué)生的考試的用戶名及登陸密碼。見表3-6(2)主要數(shù)據(jù)庫(kù)表的結(jié)構(gòu)定義(數(shù)據(jù)詞典):數(shù)據(jù)庫(kù)表名的定義使用:表名,表名可以是多個(gè)英文單詞的組合,從組合的第二單詞起首字母大寫,字段命名是能表達(dá)字段內(nèi)容的英文單詞的組合,組合方式同表名相同。NN:表示not null,不填表可為空;PK:表示主鍵。數(shù)據(jù)類型不使用固定數(shù)據(jù)庫(kù)的類型,標(biāo)識(shí)大眾類型,如字符串、字符、數(shù)字等。輸寫數(shù)據(jù)表在數(shù)據(jù)庫(kù)中的物理名稱,可用自己熟悉的語(yǔ)言再定義表名稱,方便溝通。長(zhǎng)度定義又?jǐn)?shù)據(jù)類型決定:如字符串可選8000以下,數(shù)字可在50位之間,字符只
28、允許一位。主要表結(jié)構(gòu)如下:表3-1 question主要字段數(shù)據(jù)類型長(zhǎng)度屬性描述備注questionID數(shù)字6PK 主鍵由系統(tǒng)自動(dòng)生成questionDescription字符串50NN試題名稱correctKey字符串1NN試題答案選項(xiàng)subjectId數(shù)字5NN外鍵試題所屬科目。表3-2 choices主要字段數(shù)據(jù)類型長(zhǎng)度屬性描述備注choiceId數(shù)字7PK主鍵由系統(tǒng)自動(dòng)生成choice字符串2NN試題選項(xiàng)optionDescription字符串100NN選項(xiàng)描述。表3-3 subject主要字段數(shù)據(jù)類型長(zhǎng)度屬性描述備注subjectId數(shù)字5NN主鍵由系統(tǒng)自動(dòng)生成name字符串50NN
29、科目名稱輸入要唯一表3-4 scoreList主要字段數(shù)據(jù)類型長(zhǎng)度屬性描述備注scoreListId數(shù)字7NN主鍵由系統(tǒng)自動(dòng)生成studentId數(shù)字6NN學(xué)生subjectId數(shù)字5NN科目score數(shù)字3NN成績(jī)自動(dòng)生成成績(jī)。testDate日期8NN考試時(shí)間表3-5 teacher主要字段數(shù)據(jù)類型長(zhǎng)度屬性描述備注teacherId數(shù)字4NN主鍵由系統(tǒng)自動(dòng)生成loginName字符串20NN教師登錄名唯一loginPassword字符串20NN教師登錄密碼name字符串20NN教師姓名表3-6 student主要字段數(shù)據(jù)類型長(zhǎng)度屬性描述備注studentId數(shù)字4NN主鍵由系統(tǒng)自動(dòng)生成lo
30、ginName字符串20NN學(xué)生登錄名唯一loginPassword字符串20NN學(xué)生登錄密碼name字符串20NN學(xué)生姓名(3)數(shù)據(jù)庫(kù)關(guān)系圖數(shù)據(jù)庫(kù)設(shè)計(jì)的邏輯實(shí)體關(guān)系如圖3-5所示: 圖3-5 數(shù)據(jù)關(guān)系圖第4章 詳細(xì)設(shè)計(jì)4.1 系統(tǒng)模塊設(shè)計(jì)(1)用戶登錄:對(duì)于已注冊(cè)的用戶根據(jù)用戶名和密碼進(jìn)行登陸,登錄界面如圖4-1所示:圖4-1 用戶登陸圖填寫您的用戶名、密碼,選擇教師或?qū)W生;點(diǎn)擊“登陸”按鈕;用戶名、密碼都正確,登陸成功,進(jìn)入系統(tǒng)主界面;主要代碼:String loginName = request.getParameter(loginName);String loginPassword =
31、 request.getParameter(loginPassword);String identity = request.getParameter(identity);if(identity.equals(student)/學(xué)生登錄Student student =userBiz.studentLogin(loginName);if(student=null)request.getSession().removeAttribute(uerror);request.getSession().removeAttribute(perror);request.getSession().setAtt
32、ribute(uerror, 該學(xué)生用戶不存在);p /返回登錄頁(yè)面并顯示錯(cuò)誤信息;if(!student.getLoginPassword().equals(loginPassword)request.getSession().removeAttribute(uerror);request.getSession().removeAttribute(perror);request.getSession().setAttribute(perror, 密碼錯(cuò)誤);return redirect:/login.jsp /返回登錄頁(yè)面并顯示錯(cuò)誤信息;elserequest.getSession().r
33、emoveAttribute(uerror);request.getSession().removeAttribute(perror);request.getSession().setAttribute(student, student);return redirect:/protect/sindex.jsp /進(jìn)入學(xué)生主頁(yè)面;else if(identity.equals(teacher)/教師登錄Teacher teacher = userBiz.teacherLogin(loginName);if(teacher=null)request.getSession().removeAttri
34、bute(uerror);request.getSession().removeAttribute(perror);request.getSession().setAttribute(uerror, 該教師用戶不存在);return redirect:/login.jsp /返回登錄頁(yè)面并顯示錯(cuò)誤信息;if(!teacher.getLoginPassword().equals(loginPassword)request.getSession().removeAttribute(uerror);request.getSession().removeAttribute(perror);reques
35、t.getSession().setAttribute(perror, 密碼錯(cuò)誤);return redirect:/login.jsp /返回登錄頁(yè)面并顯示錯(cuò)誤信息;elserequest.getSession().removeAttribute(uerror);request.getSession().removeAttribute(perror);request.getSession().setAttribute(teacher, teacher);return redirect:/protect/tindex.jsp/進(jìn)科教師主頁(yè)面;request.getSession().setAt
36、tribute(error, 未知錯(cuò)誤);return redirect:/login.jsp /返回登錄頁(yè)面并顯示錯(cuò)誤信息;(2)用戶主界面:因?yàn)榻處熡脩襞c學(xué)生用戶的權(quán)限不同,在這里主要介紹教師用戶,用戶主界面是用戶的管理界面。主界面如圖4-2所示:圖4-2 用戶主頁(yè)圖點(diǎn)擊左測(cè)具體的模塊并進(jìn)行具體的操作。選擇注銷按鈕退出本系系統(tǒng)返回到登錄頁(yè)面。 主要代碼:(3)操作的主要模塊:題庫(kù)管理模塊的試題維護(hù):試題維護(hù)主界面:選擇題庫(kù)管理中試題維護(hù)是試題維護(hù)的主界面,展示了試題維護(hù)的主要信息;可進(jìn)行試題的編輯、刪除、通過科目查詢等操作;如圖 4-3所示:圖4-3 試題維護(hù)主界面主要代碼如下:Strin
37、g sn = request.getParameter(subjects).trim();/獲取科目IDInteger subjectId = Integer.valueOf(sn);/獲取該科目信息Subject subject = subjectBiz .getSubjectById(subjectId); / 獲取該科目所有試題Set set = questionBiz.getQuestionsBySubjectId(subjectId);Mapmap = new LinkedHashMap();for(Question q: set)q.setSubject(subject);map.
38、put(q.getId(), q);/蔣試題信息放入到session作用域中if(request.getSession().getAttribute(qMap)!=null)request.getSession().removeAttribute(qMap);request.getSession().setAttribute(qMap, map);return redirect:/protect/dealwithQuestions.jsp;/進(jìn)入試題顯示頁(yè)面試題的錄入:點(diǎn)擊主界面中增加考題,可彈出試題添加界面,輸入試題的信息后,點(diǎn)擊提交即可,界面如圖 4-4所示:圖4-4 試題錄入界面主要代碼
39、如下:/獲得被插入的試題所對(duì)應(yīng)的學(xué)科String sn = request.getParameter(subjects).trim();Integer subjectId = Integer.valueOf(sn);Subject subject = subjectBiz .getSubjectById(subjectId);/創(chuàng)建試題對(duì)象String qd = request.getParameter(qd).trim();String co = request.getParameter(co).trim();Question question = new Question(qd,co);/
40、創(chuàng)建四個(gè)選項(xiàng)對(duì)象String ad = request.getParameter(A).trim();String bd = request.getParameter(B).trim();String cd = request.getParameter(C).trim();String dd = request.getParameter(D).trim();Choice choiceA = new Choice(A.,ad);Choice choiceB = new Choice(B.,bd);Choice choiceC = new Choice(C.,cd);Choice choiceD
41、= new Choice(D.,dd);/維護(hù)三者之間的關(guān)系question.setSubject(subject);on(question);choiceB.setQuestion(question);choiceC.setQuestion(question);choiceD.setQuestion(question);LinkedHashSet optionSet = new LinkedHashSet();optionSet.add(choiceA);optionSet.add(choiceB);optionSet.add(choiceC);optionSet.add(choiceD);
42、question.setOptionSet(optionSet); /添加試題questionBiz.addQuestion(question);Map map =(Map)request.getSession().getAttribute(qMap); if(map!=null) map.put(question.getId(), question); Map map1 =(Map)request.getSession().getAttribute(qMap1); if(map1!=null) map1.put(question.getId(), question); return redi
43、rect:/protect/viewResult.jsp;/進(jìn)入信息顯示頁(yè)面。試題的編輯:點(diǎn)擊查詢?cè)囶}頁(yè)面的每條信息的編輯,可進(jìn)行每條信息的修改。編輯界面如圖 4-5所示:圖4-5 試題編輯界面主要代碼如下:String id = request.getParameter(qid);Integer qid = Integer.valueOf(id);Map map =(Map)request.getSession().getAttribute(qMap);Question question = map.get(qid);arameter(qd);String co = request.getP
44、arameter(co);String a = request.getParameter(A.);String b = request.getParameter(B.);String c = request.getParameter(C.);String d = request.getParameter(D.);question.setQuestionDescription(qd); question.setCorrectKey(co);for(Choice ch:question.getOptionSet()if(ch.getChoice().equals(A.)ch.setOptionDe
45、scription(a);if(ch.getChoice().equals(B.) ch.setOptionDescription(b);if(ch.getChoice().equals(C.) ch.setOptionDescription(c);if(ch.getChoice().equals(D.) ch.setOptionDescription(d);questionBiz.updateQuestion(question);Map map1 =(Map)request.getSession().getAttribute(qMap1); if(map1!=null) map1.put(q
46、uestion.getId(), question); return redirect:/protect/dealwithQuestions.jsp試題的刪除:選中要?jiǎng)h除的試題,點(diǎn)擊刪除后會(huì)提示是否真的刪除,若點(diǎn)擊確定則執(zhí)行刪除操作;若點(diǎn)擊取消則不執(zhí)行任何操作;刪除界面如圖 4-6所示:圖4-6 試題刪除界面主要代碼如下:String qcheck = request.getParameterValues(qcheck);/獲取選中試題的IDfor(String qs:qcheck)Integer qid = Integer.valueOf(qs);n(qid)/通過試題ID刪除試題;retu
47、rn redirect:/protect/dealwithQuestions.jsp;試卷生成:試卷由教師選擇試題,之后點(diǎn)擊生成試卷則會(huì)自動(dòng)生成一套試卷。頁(yè)面如圖 4-7所示:圖4-7 試卷生成界面主要代碼如下:Map map1 =(Map)request.getSession().getAttribute(qMap1);Integer qid1= Integer.valueOf(qcheck0);Question question1 = map1.get(qid1);Subject subject = question1.getSubject();Map paperMap = new Lin
48、kedHashMap();Question question = null;for(String qs:qcheck)Integer qid = Integer.valueOf(qs);question = map1.get(qid);paperMap.put(question.getId(), question);ServletContext application = request.getSession().getServletContext();MapSubject, Map map=(MapSubject, Map)application.getAttribute(spMap);ma
49、p.put(subject, paperMap);return redirect:/protect/viewResult1.jsp; 4.2 關(guān)鍵技術(shù)解決(1)系統(tǒng)與數(shù)據(jù)庫(kù)的連接系統(tǒng)與數(shù)據(jù)庫(kù)的連接是通過Tomcat應(yīng)用服務(wù)器提供的數(shù)據(jù)庫(kù)連接池進(jìn)行連接,在服務(wù)器啟動(dòng)時(shí),事先創(chuàng)建好一批數(shù)據(jù)庫(kù)連接,輪流被大量請(qǐng)求使用,在每個(gè)請(qǐng)求的數(shù)據(jù)庫(kù)連接使用完畢后,不是真正關(guān)閉數(shù)據(jù)庫(kù)連接,而是將它還給Tomca服務(wù)器。這樣做的好處是節(jié)省了打開各關(guān)閉數(shù)據(jù)庫(kù)連接的時(shí)間,也節(jié)省了數(shù)據(jù)庫(kù)連接資源。主要代碼如下:private static Properties env=new Properties(); statictr
50、y InputStream is=JdbcUtil.class.getResourceAsStream(/com/joust/conf/db.txt);env.load(is);is.close(); catch (Exception e) throw new RuntimeException(e); private static final ThreadLocal tl=new ThreadLocal();public static Connection getConnection() throws ExceptionConnection conn=tl.get();if(conn=null
51、)Context context = new InitialContext();DataSource ds = (DataSource)context.lookup(java:comp/env/ + env.getProperty(datasource);conn = ds.getConnection(); /從池中獲得連接tl.set(conn);return conn;/關(guān)閉數(shù)據(jù)庫(kù)連接public static void close() Connection conn = tl.get();if(conn != null) try conn.close(); catch (SQLExcep
52、tion e) tl.remove();由于本系統(tǒng)開發(fā)時(shí)是利用MVC的設(shè)計(jì)模式,所以在此數(shù)據(jù)庫(kù)連接是封存在M中的,即只要我和M層連接上,就已經(jīng)連接上數(shù)據(jù)庫(kù)了。(2)MVC設(shè)計(jì)模式的實(shí)現(xiàn) 視圖是模型的表示,它提供用戶交互界面。使用多個(gè)包含單顯示頁(yè)面的用戶部件,通過JSP、JavaScript、HTML開發(fā)工具實(shí)現(xiàn)用戶交互界面。模型。MVC系統(tǒng)中的模型從概念上可以分為兩類系統(tǒng)的內(nèi)部狀態(tài)和改變系統(tǒng)狀態(tài)的動(dòng)作。模型是所有的業(yè)務(wù)邏輯代碼片段所在。業(yè)務(wù)處理對(duì)象封裝了具體的處理邏輯,調(diào)用業(yè)務(wù)邏輯模型,并且把響應(yīng)提交到合適的視圖組件以產(chǎn)生響應(yīng)。業(yè)務(wù)實(shí)體對(duì)象可以通過定義屬性描述客戶端表單數(shù)據(jù)。通過業(yè)務(wù)實(shí)體對(duì)象實(shí)
53、現(xiàn)了對(duì)視圖和模型之間交互的支持。實(shí)現(xiàn)時(shí)把做什么(業(yè)務(wù)處理)和如何做(業(yè)務(wù)實(shí)體)分離。這樣可以實(shí)現(xiàn)業(yè)務(wù)邏輯的重用。用控制器提供一個(gè)控制和處理請(qǐng)求的集中入口點(diǎn),它負(fù)責(zé)接收、截取并處理用戶請(qǐng)求;并將請(qǐng)求委托給分發(fā)者類,根據(jù)當(dāng)前狀態(tài)和業(yè)務(wù)操作的結(jié)果決定向客戶呈現(xiàn)的視圖。主要代碼如下:/ 目的,讓所有調(diào)用業(yè)務(wù)邏輯的請(qǐng)求,/ 首先經(jīng)過此Servlet (公司前臺(tái))/ 負(fù)責(zé)找到一個(gè)調(diào)用業(yè)務(wù)邏輯的類public class ActionServlet extends Servlet/ 保存了uri地址和某個(gè)Action之間的對(duì)應(yīng)關(guān)系private Properties uris = new Propertie
54、s();public void init() throws ServletException / 從外部文件中讀取uri地址和某個(gè)Action之間的對(duì)應(yīng)關(guān)系s.getResourceAsStream(/com/joust/conf/actions.txt);try uris.load(is); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();protected void service( ServletRequest request, ServletResponse response)thro
55、ws ServletException, IOException / 獲取請(qǐng)求的uri地址(請(qǐng)求路徑)String uri = request.getRequestURI();uri = uri.replaceAll(request.getContextPath(), );System.out.println(uri地址是: + uri);/ 根據(jù)路徑獲得一個(gè)Action類名 String className = uris.getProperty(uri);try if(className = null) / 這個(gè)地址沒有對(duì)應(yīng)的ActionSystem.out.println(這個(gè)地址沒有對(duì)應(yīng)
56、的Action);return;System.out.println(action類是:+ className);Action action = (Action)Class.forName(className).newInstance();/ view 這里是有action返回的視圖地址String view = action.execute(request, response);/可以在視圖地址前用一個(gè)前綴區(qū)分轉(zhuǎn)發(fā)和重定向if(view.startsWith(redirect:) response.sendRedirect( request.getContextPath() + view.r
57、eplaceAll(redirect:, ); else request.getRequestDispatcher(view).forward(request, response);catch(Exception e) e.printStackTrace();結(jié)束語(yǔ)當(dāng)今許多高校都非常關(guān)注無(wú)紙化網(wǎng)絡(luò)考試的開發(fā)與應(yīng)用,本文是通過考試方面進(jìn)行的嘗試,實(shí)踐證明,該方法是可行的;本人結(jié)合企業(yè)的開發(fā)技術(shù)及在校所學(xué)理論知識(shí)(軟件工程,操作系統(tǒng),數(shù)據(jù)結(jié)構(gòu)等學(xué)科),利用畢業(yè)設(shè)計(jì)的機(jī)會(huì),開發(fā)一套在線考試系統(tǒng),基本上實(shí)現(xiàn)了在線考試功能。由于時(shí)間倉(cāng)促,一些技術(shù)和設(shè)備所限,該系統(tǒng)存在一些不足之處,有待進(jìn)一步改進(jìn)和完善,
58、具體說來有:(1)對(duì)后臺(tái)數(shù)據(jù)庫(kù)中數(shù)據(jù)的日常維護(hù),包括自動(dòng)清理過時(shí)數(shù)據(jù)。(2)程序中錯(cuò)誤處理和輸入控制不夠全面,可能導(dǎo)致輸入無(wú)效引發(fā)錯(cuò)誤。(3)本系統(tǒng)只能完成選擇題類型的考試。缺少客觀題型。參考文獻(xiàn)1 孫衛(wèi)琴.Java2面向?qū)ο蟪绦蛟O(shè)計(jì)M.北京.電子工業(yè)出版社.2005.1:50-200.2薛惠麗,趙志燕.MP&filetitle=%e5%9f%ba%e4%ba%8eWeb%e7%9a%84%e5%9c%a8%e7%ba%bf%e8%80%83%e8%af%95%e7%b3%bb%e7%bb%9f%e6%8e%a2%e7%a9%b6 t _top 基于Web的在線考試系統(tǒng)探究J.me=CJFDB
59、ASEINFO&NaviLink=%e5%86%85%e8%92%99%e5%8f%a4%e7%a7%91%e6%8a%80%e4%b8%8e%e7%bb%8f%e6%b5%8e&Value=NMKJ t _blank 內(nèi)蒙古科技與經(jīng)濟(jì). HYPERLINK :/47/kns50/Navi/Bridge.aspx?DBCode=cjfd&LinkType=IssueLink&Field=BaseID*year*issue&TableName=CJFDYEARINFO&Value=NMKJ*2007*04&NaviLink=%e5%86%85%e8%92%99%e5%8f%a4%e7%a7%91
60、%e6%8a%80%e4%b8%8e%e7%bb%8f%e6%b5%8e t _blank 2007,(04). 3洪升彪.S%e6%a8%a1%e5%bc%8f%e8%80%83%e8%af%95%e7%b3%bb%e7%bb%9f%e4%b8%ad%e8%af%84%e5%88%86%e6%8a%80%e6%9c%af%e7%9a%84%e7%a0%94%e7%a9%b6%e4%b8%8e%e5%ae%9e%e7%8e%b0 t _top B/S模式考試系統(tǒng)中評(píng)分技術(shù)的研究與實(shí)現(xiàn)J.e=cjfd&LinkType=BaseLink&Field=BaseID&TableName=CJFDBA
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 茯苓皮提取物在肝臟疾病早期診斷中的應(yīng)用前景-洞察及研究
- 農(nóng)村電商發(fā)展態(tài)勢(shì)-洞察及研究
- 氣候變化對(duì)洞穴石筍形態(tài)的重構(gòu)作用-洞察及研究
- 高效評(píng)估工具開發(fā)-洞察及研究
- 流處理系統(tǒng)自適應(yīng)優(yōu)化-洞察及研究
- 可降解塑料在化妝品包裝中的研究-洞察及研究
- 化療與放療聯(lián)合方案優(yōu)化研究-洞察及研究
- 面向5G的QoS標(biāo)準(zhǔn)化-洞察及研究
- 培訓(xùn)班組織與管理制度
- 學(xué)校衛(wèi)生培訓(xùn)制度
- 2026年張家界航空工業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試必刷測(cè)試卷附答案
- 新版二年級(jí)道德與法治《我們都是中國(guó)人》教學(xué)設(shè)計(jì)(2課時(shí))
- XX企業(yè)核心優(yōu)勢(shì)與戰(zhàn)略發(fā)展
- 2025年中國(guó)低氘水行業(yè)市場(chǎng)全景分析及前景機(jī)遇研判報(bào)告
- 管道區(qū)段長(zhǎng)管理辦法
- 2025年江西公務(wù)員考試(財(cái)經(jīng)管理)測(cè)試題及答案
- CRT-YS4690消防控制室圖形顯示裝置使用說明書-營(yíng)口賽福德
- 植筋工程施工驗(yàn)收記錄表范例
- 2025至2030年中國(guó)冷凍食品行業(yè)市場(chǎng)調(diào)研及行業(yè)投資策略研究報(bào)告
- 壓空罐安全知識(shí)培訓(xùn)課件
- 2025年江蘇南京市建鄴區(qū)招聘第一批購(gòu)崗人員5人筆試模擬試題及答案詳解1套
評(píng)論
0/150
提交評(píng)論