版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、PAGE39 / NUMPAGES42存檔日期: 存檔編號:本科生畢業(yè)設(shè)計(論文)論 文 題 目: 基于Java的在線考試系統(tǒng)Java-Based Online Examination System姓 名: 系 別: 專 業(yè): 年 級 、 學(xué) 號: 指 導(dǎo) 教 師: 大學(xué)印制基于Java的在線考試系統(tǒng)摘 要:為了幫助學(xué)生更好地掌握所學(xué)的知識。本人設(shè)計了一套在線考試系統(tǒng)。 本系統(tǒng)所設(shè)計的用戶有管理員教師,參加練習(xí)或考試的學(xué)生和對考試進(jìn)行打分的評分老師這三種身份。本系統(tǒng)可以根據(jù)管理員教師的意愿進(jìn)行科目,試題以與試卷的管理。本系統(tǒng)的開發(fā)模式為B/S模式。開發(fā)平臺為MyEclipse8.5,所用的數(shù)據(jù)
2、庫是MySQL數(shù)據(jù)庫,服務(wù)器是Tomcat6.0。所用到的主要開發(fā)語言是Java,HTMl,與JavaScript。本系統(tǒng)的主要特點(diǎn)是:操作容易,結(jié)構(gòu)簡單。學(xué)生利用本系統(tǒng),能夠更加與時的進(jìn)行練習(xí)和考試。教師利用本系統(tǒng)可免去統(tǒng)計成績,錄入考試分?jǐn)?shù)等繁瑣的工作提高了工作效率。關(guān)鍵詞:在線考試 B/S MyEclipse8.5 MySQL Tomcat6.0JavaJava-Based Online Examination SystemAbstract:In order to help students tobetter understand what they have learned. I de
3、signed a set of online examination system. This system is designed for users with three rolesinclude administrators; students who want to participate in exercises or join in examinations and the rating teachers. The system can edit the curriculums,tests and papers according to theadministrators wish
4、es. This system uses the B / S development model.And the development platform is MyEclipse8.5, the database is MySQL and the server uses Tomcat6.0. The main development language used by the Java, HTMl, and JavaScript.Easy to operate and simple structure are the main feature of this system Students c
5、an do exercises and exam more timely with this system.This system can improve the efficiency of teachers and they do not have to worry aboutstatistical results, entry test scores anymore.Keywords: Online exam B/S MyEclipse MySQL Tomcat6.0Java目 錄TOC o 1-2 h z u HYPERLINK l _Toc387408298 1 緒論1 HYPERLI
6、NK l _Toc387408299 1.1引言 PAGEREF _Toc387408299 h 1 HYPERLINK l _Toc387408300 1.2選題背景 PAGEREF _Toc387408300 h 1 HYPERLINK l _Toc387408301 1.3國外發(fā)展情況 PAGEREF _Toc387408301 h 1 HYPERLINK l _Toc387408302 1.4系統(tǒng)開發(fā)方法 PAGEREF _Toc387408302 h 2 HYPERLINK l _Toc387408303 2 系統(tǒng)開發(fā)相關(guān)技術(shù)與工具簡介 PAGEREF _Toc387408303 h
7、 3 HYPERLINK l _Toc387408304 2.1 JSP技術(shù)簡介 PAGEREF _Toc387408304 h 3 HYPERLINK l _Toc387408305 2.2 JSP工作原理 PAGEREF _Toc387408305 h 3 HYPERLINK l _Toc387408306 2.3 MySQL數(shù)據(jù)庫簡介 PAGEREF _Toc387408306 h 4 HYPERLINK l _Toc387408307 2.4 JDBC技術(shù)與系統(tǒng)數(shù)據(jù)庫的連接 PAGEREF _Toc387408307 h 4 HYPERLINK l _Toc387408308 2.5
8、Navicat for MySQL簡介 PAGEREF _Toc387408308 h 6 HYPERLINK l _Toc387408309 2.6 WEB服務(wù)器與超文本標(biāo)記語言 PAGEREF _Toc387408309 h 6 HYPERLINK l _Toc387408310 3 系統(tǒng)分析與其基本功能 PAGEREF _Toc387408310 h 7 HYPERLINK l _Toc387408311 3.1 可行性分析 PAGEREF _Toc387408311 h 7 HYPERLINK l _Toc387408312 3.2 系統(tǒng)需要解決的主要問題 PAGEREF _Toc38
9、7408312 h 7 HYPERLINK l _Toc387408313 3.3 系統(tǒng)基本功能 PAGEREF _Toc387408313 h 8 HYPERLINK l _Toc387408314 3.4 系統(tǒng)總體結(jié)構(gòu)設(shè)計 PAGEREF _Toc387408314 h 8 HYPERLINK l _Toc387408315 4 系統(tǒng)主要模塊詳細(xì)設(shè)計 PAGEREF _Toc387408315 h 10 HYPERLINK l _Toc387408316 4.1 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計 PAGEREF _Toc387408316 h 10 HYPERLINK l _Toc387408317 4.
10、2 系統(tǒng)登錄模塊的設(shè)計 PAGEREF _Toc387408317 h 11 HYPERLINK l _Toc387408318 4.3 管理員教師模塊的設(shè)計 PAGEREF _Toc387408318 h 13 HYPERLINK l _Toc387408319 4.4 考生模塊的設(shè)計 PAGEREF _Toc387408319 h 23 HYPERLINK l _Toc387408320 4.5 評分教師模塊的設(shè)計 PAGEREF _Toc387408320 h 27 HYPERLINK l _Toc387408321 5 系統(tǒng)功能測試 PAGEREF _Toc387408321 h 30
11、 HYPERLINK l _Toc387408322 6 總結(jié) PAGEREF _Toc387408322 h 33 HYPERLINK l _Toc387408323 致 PAGEREF _Toc387408323 h 34 HYPERLINK l _Toc387408324 參考文獻(xiàn) PAGEREF _Toc387408324 h 35 HYPERLINK l _Toc387408325 附錄1 本設(shè)計所包含的其他數(shù)據(jù)表 PAGEREF _Toc387408325 h 36 HYPERLINK l _Toc387408326 附錄2 本設(shè)計所提到的代碼 PAGEREF _Toc387408
12、326 h 381 緒論1.1引言考試在教學(xué)中是必不可少的,可以檢驗學(xué)生對知識的掌握程度和學(xué)習(xí)能力的高低。對學(xué)生來講,適當(dāng)?shù)臏y試壓力有助于鞏固所學(xué)的知識,訓(xùn)練基本技能,開發(fā)智力,發(fā)散思維,提升學(xué)生分析問題解決問題的能力。然而考試的形式有很多種除了我們傳統(tǒng)的紙質(zhì)習(xí)題外,我們也應(yīng)該順應(yīng)時代的發(fā)展開發(fā)出一種更加方便快捷和容易操作的系統(tǒng)在線考試系統(tǒng)。這個設(shè)計不僅學(xué)生和老師的學(xué)習(xí)和工作帶來了方便還能夠節(jié)省教學(xué)資源,節(jié)約了傳統(tǒng)考試所需紙的問題也能為環(huán)保事業(yè)做出一些貢獻(xiàn)。本設(shè)計需要對網(wǎng)絡(luò)編程和相關(guān)數(shù)據(jù)庫的技術(shù)有所了解。還需會使用一些相關(guān)的應(yīng)用軟件和開發(fā)工具。1.2選題背景新世紀(jì)的到來和科學(xué)技術(shù)的快速發(fā)展將我
13、們帶入了信息時代,在當(dāng)今這個高速發(fā)展的時代里計算機(jī)日趨成為我們生產(chǎn)生活中必不可少的工具。然而對于學(xué)生來說計算機(jī)技術(shù)的發(fā)展將給我們的學(xué)習(xí)方式和教育方法帶來翻天覆地的變化。因此計算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展對教學(xué)和考試的方式方法起到了導(dǎo)向性的作用。這些技術(shù)可以極大的推動教育的發(fā)展,創(chuàng)新教學(xué)模式推進(jìn)教學(xué)改革。為教育的升級創(chuàng)造必要的條件。本設(shè)計主要為了探索一種基于計算機(jī)網(wǎng)絡(luò)技術(shù)的教學(xué)模式。在本次設(shè)計中學(xué)生用戶可以突破紙質(zhì)學(xué)習(xí)資料的局限性使用計算機(jī)進(jìn)行在線測試與考試,能夠更加與時的鞏固新知識從而增強(qiáng)學(xué)習(xí)效果提高教學(xué)的質(zhì)量。1.3國外發(fā)展情況網(wǎng)絡(luò)技術(shù)的發(fā)展使得考試的形式發(fā)生了革命性的變化。因特網(wǎng)強(qiáng)大的計算能力與其開
14、放性,分布性的特點(diǎn)將考試的工作變的方便而有效率,解放了部分人力和物力。因此基于網(wǎng)絡(luò)的考試系統(tǒng)越來越受國外教育機(jī)構(gòu)的重視。在一些發(fā)達(dá)國家基于網(wǎng)絡(luò)的教育已進(jìn)入更加深入的階段。教育機(jī)構(gòu)將網(wǎng)絡(luò)技術(shù)與課程的巧妙結(jié)合使得網(wǎng)絡(luò)技術(shù)在教學(xué)中的作用更加明顯也讓學(xué)生們的學(xué)習(xí)變的輕松快樂。一些發(fā)達(dá)國家電腦已普與,遠(yuǎn)程教育的參加人數(shù)正日益遞增。在中國,網(wǎng)絡(luò)的教育剛剛興起,還在摸索著前進(jìn)。能夠?qū)⒂嬎銠C(jī)網(wǎng)絡(luò)技術(shù)與教學(xué)結(jié)合很好的教育機(jī)構(gòu)還比較少。我們平時在學(xué)校中接觸最多的是基于小型局域網(wǎng)的教學(xué)教室。相比于有一些發(fā)達(dá)國家我國在網(wǎng)絡(luò)教學(xué)方面相對落后,還處于較為初級的階段。1.4系統(tǒng)開發(fā)方法目前 C/S模式(客戶端/服務(wù)器模式)
15、和B/S模式(瀏覽器/服務(wù)器模式)是應(yīng)用軟件運(yùn)行的主要的模式。C/S模式的響應(yīng)速度快處理事務(wù)的能力強(qiáng)但兼容性差開發(fā)成本較高。而B/S模式是伴隨因特網(wǎng)迅速發(fā)展而興起的一種技術(shù),它的客戶端是一個標(biāo)準(zhǔn)的瀏覽器,服務(wù)器端方面是WebServer ,然而B/S模式能被廣泛應(yīng)用是因為WebSever與應(yīng)用服務(wù)器和數(shù)據(jù)庫的緊密結(jié)合。B/S模式的主要優(yōu)點(diǎn)就是方便擴(kuò)充應(yīng)用和升級維護(hù)。因此,本系統(tǒng)采用B/S模式進(jìn)行設(shè)計。本次設(shè)計結(jié)合當(dāng)前計算機(jī)的價格走勢,應(yīng)用JSP技術(shù),基于B/S模式開發(fā)了在線考試系統(tǒng)。它使用簡單、容易操作,界面友好,非常實(shí)用。雖然現(xiàn)階段還有許多不成熟的地方,但是已具有用戶管理、科目管理、試卷管理
16、、試題管理、在線考試等功能?;緦?shí)現(xiàn)了真正的無紙化習(xí)題練習(xí)與考試的作用。能夠滿足任何經(jīng)過授權(quán)的考生隨時隨地練習(xí)并迅速獲得成績。2 系統(tǒng)開發(fā)相關(guān)技術(shù)與工具簡介2.1 JSP技術(shù)簡介在互聯(lián)網(wǎng)普與和發(fā)展的最初階段,Web應(yīng)用全部是靜態(tài)的HTML頁面。這種靜態(tài)頁面不具有有用戶交互的能力和動態(tài)顯示功能。Rasmus Lerdorf在1994年發(fā)明了專門用于WEB服務(wù)器端編程的PHP語言。PHP語言將HTML和PHP指相結(jié)合成為完整的服務(wù)器端動態(tài)頁面,從而使開發(fā)者更加簡便快捷的方式實(shí)現(xiàn)動態(tài)交互技術(shù)。直到1996年,微軟公司參照PHP的思想開發(fā)出了ASP(Active Server Page,意為“動態(tài)服務(wù)
17、器頁面”)成為新一代WEB交互技術(shù)。當(dāng)ASP技術(shù)作為動態(tài)網(wǎng)絡(luò)開發(fā)技術(shù)快速成為Windows系統(tǒng)下的WEB服務(wù)端的主流開發(fā)技術(shù)時,由SUN公司帶領(lǐng)的Java團(tuán)隊1997年發(fā)布Servlet技術(shù);1998年,SUN公司發(fā)布JSP標(biāo)準(zhǔn)。JSP和ASP兩者都是動態(tài)WEB編程技術(shù),都可以嵌入HTML中,但是他們的運(yùn)行機(jī)制不同,這主要是因為ASP使用VBScript作為腳本語言,無需編譯;而JSP則使用Java作為腳本語言,JSP必須編譯成Servlet,才可以執(zhí)行JSP頁面。JSP和Servlet,JavaBean技術(shù)的組合,大大提高了編譯運(yùn)行的執(zhí)行效率,并逐漸發(fā)展成為J2EE平臺的核心技術(shù)之一。2.2
18、 JSP工作原理JSP頁面是由HTML代碼和嵌入其中的Java所組成的。當(dāng)頁面被客戶端請求訪問,則服務(wù)器就開始處理這些Java代碼然后將生成的HTML頁面返回給客戶端瀏覽器。JSP不僅具備了Java技術(shù)的方便快捷和完全面向?qū)ο蟮忍攸c(diǎn),而且具有平臺無關(guān)性和安全可靠性。JSP是服務(wù)器端技術(shù),在服務(wù)器端,JSP引擎解釋并執(zhí)行JSP頁面的代碼,然后將執(zhí)行結(jié)果以HTML或XML頁面的形式發(fā)送給客戶端,而在客戶端卻看不到JSP頁面本身的代碼,只能看到JSP頁面執(zhí)行后的輸出結(jié)果。2.3 MySQL數(shù)據(jù)庫簡介MySQL是一個多用戶、多線程的SQL數(shù)據(jù)庫服務(wù)器。SQL即結(jié)構(gòu)化查詢語言是當(dāng)今使用廣泛的和標(biāo)準(zhǔn)化的數(shù)
19、據(jù)庫語言。MySQL通過一個C/S結(jié)構(gòu)來實(shí)現(xiàn)并由一個服務(wù)器守護(hù)程序mysql與一些不同的客戶程序和庫組成。MySQL的開發(fā)者是來自瑞典的MySQLAB公司。如今互聯(lián)網(wǎng)上有很多中小型在使用MySQL數(shù)據(jù)庫。MySQL吸引開發(fā)者的原因有很多。第一, MySQL運(yùn)行速度很快。據(jù)開發(fā)者聲稱MySQL數(shù)據(jù)庫的運(yùn)算速度可能是在目前數(shù)據(jù)庫中最快的。第二,使用方便。MySQL性能很強(qiáng)大而又相對簡單,相比于其他更大系統(tǒng)的設(shè)置與管理,其復(fù)雜程度較低。第三,經(jīng)濟(jì)實(shí)惠。MySQL對于一般的部使用通常是免費(fèi)的。第四,支持查詢語言。MySQL 可以利用所有現(xiàn)代數(shù)據(jù)庫系統(tǒng)都選用的語言即SQL語言。也可以利用支持 ODBC(
20、開放式數(shù)據(jù)庫連接)的應(yīng)用程序。第五,功能強(qiáng)大。服務(wù)器可以被多個客戶與同時連接還能同時使用多個數(shù)據(jù)庫。第六,連接性和安全性較高。MySQL數(shù)據(jù)庫是完全網(wǎng)絡(luò)化的,它能在互聯(lián)網(wǎng)上的任何地方進(jìn)行訪問,可以同任意地方的任何人共享數(shù)據(jù)庫。而且 MySQL 還能進(jìn)行訪問控制,可以有選擇的規(guī)定訪問人員有效的保護(hù)隱私。第七,可移植性。MySQL 能夠在各種版本的UNIX和其他非UNIX的系統(tǒng)上運(yùn)行。2.4 JDBC技術(shù)與系統(tǒng)數(shù)據(jù)庫的連接JDBC(Java DataBase Connectivity)是Java數(shù)據(jù)庫連接技術(shù)的簡稱,是Java與一些數(shù)據(jù)庫之間連接的一種標(biāo)準(zhǔn),此種連接獨(dú)立于數(shù)據(jù)庫。一組Java類與接
21、口可以組成JDBC。JDBC是Java程序和數(shù)據(jù)庫系統(tǒng)通信的標(biāo)準(zhǔn)API,通過調(diào)用這些Java類和接口所提供的方法,能夠連接不同的數(shù)據(jù)庫,并且對數(shù)據(jù)庫進(jìn)行操作。使用JDBC一般可以完成一下事情。加載JDBC驅(qū)動程序;2,建立一個數(shù)據(jù)庫連接;3,向數(shù)據(jù)庫發(fā)送SQL語句;4,處理數(shù)據(jù)庫返回的結(jié)果;5,關(guān)閉相關(guān)。一般來講,使用JDBC開發(fā)數(shù)據(jù)庫應(yīng)用可以分為:裝載JDBC驅(qū)動程序,建立與數(shù)據(jù)庫的連接,執(zhí)行SQL語句,處理結(jié)果和關(guān)閉數(shù)據(jù)庫連接這幾步。下面進(jìn)行詳細(xì)介紹:對于數(shù)據(jù)庫操作首先要加載所需數(shù)據(jù)庫的驅(qū)動程序然而這些驅(qū)動程序的裝載操作是非常簡單的,只需要代碼即可完成即調(diào)用Class類中的靜態(tài)方法forN
22、ame()方法,其格式為:Class.forName(“DriverName”);其中,DriverName為要加載的數(shù)據(jù)庫名稱。如果該方法不能夠找出指定的驅(qū)動程序類名,則會彈出ClassNotFoundException異常,這就需要我們捕獲這個異常。如加載JDBC-MySQL數(shù)據(jù)庫驅(qū)動程序代碼如下:try Class.forName(“org.gjt.mm.mysql.Driver”);catch(ClassNotFoundException e) e.printStackTrace();裝載JDBC驅(qū)動程序類后可建立數(shù)據(jù)庫的連接。數(shù)據(jù)庫的連接方法可通過調(diào)用驅(qū)動程序管理器DriverMan
23、ager對象的getConnection()方法,返回Connection對象來完成數(shù)據(jù)庫的連接。1代碼如下所示:Connection conn=DriverManager.getConnection(url);其中,字符串url作為參數(shù),為JDBC的url,如果可以建立連接,就能返回一個Connection對象,該對象表示與數(shù)據(jù)庫的會話過程。 建立數(shù)據(jù)庫連接后,可以通過JDBC提供的Statement接口向數(shù)據(jù)庫傳送SQL語句并執(zhí)行。而Statement對象可以通過Connection接口中的createStatement()方法來創(chuàng)建,也可已使用Java.sql.PrepareStatem
24、ent接口來實(shí)現(xiàn)上述的功能,此接口的功能包含了Java.Sql.Statement接口,并且效率要比Statement接口高。因為PrepareStatement類的對象將會傳入的SQL命令事先編好并等待使用。因此使用PrepareStatement更好。創(chuàng)建Statement對象的代碼如下:Statement sql;sql=conn.createStatement();可以通過Statement對象來調(diào)用相應(yīng)的方法對數(shù)據(jù)庫完成增,刪,查,改等操作。通過SQL語句返回從數(shù)據(jù)庫中檢索到的符合條件的記錄,然后可以使用Statement接口executeQuery方法返回的結(jié)果集ResultSet
25、接口類型的對象來獲取并處理該結(jié)果。當(dāng)訪問完整數(shù)據(jù)庫后,應(yīng)關(guān)閉數(shù)據(jù)庫連接,并釋放與有關(guān)的資源,用戶創(chuàng)建的ResultSet或Statement對象將自動關(guān)閉,只需調(diào)用Connection接口的close()方法即可。例如關(guān)閉結(jié)果集對象,關(guān)閉語句對象,關(guān)閉連接的代碼如下:rs.close();stmt.close();conn.close();2.5 Navicat for MySQL簡介 Navicat for MySQL是MySQL數(shù)據(jù)庫的管理和開發(fā)工具它不僅為軟件開發(fā)者提供了很多尖端的工具,而且對于初學(xué)者學(xué)習(xí)還是很容易的。此軟件基于Window平臺并為MySQL量身訂做,提供類似于MySQL
26、的用戶管理工具。Navicat for MySQL的出現(xiàn)將節(jié)省程序員以與數(shù)據(jù)庫設(shè)計人員的開發(fā)時間和精力,降低了軟件開發(fā)的成本,大大提升軟件開發(fā)的效率。此軟件界面友好,實(shí)用性強(qiáng),上手容易。2.6 WEB服務(wù)器與超文本標(biāo)記語言在本次設(shè)計中,選擇使用的是Tomcat6.0服務(wù)器。Tomcat是一個實(shí)現(xiàn)JAVAEE標(biāo)準(zhǔn)的最小WEB服務(wù)器。Tomcat服務(wù)器是Apache組織開發(fā)的能夠從網(wǎng)絡(luò)上直接下載。超文本標(biāo)記語言(HTML)是一種簡單標(biāo)記語言用來制作超文本文檔,而HTML中的元素是HTML語言的基本部分。這些元素總是成對出現(xiàn)的,每一對元素一般都有一個開始的標(biāo)記(如),也有一個結(jié)束的標(biāo)記(如:)。元素
27、的標(biāo)記要用一對尖括號括起來,并且結(jié)束的標(biāo)記總是在開始的標(biāo)記前加上一個斜杠。13 系統(tǒng)分析與其基本功能3.1 可行性分析可行性分析主要是在系統(tǒng)調(diào)查的基礎(chǔ)上對要開發(fā)的系統(tǒng)進(jìn)行全面的評估。從開的技術(shù)、開發(fā)經(jīng)費(fèi)、系統(tǒng)的實(shí)用性等方面對新系統(tǒng)進(jìn)行分析和研究??疾煨孪到y(tǒng)的開發(fā)是否有意義和可能性,來避免投資失敗,并保證新系統(tǒng)的開發(fā)能夠成功??尚行匝芯康哪康木褪且员M可能小的代價和盡量短的時間來分析將要開發(fā)的項目會遇到困難并評估這些困難能否被克服。本設(shè)計的可行性分析包括如下方面:(1) 系統(tǒng)是否經(jīng)濟(jì):作者認(rèn)為本系統(tǒng)開發(fā)經(jīng)費(fèi)較小在經(jīng)濟(jì)上完全可以接受,而且本設(shè)計在投入使用以后可以節(jié)省一些人力物力,提高教學(xué)工作與學(xué)習(xí)的
28、效率。所以本設(shè)計在經(jīng)濟(jì)上是可行的。(2) 本系統(tǒng)技術(shù)上是否可行:本次設(shè)計使用的是B/S開發(fā)模式運(yùn)用JSP開發(fā)技術(shù)和 MySql數(shù)據(jù)庫。如今這些技術(shù)的發(fā)展已經(jīng)比較成熟因此能夠大大的增加本設(shè)計開發(fā)成功的幾率??梢哉f本次設(shè)計在技術(shù)上也是可行的。通過以上分析,本次設(shè)計已經(jīng)有了明確的開發(fā)目標(biāo)而且在技術(shù)和經(jīng)濟(jì)等方面都是切實(shí)可行的,投入少、見效快。因此在線考試系統(tǒng)完全可行。3.2 系統(tǒng)需要解決的主要問題首先,因為在線考試是面向特定的某些對象的,所以本次設(shè)計的用戶角色會分為管理員教師,考生,以與評分教師這三種。不同角色的使用權(quán)限也會有所不同。本設(shè)計需要解決管理員教師對人員,課程,題目還有試卷的管理問題;考生能
29、夠進(jìn)行自我測驗,在線考試并且查詢考試的成績;評分教師完成對考生提交過的試卷進(jìn)行評分等問題。3.3 系統(tǒng)基本功能一,管理員教師的功能:1,對管理員的管理:修改管理員的密碼,錄入新的管理員,刪除已存在的管理員。2,管理學(xué)習(xí)的課程:能夠決定在系統(tǒng)中應(yīng)用的課程。 3,管理所有題目:在相應(yīng)的課程下添加或刪除題目。 4,出試卷:決定試卷中包含的試題,以與考試時間。 5,管理學(xué)生:錄入能使用本系統(tǒng)的學(xué)生和刪除過了期限的學(xué)生。 6,管理評分教師:錄入有資格打分的教師,刪除離職教師。 7,查看所有考試成績:對本系統(tǒng)的所有考試成績一覽。二,考生的功能:1,單選題的自我檢測:考生進(jìn)行自測并快速得到答案。2,在線考試
30、:參與在線考試。3,查看考試成績:作答并交卷后查看老師給的評分。三,評分老師的功能:主要對已成功上交的試卷打分。除了實(shí)現(xiàn)上述功能以外,本設(shè)計還具有清爽、簡潔的界面和穩(wěn)定性強(qiáng)的特點(diǎn)。3.4 系統(tǒng)總體結(jié)構(gòu)設(shè)計本設(shè)計是專門對于已授權(quán)的用戶使用本系統(tǒng)進(jìn)行在線考試的應(yīng)用WEB程序具有開放性、便捷性和可變通性的特點(diǎn)。管理員教師可根據(jù)教學(xué)需要向添加課程修改和刪除題庫中的試題??忌鷤円部捎兄刃虻倪M(jìn)行考試和自我練習(xí)。為了使本系統(tǒng)運(yùn)行的效率更加可靠,更有保障系統(tǒng)的服務(wù)器端要具備較高的軟硬件配置,在客戶端對配置的要求可以降低。本設(shè)計不僅可以在部的局域網(wǎng)上流暢運(yùn)行,也廣泛適用因特網(wǎng)。在線考試系統(tǒng)各模塊的結(jié)構(gòu)圖如下:圖
31、3.1 管理員系統(tǒng)結(jié)構(gòu)圖圖3.2 考生系統(tǒng)結(jié)構(gòu)圖評分老師只有對已作答且成功提交的試卷評分的功能。4 系統(tǒng)主要模塊詳細(xì)設(shè)計分以下幾個部分進(jìn)行詳細(xì)設(shè)計。4.1 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計 本系統(tǒng)采用的是MySql數(shù)據(jù)庫,數(shù)據(jù)庫的名稱為db_exam,數(shù)據(jù)表的設(shè)計由Navicate for MySQL來完成。用戶信息表格如下:表4.1 t_admin管理員老師信息表ID字段名稱字段類型字段長度主鍵 備注1userIdInt12主鍵2userNamevarchar50用戶名3userPwvarchar50密碼表4.2 t_stu學(xué)生信息表ID字段名稱字段類型字段長度主鍵備注1stu_idint12主鍵2stu_
32、xuehaovarchar49學(xué)生編號3stu_realnamevarchar49真實(shí)4stu_sexvarchar49性別5stu_agevarchar49年齡6login_namevarchar49登錄名7login_pwvarchar49登錄密碼8delvarchar49是否被刪除表4.3 t_tea評分教師信息表ID字段名稱字段類型字段長度主鍵 備注1tea_idint12主鍵2tea_bianhaovarchar49教師編號3tea_realnamevarchar49真實(shí)4tea_sexvarchar49性別5tea_agevarchar49年齡6login_namevarchar4
33、9登錄名7login_pwvarchar49登錄密碼8delvarchar49是否被刪除本設(shè)計還包括考試分?jǐn)?shù)表,交卷情況表,錄入課程表,考試試題表以與所有試題表,在這里不一一列出,詳情見附錄1。4.2 系統(tǒng)登錄模塊的設(shè)計登錄模塊界面展示如圖4.1 圖4.1 登陸界面用戶可在此模塊輸入自己的登錄名和密碼,系統(tǒng)會驗證用戶所輸入的登錄名與密碼,如果輸入的登錄名或密碼有誤或漏填,系統(tǒng)將提示用戶輸入的登陸名或密碼不正確。除此之外還有角色的選擇:管理員教師、評分老師、學(xué)生。如果選擇的角色與登錄名不符則系統(tǒng)報錯登錄失敗需要重新登陸。用戶登錄的流程圖如圖4.2所示圖4.2 用戶登錄系統(tǒng)流程圖 登錄模塊部分核心
34、代碼如下:/用戶名,密碼,登錄身份的驗證function check1() if(document.ThisForm.userName.value=) alert(請輸入用戶名);document.ThisForm.userName.focus();returnfalse; if(document.ThisForm.userPw.value=) alert(請輸入密碼);document.ThisForm.userPw.focus();returnfalse; if(document.ThisForm.userType.value=-1) alert(請選擇登陸身份);returnfalse;
35、 document.getElementById(indicator).style.display=block; loginService.login(document.ThisForm.userName.value,document.ThisForm.userPw.value,document.ThisForm.userType.value,callback); /報錯function callback(data) document.getElementById(indicator).style.display=none;if(data=no) alert(用戶名或密碼錯誤); if(dat
36、a=yes) alert(通過驗證,系統(tǒng)登錄成功); window.location.href=/loginSuccess.jsp; 4.3 管理員教師模塊的設(shè)計管理員教師模塊界面展示如圖4.3圖4.3 管理員教師模塊界面在此模塊中用戶可以以管理員教師的身份使用此系統(tǒng)。用戶能夠查看系統(tǒng)的基本信息,可以修改管理員教師的密碼也可以添加或刪除管理員教師和評分教師以與考生。在課程方面可以添加需要的課程或刪除已淘汰的課程。試題方面可以在題庫中添加和刪除試題。管理員教師可根據(jù)實(shí)際需要需要考試的課程添加創(chuàng)建試卷,在題庫中選擇需要的試題出試卷還可以在評分老師打分后查看考生的考試成績。部分核心代碼如下:1.界面
37、跳轉(zhuǎn)判斷:if(userType=0)String sql=from TAdmin where userName=? and userPw=?;Object con=userName,userPw;List adminList=adminDAO.getHibernateTemplate().find(sql,con);if(adminList.size()=0) result=no;else WebContext ctx = WebContextFactory.get(); Session session=ctx.getSession(); TAdmin admin=(TAdmin)admin
38、List.get(0); session.setAttribute(userType, 0); session.setAttribute(admin, admin); result=yes;2.系統(tǒng)基本信息顯示:操作系統(tǒng)版本:操作系統(tǒng)類型:用戶,目錄,臨時目錄:JDK版本:JKD安裝目錄:總存/剩余存:MB/MB3.對管理員教師的添加與刪除:圖4.4為管理員教師添加界面圖4.4 管理員添加界面核心代碼如下:/管理員教師的錄入public String adminAdd()TAdmin admin=new TAdmin();admin.setUserName(userName);admin.se
39、tUserPw(userPw);adminDAO.save(admin);this.setMessage(操作成功);this.setPath(adminManage.action);returnsucceed;管理員教師的刪除代碼:/已有管理員的除public String adminDel()adminDAO.delete(adminDAO.findById(userId);this.setMessage(刪除成功);this.setPath(adminManage.action);returnsucceed;管理員教師對評分教師以與學(xué)生的管理與上述代碼類似,在此不一一列舉詳見附錄2。4.
40、管理員教師對課程的管理課程管理界面如圖4.5所示:圖4.5 管理員添加界面此界面主要顯示已有的課程信息以與可執(zhí)行的操作。課程管理代碼如下:public String kechengMana()String sql=from TKecheng where del=no;List kechengList=kechengDAO.getHibernateTemplate().find(sql);Map request=(Map)ServletActionContext.getContext().get(request);request.put(kechengList, kechengList);ret
41、urn ActionSupport.SUCCESS;課程的添加代碼:public String kechengAdd()TKecheng kecheng=new TKecheng();kecheng.setKechengName(kechengName);kecheng.setDel(no);kechengDAO.save(kecheng);this.setMessage(添加成功!);this.setPath(kechengMana.action);returnsucceed;課程的刪除代碼:public String kechengDel()TKecheng kecheng=kecheng
42、DAO.findById(kechengId);kecheng.setDel(yes);kechengDAO.attachDirty(kecheng);this.setMessage(刪除成功!);this.setPath(kechengMana.action);returnsucceed;5.管理員教師對題庫的管理 管理員在對題庫進(jìn)行管理時要先選擇題目所屬的課程,然后該課程中所有的題目將被列出來,如圖4.6所示圖4.6 題庫管理界面在此可以直接刪除題目。若要添加題目則點(diǎn)擊題目錄入標(biāo)簽,在錄入前要先選擇題目所屬課程和題目類型如圖4.7所示。圖4.7 題目添加界面題庫管理核心代碼如下:題目所屬課
43、程的選擇:public String timuByKecheng()String sql=from TTimu where del=no and kechengId=+kechengId+ order by timuLeixing;List timuList=timuDAO.getHibernateTemplate().find(sql);Map request=(Map)ServletActionContext.getContext().get(request);request.put(timuList, timuList);return ActionSupport.SUCCESS;題目的添
44、加:public String timu_danxuan_Add() /單選題的添加TTimu timu=new TTimu();timu.setTimuName(timuName);timu.setTimuXuanxianga(timuXuanxianga);timu.setTimuXuanxiangb(timuXuanxiangb);timu.setTimuXuanxiangc(timuXuanxiangc);timu.setTimuXuanxiangd(timuXuanxiangd);timu.setTimuDaan(timuDaan.trim();timu.setTimuFenshu(
45、timuFenshu);timu.setTimuLeixing(timuLeixing);timu.setKechengId(kechengId);timu.setDel(no);timuDAO.save(timu);this.setMessage(操作成功);this.setPath(admin/timu/timuLeixing.jsp);returnsucceed;public String timu_duoxuan_Add() /多選題的添加TTimu timu=new TTimu();timu.setTimuName(timuName);timu.setTimuXuanxianga(t
46、imuXuanxianga);timu.setTimuXuanxiangb(timuXuanxiangb);timu.setTimuXuanxiangc(timuXuanxiangc);timu.setTimuXuanxiangd(timuXuanxiangd);timu.setTimuDaan(timuDaan.trim();timu.setTimuFenshu(timuFenshu);timu.setTimuLeixing(timuLeixing);timu.setKechengId(kechengId);timu.setDel(no);timuDAO.save(timu);this.se
47、tMessage(操作成功);this.setPath(admin/timu/timuLeixing.jsp);returnsucceed;public String timu_panduan_Add() / 判斷題的添加TTimu timu=new TTimu();timu.setTimuName(timuName);timu.setTimuXuanxianga(timuXuanxianga);timu.setTimuXuanxiangb(timuXuanxiangb);timu.setTimuDaan(timuDaan.trim();timu.setTimuFenshu(timuFensh
48、u);timu.setTimuLeixing(timuLeixing);timu.setKechengId(kechengId);timu.setDel(no);timuDAO.save(timu);this.setMessage(操作成功);this.setPath(admin/timu/timuLeixing.jsp);returnsucceed;public String timu_jianda_Add() 簡答題的添加TTimu timu=new TTimu();timu.setTimuName(timuName);timu.setTimuDaan(timuDaan.trim();ti
49、mu.setTimuFenshu(timuFenshu);timu.setTimuLeixing(timuLeixing);timu.setKechengId(kechengId);timu.setDel(no);timuDAO.save(timu);this.setMessage(操作成功);this.setPath(admin/timu/timuLeixing.jsp);returnsucceed;題目的刪除:public String timuDel()TTimu timu=timuDAO.findById(timuId);timu.setDel(yes);timuDAO.attachD
50、irty(timu);this.setMessage(操作成功);System.out.println(timu.getKechengId()+&);this.setPath(timuByKecheng.action?kechengId=+timu.getKechengId();returnsucceed;6管理員教師對試卷的管理管理員教師可以錄入新的試卷或刪除已有試卷,可查看已有試卷的題目,也可向已有的試卷里添加新的題目。試卷管理界面如圖4.8所示。圖4.8 試卷管理界面 核心代碼如下:public String shitiMana()String sql=select t from TSh
51、iti t where t.del=no;List shitiList=shitiDAO.getHibernateTemplate().find(sql);Map request=(Map)ServletActionContext.getContext().get(request);request.put(shitiList, shitiList);return ActionSupport.SUCCESS;錄入新的試卷需要注明試卷的名稱考試的時間和此試卷的介紹。試卷的添加界面如圖4.9所示。圖4.9 試卷添加界面/核心代碼:/試卷的添加public String shitiAdd()TShit
52、i shiti=new TShiti();shiti.setShitiName(shitiName);shiti.setShitiJieshao(shitiJieshao);shiti.setShitiShijian(new Date().toLocaleString();shiti.setShichang(shichang);shiti.setDel(no);shitiDAO.save(shiti);this.setMessage(操作成功);this.setPath(shitiMana.action);returnsucceed;/試卷的刪除:public String shitiDel(
53、)TShiti shiti=shitiDAO.findById(shitiId);shiti.setDel(yes);shitiDAO.attachDirty(shiti);this.setMessage(刪除成功);this.setPath(shitiMana.action);returnsucceed;向試卷中添加題目首先要選擇題目所屬的課程。相關(guān)代碼如下:/選擇試題所屬的課程public String timuByKecheng1()String sql=from TTimu where del=no and kechengId=+kechengId+ order by timuLeix
54、ing;List timuList=timuDAO.getHibernateTemplate().find(sql);Map request=(Map)ServletActionContext.getContext().get(request);request.put(timuList, timuList);request.put(shitiId, shitiId);return ActionSupport.SUCCESS;/向試卷中添加題目public String timuByShiti()List timuList=newArrayList();Map request=(Map)Serv
55、letActionContext.getContext().get(request);String sql=from TTimuShiti where shitiId=?;Object con=shitiId;List timuShitiList=timuShitiDAO.getHibernateTemplate().find(sql,con);for(int i=0;i0)request.put(err, 你已經(jīng)參加過此考試。請不要重復(fù)考試);return ActionSupport.ERROR;List timuList=newArrayList();String sql=from TTi
56、muShiti where shitiId=?;Object con=shitiId;List timuShitiList=timuShitiDAO.getHibernateTemplate().find(sql,con);for(int i=0;itimuShitiList.size();i+)TTimuShiti timuShiti=(TTimuShiti)timuShitiList.get(i);TTimu timu=timuDAO.findById(timuShiti.getTimuId();timuList.add(timu);/交卷相關(guān)代碼public String jiaoyua
57、nAdd() ServletRequest request=ServletActionContext.getRequest();Map session= ServletActionContext.getContext().getSession();TStu stu=(TStu)session.get(stu);String sql=from TTimuShiti where shitiId=?;Object con=shitiId;List timuShitiList=timuShitiDAO.getHibernateTemplate().find(sql,con);for(int i=0;i
58、1)/多選題String s=;for(int j=0;jtimu1Daan.length;j+)s+=timu1Daanj;jiaoyuan.setTimuDaan(s);jiaoyuanDAO.save(jiaoyuan);return ActionSupport.SUCCESS;public String ajaxSave() ServletRequest request=ServletActionContext.getRequest();Map session= ServletActionContext.getContext().getSession(); TStu stu = (TS
59、tu) session.get(stu); Integer myshitiId = Integer.valueOf(request.getParameter(shitiId); Integer timuId = Integer.valueOf(request.getParameter(timuId); String timuDaan = request.getParameter(timuDaan); TJiaoyuan jyInstance = new TJiaoyuan(); jyInstance.setShitiId(myshitiId); jyInstance.setStuId(stu.
60、getStuId(); jyInstance.setTimuId(timuId); List list = jiaoyuanDAO.findByExample(jyInstance);if (list != null & list.size() 0) TJiaoyuan jiaoyuan = list.get(0); jiaoyuan.setTimuDaan(timuDaan);jiaoyuanDAO.merge(jiaoyuan); else TJiaoyuan jiaoyuan = new TJiaoyuan(); jiaoyuan.setStuId(stu.getStuId(); jia
溫馨提示
- 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年學(xué)校開展健康教育工作計劃(四篇)
- 2024年學(xué)校會議制度范文(三篇)
- 2024年小學(xué)體育老師工作計劃例文(四篇)
- 2024年安全隱患自查自糾制度范文(三篇)
- 2024年實(shí)習(xí)自我總結(jié)范文(三篇)
- 2024年學(xué)校教科研工作計劃范例(二篇)
- 2024年工程車輛租賃合同參考范本(三篇)
- 2024年安全生產(chǎn)報告制度范本(二篇)
- 2024年學(xué)校健康教育工作制度范文(二篇)
- 2024年學(xué)校行政方面安全管理制度范例(二篇)
- 部編人教版最新六年級數(shù)學(xué)上冊應(yīng)用題與解決問題專項
- 新課程背景下初中語文教學(xué)的轉(zhuǎn)變與創(chuàng)新
- 寧波市珍貴用材樹種資源發(fā)展規(guī)劃報告
- 有效市場假說.ppt
- 上海大眾汽車商務(wù)禮儀培訓(xùn)PPT課件
- 理論力學(xué)習(xí)題集含答案
- 住房和城鄉(xiāng)建設(shè)管理局愛國衛(wèi)生月活動總結(jié)
- “碑學(xué)”、“帖學(xué)”獻(xiàn)疑.doc
- 16.金色的草地(課堂實(shí)錄)
- 尾礦庫在線監(jiān)測管理文檔
- 國有股大宗交易制度問題及完善建議
評論
0/150
提交評論