在線考試系統(tǒng)_第1頁
在線考試系統(tǒng)_第2頁
在線考試系統(tǒng)_第3頁
在線考試系統(tǒng)_第4頁
在線考試系統(tǒng)_第5頁
已閱讀5頁,還剩80頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

在線考試系統(tǒng)內容摘要在線考試系統(tǒng)旨在實現(xiàn)考試的無紙化管理,讓考試可以通過互聯(lián)網絡或局域網進行,方便校方考務的管理,也方便了考生,尤其適合考生分布廣,不易集中的遠程教育,還有一些IT公司的技術認證考試,例如SUN的SCJP考試。我們的在線考試系統(tǒng)主要具有試題管理,考生管理,在線制作試卷,自動評分,試卷管理等功能。本論文主要介紹了基于JAVA的在線考試系統(tǒng)的分析、設計和開發(fā)的全部過程。運用ER圖,程序流程圖等對在線管理子系統(tǒng)的設計過程進行詳細的說明。全文共分為開發(fā)方案、需求分析、系統(tǒng)設計、關鍵技術解決,結論五局部。開發(fā)方案中主要介紹開發(fā)在線考試系統(tǒng)得目的、開發(fā)方案的選擇及開發(fā)框架的技術確實定;需求分析介紹了在線考試系統(tǒng)的總體需求及系統(tǒng)各模塊的功能需求;系統(tǒng)設計介紹了系統(tǒng)設計的指導思想、數(shù)據庫的設計、系統(tǒng)模塊的設計;關鍵技術介紹了在具體實現(xiàn)時需解決的一些技術,如開發(fā)框架的整合技術、開發(fā)框架與數(shù)據庫的連接及數(shù)據的備份與復原。關鍵字:JSP,JAVA,MySQL數(shù)據庫,B/S模式[ABSTRACT]On-lineexaminationsystemtheaimiscarryoutexaminationofhavenothepaperturnamanagement,cancarryonthroughInternetnetorbureauareanettosomeexaminationsofcategories,convenientschoolsquaretestthemanagementofduty,andsomeITcompany’test,forexample,theSUN’sSCJP.Imainlydevelopthesystem-JAVAofthebackstagemanagement'son-lineexaminationmanagementsub-systemofsystemanditincludestotrythemanagement,on-linecreationofamanagement,examineetotrybook,controltheconstitutionthatthestudentexamineandtryanexaminationandapprovaletc.function.Thisthesismainlyintroducedtomanagetheanalysis,designofthesub-systemandallprocessesofthedevelopmenttoJAVA'son-lineexamination.MakeuseofERdiagram,procedureflowchartetc.toon-linemanagethedesignprocessofsub-systemtocarryonexpatiation.Thefulltextistotallydividedintothedesign,keytechniqueoftheanalysis,systemofthedevelopmentproject,needtosolve,conclusionfivepart.Developthemainintroductionintheprojectdevelopson-lineexaminationsystempurpose,developmentprojectofchoiceanddevelopmentframeoftheassuranceoftechnique;Theneedanalysisintroducedthetotalneedoftheon-lineexaminationsystemandthefunctionrequestofeachmoldofsystempiece;Thesystemdesignintroducedthedesign,systemmoldoftheinstructionthought,databaseofsystemdesignthedesignofthepiece;Thekeytechniqueintroducedatconcretecarryoutneedsometechniquesforsolve,suchasdevelopmentframeofintegrationtechnique,developmentframewithThedatabaselinkandthebackupandrevivificationofdata.Keyword:JSP,JAVA,MySQLdatabases,modeofB/S目錄TOC\o"1-3"\h\u內容摘要 1緒論 41開發(fā)方案 41.1問題分析 41.2工程目的 51.3方案選擇 51.3.1JAVA簡介 51.3.2Web應用程序開發(fā)環(huán)境—Eclipse3.2.2+MyEclipse5.5.1集成開發(fā)環(huán)境 61.3.3Tomcat應用效勞器 61.3.4MySQL數(shù)據庫 61.3.5B/S開發(fā)模式 71.4開發(fā)框架技術 71.4.1JSP 71.4.2Struts 81.4.3Hibernate 82需求分析 82.1任務概述 82.2運行環(huán)境 103系統(tǒng)設計 103.1指導思想 103.1.1B/S結構開發(fā)思想 103.1.2系統(tǒng)工程的流程思想 113.1.3面向對象機制的設計思想 113.1.4代碼分層思想 123.2系統(tǒng)結構圖 123.2.1系統(tǒng)結構圖 123.2.2系統(tǒng)學生前臺局部模塊類圖: 14系統(tǒng)局部功能序列圖 143.3數(shù)據庫設計 153.3.1主要數(shù)據庫表的介紹 153.3.2數(shù)據庫ER圖 163.3.3主要數(shù)據庫表的結構 183.3.4主要表結構: 183.4系統(tǒng)模塊局部設計 213.4.1用戶登錄 213.4.2管理員操作 233.4.3試題的錄入 264關鍵技術解決 274.1系統(tǒng)架構與數(shù)據庫的連接 274.2框架技術的整合 285系統(tǒng)測試 305.1數(shù)據庫測試 305.2功能測試 305.3平安性測試 31結論 31致謝 31參考文獻 32附錄一英文資料原文 32附錄二英文資料譯文 43緒論現(xiàn)今,不管是國內還是國外的各大廠家,都在不斷的推出一系列的考試、認證。如微軟的MCSE、Cisco的CCNA等。我們國家的自考或是成考,以及各省市的各種考試,現(xiàn)在都在朝著信息化的道路前進在走。我們相信在今后這一系列的考試將會走向網絡化考試的。這樣才是符合信息開展的。所以我們考慮這是一個時機。我們要給不同的考試一個好的解決方案。這個方案在技術上來講我們是采用B/S模式。在Windows/Linux平臺上,使用IE瀏覽器,完成抽題、考試、交卷等考試任務。各考點模塊通過網絡獲取題庫,考點模塊按照題庫中的抽題策略,自動給每個考生生成一份試卷,考生在線作答,考試結果數(shù)據通過網絡回收,系統(tǒng)自動進行判分,生成考試成績和統(tǒng)計數(shù)據?!霸诰€考試系統(tǒng)〞是集合現(xiàn)代考試理論、方法和現(xiàn)代信息技術手段的智能化網上考試系統(tǒng),為學生個性化學習提供“靈活、方便、科學、公平〞的“個別化考試效勞〞,是終結性評價系統(tǒng)。學生可以隨時、隨地進行課程結業(yè)考試?,F(xiàn)階段,學校與社會上的各種考試大都采用傳統(tǒng)的考試方式,在此方式下,組織一次考試至少要經過五個步驟,即人工出卷,考生考試,人工閱卷,成績評估和試卷分析。顯然,隨著考試類型的不斷增加及考試要求的不斷提高,教師的工作量將會越來越大,并且其工作將是一件十分煩瑣和非常容易出錯的事情,可以說傳統(tǒng)的考試方式已經不能適應現(xiàn)代考試的需要。隨著計算機應用的迅猛開展,網絡應用不斷擴大,如遠程教育和虛擬大學的出現(xiàn)等等,且這些應用正逐步深入到千家萬戶。人們迫切要求利用這些技術來進行在線考試,以減輕教師的工作負擔及提高工作效率,與此同時也提高了考試的質量,從而使考試更趨于公證、客觀、更加激發(fā)學生的學習興趣。例如目前許多國際著名的計算機公司所舉辦的各種認證考試絕大局部采用這種方式。為了適應新形勢的開展,我們推出了這一系統(tǒng),使其盡快在各類考試中發(fā)揮高效,便捷的作用,把老師從繁重的工作中解脫出來。1開發(fā)方案1.1問題分析傳統(tǒng)的學校教學中,進行一場考試,要求老師刻試卷、印試卷、安排考試、監(jiān)考、收集試卷、評改試卷、講評試卷和分析試卷,這是一個繁雜的過程,需要大量人力、物力與時間的投入,已經越來越不適應學校信息化建設與現(xiàn)代教學的需要。尤其在遠程網絡教學中,學生分布廣,不易統(tǒng)一集中安排考試,給校方和學生帶來了眾多的不便。而在線考試系統(tǒng),正是信息化建設的產物,它是傳統(tǒng)考場的延伸。它可以利用互聯(lián)網絡和局域網,隨時隨地的對學生進行考試,加上數(shù)據庫技術的利用,大大簡化了傳統(tǒng)考試的過程,因此在線考試是電子化教學的不可缺少的輔助手段。在當今信息時代,計算機技術與網絡技術越來越廣地應用于各個領域,改變著人們的學習、工作、生活乃至思維方式,也引起了教育領域的重大變革。將計算機與網絡技術應用于現(xiàn)代高等教育中,是現(xiàn)代高等教育開展的需要,也是改革教育模式,提高學校教學效果和教學效率、提高科研和管理水平的必要手段。1.2工程目的在線考試系統(tǒng)的總體目標:在線考試系統(tǒng)可以幫助教師完成一個考試從題目設計,考試安排,考試實施,考卷批改到分數(shù)統(tǒng)計總結的所有工作。所有的考試數(shù)據和其它數(shù)據庫需要一種主流的方式進行存儲和管理,例如使用數(shù)據庫技術??荚嚁?shù)據的存放和處理必須對考試保密,需要一定的平安性保障。對考試的系統(tǒng)目標:這個軟件是分布式的,這意味著只要有考試客戶端可以連接到考試應用效勞器,任何考生在任何地方進行身份確認,都能完成考試。題目最好有一定的穩(wěn)定性和隨機性。穩(wěn)定性可以保證每一次考試對每一個考生是公平的,隨機性可以防止作弊的發(fā)生??荚嚨木植拷Y果在考生考完之后就可以知道,同時提供一個時機讓考生知道自己哪里做錯了,并給出反應信息說明理由。對教師的系統(tǒng)目標:提供一個功能全面的考核管理客戶端,可以進行考試設計和安排??忌目荚嚱Y果可以被保存下來,供學生和教師進行分析統(tǒng)計和觀察。1.3方案選擇開發(fā)在線考試系統(tǒng),提出以下解決方案:選擇MySQL作為后臺的數(shù)據庫,選擇JAVA、JSP、JavaScript、Html作為應用程序開發(fā)工具,運用Tomcat效勞器技術,整個系統(tǒng)完全基于B/S(Browser/Server)模式進行設計。1.3.1JAVA簡介Java是Sun公司推出的新的一代面向對象程序設計語言,特別適合于Internet應用程序開發(fā)。Java的產生與流行是當今Internet開展的客觀要求,Java是一門各方面性能都很好的編程語言,它的根本特點是簡單、面向對象、分布式、解釋的、健壯的、平安的、結構中立的、可移植的、性能很優(yōu)異的、多線程的、動態(tài)的,特別適合在Internet環(huán)境上開發(fā)的應用系統(tǒng)。1.3.2Web應用程序開發(fā)環(huán)境—Eclipse3.2.2+MyEclipse5.5.1集成開發(fā)環(huán)境 Eclipse是一個開放源代碼的,基于Java的可擴展開發(fā)平臺。就其本身而言,他只是一個框架和一組效勞,用于通過插件組件構建開發(fā)環(huán)境。幸運的是,Eclipse附帶了一個標準的插件集,其中就包括Java開發(fā)工具(JavaDevelopmentTools,JDT).Eclipse3.2.2是目前的最新版本,我們可以在其官方網站上下載Eclipse3.2.2。MyEclipse是Eclipse的插件,集成了對Spring,Struts,Hibernate等主流JavaEE組件開發(fā)插件的支持,大大簡化了JavaEE應用的開發(fā)。不同版本的MyEclipse都要求與特定版本的Eclipse配合,這在下載MyEclipse時都能看到,與Eclipse3.2.2配套使用的是MyEclipse5.5.1,Eclipse5.5.1的試用版本可以在其官方網站上下載。1.3.3Tomcat應用效勞器目前支持JSP的應用效勞器是較多的,Tomcat是其中較為流行的一個Web效勞器,被JavaWorld雜志的編輯選為2001年度最具創(chuàng)新的Java產品,可見其在業(yè)界的地位。Tomcat是一個免費的開源的Serlvet容器,在Tomcat中,應用程序的部署很簡單,你只需將你的WAR放到Tomcat的webapp目錄下,Tomcat會自動檢測到這個文件,并將其解壓。你在瀏覽器中訪問這個應用的Jsp時,通常第一次會很慢,因為Tomcat要將Jsp轉化為Servlet文件,然后編譯。編譯以后,訪問將會很快。Tomcat也具有傳統(tǒng)的Web效勞器的功能:處理Html頁面。但是與Apache相比,它的處理靜態(tài)Html的能力就不如Apache。我們可以將Tomcat和Apache集成到一塊,讓Apache處理靜態(tài)Html,而Tomcat處理Jsp和Servlet。Tomcat是一個很好的工具,不僅僅因為其免費,功能強大,更因為其開放性,越來越受到人們的重視。1.3.4MySQL數(shù)據庫MySQL是由MySQLAB公司開發(fā),發(fā)布并支持的全世界最流行的開源SQL數(shù)據庫管理系統(tǒng),目前子新版本為MySQL5.0,MySQL5.0較以前的版本有了很大的改良,對存儲過程,觸發(fā)器和視圖有了很好的支持,成為開源數(shù)據庫之首選。1.3.5B/S開發(fā)模式伴隨著Internet的迅速開展,計算機技術正在由基于C/S〔client/Server〕模式的應用系統(tǒng)轉變?yōu)榛贐/S模式的應用系統(tǒng)。過去,網絡軟件的開發(fā)都采用C/S〔client〕模式,在這種模式下,主要的業(yè)務邏輯都集中于客戶端程序,因此,必然導致以下問題:系統(tǒng)安裝、調試、維護和升級困難。由于客戶端的硬件配置可能存在差異,軟件環(huán)能各不相同,因此,在安裝時,必須對每一個客戶端分別進行配置,同樣,在軟件升級時也要對客戶端分別處理。在整個系統(tǒng)中,業(yè)務邏輯和用戶界面都集中到了客戶端,必然會增加平安隱患。B/S模式帶來了巨大的好處:開發(fā)本錢及維護本錢降低。由于B/S架構管理軟件只安裝在效勞器端〔Server〕上,即應用程序在部署、升級、維護時,只需要在效勞器端進行配置就可以了,網絡管理人員只需要管理效勞器就行了,用戶界面主要事務邏輯在效勞器〔Server〕端完全通過WWW瀏覽器實現(xiàn),極少局部事務邏輯在前端〔Browser〕實現(xiàn),所有的客戶端只有瀏覽器,網絡管理人員只需要做硬件維護。良好的平安性能,防火墻技術可以保證后臺數(shù)據庫的平安性。所有的配置工作都集中在效勞器端且所有客戶端請求都是通過DBMS來訪問數(shù)據庫,從而大大減少了數(shù)據直接暴露的風險。1.4開發(fā)框架技術對于框架技術,我們采用JSP+Struts+Hibernate的整合,其實任何一種框架都可以完成我們的工程,但我們選擇三種框架的組合是因為三種框架各有好處,我們利用它們的優(yōu)點,來防止它們的缺點,充分利用Java技術在web的應用。1.4.1JSPJSP的全稱是JavaServerPages,它是SUN推出的一種動態(tài)網頁技術標準。它在傳統(tǒng)的靜態(tài)頁面文件〔*.html,*.htm〕中參加JAVA程序片段和JSP標記,就構成了JSP頁面。JSP具有以下的優(yōu)點:將業(yè)務層與表示層別離:使用JSP技術,網絡開發(fā)人員可充分使用HTML來設計頁面顯示局部〔如字體顏色等〕,并使用JSP指令或者JAVA程序片段來生成網頁上的動態(tài)內容;能夠跨平臺:JSP支持絕大局部平臺,包括現(xiàn)在非常流行的LINUX系統(tǒng),應用非常廣泛的Apache效勞器也提供了支持JSP的效勞;組件的開發(fā)和使用很方便:如ASP的組件是由C++,VB等語言開發(fā)的,并需要注冊才能使用;而JSP的組件是用Java開發(fā)的,可以直接使用;一次編寫,處處運行:作為JAVA開發(fā)平臺的一局部,JSP具有JAVA的所有優(yōu)點,包括Writeonce,Runeverywhere.1.4.2StrutsStruts是一個為開發(fā)基于模型(Model)-視圖(View)-控制器(Controller)(MVC)模式的應用架構的開源框架,是利用Servlet,JSP和customtaglibrary構建Web應用的一項非常有用的技術。由于Struts能充分滿足應用開發(fā)的需求,簡單易用,敏捷迅速。它使用效勞層框架可以將JavaBeans從Jsp/Servlet中別離出來,而使用表現(xiàn)層框架那么可以將Jsp中剩余的JavaBeans完全別離,這局部JavaBeans主要負責顯示相關信息,一般是通過標簽庫〔Taglib〕實現(xiàn),不同框架有不同自己的標簽庫,Struts是應用比擬廣泛的一種表現(xiàn)層框架。1.4.3HibernateHibernate是O/RMapping的一種實現(xiàn)是目前在JAVA界使用非常廣泛的O/RMapping的一種實現(xiàn),可以實現(xiàn)關系型數(shù)據庫和對象之間的映射。用來開發(fā)數(shù)據庫系統(tǒng)非常方便,可以將數(shù)據庫和程序的設計融合在一起。表現(xiàn)層和效勞層的別離是通過兩種框架到達目的的,剩余的就是持久層框架了,通過持久層的框架將數(shù)據庫存儲從效勞層中別離出來就是其目的,持久層框架有兩種方向:直接自己編寫JDBC等SQL語句〔如Ibatis〕;使用O/RMapping技術實現(xiàn)的Hibernate和JDO技術;當然還有EJB中的實體Bean技術。Hibernate的工作原理是通過文件把值對象和數(shù)據庫表之間建立起一個映射關系,這樣,我們只需要通過操作這些值對象和Hibernate提供的一些根本類,就可以到達使用數(shù)據庫的目的。例如,使用Hibernate的查詢,可以直接返回包含某個值對象的列表〔List〕,而不必向傳統(tǒng)的JDBC訪問方式一樣把結果集的數(shù)據逐個裝載到一個值對象中,為我們的編碼工作節(jié)省了大量的勞動。Hibernate提供的HQL是一種類SQL語言,是提供對象化的數(shù)據庫查詢方式,但HQL在功能和使用方式上都非常接近于標準的SQL 2需求分析2.1任務概述 考生前臺子系統(tǒng)主要實現(xiàn)考生注冊,考生登陸,在線考試,成績查詢等功能。管理子系統(tǒng)主要實現(xiàn)題庫管理、試卷管理、考試管理、評卷管理、成績管理等功能,利用計算機網絡技術實現(xiàn)學生在線考試,管理員對考試進行管理。2.2功能需求概述系統(tǒng)需要解決的主要問題: 在學生前臺子系統(tǒng)中我們主要做前臺的操作,我將子系統(tǒng)分成以下功能模塊.考生前臺子系統(tǒng)考生前臺子系統(tǒng)考生注冊考生登陸在線考試成績查詢考生注冊考生登陸在線考試成績查詢考生注冊:注冊考生,使學生可以實現(xiàn)注冊功能。考生登陸:考生登陸,進行相關操作。在線考試:學生登陸后可以開始考試。成績查詢:學生可以按學期查詢自己考試的成績。在考試管理子系統(tǒng)中我們主要對前臺考試系統(tǒng)的顯示信息進行管理和設置。我們將子系統(tǒng)分為以下功能模塊.在線考試管理子系統(tǒng)在線考試管理子系統(tǒng)成績管理評卷管理考試管理試卷管理題庫管理考生管理成績管理評卷管理考試管理試卷管理題庫管理考生管理題庫管理:用于對單個試題的增、刪、改、查等根本維護,管理員可以流覽所有試題。試卷管理:可進行隨機組卷,還可對考生的根本信息進行維護。考試管理:對考試分配試卷,并對考試的根本信息進行維護。相當于人工安排考試的過程評卷管理:對試卷的客觀題自動提取考生答案,并于數(shù)據庫中的標準答案比照來評分.成績管理:對每次考試的學生成績的根本信息進行維護,并提供學生成績的統(tǒng)計管理??忌芾恚汗芾韱T可在系統(tǒng)中注冊和刪除考生。系統(tǒng)應該具備的根本功能:試題維護:對試題的根本信息進行增、刪、改、查操作。生成試卷:考生只需從前臺點擊開始考試,那么系統(tǒng)會自動從題庫中抽取一定數(shù)量的試題。試卷其他維護:對試卷信息的批量查詢??忌畔⒕S護:對考試的學生的根本信息進行增、刪、改、查操作。提取考生答案:對考生考試中所題寫的答案進行提取。自動評分:自動提取的答案與數(shù)據庫中的標準答案比照,并根據試題的分值自動評分??忌煽兙S護:對考試的考生成績信息進行統(tǒng)計與匯總,對有權限的人可進行成績的增、刪、改、查操作。2.2運行環(huán)境硬件需求:PIII/256M/10G及以上配置,要求為考試系統(tǒng)分配足夠的數(shù)據庫磁盤空間推薦配置:PIV2G/512M/40G操作系統(tǒng)需求:Windows2000及以上操作系統(tǒng)(推薦),也可以使用SunSolaris等Linux操作系統(tǒng)數(shù)據庫軟件需求:MySQL中文版數(shù)據庫(推薦),也可以使用SQLserver2000數(shù)據庫中間件軟件需求:tomcat系列效勞器 3系統(tǒng)設計3.1指導思想3.1.1B/S結構開發(fā)思想B/S〔Browser/Server〕結構即瀏覽器和效勞器結構。它是隨著Internet技術的興起,對C/S結構的一種變化或者改良的結構。在這種結構下,用戶工作界面是通過WWW瀏覽器來實現(xiàn),極少局部事務邏輯在前端〔Browser〕實現(xiàn),但是主要事務邏輯在效勞器端〔Server〕實現(xiàn),形成所謂三層〔3-tier〕結構。一個三層架構的應用程序由三局部組成,這三局部各自分布在網絡中的不同地方。這三個局部分別是:工作站或表示層接口、事務邏輯、數(shù)據庫以及與其相關的程序設計。在一個典型的三層架構應用程序中,應用程序的用戶工作站包括提供圖形用戶界面〔GUI〕的程序設計和具體的應用程序入口表格或交互式窗口。事務邏輯處在局域網〔LAN〕效勞器或其他共享主機上,它作為響應工作站所發(fā)出客戶請求的效勞器,而相對于處于大型機的第三層它是作為客戶端,并且決定需要什么數(shù)據以及數(shù)據存儲在哪里。第三層包括數(shù)據庫以及處理讀寫以及訪問數(shù)據庫的程序。然而應用程序的設計可能比這個架構要復雜,對于大型程序來說,這個三層模式是一種比擬簡便的考慮方法。這種應用程序的設計使用客戶/效勞器模式,各層可以同時開發(fā),并且可以由不同的成員組用不同的語言來開發(fā)。因為各個層次的開發(fā)不會影響其他層次,所以這種模型對于進一步開發(fā)軟件是很方便的。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護與升級的本錢和工作量,降低了用戶的總體本錢〔TCO〕。以目前的技術看,局域網建立B/S結構的網絡應用,并通過Internet/Intranet模式下數(shù)據庫應用,相對易于把握、本錢也是較低的。它是一次性到位的開發(fā),能實現(xiàn)不同的人員,從不同的地點,以不同的接入方式〔比方LAN,WAN,Internet/Intranet等〕訪問和操作共同的數(shù)據庫;它能有效地保護數(shù)據平臺和管理訪問權限,效勞器數(shù)據庫也很平安。特別是在JAVA這樣的跨平臺語言出現(xiàn)之后,B/S架構管理軟件更是方便、快捷、高效。3.1.2系統(tǒng)工程的流程思想我們在系統(tǒng)開發(fā)過程中,采用軟件工程的開發(fā)管理,在開發(fā)的過程中也遵循軟件工程的思想,軟件工程的主要環(huán)節(jié)有:人員管理〔自己模擬〕、工程管理〔我的小組模擬〕、可行性與需求分析、系統(tǒng)設計、程序設計、測試、維護等,如圖1.1所示。3.1.3面向對象機制的設計思想所有計算機均由兩種元素組成:代碼和數(shù)據。精確的說,有些程序是圍繞著"什么正在發(fā)生"而編寫,有些那么是圍繞"誰正在受影響"而編寫的。第一種編程方式叫做"面向過程的模型",按這種模型編寫的程序以一系列的線性步驟(代碼)為特征,可被理解為作用于數(shù)據的代碼。如C等過程化語言。第二種編程方式叫做"面向對象的模型",按這種模型編寫的程序圍繞著程序的數(shù)據(對象)和針對該對象而嚴格定義的接口來組織程序,它的特點是數(shù)據控制代碼的訪問.通過把控制權轉移到數(shù)據上,面向對象的模型在組織方式上有:抽象、封裝、繼承和多態(tài)的好處。3.1.4代碼分層思想由于采用B/S設計模式分層思想,同時根據軟件工程的管理思想及系統(tǒng)分析的設計與分析的思想進行系統(tǒng)的開發(fā),利用Java語言開發(fā)Web應用程序,提供JSP+Struts+Hibernate框架對系統(tǒng)的程序代碼結構進行分層。分層的策略如下:service表示層service表示層StrutsStrutsAction,ActionForm,Jsp,Struts-config.xml,etc.DAO業(yè)務層HibernatesessionManagement持久層HibernateDataSource/ConnectionPoolTransactionsBusinessServiceClassesQueryLanguageSupportandotherHibernateServicesJSP--Struts—Hibernate架構3.2系統(tǒng)結構圖3.2.1系統(tǒng)結構圖本系統(tǒng)分為學生前臺子系統(tǒng)和考試管理子系統(tǒng),整個系統(tǒng)的結構圖如下:考生注冊考生登陸考生注冊考生登陸在線考試在線考試成績查詢成績查詢學生前臺在線考試系統(tǒng)學生前臺在線考試系統(tǒng)考生管理考生管理題庫管理題庫管理試卷管理試卷管理考試管理考試管理后臺管理后臺管理評卷管理評卷管理成績管理成績管理 整個在線考試系統(tǒng)我們分為學生前臺子系統(tǒng)和后臺管理子系統(tǒng),其中學生前臺子系統(tǒng)分為考生注冊,考生登陸,在線考試,成績查詢四個功能模塊;后臺管理子系統(tǒng)分為題庫管理,試卷管理,考試管理,評卷管理,成績管理,考生管理六個功能模塊。3.2.2系統(tǒng)學生前臺局部模塊類圖: 上圖中,當用戶從頁面操作后,通過配置文件轉到com.ahut.oa.action.MappingAction,com.ahut.oa.action.MappingAction將調用com.ahut.oa.ServImpl.StudentServicImp中的方法再通過JSP把處理結果顯示給用戶。在處理過程中將調用到com.ahut.oa.daoImplStudentDaoImpl中的方法,在系統(tǒng)中我們是通過Hibernate將數(shù)據持久化到數(shù)據庫中的,這在以后的內容中會具體介紹。系統(tǒng)局部功能序列圖考生登錄序列圖: 上圖中,用戶先通過考生登陸驗證,如果成功登陸,那么將考生信息保存到Session中,如果數(shù)據庫中沒有考生的數(shù)據,那么會提醒考生注冊。登陸成功后考生就可以開始考試了,考生點擊開始考試時,系統(tǒng)會自動生成一份試卷,生成試卷時會調用后臺管理模塊中questionService中的方法,而questionService會按照一定的算法到數(shù)據庫中抽取試題,考生考完后,考生的信息和考試成績會被保存到數(shù)據庫中,這樣一來,考生就可以查詢自己的考試成績了。3.3數(shù)據庫設計3.3.1主要數(shù)據庫表的介紹根據系統(tǒng)需要和考試需要,設立了如下數(shù)據庫表:學生表(student):其中包括了學生的類型的根本信息,如學生姓名,學生學號,密碼,學生所屬班級身份證號碼,郵箱號碼,家庭地址等字段。題目表(table_question):其中包括了題目的根本信息,如題目的內容,題目可供選擇的第一種答案,題目可供選擇的第二種答案,題目可供選擇的第三種答案,題目可供選擇的第四種答案以及標準答案等字段。試卷表(ExamPaper):其中包括了試卷的題目,題目的標準答案,一張試卷的成績報告。考試結果報告表(Examreport):其中保存了考試結果的根本信息,如考試成績,考試時間,試卷的集合,參加考試的學生等字段。3.3.2數(shù)據庫ER圖3.3.3主要數(shù)據庫表的結構定義〔數(shù)據詞典〕:eq\o\ac(○,A)、數(shù)據庫表名的定義使用:重點字_table;重點字可以是多個英文單詞的組合,從組合的第二單詞起首字母大寫,字段命名是能表達字段內容的英文單詞的組合,組合方式同表名重點字相同。eq\o\ac(○,B)、NN表示notnull不填表可為空。eq\o\ac(○,C)、數(shù)據類型不使用固定數(shù)據庫的類型,標識群眾類型,如字符串、字符、數(shù)字等。這樣在更改數(shù)據庫時需求的數(shù)據是可移植的eq\o\ac(○,D)、輸寫數(shù)據表在數(shù)據庫中的物理名稱,可用自己熟悉的語言再定義表名稱,方便溝通。eq\o\ac(○,E)、長度定義又數(shù)據類型決定:如字符串可選8000以下,數(shù)字可在50位之間,字符只允許一位。eq\o\ac(○,F)、輸入方式表示數(shù)據的來源:生成表由程序或數(shù)據庫的索引自動生成,而不需人工錄入;輸入表示通過文本框等輸入的數(shù)據;選擇表單項選擇框、復選框、下拉列表等通過選擇輸入的數(shù)據;自定獲取是為外碼的輸入設定的,它由程序自動獲取。3.3.4主要表結構:物理名稱:student表名稱主要字段數(shù)據類型長度屬性輸入方式描述備注id整型50NN生成學生表主健由自動生成sno字符串50輸入學生學號name字符串50NN輸入學生姓名登陸所用的姓名password字符串50NN輸入密碼登陸所用密碼className字符串50輸入學生所在班級humenId字符串50輸入學生的身份證號碼email字符串50輸入學生的電子郵箱phone字符串50輸入學生的address字符串50輸入學生的家庭住址數(shù)據庫中建表語句為:createtablestudent(stu_idintnotnullauto_increment,snovarchar(150),namevarchar(150),passwordvarchar(150),gendervarchar(15),classnamevarchar(150),humanidvarchar(150),phonevarchar(150),addressvarchar(150),emailvarchar(150),primarykey(stu_id));物理名稱:question表名稱主要字段數(shù)據類型長度屬性輸入方式描述備注試題表id字符串50NN生成試題標識符(主鍵)由系統(tǒng)自動生成context字符串100NN輸入試題具體內容answer1字符串50輸入試題的選擇答案一answer2字符串50輸入試題的選擇答案二answer3字符串50NN輸入試題的選擇答案三answer4字符串50輸入試題的選擇答案四answer字符串50輸入試題的標準答案數(shù)據庫中建表語句為:reatetabletable_question(idint(10)notnullauto_increment,contextvarchar(150),answer1varchar(150),answer2varchar(150),answer3varchar(150),answer4varchar(150),answervarchar(150),primarykey(id));物理名稱:examPaper表名稱主要字段數(shù)據類型長度屬性輸入方式描述備注試卷表id字符串50NN生成試卷標識符(主鍵)由系統(tǒng)自動生成answer字符串50NN輸入試題答案qridQuestion50NN輸入試題eridExamreport50NN選擇考試結果數(shù)據庫中建表語句為:createtableExamPaper(idintnotnullauto_increment,eridintnull,qidintnull,answervarchar(150),primarykey(id));物理名稱:examreport表名稱主要字段數(shù)據類型長度屬性輸入方式描述備注考試結果報告表id字符串50NN生成考試結果標識(主鍵)由系統(tǒng)自動生成score字符串50NN產生考試成績根據系統(tǒng)提取的答案自動評分獲得的分數(shù)termDate50產生考試時間stid字符串50NN產生參加考試的學生examPaperExamPaper50NN產生試卷數(shù)據庫中建表語句為createtableExamreport(idintnotnullauto_increment,scoreint,stidint,termvarchar(50),primarykey(id));3.4系統(tǒng)模塊局部設計3.4.1用戶登錄eq\o\ac(○,1)對于已注冊的用戶根據用戶名和密碼進行登陸,登錄界面如下:eq\o\ac(○,2)填寫您的用戶名、密碼;eq\o\ac(○,3)擊“登陸〞按鈕;eq\o\ac(○,4)用戶名、密碼都正確,登陸成功,進入系統(tǒng)主界面;eq\o\ac(○,5)主要代碼: try { Studentstu=sts.getStudentbySno(sno); if(stu!=null) { if(stu.getPassword().equals(passwd)) { Sessionsession=request.getSession(true); session.setAttribute("st",stu); session.setAttribute("qflg","0"); target="t"; System.out.println("SNO"+stu.getSno()); if(stu.getSno().equals("admin")) target="admin"; }else { request.setAttribute("stinfo","密碼錯誤"); } }else { request.setAttribute("stinfo","用戶不存在"); } }catch(Exceptione) { e.printStackTrace(); } 管理員操作eq\o\ac(○,1)題庫管理模塊的試題維護:1,試題維護主界面:選擇題庫管理中試題維護是試題維護的主界面,展示了試題維護的主要信息,當管理員登陸以后顯示了以下頁面,管理員點擊題目列表,頁面中顯示題庫中所有題目的列表;點擊添加題目將跳轉到添加題目的頁面,管理員可以填寫試題信息,添加到題庫中;點擊學生列表,頁面上將顯示所有已經注冊過的學生的信息,點擊添加學生就可以在管理員窗口注冊學生;點擊返回首頁,那么重新返回到登陸頁面。主要代碼如下: if(hs.getAttribute("qflg").equals("0")) { List<Question>eps=newArrayList<Question>(); eps=es.generatorPaper(20); hs.setAttribute("eps",eps); hs.setAttribute("term",termnum); hs.setAttribute("qflg","1"); } //轉到問題列表頁面 returnmapping.findForward("list"); } publicActionForwardgraded(ActionMappingmapping,ActionFormform, ServletRequestrequest,ServletResponseresponse) throwsException { String[]answers=((ExampaperForm)form).getAnswers(); Students; Sessionhs=request.getSession(false); List<ExamPaper>eps=newArrayList<ExamPaper>(); List<Question>qs=(List<Question>)hs.getAttribute("eps"); s=(Student)hs.getAttribute("st"); inti=1; for(Questionq:qs) { ExamPaperep=newExamPaper(); ep.setQuestion(q); ep.setAnswer(answers[i]); System.out.println(answers[i]); i++; eps.add(ep); } interid=es.submit(s,eps); intscore=es.autograde(erid); score*=5; Examreporter=es.getExamreport(erid); er.setTerm((String)hs.getAttribute("term")); er.setScore(score); es.modify(er,score); request.setAttribute("score",score); //轉到顯示成績頁面 returnmapping.findForward("t"); } publicActionForwardqlist(ActionMappingmapping,ActionFormform, ServletRequestrequest,ServletResponseresponse) throwsException { List<Question>qs=qsi.getQuestionALl(); request.setAttribute("qs",qs); //轉到顯示題目頁面 returnmapping.findForward("list"); } publicActionForwarddelQuestion(ActionMappingmapping,ActionFormform, ServletRequestrequest,ServletResponseresponse) throwsException { intid=Integer.parseInt(request.getParameter("qid")); Questionq=es.selectQuestion(id); booleanb; if(q!=null) { b=qsi.del(q); } //轉到刪除頁面 returnmapping.findForward("del"); } publicActionForwardseekScore(ActionMappingmapping,ActionFormform, ServletRequestrequest,ServletResponseresponse) throwsException { intscore= 0; Sessionhs=request.getSession(false); Stringterm=request.getParameter("select"); Students=(Student)hs.getAttribute("st"); System.out.println(s.getId()+":"+term); try { score=es.selectStudentScore(s.getId(),term).getScore(); }catch(Exceptione) { request.setAttribute("scoreinfo","無成績"); } request.setAttribute("scoreinfo",score); //轉到問題列表頁面 returnmapping.findForward("list"); }3.4.3試題的錄入可進行多種試題的錄入,每一種試題被錄入到每一個試題庫中,;點擊主界面中添加題目,可彈出添加試題界面,輸入試題的信息后,點擊提交即可,界面如下對試題的操作主要代碼如下: publicbooleansave(Questionq) { Sessionsession=SessionFactoryManager.currentSession(); Transactionta=session.beginTransaction(); booleanb=qi.save(q); tamit(); session.close(); returnb; }} if(flag>0){returnSUCCESS;//錄入成功 }else{returnERROR;//錄入失敗} }catch(Exceptione){e.printStackTrace();returnERROR;}4關鍵技術解決4.1系統(tǒng)架構與數(shù)據庫的連接 對于數(shù)據庫的連接,我們的數(shù)據訪問接口采用JDBC-ODBC橋數(shù)據驅動程序,以純Java的方式來連接數(shù)據庫,為訪問不同的數(shù)據庫提供統(tǒng)一的接口。JDBC數(shù)據庫驅動程序是把JDBC調用翻譯成廠商專用API的調用。開放數(shù)據連接〔ODBC〕最初是為微軟操作系統(tǒng)上的SQL提供API標準,后來也在其他的平臺上提供了支持。ODBC為直接訪問數(shù)據定義了一組函數(shù),而不是在客戶應用程序中嵌入SQL。JDBC-ODBC橋在JDBCAPI和ODBCAPI之間提供了一個橋梁,這個橋把標準的JDBC調用翻譯成對應的ODBC調用,然后通過ODBCAPI把它們發(fā)送到ODBC數(shù)據源。在選擇了數(shù)據訪問接口后,開始利用這個原理進行具體的連接了。由于我們開發(fā)時是利用MVC的設計模式,所以在此我們的數(shù)據庫連接是封存在M中的,即只要我們和M層連接上,就已經連接上數(shù)據庫了。在M上我們采用Hibernate框架技術,以下是一個非常簡要的Hibernate體系結構的概要圖:從這個圖可以看出,Hibernate使用數(shù)據庫和配置信息來為應用程序提供持久化效勞〔以及持久的對象〕。我們只需在hibernate.cfg.xml中配置以下語句即可:<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEhibernate-configurationPUBLIC"-//Hibernate/HibernateConfigurationDTD3.0//EN"":///hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory> <propertyname="hibernate.show_sql">true</property> <propertyname="hibernate.format_sql">true</property> <propertyname="file">mysql</property> <propertyname="connection.url">jdbc:mysql://:3306/exam</property> <propertyname="connection.username">root</property> <propertyname="connection.password">1234</property> <propertyname="connection.driver_class">com.mysql.jdbc.Driver</property> <propertyname="dialect">org.hibernate.dialect.MySQLDialect</property> <mappingresource="com/ahut/oa/entity/ExamPaper.hbm.xml"/> <mappingresource="com/ahut/oa/entity/Question.hbm.xml"/> <mappingresource="com/ahut/oa/entity/Examreport.hbm.xml"/> <mappingresource="com/ahut/oa/entity/Student.hbm.xml"/></session-factory></hibernate-configuration>4.2框架技術的整合首先我們要建立web應用程序名字為onlineexam的工程,其根本內容及結構如下的形式:先將工程中所需要的根底類庫及各框架的類庫放到lib文件夾子下面,所需要的主要類庫如下:hibernate3.jarcommons-beanutils.jarcommons-lang.jarmssqlserver.jar然后在classes中建立各框架的默認使用的文件:struts.xmlSpertiesapplicationContext.xml到此,Jsp+Struts+hibernate初步配置完成。我們還需要具體的更改web.xml(效勞器配置文件),配置文件,才能到達真正的整合。web.xml文件中的配置:<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns="://java.sun/xml/ns/j2ee"xmlns:xsi=":///2001/XMLSchema-instance"version="2.4"xsi:schemaLocation="://java.sun/xml/ns/j2ee://java.sun/xml/ns/j2ee/web-app_2_4.xsd"><servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class><init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml</param-value></init-param><init-param><param-name>debug</param-name><param-value>3</param-value></init-param><init-param><param-name>detail</param-name><param-value>3</param-value></init-param><load-on-startup>0</load-on-startup></servlet><servlet-mapping><servlet-name>action</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><welcome-file-list><welcome-file>login.jsp</welcome-file></welcome-file-list></web-app>這樣我們的配置就算整合完成了,之后就是具體開發(fā)中參加的代碼了,在此不表達。5系統(tǒng)測試5.1數(shù)據庫測試系統(tǒng)中每個表的增,刪,查,改都可以順利操作,并且有關聯(lián)關系的也成功操作。5.2功能測試1,鏈接測試:系統(tǒng)在各個頁面的跳轉正常,并且沒有孤立的頁面。2,表單測試:系統(tǒng)的個信息提交完全正確。3,對系統(tǒng)中的一系列業(yè)務需求方法進行了測試,均可以實現(xiàn)。5.3平安性測試本系統(tǒng)實現(xiàn)了先注冊后登陸的功能,管理員和考生各自擁有自己的權限。結論當今許多高校都非常關注無紙化網絡考試的開發(fā)與應用,本文是通過考試方面進行的嘗試,實踐證明,該方法是可行的;本人結合培訓時學到的技術及在校所學理論知識〔軟件工程,操作系統(tǒng),數(shù)據結構等學科〕,利用畢業(yè)設計的時機,與同學合作開發(fā)一套在線考試系統(tǒng),根本上實現(xiàn)了在線考試及考試管理等功能。 理論需要實踐來證明,實踐需要理論指導,完成這次畢業(yè)設計是對我大學四年所學知識的一個綜合的實踐,通過本次設計掌握了軟件設計的思想及開發(fā)過程。本次系統(tǒng)開發(fā),我感觸很深,要想做好一個系統(tǒng),不僅需要具有相關的專業(yè)知識,還應具有相關的實踐能力,要把以前所學習的各種知識綜合起來并加以靈活的運用。然而更為重要的是與合作者的及時溝通,由于我們在開發(fā)前期分析不夠細致,一些標準沒有制定,而在開發(fā)過程中又缺乏溝通,導致我們的系統(tǒng)在最后的整合階段出現(xiàn)了許多問題,大量的BUG需要調試,給系統(tǒng)帶來沉重的工作量。這些珍貴的經驗對我今后的工作有很大的幫助。由于時間倉促,一些技術和設備所限,該系統(tǒng)存在一些缺乏之處,有待進一步改良和完善,具體說來有:(1)

對后臺數(shù)據庫中數(shù)據的日常維護,包括自動清理過時數(shù)據。(2)

程序中錯誤處理和輸入控制不夠全面,可能導致輸入無效引發(fā)錯誤。(3) 考試的試題只能是單項選擇題,應用范圍有限,不能滿足復雜的考試業(yè)務。致謝畢業(yè)設計是大學四年的最后一門課程,也是綜合運用所學知識的課程。平常上課學習的都是理論知識,然而親自動手實踐的時機很少,這次畢業(yè)設計為我提供了一個很好的時機,可以讓我將所學的理論知識和在達內培訓過程中運用到實踐中,是檢驗理論知識學習成果的最好方法。在本次畢業(yè)設計過程中,要感謝帶我們的工程經理楊州老師,在整個設計過程中向我們介紹了他在企業(yè)做開發(fā)時的一些經驗和標準,在系統(tǒng)后期整合階段指導我們解決了許多技術難題,從而能順利完成系統(tǒng)的設計以及論文的書寫。還要感謝我的導師王小林老師時刻關心我們的進度。還有在此過程中給予我?guī)椭耐瑢W們。設計過程中老師教授的知識,我們將終身受用。參考文獻1洪維恩,何嘉.Java2面向對象程序設計[M].北京.中國鐵道出版社.2005.1:50-2002孫衛(wèi)琴.Java面向對象編程電子工業(yè)出版社3CayS.HorstmannGarCormell.JAVA核心技術4://java.sun〔java官方網站〕.5://www-java〔中國java網站〕.6劉斌.精通JavaWeb整合開發(fā)電子工業(yè)出版社7孫衛(wèi)琴.Tomcat與JavaWeb開發(fā)技術詳解電子工業(yè)出版社8(美)MartyHall,LarryBrown.Serclet與JSP核心編程清華大學出版社9(美)MartyHall.Servlet與JSP權威指南[M].北京v機械工業(yè)出版社.10://(Apache軟件Jakarta工程組官方網站)11://(hibernate官方網站)附錄一英文資料原文 2.1TalkingthetalkThischapterexplorestheStrutsframeworkindepthandhighlightsthebenefitsStrutscanbringtoyourdevelopmentefforts.Webelievethatonceyoucan“talkthetalk〞ofwebarchitectureanddesign,youwillbebetterequippedtouseStrutswithyourownapplications.WithasoundoverviewoftheStrutsarchitectureinplace,weoutlinetheStrutscontrolflowandthewayithandlestherequest-responseeventcycle.Agoodunderstandingofthisprocessmakesitmucheasiertocreateapplicationsthatmakethebestuseoftheframework.Choosingawebapplicationframeworkshouldnotbeacasualdecision.Manypeoplewillusethisbook,andespeciallythischapter,aspartofevaluatingStrutsfortheirproject.Accordingly,weconcludethischapterwithacandidlookatthestrengthsandweaknessesoftheStrutsframeworkandaddressconcernsregardingoverallperformance.Strutsisdesignedforprofessionaldevelopers.Tomakeinformeddecisions,professionalsneedtobeawareofbothatool’scapabilitiesanditslimitations.2.2WhyweneedStrutsToday’swebapplicationsarecriticalcomponentsofthecorporatemission.Asalways,developmentteamsneedtobuildapplicationsinrecordtime,buttheyhavetobuildthemrightandbuildthemtolast.Javawebdevelopersalreadyhaveutilitiesforbuildingpresentationpages,suchasJavaServerPagesandVelocitytemplates.Wealsohavemechanismsforhandlingdatabases—JDBCandEnterpriseJavaBeans(EJBs),forexample.Butwhatdoweusetoputthesecomponentstogether?Wehavetheplumbingandthedrywall…whatelsedoweneed?2.2.1Onestepback,threestepsforwardInthelate1970s,whengraphicaluserinterfaces(GUIs)werebeinginvented,softwarearchitectssawapplicationsashavingthreemajorparts:thepartthatWhyweneedStruts31managesdata,thepartthatcreatesscreensandreports,andthepartthathandlesinteractionsbetweentheuserandtheothersubsystems[Ooram].Intheearly1980s,theObjectWorks/Smalltalkprogrammingenvironmentintroducedthistriumvirateasadevelopmentframework.InSmalltalk80parlance,thedatasystemisdubbedtheModel,thepresentationsystemiscalledtheView,andtheinteractionsystemistheController.Manymoderndevelopmentenvironments,includingJava’sSwing,usethisModel/View/Controller(MVC)architecture(seefigure2.1)asthefoundationoftheirownframeworks.Javawebdevelopersalreadyhavecapabletools,suchasJDBCandJSP,forconsultingtheModelandcreatingtheView,butwhere’stheControllerforourwebapplications?2.2.2EnterStrutsThecenterpieceofStrutsisanMVC-styleController.TheStr

溫馨提示

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

最新文檔

評論

0/150

提交評論