版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于web的在線考試系統(tǒng)2008/05/02基于web的網(wǎng)上考試系統(tǒng)內(nèi)容目錄27271 緒論52開發(fā)方案62.1問題分析62.2 項目目的72.3 方案選擇82.4 開發(fā)框架技術(shù)153 需求分析183.1 任務(wù)概述183.2 功能需求概述193.2運(yùn)行環(huán)境234系統(tǒng)設(shè)計234.2 數(shù)據(jù)庫設(shè)計274.3 系統(tǒng)模塊部分設(shè)計325關(guān)鍵技術(shù)解決475.1系統(tǒng)架構(gòu)與數(shù)據(jù)庫的連接476結(jié)束語517參考文獻(xiàn)528【abstract】on-line examination system the aim is carry out examination of have no the paper tur
2、n a management, can carry on through internet net or bureau area net to some examinations of categories, convenient school square test the management of duty, also convenient the ex2008/02/02aminee is particularly suitable for examinee to distribute widely and not easily concentrated of long range e
3、ducation.i mainly develop the system-java of the backstage management's on-line examination management sub- system of system and it includes to try the management, on-line creation of a management, examinee to try book, control the constitution that the student examine and try an examination and
4、 approval etc. function.this thesis mainly introduced to manage the analysis, design of the sub- system and all processes of the development to java's on-line examination.make use of er diagram, procedure flow chart etc. to on-line manage the design process of sub- system to carry on expatiation
5、.the full text is totally divided into the design, key technique of the analysis, system of the development project, need to solve, conclusion five part.develop the main introduction in the project develops on-line examination system purpose, development project of choice and development frame of th
6、e assurance of technique;the need analysis introduced the total need of the on-line examination system and the function request of each mold of system piece;the system design introduced the design, system mold of the instruction thought, database of system design the design of the piece;the key tech
7、nique introduced at concrete carry out need some techniques for solve, such as development frame of integration technique, development frame with the database link and the backup and revivification of data.559后記55 摘要 在線考試系統(tǒng)旨在解放教師傳統(tǒng)教學(xué)中制作試卷時的困惑,對一些考生不集中的考試,比如一些認(rèn)證式的網(wǎng)上考試就比較適合這種在線考試的方式,不僅方便了制作試卷的流程,更重要的是
8、實(shí)現(xiàn)了無紙化,適應(yīng)可持續(xù)發(fā)展的戰(zhàn)略思想。我主要開發(fā)系統(tǒng)的后臺管理系統(tǒng)java在線考試管理子系統(tǒng),它包括試題管理、考生管理、在線制作試卷、控制學(xué)生考試的設(shè)置等功能。本論文主要介紹了對java在線考試管理子系統(tǒng)的分析、設(shè)計和開發(fā)的全部過程。全文共分為開發(fā)方案、需求分析、系統(tǒng)設(shè)計、關(guān)鍵技術(shù)解決,結(jié)論五部分。開發(fā)方案中主要介紹開發(fā)在線考試系統(tǒng)得目的、開發(fā)方案的選擇及開發(fā)框架的技術(shù)的確定;需求分析介紹了在線考試系統(tǒng)的總體需求及系統(tǒng)各模塊的功能需求;系統(tǒng)設(shè)計介紹了系統(tǒng)設(shè)計的指導(dǎo)思想、數(shù)據(jù)庫的設(shè)計、系統(tǒng)模塊的設(shè)計.關(guān)鍵詞 jsp; java; oracle 9i數(shù)據(jù)庫; b/s模式 目錄1 緒論 現(xiàn)階段,學(xué)
9、校與社會上的各種考試大都采用傳統(tǒng)的考試方式,在此方式下,組織一次考試至少要經(jīng)過五個步驟,即人工出卷,考生考試,人工閱卷,成績評估和試卷分析.顯然,隨著考試類型的不斷增加及考試要求的不斷提高,教師的工作量將會越來越大,并且其工作將是一件十分煩瑣和非常容易出錯的事情,可以說傳統(tǒng)的考試方式已經(jīng)不能適應(yīng)現(xiàn)代考試的需要.隨著計算機(jī)應(yīng)用的迅猛發(fā)展,網(wǎng)絡(luò)應(yīng)用不斷擴(kuò)大,如遠(yuǎn)程教育和虛擬大學(xué)的出現(xiàn)等等,且這些應(yīng)用正逐步深入到千家萬戶.人們迫切要求利用這些技術(shù)來進(jìn)行在線考試,以減輕教師的工作負(fù)擔(dān)及提高工作效率,與此同時也提高了考試的質(zhì)量,從而使考試更趨于公證! 這個方案在技術(shù)上來講我們是采用b/s模式,自動給每個
10、考生生成一份試卷,考生在線作答,考試結(jié)果數(shù)據(jù)通過網(wǎng)絡(luò)回收,系統(tǒng)自動進(jìn)行判分,生成考試成績和統(tǒng)計數(shù)據(jù)。“在線考試系統(tǒng)”是集合現(xiàn)代考試?yán)碚?、方法和現(xiàn)代信息技術(shù)手段的智能化網(wǎng)上考試系統(tǒng),為學(xué)生個性化學(xué)習(xí)提供“靈活、方便、科學(xué)、公平”的“個別化考試服務(wù)”,是終結(jié)性評價系統(tǒng)。學(xué)生可以隨時、隨地進(jìn)行課程結(jié)業(yè)考試。2 開發(fā)方案2.1問題分析傳統(tǒng)的學(xué)校教學(xué)中,進(jìn)行一場考試,要求老師刻試卷、印試卷、安排考試、監(jiān)考、收集試卷、評改試卷、講評試卷和分析試卷,這是一個繁雜的過程,需要大量人力、物力與時間的投入,已經(jīng)越來越不適應(yīng)學(xué)校信息化建設(shè)與現(xiàn)代教學(xué)的需要。尤其在遠(yuǎn)程網(wǎng)絡(luò)教學(xué)中,學(xué)生分布廣,不易統(tǒng)一集中安排考試,給校
11、方和學(xué)生帶來了眾多的不便。而在線考試系統(tǒng),正是信息化建設(shè)的產(chǎn)物,它是傳統(tǒng)考場的延伸。它可以利用互聯(lián)網(wǎng)絡(luò)和局域網(wǎng),隨時隨地的對學(xué)生進(jìn)行考試,加上數(shù)據(jù)庫技術(shù)的利用,大大簡化了傳統(tǒng)考試的過程,因此在線考試是電子化教學(xué)的不可缺少的輔助手段。在當(dāng)今信息時代,計算機(jī)技術(shù)與網(wǎng)絡(luò)技術(shù)越來越廣地應(yīng)用于各個領(lǐng)域,改變著人們的學(xué)習(xí)、工作、生活乃至思維方式,也引起了教育領(lǐng)域的重大變革。將計算機(jī)與網(wǎng)絡(luò)技術(shù)應(yīng)用于現(xiàn)代高等教育中,是現(xiàn)代高等教育發(fā)展的需要,也是改革教育模式,提高學(xué)校教學(xué)效果和教學(xué)效率、提高科研和管理水平的必要手段。2.2 項目目的在線考試系統(tǒng)的總體目標(biāo):1 在線考試系統(tǒng)可以幫助教師完成一個考試從題目設(shè)計,考
12、試安排,考試實(shí)施,考卷批改到分?jǐn)?shù)統(tǒng)計總結(jié)的所有工作。2所有的考試數(shù)據(jù)和其它數(shù)據(jù)庫需要一種主流的方式進(jìn)行存儲和管理,例如使用數(shù)據(jù)庫技術(shù)。3對考試的系統(tǒng)目標(biāo):這個軟件是分布式的,這意味著只要有考試客戶端可以連接到考試應(yīng)用服務(wù)器,任何考生在任何地方進(jìn)行身份確認(rèn),都能完成考試。題目最好有一定的穩(wěn)定性和隨機(jī)性。穩(wěn)定性可以保證每一次考試對每一個考生是公平的,隨機(jī)性可以避免作弊的發(fā)生。2.3 方案選擇1、 開發(fā)在線考試系統(tǒng),提出以下解決方案:選擇oracle 9i作為后臺的數(shù)據(jù)庫,選擇java、jsp、javascript、html作為應(yīng)用程序開發(fā)工具,運(yùn)用tomcat服務(wù)器技術(shù),整個系統(tǒng)完全基于b/s (
13、browser/server)模式進(jìn)行設(shè)計。2、 java簡介 java是sun公司推出的新的一代面向?qū)ο蟪绦蛟O(shè)計語言,特別適合于internet應(yīng)用程序開發(fā)。java的產(chǎn)生與流行是當(dāng)今internet發(fā)展的客觀要求,java是一門各方面性能都很好的編程語言,它的基本特點(diǎn)是簡單、面向?qū)ο?、分布式、解釋的、健壯的、安全的、結(jié)構(gòu)中立的、可移植的、性能很優(yōu)異的、多線程的、動態(tài)的,特別適合在internet環(huán)境上開發(fā)的應(yīng)用系統(tǒng)。3、 web應(yīng)用程序開發(fā)環(huán)境jsp技術(shù)jsp的全稱是java server pages,它是sun推出的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。它在傳統(tǒng)的靜態(tài)頁面文件(*.html,*.htm)
14、中加入java程序片段和jsp標(biāo)記,就構(gòu)成了jsp頁面。jsp具有以下的優(yōu)點(diǎn):a) 將業(yè)務(wù)層與表示層分離:使用jsp技術(shù),網(wǎng)絡(luò)開發(fā)人員可充分使用html來設(shè)計頁面顯示部分(如字體顏色等),并使用jsp指令或者java程序片段來生成網(wǎng)頁上的動態(tài)內(nèi)容;b) 能夠跨平臺:jsp支持絕大部分平臺,包括現(xiàn)在非常流行的linux系統(tǒng),應(yīng)用非常廣泛的apache服務(wù)器也提供了支持jsp的服務(wù);c) 組件的開發(fā)和使用很方便:如asp的組件是由c+,vb等語言開發(fā)的,并需要注冊才能使用;而jsp的組件是用java開發(fā)的,可以直接使用;d) 一次編寫,處處運(yùn)行:作為java開發(fā)平臺的一部分,jsp具有java的所
15、有優(yōu)點(diǎn),包括write once , run everywhere.4、 tomcat應(yīng)用服務(wù)器目前支持jsp的應(yīng)用服務(wù)器是較多的,tomcat是其中較為流行的一個web服務(wù)器,被javaworld雜志的編輯選為2001年度最具創(chuàng)新的java產(chǎn)品,可見其在業(yè)界的地位。 tomcat是一個免費(fèi)的開源的serlvet容器,在tomcat中,應(yīng)用程序的部署很簡單,你只需將你的war放到tomcat的webapp目錄下,tomcat會自動檢測到這個文件,并將其解壓。你在瀏覽器中訪問這個應(yīng)用的jsp時,通常第一次會很慢,因為tomcat要將jsp轉(zhuǎn)化為servlet文件,然后編譯。編譯以后,訪問將會很快
16、。tomcat也具有傳統(tǒng)的web服務(wù)器的功能:處理html頁面。但是與apache相比,它的處理靜態(tài)html的能力就不如apache。我們可以將tomcat和apache集成到一塊,讓apache處理靜態(tài)html,而tomcat處理jsp和servlet。tomcat是一個很好的工具,不僅僅因為其免費(fèi),功能強(qiáng)大,更因為其開放性,越來越受到人們的重視。5、 oracle 9i 數(shù)據(jù)庫服務(wù)器是解決信息管理的主要工具。一般情況下,服務(wù)器必須在多用戶環(huán)境中管理大量的數(shù)據(jù),使得多個用戶能夠并行訪問數(shù)據(jù)。所有這些必須能夠在高性能的情況下完成,數(shù)據(jù)庫服務(wù)器必須防止未經(jīng)授權(quán)的非法訪問,保護(hù)敏感數(shù)據(jù),同時,為故
17、障恢復(fù)提供解決方案。為此,oracle服務(wù)器提供了以下特性:l 客戶服務(wù)器環(huán)境l 大型數(shù)據(jù)庫和空間管理l 多個并行數(shù)據(jù)庫用戶l 連接性l 高事務(wù)處理能力l 控制安全性l 開放的、基于工業(yè)標(biāo)準(zhǔn)l 管理安全性l 數(shù)據(jù)庫完整性增強(qiáng)l 兼容性l 分布式系統(tǒng)l 復(fù)制環(huán)境 6、 b/s 開發(fā)模式伴隨著internet的迅速發(fā)展,計算機(jī)技術(shù)正在由基于c/s(client/ server)模式的應(yīng)用系統(tǒng)轉(zhuǎn)變?yōu)榛赽/s模式的應(yīng)用系統(tǒng)。過去,網(wǎng)絡(luò)軟件的開發(fā)都采用c/s(client)模式,在這種模式下,主要的業(yè)務(wù)邏輯都集中于客戶端程序,因此,必然導(dǎo)致以下問題:a) 系統(tǒng)安裝、調(diào)試、維護(hù)和升級困難。由于客戶端的硬
18、件配置可能存在差異,軟件環(huán)能各不相同,因此,在安裝時,必須對每一個客戶端分別進(jìn)行配置,同樣,在軟件升級時也要對客戶端分別處理。b) 在整個系統(tǒng)中,業(yè)務(wù)邏輯和用戶界面都集中到了客戶端,必然會增加安全隱患。b/s模式帶來了巨大的好處:a) 開發(fā)成本及維護(hù)成本降低。由于b/s架構(gòu)管理軟件只安裝在服務(wù)器端(server)上,即應(yīng)用程序在部署、升級、維護(hù)時,只需要在服務(wù)器端進(jìn)行配置就可以了,網(wǎng)絡(luò)管理人員只需要管理服務(wù)器就行了,用戶界面主要事務(wù)邏輯在服務(wù)器(server)端完全通過www瀏覽器實(shí)現(xiàn),極少部分事務(wù)邏輯在前端(browser)實(shí)現(xiàn),所有的客戶端只有瀏覽器,網(wǎng)絡(luò)管理人員只需要做硬件維護(hù)。b) 良
19、好的安全性能,防火墻技術(shù)可以保證后臺數(shù)據(jù)庫的安全性。所有的配置工作都集中在服務(wù)器端且所有客戶端請求都是通過dbms來訪問數(shù)據(jù)庫,從而大大減少了數(shù)據(jù)直接暴露的風(fēng)險。2.4 開發(fā)框架技術(shù)對于框架技術(shù),我們采用struts+hibernate的整合,其實(shí)任何一種框架都可以完成我們的項目,但我們選擇兩種框架的組合是因為兩種框架各有好處,我們利用它們的優(yōu)點(diǎn),來避免它們的缺點(diǎn),充分利用java技術(shù)在web的應(yīng)用。l struts是應(yīng)用比較廣泛的一種表現(xiàn)層框架struts是一個為開發(fā)基于模型(model)視圖(view)控制器(controller)(mvc)模式的應(yīng)用架構(gòu)的開源框架,是利用servlet,
20、jsp和struts標(biāo)簽庫構(gòu)建web應(yīng)用的一項非常有用的技術(shù)。由于struts能充分滿足應(yīng)用開發(fā)的需求,簡單易用,敏捷迅速。它使用服務(wù)層框架可以將javabeans從jsp/servlet中分離出來,而使用表現(xiàn)層框架則可以將jsp中剩余的javabeans完全分離,這部分javabeans主要負(fù)責(zé)顯示相關(guān)信息,一般是通過標(biāo)簽庫(taglib)實(shí)現(xiàn),不同框架有不同自己的標(biāo)簽庫,struts是應(yīng)用比較廣泛的一種表現(xiàn)層框架。l hibernate通過持久層的框架將數(shù)據(jù)庫存儲從服務(wù)層中分離出來它是o/r mapping的一種實(shí)現(xiàn)是目前在java界使用非常廣泛的o/r mapping的一種實(shí)現(xiàn),可以實(shí)現(xiàn)
21、關(guān)系型數(shù)據(jù)庫和對象之間的映射。用來開發(fā)數(shù)據(jù)庫系統(tǒng)非常方便,可以將數(shù)據(jù)庫和程序的設(shè)計融合在一起。表現(xiàn)層和服務(wù)層的分離是通過兩種框架達(dá)到目的的,剩余的就是持久層框架了,通過持久層的框架將數(shù)據(jù)庫存儲從服務(wù)層中分離出來就是其目的,持久層框架有兩種方向:直接自己編寫jdbc等sql語句(如ibatis);使用o/r mapping技術(shù)實(shí)現(xiàn)的hibernate和jdo技術(shù);當(dāng)然還有ejb中的實(shí)體bean技術(shù)。hibernate的工作原理是通過文件把值對象和數(shù)據(jù)庫表之間建立起一個映射關(guān)系,這樣,我們只需要通過操作這些值對象和hibernate提供的一 些基本類,就可以達(dá)到使用數(shù)據(jù)庫的目的。例如,使用hibe
22、rnate的查詢,可以直接返回包含某個值對象的列表(list),而不必向傳統(tǒng)的jdbc訪問方式一樣把結(jié)果集的數(shù)據(jù)逐個裝載到一個值對象中,為我們的編碼工作節(jié)省了大量的勞動。hibernate提供的hql是一種類sql語言,是提供對象化的數(shù)據(jù)庫查詢方式,但hql在功能和使用方式上都非常接近于標(biāo)準(zhǔn)的sql3 需求分析3.1 任務(wù)概述在線考試管理子系統(tǒng)主要實(shí)現(xiàn)題庫管理、教師管理、教學(xué)管理(包括班級管理和考生管理)、考試管理等功能,充分利用計算機(jī)科學(xué)與技術(shù)和web框架,改變傳統(tǒng)的考試操作方式,實(shí)現(xiàn)無紙化考試與自動化相結(jié)合的考試模式。3.2 功能需求概述(1) 系統(tǒng)需要解決的主要問題我主要開發(fā)
23、的是后臺管理子系統(tǒng)中的題庫管理,教師管理和管理員管理,在此系統(tǒng)中我們主要對后臺考試系統(tǒng)的進(jìn)行管理和設(shè)置。我們將子系統(tǒng)分為以下功能模塊:題庫管理:在管理員權(quán)限下,對預(yù)定的十六門科目可以進(jìn)行考題的增加和管理,管理主要包括按科目查詢試題和刪除試題。教師管理:分為添加教師,管理教師,管理教師主要包括按姓名查詢教師信息和教師的刪除和修改??荚嚬芾恚褐饕侨斯そM卷。由管理員設(shè)置考試科目及題目數(shù)量,該設(shè)置可以控制監(jiān)考老師的考試科目的試題范圍,只有管理員設(shè)置的科目監(jiān)考教師才能組織考生考試,否則監(jiān)考教師沒有出題權(quán)限,這樣可以避免試題泄露,保證了試卷的安全,也保證了考試的公正性和可靠性。教學(xué)管理:主要是對班級和考
24、生的增,刪,改,查。管理員管理:主要是管理員的自管理。系統(tǒng)管理:管理員安全退出。其中由我負(fù)責(zé)的題庫管理和教師管理的功能需求說明如下:3.2.1 功能需求說明在線考試系統(tǒng)部分功能分析1 題庫管理1.1 增加考題在addexam.jsp頁面添加一個考題,考題用作考生考試試題,當(dāng)添加成功后,跳轉(zhuǎn)回addexam.jsp,并發(fā)出消息通知用戶試題添加成功。詳細(xì)描述:1 需要判斷所添加題目是否已填寫完全(包括題目,選項,答案和科目) 2 判斷當(dāng)前session范圍內(nèi)是否存在一個包含選項內(nèi)容的非空字符串 3 將用戶錄入的試題封裝成一個moban類,按照不同科目存入對應(yīng)表中具體步驟:1 實(shí)現(xiàn)admindaoi
25、mpl.java中的addkaoti()方法 2 創(chuàng)建addoptaction 實(shí)現(xiàn)add()和addkaoti()兩個方法,其中add()是用于選項的追加,addkaoti()用于考題的封裝 3 創(chuàng)建addexam.jsp1.2 管理考題 在modifyexam.jsp頁面,用戶可以通過下拉菜單中的十六個科目選項中任意選擇一個,進(jìn)行考題的查詢,選中后會在下方以表格形式顯示所選考題的題號和題目名,也可以刪除所選中的試題具體步驟:1 實(shí)現(xiàn)用于分頁顯示的page.java 2 實(shí)現(xiàn)modifyexamaction.java 3 實(shí)現(xiàn)deleteexamaction和showexamaction 4
26、 實(shí)現(xiàn)adminserviceimpl.java中的delexam()方法,按題號刪除2 教師管理2.1 添加教師 在addexam.jsp頁面中添加教師,這里添加的教師包括了普通任課教師和監(jiān)考教師這里沒有區(qū)別對待詳細(xì)描述: 1 添加成功顯示成功信息,失敗顯示失敗信息 2 無論成功或是失敗都跳回到content1.jsp頁面進(jìn)行刷新具體步驟: 1 實(shí)現(xiàn)admindaoimpl.java中的updateteacher()方法,添加教師 2 實(shí)現(xiàn)adminserviceimpl.java中的updateteacher()方法 3 創(chuàng)建addteacher.jsp2.2 管理教師 在listteac
27、her.jsp頁面中,用戶可以通過教師姓名進(jìn)行查詢,查詢支持模糊查詢,也可進(jìn)行教師信息的修改。詳細(xì)描述: 1 需要判斷教師是否存在于數(shù)據(jù)庫中,如不存在則返回到查詢頁,如存在則把教師信息返回顯示具體步驟: 1 實(shí)現(xiàn)admindaoimpl.java中的selectteacherbyname(),delteacher()和selectteacher()方法 2 創(chuàng)建selectteacheraction和deleteteacheraction 3 創(chuàng)建listteacher.jsp 4 實(shí)現(xiàn)adminserviceimpl.java中的delteacher方法 5 創(chuàng)建showteacheract
28、ion用于教師信息顯示3 管理員管理3.1 管理員信息修改 在showadmin.jsp頁面中,可修改管理員的信息,管理員信息包括管理員姓名和密碼詳細(xì)描述: 從adminform中獲得修改后信息,進(jìn)行管理員信息的更新處理具體步驟: 1 實(shí)現(xiàn)admindaoimpl.java中的updateteacher()方法 2 實(shí)現(xiàn)adminsericeimpl.java中的updateteacher()方法 3 創(chuàng)建mdifyadminaction實(shí)現(xiàn)管理員信息的更新3.2運(yùn)行環(huán)境l 硬件需求: piii/256m/10g 及以上配置,要求為考試系統(tǒng)分配足夠的數(shù)據(jù)庫磁盤空間l 推薦配置: piv 2g/
29、512m/40gl 操作系統(tǒng)需求: sun solaris等linux操作系統(tǒng) ( 推薦 ) ,也可以使用 windows2000 等 win系列操作系統(tǒng)l 數(shù)據(jù)庫軟件需求: oracle 9i/10g ( 推薦 ) ,也可以使用 sql server 2000 或mysql數(shù)據(jù)庫l 中間件軟件需求:apache tomcat/5.0.28系列服務(wù)器4 系統(tǒng)設(shè)計4.1 系統(tǒng)結(jié)構(gòu)圖4.1.1 本系統(tǒng)分為學(xué)生前臺子系統(tǒng)、教師子系統(tǒng)、監(jiān)考教師子系統(tǒng)和管理員子系統(tǒng),整個系統(tǒng)的結(jié)構(gòu)圖如下:4.1.2 系統(tǒng)的用例圖如下:4.2 數(shù)據(jù)庫設(shè)計4.2.1 主要數(shù)據(jù)庫表的介紹 根據(jù)系統(tǒng)需要和考試需要,設(shè)立了如下數(shù)
30、據(jù)庫表:各種題庫表:我們只設(shè)置了一種類型的題,即選擇題,有十六個科目存儲在十六個表中,表結(jié)構(gòu)均一致:用于保存所添加題的題目,選項,答案和科目。學(xué)生表:用于保存學(xué)生的考號,姓名,所在班級,登錄密碼,上線狀態(tài)(1為在線),還有分?jǐn)?shù)。成績表:用于存儲學(xué)生的考試成績。4.2.2 主要數(shù)據(jù)庫表的結(jié)構(gòu)主要表結(jié)構(gòu)如下:物理名稱:examstate(考試狀態(tài)表) 字段名 字段類型 約束或索引 描述idnumberpk記錄流水號statenumber記錄考試狀態(tài)(1提交0未提交)物理名稱:state(記錄在線表) 字段名 字段類型 約束或索引 描述idnumberpk記錄流水號statenumber記錄登錄狀態(tài)
31、(1在線0離線)物理名稱:student(學(xué)生表)字段名 字段類型約束或索引描述idnumberpk記錄流水號kaohaovarchar2考號namevarchar2學(xué)生姓名banjivarchar2班級passwordvarchar2學(xué)生密碼statenumber考試狀態(tài)1-在線0下線scorenumber分?jǐn)?shù)物理名稱:teacher(教師表)字段名 字段類型約束或索引描述idnumberpk記錄流水號namevarchar2教師姓名passwordvarchar2教師密碼statenumber考試狀態(tài)1-在線0下線物理名稱:jteacher(監(jiān)考教師表)字段名 字段類型約束或索引描述idn
32、umberpk記錄流水號namevarchar2監(jiān)考教師姓名passwordvarchar2監(jiān)考教師密碼statenumber考試狀態(tài)1-在線0下線物理名稱:admin(管理員表)字段名 字段類型約束或索引描述idnumberpk記錄流水號namevarchar2管理員姓名passwordvarchar2管理員密碼statenumber考試狀態(tài)1-在線0下線物理名稱:chengji(成績表)字段名 字段類型約束或索引描述idnumberpk記錄流水號kaohaovarchar2考號namevarchar2學(xué)生姓名banjivarchar2班級kechengvarchar2課程maxscoren
33、umber總分scorenumber分?jǐn)?shù)物理名稱:banji(班級表)字段名 字段類型約束或索引描述idnumberpk記錄流水號namevarchar2班級名稱numnumber班級人數(shù)classvarchar2所在的教室名稱timevarchar2開課的時間題庫表物理名稱:nuix字段名 字段類型約束或索引描述idnumberpk記錄流水號questionvarchar2題目optvarchar2選項answervarchar2答案其它十五個題庫表結(jié)構(gòu)和上例一致,分別為java表,oracle表,xml表,jdbc表,hibernate表,servlet表,html表,jsp表,strut
34、s表,ajaxjsf表,ooaduml表,ejb表,spring表,webservice表,plsql表4.3 系統(tǒng)模塊部分設(shè)計4.3.1 用戶登錄:首先選擇登錄人身份:考生:對于管理員已添加的考生,可根據(jù)自己的考生號和密碼登錄,登錄界面如下:教師:對于管理員已添加的教師,可根據(jù)該教師的教師號和密碼登錄,登錄界面如下:監(jiān)考教師登陸界面: 監(jiān)考教師,可根據(jù)該教師的教師號和密碼登錄,登錄界面如下:管理員:管理員根據(jù)管理員號和密碼登錄,登錄界面如下:根據(jù)不同身份,登錄不同界面,添好登錄信息后點(diǎn)擊“登陸”按鈕;登錄信息都正確,登陸成功,進(jìn)入系統(tǒng)各個用戶界面;主要代碼:loginaction.javap
35、ublic actionforward execute(actionmapping mapping, actionform form,httpservletrequest request, httpservletresponse response) loginform loginform = (loginform) form;student student = null;adminservice adminiservie =(adminservice) beanfactory.getbean(beanfactory.fadminservice);studentdao studentdao =
36、(studentdao) beanfactory.getbean(beanfactory.fstudentdao);studentservice studentservice = (studentservice) beanfactory.getbean(beanfactory.fstudentservice);integer admin =integer.parseint(request.getparameter("ss");if(null!=admin&&admin.equals(3)return adminlogin(mapping,form,reque
37、st);if(null!=admin&&admin.equals(1)return teacherlogin(mapping,form,request);if(null!=admin&&admin.equals(2)return jteacherlogin(mapping,form,request);try student = studentservice.login(loginform.getloginname(); if(null = student) request.setattribute("message", "該考生不存
38、在!");throw new serviceexception(); if (!loginform.getloginpassword().equals(student.getpassword() request.setattribute("message", "密碼不正確!"); throw new serviceexception(); request.getsession().setattribute("student", student); examstate state = adminiservie.getexams
39、tate(); if(state.getstate()=0)return mapping.findforward("chengji"); student.setstate(1); student.setscore(0); studentservice.update(student); catch (serviceexception e) e.printstacktrace();return mapping.findforward("false");return mapping.findforward("true");private a
40、ctionforward jteacherlogin(actionmapping mapping, actionform form, httpservletrequest request) loginform loginform = (loginform) form;adminservice adminservice = (adminservice) beanfactory.getbean(beanfactory.fadminservice); admindao admindao = (admindao) beanfactory.getbean(beanfactory.fadmindao);t
41、ry teacher teacher = adminservice.loginteacher(loginform.getloginname(); if(null = teacher) request.setattribute("message", "這個監(jiān)考教師不存在!");throw new serviceexception(); if (!loginform.getloginpassword().equals(teacher.getpassword() request.setattribute("message", "密
42、碼不正確!"); throw new serviceexception();list list = admindao.selectbanji();request.getsession().setattribute("banjiall", list); request.getsession().setattribute("teacher", teacher); return mapping.findforward("jteacher"); catch (exception e) e.printstacktrace(); ret
43、urn mapping.findforward("false");private actionforward teacherlogin(actionmapping mapping, actionform form, httpservletrequest request) loginform loginform = (loginform) form;adminservice adminservice = (adminservice) beanfactory.getbean(beanfactory.fadminservice);try teacher teacher = adm
44、inservice.loginteacher(loginform.getloginname(); if(null = teacher) request.setattribute("message", "這個教師不存在!");throw new serviceexception(); if (!loginform.getloginpassword().equals(teacher.getpassword() request.setattribute("message", "密碼不正確!"); throw new se
45、rviceexception(); request.getsession().setattribute("teacher", teacher); return mapping.findforward("teacher"); catch (serviceexception e) e.printstacktrace(); return mapping.findforward("false");public actionforward adminlogin(actionmapping mapping, actionform form,htt
46、pservletrequest request)loginform loginform = (loginform) form;adminservice adminservice = (adminservice) beanfactory.getbean(beanfactory.fadminservice);try admin admin = adminservice.login(loginform.getloginname(); if(null = admin) request.setattribute("message", "這個管理員不存在!");th
47、row new serviceexception(); if (!loginform.getloginpassword().equals(admin.getpassword() request.setattribute("message", "密碼不正確!"); throw new serviceexception(); request.getsession().setattribute("admin", admin); return mapping.findforward("admin"); catch (ser
48、viceexception e) e.printstacktrace();return mapping.findforward("false");4.3.2 管理員用戶主界面:因為每個用戶被分配了不同的權(quán)限,在這里我們選用的擁有所有的權(quán)限的超級管理員,用戶主界面是用戶的管理界面。主界面如下所示: 點(diǎn)擊左測具體的模塊并進(jìn)行具體的操作;a 考試管理:該模塊包括“考試科目管理”和“考試詳情查看”兩個功能1 考試科目管理:該模塊可進(jìn)行考試科目的設(shè)置和考試試題的數(shù)量的設(shè)置,此項也限制了監(jiān)考教師的考試試題范圍。2 考試詳情查看:主要記錄了監(jiān)考教師的考試記錄,包括考試時間,考試班級以及考
49、試備注。b 管理員管理:該模塊只設(shè)置了“管理員信息修改”功能,實(shí)現(xiàn)了管理員的自管理功能。c 選擇“系統(tǒng)管理”,會彈出“安全退出”按鈕,單擊退出管理員界面。d 選擇“教學(xué)管理”,會彈出“添加班級”、“管理班級”、“添加考生”、“管理考生”四個子選項;1 添加班級:按班級名稱,人數(shù),所在教室,開班時間四個條件增加新班級2 管理班級:按班級名稱查詢,可刪除班級記錄3 添加考生:考號初始值是由管理員設(shè)定的,以后每添加成功一個考生,考號自動增一位。該功能是由oracle數(shù)據(jù)庫的序列號實(shí)現(xiàn)的4 管理考生:可以按照學(xué)生姓名或所在班級查詢學(xué)生的詳細(xì)信息,也可修改或刪除學(xué)生記錄。e 教師管理:選擇控制面板上的教
50、師管理,可彈出添加教師和管理教師兩個按鈕,其功能分別和學(xué)生管理中相應(yīng)按鈕功能類似。f 題庫管理:在控制面板上的題庫管理按鈕包含了增加考題和管理考題兩個選項;1 增加考題:本系統(tǒng)現(xiàn)在只設(shè)定了 unix java oracle xml jdbc hibernate servlet html jsp struts ajax jsf ooaduml ejb spring webservice plsql 這十七種題型,出題方式為先添加試題題目,然后添加該試題的選項,每錄入好一條選項點(diǎn)擊“添加下一個選項”按鈕,即表示添加成功一條選項,最后添加該試題答案,第一個選項答案為1,第二個選項的答案為2,依次類推
51、;當(dāng)錄入一道試題完畢后,選擇試題科目,點(diǎn)擊“出題完畢”按鈕,結(jié)束試題的添加。2 管理考題:可按照試題類型查詢,也可進(jìn)行試題的刪除操作。刪除界面如下:5 關(guān)鍵技術(shù)解決5.1系統(tǒng)架構(gòu)與數(shù)據(jù)庫的連接對于數(shù)據(jù)庫的連接,我們的數(shù)據(jù)訪問接口采用jdbc-odbc橋數(shù)據(jù)驅(qū)動程序,以純java的方式來連接數(shù)據(jù)庫,為訪問不同的數(shù)據(jù)庫提供統(tǒng)一的接口。jdbc數(shù)據(jù)庫驅(qū)動程序是把jdbc調(diào)用翻譯成廠商專用api的調(diào)用。開放數(shù)據(jù)連接(odbc)最初是為微軟操作系統(tǒng)上的sql提供api標(biāo)準(zhǔn),后來也在其他的平臺上提供了支持。odbc為直接訪問數(shù)據(jù)定義了一組函數(shù),而不是在客戶應(yīng)用程序中嵌入sql。jdbc-odbc橋在jdb
52、c api 和odbc api 之間提供了一個橋梁,這個橋把標(biāo)準(zhǔn)的jdbc調(diào)用翻譯成對應(yīng)的odbc調(diào)用,然后通過odbc api把它們發(fā)送到odbc數(shù)據(jù)源。在選擇了數(shù)據(jù)訪問接口后,開始利用這個原理進(jìn)行具體的連接了。由于我們開發(fā)時是利用mvc的設(shè)計模式,所以在此我們的數(shù)據(jù)庫連接是封存在m中的,即只要我們和m層連接上,就已經(jīng)連接上數(shù)據(jù)庫了。在m上我們采用hibernate框架技術(shù),以下是一個非常簡要的hibernate體系結(jié)構(gòu)的概要圖:從這個圖可以看出,hibernate使用數(shù)據(jù)庫和配置信息來為應(yīng)用程序提供持久化服務(wù)(以及持久的對象)。我們只需在hibernate.cfg.xml中配置以下語句即可
53、:<hibernate-configuration><session-factory><property name="show_sql">true</property><property name="connection.url">jdbc:oracle:thin:20:1521:briupdb</property><property name="connection.driver_class">oracle.jdbc.drive
54、r.oracledriver</property><property name="connection.username">jd0802</property><property name="connection.password">jd0802</property><property name="dialect">org.hibernate.dialect.oracle9dialect</property><mapping resource=&q
55、uot;com/briup/test/bean/exam/ajaxjsf.hbm.xml" /><mapping resource="com/briup/test/bean/exam/ejb.hbm.xml" /><mapping resource="com/briup/test/bean/exam/hibernate.hbm.xml" /><mapping resource="com/briup/test/bean/exam/html.hbm.xml" /><mapping
56、resource="com/briup/test/bean/exam/java.hbm.xml" /><mapping resource="com/briup/test/bean/exam/jdbc.hbm.xml" /><mapping resource="com/briup/test/bean/exam/jsp.hbm.xml" /><mapping resource="com/briup/test/bean/exam/ooaduml.hbm.xml" /><mapping resource="com/briup/test/bean/exam/or
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版保溫材料供貨合同模板
- 2024版權(quán)質(zhì)押合同具體條款及標(biāo)的說明
- 2024藝術(shù)品買賣合同標(biāo)的描述與交易程序
- 2024鋁合金汽車零部件鑄造工程承包合同范本3篇
- 2025年度綠色建筑項目節(jié)能材料采購合同3篇
- 二零二五版醫(yī)療機(jī)構(gòu)兼職護(hù)士聘用合同3篇
- 2025年度玻璃鋼儲罐租賃與運(yùn)營管理合同3篇
- 二零二五年生物科技研發(fā)人員勞動合同規(guī)范
- 蘇州大學(xué)應(yīng)用技術(shù)學(xué)院《學(xué)前兒童社會教育活動設(shè)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 四川托普信息技術(shù)職業(yè)學(xué)院《鋼琴1》2023-2024學(xué)年第一學(xué)期期末試卷
- GB/T 4354-2008優(yōu)質(zhì)碳素鋼熱軋盤條
- GB 29518-2013柴油發(fā)動機(jī)氮氧化物還原劑尿素水溶液(AUS 32)
- Skopos and Commission in Translational Action翻譯行為的目的與委托
- 《中國國家處方集》附錄
- 消防安全值班制度
- 智慧教育典型案例:依托智慧教學(xué) 優(yōu)化英語課堂
- 偉星管-云上裝飾
- 生活飲用水消毒劑和消毒設(shè)備衛(wèi)生安全評價規(guī)范(2019年版)
- 銷售黃金法則ABC三角溝通法則
- 施工現(xiàn)場重大危險源公示牌
- 養(yǎng)老院老年人誤食誤服防范措施及應(yīng)急預(yù)案
評論
0/150
提交評論