基于Java-Web的在線考試系統(tǒng)的設計與實現_第1頁
基于Java-Web的在線考試系統(tǒng)的設計與實現_第2頁
基于Java-Web的在線考試系統(tǒng)的設計與實現_第3頁
基于Java-Web的在線考試系統(tǒng)的設計與實現_第4頁
基于Java-Web的在線考試系統(tǒng)的設計與實現_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、在線考試題 目: Java Web應用開發(fā) 在線模擬考試系統(tǒng)的設計與實現 學 院: 軟件工程與服務外包學院 專 業(yè): 軟件技術 學生姓名: XXX 班級/學號 軟工XXXXXXXXX 指導老師/督導老師: XXX 摘 要隨著網絡技術的發(fā)展,遠程教育和網上考試成為網絡應用的一個重要方面。近幾年,在線考試特別是基于Web 的在線考試系統(tǒng)受到越來越多的人青睞。本次項目實訓的題目是在線模擬考試系統(tǒng)的設計與實現,系統(tǒng)采用瀏覽器/服務器模式開發(fā),包括登錄注冊、在線考試、試卷設置、試題管理、分數的統(tǒng)計以及成績查詢等功能。系統(tǒng)運行在Windows 操作系統(tǒng)上,以Tomcat作為Web服務器,使用SSH+JSP

2、技術和MySQL 數據庫實現。關鍵詞:在線考試;瀏覽器/服務器;JSP;MySQL;JDBC;目錄摘 要I第一章 項目概述11.1 開發(fā)背景11.2 開發(fā)意義11.3開發(fā)工具2第二章 系統(tǒng)分析62.1 現狀分析62.2 可行性分析62.3 設計目標72.4 功能要求82.5 系統(tǒng)開發(fā)環(huán)境配置9第三章 系統(tǒng)設計103.1數據庫設計103.2系統(tǒng)結構設計133.3用戶界面設計14第四章 系統(tǒng)實現174.1 數據庫連接的實現方法174.2 登陸注冊模塊184.3考生模塊214.4 教師模塊264.5 管理員模塊34第五章 系統(tǒng)測試365.1什么是軟件測試365.2軟件測試的目標與方法365.3測試內

3、容365.4系統(tǒng)的不足和展望37結束語38參考文獻39第一章 項目概述1.1 開發(fā)背景隨著我國計算機技術和通訊技術的發(fā)展,互聯網的普及程度已經很廣泛了,但是,現在的教育教學檢驗方式,還是停留在過去的紙質考試層面在,而傳統(tǒng)的教育教學檢驗方式中,要進行一次考試,至少需要經過教師出題、學生考試、教師閱卷等幾步,這是一個繁雜的過程,需要大量人力、物力與時間的投入,同時也讓教師的工作量越來越大;現在遠程教育類學校的增多,雖然利用了網絡拉近了教師與學生的距離,但學生的分布過廣,導致了不易統(tǒng)一集中安排考試,考生成本的增加等諸多難題的出現,給校方和學生帶來了很多的不便,因此,傳統(tǒng)的考試方式已經不能適應現在新興

4、的教育教學方式的考試需要了??梢越鉀Q這些諸多難題的一種方式,就是利用Internet無國界的特點,在互聯網上在線考試。在線考試系統(tǒng)可以減輕教師的工作負擔、提高工作效率,也減少了因考試而消耗不必要的人力和物力。在線考試的題目由計算機從題庫中隨機抽取,提高了考試的質量,考試的評判由計算機自動完成,這樣使考試更趨于公證、客觀。隨著社會的發(fā)展和我國互聯網的普及,我們的生活中的已經有很多方面都運用到了網絡,比如網上購物,網上交友等,甚至現在很多人看新聞都是通過網絡閱讀的,在閱讀新聞這個事件上,已經不僅僅局限于紙質化的報紙上了;而要把考試趨于無紙化的模式,需要在線模擬考試系統(tǒng)來完成,這個也是現在高等教育發(fā)

5、展的一個需求。在國內,試題庫系統(tǒng)理論與技術的研究在最近幾年取得了很大的進步。我國許多企業(yè)和高校都投入量大量的人力物力到各門課程的試題庫中,并取得了一定的成就?,F在的生活中已經有越來越多的等級考試運用了在線考試系統(tǒng),比如會計的電算化考試、計算機等級考試、銀行資格證考試等,這些已經充分說明,在線考試系統(tǒng)是今后我們的考試生涯中的一個發(fā)展趨勢。1.2 開發(fā)意義考試是教育中一個非常重要的環(huán)節(jié),但在以前的很長時間里,全球所有的國家都是以筆試的方式來檢查焦距教學成果的,隨著網絡的發(fā)展,互聯網已經普及的非常廣泛,隨著這些周圍環(huán)境的改變,人們開始去尋找新的方式來去達到更客觀,更方便快捷的去達到考試的目的。近些年

6、來,在國外,已經投入使用的考試系統(tǒng)有著名的TOEFL,GRE網上考試系統(tǒng),還有微軟、思科等大公司的國際認證考試等,這些考試系統(tǒng)在全球范圍內有眾多的使用者。網絡化考試系統(tǒng)對節(jié)約考試成本,實現遠距離的同步考試,提高考試效率,確??荚嚱Y果的公平、公正、科學、及時等具有重要的意義,不僅可以動態(tài)地管理考試信息,而且還提高了教學的靈活性,相信隨著技術的不斷發(fā)展和網絡覆蓋面的不斷擴大,在不斷完善該考試系統(tǒng)的同時也會在更大的范圍上應用。1.3開發(fā)工具本系統(tǒng)是基于Tomcat為服務器,SSH+JSP+MySQL數據庫技術實現的一個簡單的在線考試系統(tǒng). 1.3.1動態(tài)網頁開發(fā)技術JSP(Java Server P

7、age)JSP(Java Server Pages)是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態(tài)網頁技術標準。JSP技術有點類似ASP技術,它是在傳統(tǒng)的網頁HTML文件中插入Java程序段和JSP標記,從而形成JSP文件。 用JSP開發(fā)的Web應用是跨平臺的,即能在Linux下運行,也能在其他操作系統(tǒng)上運行。JSP技術使用Java編程語言編寫類XML的tags和scriptlets,來封裝產生動態(tài)網頁的處理邏輯。網頁還能通過tags和scriptlets訪問存在于服務端的資源的應用邏輯。JSP將網頁邏輯與網頁設計和顯示分離,支持可重用的基于組件的設計,使基于We

8、b的應用程序的開發(fā)變得迅速和容易。 Web服務器在遇到訪問JSP網頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數據庫、重新定向網頁等,以實現建立動態(tài)網頁所需要的功能。 JSP與Java servlet一樣,是在服務器端執(zhí)行的,通常返回該客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。 JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。Java servlet 是JSP的技術基礎,而且大型的Web應用程序的開發(fā)需要Java servlet和JSP配合才能完成。JSP具備了Java技術的簡單易用,完全

9、的面向對象,具有平臺無關性且安全可靠,主要面向因特網的所有特點。 1JSP技術的強勢 (1)一次編寫,到處運行。在這一點上Java比PHP更出色,除了系統(tǒng)之外,代碼不用做任何更改。(2)系統(tǒng)的多平臺支持?;旧峡梢栽谒衅脚_上的任意環(huán)境中開發(fā),在任意環(huán)境中進行系統(tǒng)部署,在任意環(huán)境中擴展。相比ASP/PHP的局限性是現而易見的。 (3)強大的可伸縮性。從只有一個小的Jar文件就可以運行servlet/JSP,到由多臺服務器進行集群和負載均衡,到多臺Application進行事務處理,消息處理,一臺服務器到無數臺服務器,Java顯示了一個巨大的生命力。 (4)多樣化和功能強大的開發(fā)工具支持。這一點

10、與ASP很像,Java已經有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費得到,并且其中許多已經可以順利的運行于多種平臺之下。 2 JSP技術的弱勢 (1) 與ASP一樣,Java的一些優(yōu)勢正是它致命的問題所在。正是由于為了跨平臺的功能,為了極度的伸縮能力,所以極大的增加了產品的復雜性。 (2) Java的運行速度是用class常駐內存來完成的,所以它在一些情況下所使用的內存比起用戶數量來說確實是“最低性能價格比”了。從另一方面,它還需要硬盤空間來儲存一系列的.java文件和.class文件,以及對應的版本文件。1.3.2 數據庫MySQL MySQL是一個小型關系型數據庫管理系統(tǒng),開發(fā)者為瑞典M

11、ySQLAB公司,在2008年1月16號被Sun 公司收購。MySQL被廣泛地應用在Internet上的中小型網站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站數據庫。如雅虎、阿爾卡特朗訊、Google公司、諾基亞公司、百度等公司就采用了MySQL數據庫。MySQL數據庫可以稱得上是目前運行速度最快的SQL語言數據庫。除了具有許多其它數據庫所不具備的功能和選擇之外,MySQL數據庫是一種完全免費的產品,用戶可以直接從網上下載.MySQL數據庫主要有以下特點:1、可移植性使用C和C+編寫,并使用了多種編譯器進行測

12、試,保證源代碼的可移植性。2、可擴展性和靈活性MySQL可以支持UNIX、Linux和SUN OS以及Windows等多種操作系統(tǒng)平臺。在一個操作系統(tǒng)中實現的應用可以很方便地移植到其他操作系統(tǒng)。MySQL作為開源性質的 數據庫服務器,可以為那些想要增加獨特需求的用戶提供完全定制的功能。3、強大的數據保護功能MySQL有一個非常靈活且安全的權限和密碼系統(tǒng)。為確保只有獲授權用戶才能進入該數據庫服務器,所有的密碼傳輸均采用加密形式,同時也提供了 SSH和SSI。支持,以實現安全和可靠的連接。MySQL強大的數據加密和解密功能,可以保證敏感數據不受未經授權的訪問。4、支持大型的數據庫雖然對于用PHP編

13、寫的網頁來說,只要能夠存放數百條以上的記錄數據就是夠了,但MySQL可以方便地支持上千萬條記錄的數據庫。作為一個開放源代碼的數據庫,MySQL可以針對不同的應用進行相應的修改。5、超強的穩(wěn)定性MySQL擁有一個非常快速而且穩(wěn)定的基于線程的內存分配系統(tǒng),可以持續(xù)使用而不必擔心其穩(wěn)定性。線程是輕量級的進程,它可以靈活地為用戶提供服務,而不占用過多的系統(tǒng)資源。用多線程和C語言實現的MySQL能很容易地充分利用CPU。6、強大的查詢功能MySQL支持查詢的select和where語句的全部運算符和函數,并且可以在同一查詢中混用來自不同數據庫的表,從而使得查詢變得快捷、方便。1.3.3 Tomcat介紹

14、Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,是Apache 軟件基金會的Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些學校及個人共同開發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 規(guī)范。因為Tomcat 技術先進、性能穩(wěn)定,而且免費,因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認可,成為目前比較流行的Web 應用服務器。Tomcat 很受廣大程序員的喜歡,因為它運行時占用的系統(tǒng)資源小,擴展性好,支持負載平衡與

15、郵件服務等開發(fā)應用系統(tǒng)常用的功能;而且它還在不斷的改進和完善中,任何一個感興趣的程序員都可以更改它或在其中加入新的功能。Tomcat 是一個小型的輕量級應用服務器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調試JSP 程序的首選。對于一個初學者來說,可以這樣認為,當在一臺機器上配置好Apache 服務器,可利用它響應對HTML 頁面的訪問請求。實際上Tomcat 部分是Apache 服務器的擴展,但它是獨立運行的,所以當你運行tomcat 時,它實際上作為一個與Apache 獨立的進程單獨運行的。 自從JSP發(fā)布之后,推出了各式各樣的JSP引擎。Apache Group在完

16、成GNUJSP1.0的開發(fā)以后,開始考慮在SUN的JSWDK基礎上開發(fā)一個可以直接提供Web服務的JSP服務器,當然同時也支持Servlet, 這樣Tomcat就誕生了。 Tomcat是jakarta項目中的一個重要的子項目,其被JavaWorld雜志的編輯選為2001年度最具創(chuàng)新的java產品,同時它又是sun公司官方推薦的servlet和jsp容器,因此其越來越受到軟件公司和開發(fā)人員的喜愛。servlet和jsp的最新規(guī)范都可以在tomcat的新版本中得到實現。其次, Tomcat也是完全免費的軟件,任何人都可以從互聯網上自由地下載。第二章 系統(tǒng)分析2.1 現狀分析傳統(tǒng)的考試方式是教師提前

17、命題、印刷試卷、組織學生考試、學生在統(tǒng)一時間和地點考試、收卷后教師閱卷、成績統(tǒng)計。如圖2.1組織學生考試印刷試卷教師提前命題成績統(tǒng)計教師閱卷學生統(tǒng)一考試圖2.1 傳統(tǒng)考試模式這種模式存在有較多的問題:命題:由于是同意的時間進行考試,所以考生的試卷都是一樣的,這樣對教師命題帶來的很大的麻煩,即:試題太難或者太容易,都達不到考試的目的。如果是大型的考試,比如英語四級考試,還要擔心試題是否被泄漏的等問題(現在已經有類似問題的出現,才會有現在說的花卷)。印刷試卷:組織考試,印刷試卷費工費時,成本高,而且對于紙張資源也是一種浪費,而且印刷的時候,也會擔心試題被泄漏的問題。組織學生考試:監(jiān)考人資源的浪費,

18、和教師資源的匱乏,如何調配也是一個難題,如果是全國統(tǒng)一考試,還要涉及不同區(qū)域同時考試的問題。學生統(tǒng)一考試:由于是同一時間,同一地點,同一張試題,考生作弊問題便會出現,而且是非常難解決的問題,再加上每個監(jiān)考員監(jiān)考的嚴格程度不同,這些人為因素難控制,使考試難公平,公正。教師閱卷:教師閱卷比較容易出錯,會造成人為的不公正性。成績統(tǒng)計:當成績錄入時,數字的混亂會導致錄入者輸入錯誤或者看錯。2.2 可行性分析可行性分析也稱為可行性研究,即是在系統(tǒng)調查的基礎上,針對新系統(tǒng)的開發(fā)是否具備必要性和可能性,對新系統(tǒng)的開發(fā)從技術、經濟、管理的方面進行分析和研究,以避免投資失誤,保證新系統(tǒng)的開發(fā)成功。可行性研究的目

19、的就是用最小的代價在盡可能短的時間內確定問題是否能夠解決。該系統(tǒng)的可行性分析包括以下幾個方面的內容。2.2.1經濟可行性在線考試必然會在今后的教學管理上成為主要的考試形式。開發(fā)一套能滿足一般考試的需要,并實現試卷生成、評判自動化的在線考試系統(tǒng)。在減少由于人為原因導致試卷閱卷的不公正的同時,也可以讓教師的工作量得以減少,有更多的時間去備課教學。本系統(tǒng)如果用在一些輔助教育類的網站上,那經濟效果是很明顯的;如果是用在學校的教學管理上,會得以發(fā)揮其潛在的經濟效益,比如印刷試卷的費用等。因此,本系統(tǒng)在經濟上是可行的。2.2.2 技術可行性技術上的可行性分析主要分析技術條件是否能順利完成開發(fā)工作,硬、軟件

20、能否滿足開發(fā)者的需要等。硬件方面,硬件的更新速度之快,可靠性越來越高,目前一般的硬件平臺均能滿足次系統(tǒng)的需要。軟件方面,編程的軟件以及Web服務器等均已具備,并且環(huán)境變量已經搭好,數據庫用MySQL存儲大量的數據,MySQL開源化,目前已經很成熟,在靈活、安全和易用方面均能提供良好的支持。因此,系統(tǒng)的軟件開發(fā)平臺已經成熟可行。2.3 設計目標在線考試系統(tǒng)的總體目標:1. 本系統(tǒng)提供給管理員類用戶、教師類用戶及學生類用戶使用。不同的用戶類型所能完成的功能不同。管理員類用戶可以對于已經注冊的考生及系統(tǒng)中已經存在的教師進行刪除操作,對于未注冊過的考生及系統(tǒng)中未存在的教師進行添加操作;教師類用戶可以創(chuàng)

21、建試題、刪除試題、修改試題,也可進行試題維護、修改密碼以及對成績的統(tǒng)計;學生類用戶主要是參與考試,完成試卷,查詢成績。2. 考試數據的存放和處理過程必須保密,需要一定的安全性保障若考生需要查卷,經審核方可以。3. 題目的選擇具有穩(wěn)定性、隨機性。穩(wěn)定性就是每張試卷總體的難易程度要近似一樣,保證每一次考試對每一個考生是公平的,隨機性可以避免作弊的發(fā)生。4. 適時的試題題庫更新,試題題型包括判斷題、選擇題類型。試題庫的更新由管理員類用戶完成。學生類用戶不允許對試題進行更新。5. 實現現代考試網絡化。2.4 功能要求系統(tǒng)具備的基本功能:1.用戶登錄及注冊對用戶進行識別、驗證;沒有注冊的用戶跳轉到用戶注

22、冊頁面;2.考試模塊考生選擇自己想要參加的考試類別,并進行考試,考試完成以后可以獲得當考試成績。3.歷史成績模塊-考生可以看到自己以前參加的考試成績。以對自己的進步狀況進行一次把握。4.試題維護模塊-教師選擇試題的類別,然后針對該試題分類中的所有試題進行維護,可以添加新題目,也可以對現在有的題目進行修改或者刪除處理。5.試卷設置模塊-教師對題庫中的題目按照一定分類標準存放,包括分類的添加、修改和刪除操作等。6.歷史成績管理模塊-教師可以看到模式體分類的整體考試情況,考試成績分布情況,可以判斷出題庫中的題目難以水平,并可以在以后的維護中做出適當調整。7.考生管理-系統(tǒng)管理員可以對已經注冊的考生進

23、行刪除操作,對于未注冊的考生進行增加操作。8.教師管理-系統(tǒng)管理員可以對系統(tǒng)已經存在的教師進行刪除操作,對于未在系統(tǒng)中存在的教師進行增加操作。9.修改密碼模塊-教師和考生可以在已經登錄成功的頁面點擊修改密碼,可以修改本人登錄此考試系統(tǒng)的登錄密碼。除了實現上述功能以外,在線考試系統(tǒng)還應該具有簡潔、易用的界面,安全性要高,穩(wěn)定性要強。根據以上的需求分析,畫出本系統(tǒng)的Use Case圖,如圖2.2所示:管理員 教師管理考試考生管理考試登 錄教師注 冊試題維護考試考生在線考試考試試卷設置考試歷史成績績歷史成績管理修改密碼圖2.2 在線考試系統(tǒng)的Use Case圖2.5 系統(tǒng)開發(fā)環(huán)境配置1. 操作系統(tǒng):

24、Windows xp 2. 內存:4G3. CPU:2.00GHZ4. Java平臺:JDK 5.05. Web服務器:Tomcat6.06. 數據庫服務器:MySQL7. 開發(fā)平臺: MyEclipse6.0第三章 系統(tǒng)設計3.1數據庫設計在對網上考試系統(tǒng)數據庫部分進行設計的過程中,通過對系統(tǒng)功能進行需求分析得到系統(tǒng)的基本信息表,詳細設計過程如下介紹。3.1.1 數據庫需求分析需求分析是設計數據庫的起點,需求分析的結果是否準確地反映了用戶的實際要求,將直接影響到后面各個階段的設計,并影響到設計結果是否合理和實用。對于本系統(tǒng)而言,系統(tǒng)的角色分為管理員、教師、學生,這需要3個表,而考生考試,需要

25、一個存放題庫的表,考試的類別不同,也需要一個存放類別的表,考生考試完畢后,需要一個存放考試成績的表。綜合以上分析,要實現上面的所有功能模塊,數據庫共要設計六個表,它們分別是:試卷類別表、用戶表、用戶成績表、教師表、管理員表、題庫表。3.1.2 數據庫表設計用戶信息表,用來存放考生信息,如表3-1所示:表3-1用戶信息表字段名類型長度是否為主鍵可否為空說明user_idint11是否用戶的idusernamevarchar20否否登錄用戶名passwordvarchar20否否用戶登錄密碼realnamevarchar20否否用戶真實姓名教師信息表,存放教師信息,如表3-2所示:表3-2教師信息

26、表字段名類型長度是否為主鍵可否為空說明teacher_idint11是否教師的idteachernamevarchar20否否教師登錄名passwordvarchar20否否教師登錄密碼realnamevarchar20否否教師真實姓名管理員信息表,存放管理員信息,如表3-3所示:表3-3管理員信息表字段名類型長度是否為主鍵可否為空說明adusernamevarchar20是否管理員登錄名passwordvarchar20否否管理員登錄密碼realnamevarchar20否否管理員真實姓名題庫信息表,存放考試題目以及答案等信息,如表3-4所示:表3-4題庫信息表字段名類型長度是否為主鍵可否為

27、空說明question_idint10是否試題編號category_idint10否否試題分類編號subjectvarchar300否否題目choice_avarchar100否否選項Achoice_bvarchar100否否選項Bchoice_cvarchar100否否選項Cchoice_dvarchar100否否選項Danswerchar10否否正確答案成績表,存放考生考試時間以及成績等信息,如表3-5所示表3-5成績表字段名類型長度是否為主鍵可否為空說明record_idint10是否考試記錄編號usernamevarchar20否否考試用戶名category_idchar10否否試題分

28、類編號test_timechar14否否考試時間test_resultint11否否考試成績試卷類別表,存放試卷類別信息,包括試卷分類名稱、試卷題目等,如表3-6所示表3-6試卷類別表字段名類型長度是否為主鍵可否為空說明category_idint11是否試題分類編號category_namevarchar20否否試題分類名稱question_numberint10否否試題數目3.1.3數據庫邏輯結構設計1 關系圖本系統(tǒng)各表之間的關系如下圖3-1示: 圖3-1關系圖2完整性設計完整性要求用于描述各種信息之間的制約關系以及關聯關系,各個數據項的取值范圍以及各個數據項是否可以取值。根據實際需要,采

29、取一定的手段來滿足用戶的完整性需求。域完整性約束要求屬性值必須在域中。實體完整性約束要求主鍵必須唯一且不能為空。如用戶信息表中的用戶名設置為主鍵,并且要求唯一且不能為空。3.2系統(tǒng)結構設計網上考試系統(tǒng)是一個典型的數據庫應用程序,主要有管理員、教師和學生三大模塊組成,各模塊功能如下:管理員模塊:該模塊包含2個功能,一個為考生管理,系統(tǒng)管理員可以對已經注冊的考生進行刪除操作,對于未注冊的考生進行增加操作;另一個為教師管理,系統(tǒng)管理員可以對教師進行增加、刪除操作。教師模塊:該模塊包含4個功能,分別為試卷設置、試題維護、歷史成績、修改密碼。教師成功登錄該系統(tǒng)后,能夠進行修改個人信息,添加、修改、刪除試

30、題、試卷類別操作,也可對考生的成績進行統(tǒng)計。學生模塊:該模塊包含3個功能,分別為開始考試、歷史成績、修改密碼。學生成功登錄該系統(tǒng)后,能夠進行考試、查詢成績、修改密碼。系統(tǒng)功能結構如圖3-2所示: 系統(tǒng)功能教師模塊管理員模塊學生模塊開始考試修改密碼試題維護試卷設置歷史成績考生管理教師管理歷史成績修改密碼圖3-2系統(tǒng)功能結構圖3.3用戶界面設計頁面上部采用一個Logo圖片和適當的標識,表明當前的系統(tǒng)名稱。接下來是幫助連接和退出系統(tǒng)的連接。然后下部頁面的主題分為左右兩部分,左邊是導航模塊部分,其中放置遷移到不同功能模塊的鏈接按鈕,右邊是頁面的主要操作區(qū)域,不同頁面的不同顯示主要在此體現。學生角色的模

31、版頁面如圖3-3所示:在線考試系統(tǒng)Logo圖片。 幫助 退出登錄歡迎您!XXX開始考試歷史成績修改密碼圖3-3 學生角色模版每個模塊都包含多個頁面,再次挑選幾個比較低型或者重要的頁面進行詳細描述。其他的頁面結構比較類似或者比較簡單,不一一詳述。學生開始考試的時候,首先需要選擇試卷類型,或者也可以叫做試題分類。在此頁面中采用下拉列表框的形式進行,如圖3-4所示:在線考試系統(tǒng)Logo圖片。 幫助 退出登錄歡迎您!XXX請選擇試題的分類:確定會計基礎 開始考試歷史成績修改密碼圖3-4 試題分類選擇頁面草圖選擇試題分類以后,即是學生答題頁面。答題頁面的主體應該是試題和試題的選項??紤]到本系統(tǒng)需要在題目

32、結束以后立即知道考試結果,所以決定采用所有試題的形式都是ABCD型的選擇題,頁面應該針對這些題目選項設置單選按鈕。在答題內容的上方,應該能夠給考生信息,說明當前的題目是全部題目的第幾道,以及總共有幾道題,使得考生可以把握整個考試進度。同時考慮到考生在時間允許的情況下,需要在題目間前后遷移,所以在題目的下方,還應該有前后翻頁的按鈕。對應教師角色的模版略有不同,模塊多了幾個,而且頁面頂端的標識也有所區(qū)別。對應的模版頁面如圖3-5所示。在線考試系統(tǒng)(管理界面)Logo圖片。 幫助 退出登錄歡迎您!XXX試題維護試卷設置成績查詢修改密碼圖3-11 教師角色模版頁面圖3-5 管理員角色模版頁面第四章 系

33、統(tǒng)實現本系統(tǒng)包括3個不同的角色,即學生、教師、管理員。不同角色的功能有所不同,學生的功能包括:考試模塊,修改密碼,成績查詢模塊。教師的功能包括:試卷類別管理、試題管理、修改密碼、成績管理。管理員的功能包括:教師管理和考生管理。4.1 數據庫連接的實現方法從系統(tǒng)功能模塊劃分中可以看出,各模塊雖然是獨立的,但又統(tǒng)一于同一數據庫中,便于管理員管理維護數據庫,同時也便于教師和學生的操作。在介紹系統(tǒng)各模塊的實現方法之前,首先介紹系統(tǒng)與MySQL數據庫的連接方法,再介紹系統(tǒng)主要部分的實現方法。創(chuàng)建與數據庫的連接:首先要將mysql的驅動包放在tomcat/lib目錄下;:利用語句進行對數據庫的操作,以下僅

34、是對用戶表查詢的語句: catch(Exception e)/獲得數據庫連接出錯 System.out.println(error occured!);finally /釋放數據庫連接 rs.close(); stmt.close(); conn.close();%4.2 登陸注冊模塊4.2.1 登錄模塊用戶登錄頁面比較簡單,為防止用戶登錄的操作錯誤,應設置錯誤處理頁面,在登錄操作過程中,一般發(fā)生的錯誤有:用戶輸入了錯誤的用戶名或密碼、用戶直接單擊了登錄按鈕,對上述情況的判斷就要通過Servlet文件來實現。當用戶登錄的時候,輸入的帳號或者密碼有其中一項為空時,會有提示框提示,提示您帳號或者密

35、碼不能為空。實現這個功能的是用javascript實現的,具體代碼如下所示:驗證輸入不為空的腳本代碼 定義了一個名為checkForm的查詢表單函數function checkForm(form) 、如果value為空,會提示帳號不能為空if(form.teachername.value=) alert(賬號不能為空); 讓form表單中的teachername控件獲得焦點(光標),回到輸入框位置。form.teachername.focus();return false; if(form.password.value=) alert(密碼不能為空); form.password.focus(

36、); return false; return ture; 在登錄頁面時,當用戶提交了登錄資料后,就由“l(fā)oginvc.jsp”這個頁面進行驗證,它的工作主要是連接到數據庫,從數據中找出輸入的用戶名和密碼并判斷其是否一致。如果用戶輸入了錯誤的用戶名和密碼,就會跳出一個登錄失敗的頁面。用戶可以點擊返回按鈕回到其剛才登錄的界面,然后重新輸入用戶名及密碼進行再次登錄。若用戶提交正確的用戶和密碼后,如果記錄驗證無誤,就通過JSP重定向語句response.sendRedirect()跳轉到相應的主界面。教師以及管理員的登錄驗證跟考生相似,只是查詢條件和連接的數據庫表不同,以及登陸成功之后,跳轉的頁面不

37、同。4.2.2 考生注冊模塊在此模塊,考生需要填寫用戶名、密碼、確認密碼、真實姓名。如若填寫中缺少一項,那么會有提示,其功能也是由上面所說的一樣,通過調用javascript實現的,這里只提供下截圖,主要代碼如上,如圖4-1所示:圖4-1 注冊提示頁面當用戶填寫的內容完全符合注冊標準后,點擊注冊按鈕,會轉到注冊成功的頁面;如若用戶名已經被注冊,會轉到注冊失敗頁面,提醒注冊用戶可能是該用戶名已經注冊。在此只以注冊成功的頁面為例,如圖4-2所示:圖4-2 注冊成功頁面完成注冊模塊的主要代碼如下所示:首先獲取上個頁面?zhèn)鬟^來的數據,用戶名、密碼、真實姓名String username = reques

38、t.getParameter(username); String password = request.getParameter(password); String realname = request.getParameter(realname);out.println(username);/打印出username其次開始連接數據庫 try Class.forName( com.mysql.jdbc.Driver ).newInstance(); Connection conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/my

39、exam?user=root&password=&useUnicode=true&characterEncoding=gbk); Statement stmt=conn.createStatement(); ResultSet rs=null;查詢user表,看用戶名是否存在 String sql=select * from user where username like +username+; rs=stmt.executeQuery(sql); 如果存在,提示“ 您好,您注冊的用戶名已經存在,請重新輸入 ”,如果不存在,把接收過來的值付給新的變量: String s_username=r

40、equest.getParameter(username); String s_password=request.getParameter(password); String s_realname=request.getParameter(realname); 執(zhí)行SQL插入語句,把得到的值插入到user表中sql = insert into user(username,password,realname) value(+username+,+password+,+realname+);如果插入成功,提示:“恭喜您注冊成功!” 4.3考生模塊考生登錄系統(tǒng)并且用戶名也密碼正確后,會直接跳轉到學生

41、主頁,本頁面中,考生可以在左側選擇自己下一步要做的事情,有開始考試、歷史成績查詢、修改密碼。在頁面中間,有提示語,告訴考生每個按鈕都可以操作什么功能;若考生對考試流程不太熟悉,可以點擊幫助,來查詢相關問題的答案。如圖4-3所示:圖4-3考生主頁4.3.1 開始考試模塊考生點擊開始考試,會首先彈出關于所選考試科目的一些介紹,比如考試時間和總共有多少道題目等,然后點擊開始考試,倒計時開始,考生選擇上一題,下一題進行答卷,當考生答到最大題數時,下一題變成完成答卷按鈕。點擊完成答卷,進入成績頁面,考生可以知道自己的成績,并且,成績通過后臺,插入到數據庫中。如圖4-4所示:圖4-4 考生考試頁面執(zhí)行的具

42、體代碼如下所示:% HttpSession sess=(HttpSession)request.getSession(true); int category = (Integer)sess.getAttribute(category);String username = request.getParameter(username); MysqlDjtDao md = new MysqlDjtDao(); /引進包 int valid = md.selectTestRecordByuser(username,category);/去test_record表查詢有無考試記錄 valid=0;/控制

43、返回值,自己可以自由修改。 if( valid=0 ) Calendar cl = Calendar.getInstance();/java util 包 表提供的系統(tǒng)時間Calendar long starttime = cl.getTimeInMillis();/得到當前時間的毫秒數 long endtime = starttime+; sess.setMaxInactiveInterval(3600); /設置session的存活時間 sess.setAttribute(username,username); sess.setAttribute(endtime,endtime); Lis

44、t tmid = new ArrayList();/指定傳入的類型 建立一個集合 準備存放抽到的題目的ID號 tmid.add(0);/設置默認值0 sess.setAttribute(tmid,tmid); int fenshu =0; sess.setAttribute(fenshu,fenshu); List ddcount = new ArrayList(); sess.setAttribute(ddcount,ddcount); List allwts = new ArrayList();/建立問題question對應的實體類 來存放查到的題目信息 List listsId = md

45、.selectQInfoCount(category);/某個科有多少個問題 int qnum = md.selectQNum(category);/共需要幾個問題 sess.setAttribute(qnum,qnum); Random rand = new Random();/Java提供的得到數字的類 for( int a=0;a 4.3.2 歷史成績模塊考生點擊歷史成績,會先遷移到考試科目選擇頁面,當考生通過下拉列表,選中要查詢的科目,然后點擊確認,會從數據庫中提取出考生的成績,然后在表格中顯示。點擊左下角的返回按鈕,回到考試科目選擇頁面,繼續(xù)查詢其他科目成績,如圖4-5所示:圖4-5

46、 考生成績查詢頁面成績查詢頁面主要代碼如下所示:接收上個頁面?zhèn)鬟^來的值 String category = request.getParameter(category); String result = null; int count = 0; 開始連接數據庫 Class.forName( com.mysql.jdbc.Driver ).newInstance(); Connection conn=DriverManager.getConnection(jdbc:mysql:/localhost/Myexam?user=root&password=&useUnicode=true&characterEncoding=gbk); Statement stmt=conn.createStatement(); 數據庫結果集的數據表 ResultSet rs=null; ResultSet rr = null;執(zhí)行sql語句,查詢test_record表中是否有與接收的值相同項 String sqlcount = select count(*) from test_record where (category_id=+category+ and usern

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論