基于ssh的在線考試系統(tǒng)源代碼和論文_第1頁
基于ssh的在線考試系統(tǒng)源代碼和論文_第2頁
基于ssh的在線考試系統(tǒng)源代碼和論文_第3頁
基于ssh的在線考試系統(tǒng)源代碼和論文_第4頁
基于ssh的在線考試系統(tǒng)源代碼和論文_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

目錄緒論 1第1章系統(tǒng)開發(fā)背景及意義 21.1系統(tǒng)開發(fā)背景 21.2系統(tǒng)開發(fā)意義 2第2章網(wǎng)上考試系統(tǒng)需求分析 32.1現(xiàn)狀分析 32.2可行性分析 4經(jīng)濟可行性 4技術(shù)可行性 42.3設(shè)計目標 52.4功能要求 52.5系統(tǒng)開發(fā)環(huán)境配置 62.6系統(tǒng)開發(fā)工具 6開發(fā)語言—JSP(JavaServerPage) 6數(shù)據(jù)庫—MySQL5.0 7第3章網(wǎng)上考試系統(tǒng)設(shè)計 83.1數(shù)據(jù)庫設(shè)計 8數(shù)據(jù)庫需求分析 8數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計 9數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計 10數(shù)據(jù)庫表設(shè)計 133.2系統(tǒng)結(jié)構(gòu)設(shè)計 15頁面模塊化設(shè)計 153.2.2MVC模式設(shè)計(Jsp+Servlet+JavaBean) 16第4章網(wǎng)上考試系統(tǒng)實現(xiàn) 174.1系統(tǒng)各部分的實現(xiàn)方法 17創(chuàng)建與數(shù)據(jù)庫的連接 17訪問數(shù)據(jù)庫的JavaBean 18用戶及管理員登錄模塊頁面 19系統(tǒng)主要模塊頁面 23學生考試模塊的實現(xiàn)頁面 25老師添加試題制作試卷模塊的實現(xiàn) 27第5章系統(tǒng)測試 305.1什么是軟件測試 305.2軟件測試的目標與方法 305.3系統(tǒng)的不足和展望 30結(jié)束語 32致謝 33參考文獻 34摘要在線考試系統(tǒng)是目前市場占有率較高,應(yīng)用最廣泛的遠程網(wǎng)絡(luò)學習考試軟件,適合政府、行業(yè)及企業(yè)的各專業(yè)網(wǎng)上考試、作業(yè)、練習等應(yīng)用。它采納Web方式,同時適用于局域網(wǎng)和Internet,無需安裝客戶端,即可實現(xiàn)網(wǎng)上考試、作業(yè)、練習、成果排行等功能,并能夠答卷保存、自動判分、成果查詢和分析等功能。在開發(fā)方法上,引入了當今流行的ssh技術(shù)思想,數(shù)據(jù)庫采納Mysql。把整個開發(fā)程分為需求分析、概要設(shè)計、具體設(shè)計、系統(tǒng)實現(xiàn)等步驟。該系統(tǒng)通過優(yōu)化和再造管理流程,使人力資源的管理更為高效和科學,數(shù)據(jù)更為精確,從而將人事部門從繁重的、耗時的工作中解放出來,把精力集中到更高層的政策性工作中去。關(guān)鍵詞在線考試系統(tǒng);ssh;mysql數(shù)據(jù)庫abstractOnlineexaminationsystemiscurrentlyhighmarketshare,themostwidelyusedtestremotenetworklearningsoftwareforgovernment,industry,professionalandcorporateonlineexams,assignments,exercisesandotherapplications.ItusestheWebtheway,appliestobothLANandInternet,withouthavingtoinstallaclient,youcanachieveonlineexams,assignments,training,performancerankingandotherfunctions,andtheabilitytosavescripts,automaticjudgment,scoresqueryandanalysisfunctions.Onthedevelopmentmethods,theintroductionoftoday'spopularsshtechnicalideas,databaseusingMysql.Theentiredevelopmentprocessisdividedintotheneedsanalysis,stepoutlinedesign,detaileddesign,systemimplementation.Thesystemisoptimizedandrecyclingmanagementprocess,sothatmoreefficientmanagementofhumanresourcesandscientificdatamoreaccurate,thusthepersonneldepartmentfromtheheavy,time-consumingworkofliberation,toconcentrateonhigher-levelpolicywork.Keywordsonlineexaminationsystem;ssh;mysqldatabase緒論考試是檢驗教學效果的重要手段,也是促進學生學習的重要手段,是教學過程中的一個重要環(huán)節(jié)。學生考試成果的優(yōu)劣,不但反映其對教學內(nèi)容和應(yīng)駕馭學問的分析、理解、汲取、運用的實力,更反映老師對教學內(nèi)容的把握和嫻熟程度。傳統(tǒng)的學校教學中,進行一場考試,要求老師編寫試卷、印試卷、支配考試、監(jiān)考、收集試卷、評改試卷、講評試卷和分析試卷,這是一個繁雜的過程,須要大量人力、物力與時間的投入,已經(jīng)越來越不適應(yīng)學校信息化建設(shè)與現(xiàn)代教學的須要。尤其在遠程網(wǎng)絡(luò)教學中,學生分布廣,不易統(tǒng)一集中支配考試,給校方和學生帶來了眾多的不便。而網(wǎng)上考試系統(tǒng)不僅減輕了在組織考試、評卷、成果統(tǒng)計等方面所花費的人力和物力,并且突破了時間與空間的限制,不僅節(jié)約了資源,而且提高了評分的客觀性、公正性和精確度,大大改善了考試工作的效率。加上數(shù)據(jù)庫技術(shù)的利用,大大簡化了傳統(tǒng)考試的過程,因此在線考試是電子化教學的不行缺少的協(xié)助手段。在當今信息時代,計算機技術(shù)與網(wǎng)絡(luò)技術(shù)越來越廣地應(yīng)用于各個領(lǐng)域,變更著人們的學習、工作、生活乃至思維方式,也引起了教化領(lǐng)域的重大變革。將計算機與網(wǎng)絡(luò)技術(shù)應(yīng)用于現(xiàn)代高等教化中,是現(xiàn)代高等教化發(fā)展的須要,也是改革教化模式,提高學校教學效果和教學效率、提高科研和管理水平的必要手段。第1章系統(tǒng)開發(fā)背景及意義1.1系統(tǒng)開發(fā)背景隨著計算機技術(shù)、網(wǎng)絡(luò)技術(shù)快速發(fā)展和高校校內(nèi)網(wǎng)功能的日益完善,很多高校建立了基于校內(nèi)網(wǎng)的網(wǎng)絡(luò)信息管理平臺,為提高教學管理水平供應(yīng)了先進的管理手段。目前,基于網(wǎng)絡(luò)的在線考試系統(tǒng)己經(jīng)成為現(xiàn)代考試方式的有力補充和發(fā)展。相對于傳統(tǒng)的筆試,網(wǎng)絡(luò)在線考試不僅減輕了在組織考試、評卷、成果統(tǒng)計等方面所花費的人力和物力,并且突破了時間與空間的限制,不僅節(jié)約了資源,而且提高了評分的客觀性、公正性和精確度,大大改善了考試工作的效率。1.2系統(tǒng)開發(fā)意義很多學校學生的期末考試仍采納任課老師(個人或集體)考前出題的方式。為解決學生壓題,考前漏題,補(緩)考試題與正式考試試題題量及難度差異問題,教務(wù)管理部門通常要求老師同時出多套試卷,其題量與難度要求相同,并且要同時給出答案和評分標準。這樣做雖能解決一些問題,但給老師增加了很大的工作負擔,若上下屆學生的同一門課程由同一老師擔當,則難免幾屆學生用相同幾套試卷;若由不同老師任課出題,則上下屆學生的成果之間又不具有可比性。若建立題庫,每次考試前由題庫中題目隨機生成試卷,則可較好地解決考教分別的問題,也可將廣闊老師從每學期末繁重的命題工作中解放出來。近年來,部分學校接連開發(fā)了一些基于微機的題庫系統(tǒng),并作為成果向其它學校推廣,但這些題庫一般都是結(jié)合本校具體狀況,針對單一課程的小型題庫,甚至某些學校購得的題庫系統(tǒng)中的題目本身是不行維護的,即使題目已不適合自己的學生考試運用,也無法更新題庫中的題目。為解決題庫系統(tǒng)中存在的這些問題,作者經(jīng)過探討幾種不同的網(wǎng)上系統(tǒng),經(jīng)充分的考慮,最終給出了一個較為志向的題庫系統(tǒng)解決方案,并結(jié)合當前比較運用的B/S結(jié)構(gòu)開發(fā)一個功能完備的網(wǎng)上考試系統(tǒng)。

第2章網(wǎng)上考試系統(tǒng)需求分析2.1現(xiàn)狀分析傳統(tǒng)的考試方法要求組織者提前命題試卷,然后約定一個統(tǒng)一時間,讓全部考生到考場里進行考試。這種模式如圖2-1所示: 編輯考題印刷大量試卷支配考場,時間,監(jiān)考人員學生集體考試 閱卷,統(tǒng)計成果圖2-1傳統(tǒng)考試模式這種模式存在有較多的問題:命題:由于考試要求統(tǒng)一進行,全部考生都考同樣的一份試卷,所以試卷的命題工作便肯定得特別謹慎當心,試題太難或太簡潔,都達不到考試目的,尤其是對于一個大規(guī)模的考試,(比如計算機等級考試,英語四,六級考試等),如何正確把握試卷的難度,始終都是讓命題老師最為頭痛的問題之一。而如何不在考試之前使命好的試題泄漏出去,也是組織者費盡心思。試卷印刷:對于大規(guī)模的考試,試卷印刷費工費時,成本高,對紙張資源也是一種奢侈。對于涉及地域范圍較廣的考試(如英語四,六級考試),還要考慮試卷大的長途運輸費用。在考試的印刷和運輸過程中同樣有試題泄漏出去的問題,任何一個環(huán)節(jié)出了問題,都可能使前面有的工作付諸流水??紙龅闹洌罕O(jiān)考人員的培訓與管理。對于大規(guī)模的考試,尤其是到了考試密集期(如期末,期中)。諸多學科的考試都要接連起先的時候,對于教室資源和老師數(shù)量相對驚慌的學校,如何支配考場,調(diào)配監(jiān)考人員,是一件相對繁瑣而又困難的事情。假如考試再涉及到不同地域之間的同步,如英語四,六級的考試,還要考慮更多的問題。進行考試:由于同一次考試的試卷相同,要杜絕考生作弊是一個普遍的難題,因此,歷屆組織考試的人動了很多腦筋,如分AB卷,加強監(jiān)考,加重對作弊者的懲處程度等,但這些都沒能從根本上杜絕作弊。不同地域監(jiān)考的嚴格程度,考試時問限制的嚴格程度,也很難達到統(tǒng)一。過多人為因素的加入,也使得考試的公正性下降。判卷:考試結(jié)束后,采納人工判卷比較簡潔出錯,并可能出現(xiàn)人為造成的不公正現(xiàn)象。2.2可行性分析可行性分析也稱為可行性探討,即是在系統(tǒng)調(diào)查的基礎(chǔ)上,針對新系統(tǒng)的開發(fā)是否具備必要性和可能性,對新系統(tǒng)的開發(fā)從技術(shù)、經(jīng)濟、管理的方面進行分析和探討,以避開投資失誤,保證新系統(tǒng)的開發(fā)勝利??尚行蕴接懙哪康木褪怯米钚〉拇鷥r在盡可能短的時間內(nèi)確定問題是否能夠解決。該系統(tǒng)的可行性分析包括以下幾個方面的內(nèi)容。2.2.1經(jīng)濟可行性主要是對項目的經(jīng)濟效益進行評價,利用計算機來實現(xiàn)網(wǎng)上考試以成為適應(yīng)當今教學管理的方式。開發(fā)一套能滿意網(wǎng)上考試系統(tǒng)的軟件是特別必要的,實現(xiàn)試卷管理和試卷生成自動化,在削減由于認為失誤而早成損失的同時,也可以使老師削減工作量。本系統(tǒng)在經(jīng)濟上是可以接受的,并且本系統(tǒng)實施后可以顯著提高考試效率,有助于學院完全實現(xiàn)網(wǎng)絡(luò)化管理。所以本系統(tǒng)在經(jīng)濟上是可行的。2.2.2技術(shù)可行性技術(shù)上的可行性分析主要分析技術(shù)條件是否能順當完成開發(fā)工作,硬、軟件能否滿意開發(fā)者的須要等。軟件方面,網(wǎng)絡(luò)化考試須要的各種軟件環(huán)境都已具備,數(shù)據(jù)庫服務(wù)器方面則有MySQL,均能夠處理大量數(shù)據(jù),同時保持數(shù)據(jù)的完整性并供應(yīng)很多高級管理功能。其敏捷性、平安性和易用性為數(shù)據(jù)庫編程供應(yīng)了良好的條件。因此,系統(tǒng)的軟件開發(fā)平臺已成熟可行。 硬件方面,科技飛速發(fā)展的今日,硬件更新的速度越來越快,容量越來越大,牢靠性越來越高,價格越來越低,其硬件平臺完全能滿意此系統(tǒng)的須要。2.3設(shè)計目標在線考試系統(tǒng)的總體目標:在線考試系統(tǒng)可以幫助老師完成一個考試從題目設(shè)計,考試支配,考試實施,考卷批改到分數(shù)計算總結(jié)的全部工作。全部的考試數(shù)據(jù)和其它數(shù)據(jù)庫須要一種主流的方式進行存儲和管理,例如運用數(shù)據(jù)庫技術(shù)。考試數(shù)據(jù)的存放和處理必需對考試保密,須要肯定的平安性保障。題目最好有肯定的穩(wěn)定性和隨機性。穩(wěn)定性可以保證每一次考試對每一個考生是公允的,隨機性可以避開作弊的發(fā)生。考試的部分客觀題在考生考完之后系統(tǒng)就能自動評分,并保存考生的主觀題答案。2.4功能要求系統(tǒng)應(yīng)當具備的基本功能:用戶類別:登錄系統(tǒng)的身份定為三種,一是管理員,二是一般老師,四是學生,只有被授權(quán)的用戶才可以運用本系統(tǒng)的資源。權(quán)限管理:系統(tǒng)須要經(jīng)過有效的身份驗證可以登錄。用戶的身份不同,運用的系統(tǒng)資源也不同??忌豢梢詤⑴c在線考試;一般老師可以在線制作試卷,限制考試、成果查詢、添加試題、閱卷等。管理員可添加系系部、老師、專業(yè)、科目信息、查詢修改管理員信息及審批試卷、查詢考生成果。在線考試功能:考生輸入學號密碼登陸系統(tǒng)后,選擇對應(yīng)的試卷可進行考試。答題中,有倒計時的功能,考試結(jié)束時還沒提交就自動交卷,系統(tǒng)將自動對客觀題進行評分。在線制作試卷:老師、管理員可在線制作試卷,可設(shè)定試題的類型、分值,但老師制作試卷后必須要由管理員審核才能考試。限制考試功能:可設(shè)定每次的考試時間??忌芾砉δ埽嚎勺孕略鰧W生用戶,同時查看考生及班級考生的信息??忌晒樵児δ埽汗?yīng)考生各科目成果的具體查詢。試卷審批功能:只有管理員有此權(quán)限。老師制作試卷完畢,只有經(jīng)過管理員審批后才能發(fā)布,發(fā)布后學生才能開考。除了實現(xiàn)上述功能以外,在線考試系統(tǒng)還應(yīng)當具有友好、簡潔的界面,平安性要高,穩(wěn)定性要強。2.5系統(tǒng)開發(fā)環(huán)境配置選擇微軟平臺作為主導,一方面考慮目前微軟的飛速發(fā)展,越來越多的企業(yè)在規(guī)劃內(nèi)部網(wǎng)絡(luò)時,將微軟平臺作為首選方案;令一方面從技術(shù)角度來講,微軟平臺上的應(yīng)用無論是在開發(fā)上,還是在軟件的部署上都是特別簡潔,而且性能優(yōu)越。具體如下:開發(fā)工具:MyEclipse8.0協(xié)助開發(fā)工具:Dreamweaver8數(shù)據(jù)庫:MySQL5.0服務(wù)器:ApacheTomcat6.0運行環(huán)境:安裝JDK1.6支持Java運行。技術(shù):前臺網(wǎng)頁的設(shè)計采納JSP技術(shù)制作。負責響應(yīng)用戶對業(yè)務(wù)邏輯的懇求并依據(jù)用戶的懇求行為,確定將哪個JSP頁面發(fā)送給客戶由servlet處理,JavaBean則負責數(shù)據(jù)的處理。2.6系統(tǒng)開發(fā)工具本系統(tǒng)是基于JSP+MySQL5.0數(shù)據(jù)庫技術(shù)實現(xiàn)的,現(xiàn)對JSP技術(shù)和SQLServer2005數(shù)據(jù)庫作簡要的介紹。2.6.1開發(fā)語言—JSP(JavaServerPage)JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。JavaServlet是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)須要JavaServlet和JSP協(xié)作才能完成。JSP具備了Java技術(shù)的簡潔易用,完全的面對對象,具有平臺無關(guān)性且平安牢靠,主要面對因特網(wǎng)的等特點。JSP的技術(shù)的優(yōu)勢:一次編寫,到處運行。在這一點上Java比PHP更精彩,除了系統(tǒng)之外,代碼不須要做任何更改。系統(tǒng)的多平臺支持?;旧峡梢栽谌科脚_上的隨意環(huán)境中開發(fā),在隨意環(huán)境中進行系統(tǒng)部署,在隨意環(huán)境中擴展。相比ASP/PHP的局限性是自不待言的。JSP技術(shù)是用Java語言作為腳本語言的。Java語言是成熟的、強大的、易擴充的編程語言。高效性與平安性。JSP在執(zhí)行前先被編譯成字節(jié)碼,字節(jié)碼由Java虛擬機說明執(zhí)行,比源碼說明效率高。可維護性。由于JSP技術(shù)是一種開放的、跨平臺的結(jié)構(gòu),因此Web服務(wù)器、平臺及其他組件能很簡潔升級或切換,且不會影響JSP基本的應(yīng)用程序。多樣化和功能強大的開發(fā)工具支持。Java已經(jīng)有了很多特別優(yōu)秀的開發(fā)工具,而且很多可以免費得到,并且其中很多已經(jīng)可以順當?shù)倪\行于多種平臺之下。2.6.2數(shù)據(jù)庫—MySQL5.0MySQL是一個精致的SQL數(shù)據(jù)庫管理系統(tǒng),雖然它不是開放源代碼的產(chǎn)品,但在某些狀況下你可以自由運用。由于它的強大功能、敏捷性、豐富的應(yīng)用編程接口(API)以及精致的系統(tǒng)結(jié)構(gòu),受到了廣闊自由軟件愛好者甚至是商業(yè)軟件用戶的青睞,特殊是與Apache和PHP/PERL結(jié)合,為建立基于數(shù)據(jù)庫的動態(tài)網(wǎng)站供應(yīng)了強大動力。SQL是一種標準化的語言,它使得存儲、更新和存取信息更簡潔。例如,你能用SQL語言為一個網(wǎng)站檢索產(chǎn)品信息及存儲顧客信息,同時MySQL也足夠快和敏捷以允許你存儲記錄文件和圖像。包含資料:源程序+論文(15000字以上)+可執(zhí)行程序+答辯稿ppt+開題報告

第3章網(wǎng)上考試系統(tǒng)設(shè)計3.1數(shù)據(jù)庫設(shè)計在對網(wǎng)上考試系統(tǒng)數(shù)據(jù)庫部分進行設(shè)計的過程中,通過對系統(tǒng)功能進行需求分析得到系統(tǒng)的基本信息表,繪制系統(tǒng)業(yè)務(wù)流程圖和系統(tǒng)數(shù)據(jù)流程圖,分析得到數(shù)據(jù)字典;在概率結(jié)構(gòu)設(shè)計階段通過對需求階段得到的用戶需求抽象得到數(shù)據(jù)庫關(guān)系模型的E-R圖;在邏輯結(jié)構(gòu)設(shè)計階段得到數(shù)據(jù)庫的關(guān)系模式并繪制信息表。具體設(shè)計過程如下介紹。3.1.1數(shù)據(jù)庫需求分析需求分析是設(shè)計數(shù)據(jù)庫的起點,需求分析的結(jié)果是否精確地反映了用戶的實際要求,將干脆影響到后面各個階段的設(shè)計,并影響到設(shè)計結(jié)果是否合理和好用。系統(tǒng)基本信息綜合以上分析,要實現(xiàn)上面的全部功能模塊,數(shù)據(jù)庫共要設(shè)計十個表,它們分別是:科目表、班級表、系別表、專業(yè)表、試卷信息表、學生表、學生成果表、學生答題試卷信息表、老師表、題庫表。系統(tǒng)層次圖依據(jù)所要實現(xiàn)的功能和用戶權(quán)限的設(shè)置。系統(tǒng)總體的層次圖如下圖3-1所示:圖3-1系統(tǒng)層次圖系統(tǒng)數(shù)據(jù)流程圖系統(tǒng)數(shù)據(jù)流程圖如下圖3-2所示:圖3-2數(shù)據(jù)流程圖3.1.2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計概念設(shè)計階段主要是將需求分析階段得到的用戶需求抽象為信息結(jié)構(gòu)(概念模型)的過程,它是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵,包括概念模型設(shè)計和新系統(tǒng)流程兩個階段。在需求分析階段所得到的應(yīng)用需求應(yīng)當首先抽象為信息世界的結(jié)構(gòu),才能更好地、更精確地用某一DBMS實現(xiàn)這些需求。概念數(shù)據(jù)模型獨立于具體的數(shù)據(jù)處理的細微環(huán)節(jié)和數(shù)據(jù)庫管理系統(tǒng)。這次設(shè)計仍采納傳統(tǒng)的實體聯(lián)系圖作為概念設(shè)計的工具。再進行優(yōu)化后,盡量滿意結(jié)構(gòu)清晰、關(guān)聯(lián)簡潔、實體個數(shù)適中、屬性分協(xié)作理、沒有低級冗余。系統(tǒng)E-R圖如下圖3-3所示:圖3-3系統(tǒng)E-R圖3.1.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計對于關(guān)系型數(shù)據(jù)庫,數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計完畢后,要把E-R圖描述的概念數(shù)據(jù)模型轉(zhuǎn)換為等價的關(guān)系模式極其約束。邏輯設(shè)計的基本工作主要包括如下的3個步驟。關(guān)系模式設(shè)計該設(shè)計以概念結(jié)構(gòu)設(shè)計中的E-R圖為主要依據(jù),這幾出相關(guān)的整體邏輯結(jié)構(gòu)。該系統(tǒng)的關(guān)系模式如下圖3-4所示:圖3-4概念關(guān)系模型圖完整性設(shè)計完整性要求用于描述各種信息之間的制約關(guān)系,以及關(guān)聯(lián)關(guān)系,各個數(shù)據(jù)項的取值范圍以及各個數(shù)據(jù)項是否可以取值。依據(jù)實際須要,實行肯定的手段來滿意用戶的完整性需求。域完整性約束要求屬性值必需在域中。實體完整性約束要求主鍵必需唯一且不能為空。如用戶信息表中的用戶名設(shè)置為主鍵,并且要求唯一且不能為空。模式優(yōu)化本次采納3NF為規(guī)范準則來分解關(guān)系。將一個關(guān)系分解為兩個或者多個關(guān)系,以滿意規(guī)范,從而避開產(chǎn)生插入異樣、刪除異樣、更新異樣。包含資料:源程序+論文(15000字以上)+可執(zhí)行程序+答辯稿ppt+開題報告

3.1.4數(shù)據(jù)庫表設(shè)計學生信息表如圖3-5所示圖3-5學生信息表老師信息表如圖3-6所示圖3-6老師信息表題庫信息表如圖3-7所示圖3-14班級信息表3.2系統(tǒng)結(jié)構(gòu)設(shè)計3.2.1頁面模塊化設(shè)計模塊化設(shè)計的要求不僅是為了提高代碼的重用性,更重要的是為了提高代碼的可維護性和穩(wěn)定性。一個模塊化程度高、結(jié)構(gòu)清晰的應(yīng)用程序,在程序維護時的便利性是可想而知的。最初設(shè)計方案時,就要規(guī)劃好哪些模塊是可以提出來多次運用,哪些模塊雖只運用一次,但提出來之后能使代碼更清晰等。網(wǎng)上考試系統(tǒng)是一個典型的數(shù)據(jù)庫開發(fā)應(yīng)用程序,本系統(tǒng)主要用管理員、老師和學生二大模塊組成,各模塊功能如下:老師模塊:該模塊主要是老師通過登錄該系統(tǒng)能夠修改個人信息,添加試題,在線制作試卷,閱卷等。學生模塊:該模塊主要是學生通過登錄該系統(tǒng)能夠修改個人信息(只能修改密碼),進行考試等。3.2.2MVC模式設(shè)計(Jsp+Servlet+JavaBean)集成SSH框架的系統(tǒng)從職責上分為四層:表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)長久層和域模塊層,以幫助開發(fā)人員在短期內(nèi)搭建結(jié)構(gòu)清晰、可復用性好、維護便利的Web應(yīng)用程序。其中運用Struts作為系統(tǒng)的整體基礎(chǔ)架構(gòu),負責MVC的分別,在Struts框架的模型部分,限制業(yè)務(wù)跳轉(zhuǎn),利用Hibernate框架對長久層供應(yīng)支持,Spring做管理,管理struts和hibernate。具體做法是:用面對對象的分析方法依據(jù)需求提出一些模型,將這些模型實現(xiàn)為基本的Java對象,然后編寫基本的DAO(DataAccessObjects)接口,并給出Hibernate的DAO實現(xiàn),采納Hibernate架構(gòu)實現(xiàn)的DAO類來實現(xiàn)Java類與數(shù)據(jù)庫之間的轉(zhuǎn)換和訪問,最終由Spring做管理,管理struts和hibernate。系統(tǒng)的基本業(yè)務(wù)流程是:在表示層中,首先通過JSP頁面實現(xiàn)交互界面,負責接收懇求(Request)和傳送響應(yīng)(Response),然后Struts依據(jù)配置文件(struts-config.xml)將ActionServlet接收到的Request委派給相應(yīng)的Action處理。在業(yè)務(wù)層中,管理服務(wù)組件的SpringIoC容器負責向Action供應(yīng)業(yè)務(wù)模型(Model)組件和該組件的協(xié)作對象數(shù)據(jù)處理(DAO)組件完成業(yè)務(wù)邏輯,并供應(yīng)事務(wù)處理、緩沖池等容器組件以提升系統(tǒng)性能和保證數(shù)據(jù)的完整性。而在長久層中,則依靠于Hibernate的對象化映射和數(shù)據(jù)庫交互,處理DAO組件懇求的數(shù)據(jù),并返回處理結(jié)果。采納上述開發(fā)模型,不僅實現(xiàn)了視圖、限制器與模型的徹底分別,而且還實現(xiàn)了業(yè)務(wù)邏輯層與長久層的分別。這樣無論前端如何變更,模型層只需很少的改動,并且數(shù)據(jù)庫的變更也不會對前端有所影響,大大提高了系統(tǒng)的可復用性。而且由于不同層之間耦合度小,有利于團隊成員并行工作,大大提高了開發(fā)效率。第4章網(wǎng)上考試系統(tǒng)實現(xiàn)4.1系統(tǒng)各部分的實現(xiàn)方法從系統(tǒng)功能模塊劃分中可以看出,系統(tǒng)總體上有兩個功能模塊組成。各模塊雖然是獨立的,但又統(tǒng)一于同一數(shù)據(jù)庫中,便于管理員管理維護數(shù)據(jù)庫,同時也便于老師和學生的操作。在介紹系統(tǒng)各模塊的實現(xiàn)方法之前,首先介紹系統(tǒng)與數(shù)據(jù)庫的連接方式——運用JavaBean連接連接在服務(wù)器tomcat里配置的連接池。再介紹系統(tǒng)主要部分的實現(xiàn)方法。4.1.1創(chuàng)建與數(shù)據(jù)庫的連接配置數(shù)據(jù)源創(chuàng)建連接池,再通過JavaBean連接到數(shù)據(jù)源再對數(shù)據(jù)庫進行操作。連接池是創(chuàng)建和管理一個連接的緩沖池的技術(shù),這些連接打算好被任何須要它們的線程運用。連接池可以極大的改善用戶的Java應(yīng)用程序的性能,同時削減全部資源的運用。連接池主要的優(yōu)點有:削減連接創(chuàng)建時間、簡化的編程模式、受控的資源運用。連接池能夠使性能最大化,同時還能將資源利用限制在肯定的水平之下,不過假如超過該水平,應(yīng)用程序?qū)⒈罎⒍粌H僅是變慢。配置連接池:1.首先要將mysql的驅(qū)動包放在tomcat/lib書目下2.在應(yīng)用服務(wù)器Tomcat里的/conf下找到一個context.xml文件,在里面添加的內(nèi)容如下:<Resourcename="jdbc/examolds" auth="Container" type="javax.sql.DataSource" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql:///examol" username="root" password="123" maxIdle="30" maxWait="10000" maxActive="100"/></Context>須要訪問數(shù)據(jù)庫就通過在JavaBean創(chuàng)建的一個叫QueryRunner()方法來訪問。代碼如下:publicclassConn{ publicstaticQueryRunnergetQueryRunner(){ DataSourceds=null; try{ Contextcontext=newInitialContext(); ds=(DataSource)context.lookup("java:/comp/env/jdbc/examolds"); }catch(Exceptione){ System.out.println("獲得數(shù)據(jù)源出錯!"); } QueryRunnerqr=newQueryRunner(ds); returnqr; }}4.1.2訪問數(shù)據(jù)庫的JavaBeanJavaBean是一種Java語言寫成的可重用組件。為寫成JavaBean,類必需是具體的和公共的,并且具有無參數(shù)的構(gòu)造器。JavaBean通過供應(yīng)符合一樣性設(shè)計模式的公共方法將內(nèi)部域暴露成為屬性。眾所周知,屬性名稱符合這種模式,其他Java類可以通過自省機制發(fā)覺和操作這些JavaBean屬性。用戶可以運用JavaBean將功能、處理、值、數(shù)據(jù)庫訪問和其他任何可以用Java代碼創(chuàng)建的對象進行打包,并且其他的開發(fā)者可以通過內(nèi)部的JSP頁面、Servlet、其他JavaBean、Applet程序或應(yīng)用來運用這些對象。用戶可以認為JavaBean供應(yīng)了一種隨時隨地的復制和粘貼的功能,而不用關(guān)切任何變更。JSP的一個重要特性就是可以用JavaBean實現(xiàn)功能的擴展。將大部分功能放在JavaBean中完成,以使JSP頁面程序更干凈簡潔、利于維護。JavaBean可以很便利的用來捕獲頁面表單的輸入并完成各種業(yè)務(wù)邏輯的處理。連接數(shù)據(jù)庫的JavaBean——Conn。通過JSP頁面調(diào)用此JavaBean,可以實現(xiàn)對數(shù)據(jù)庫的連接,數(shù)據(jù)表的添加、刪除、更新等操作。4.1.3用戶及管理員登錄模塊頁面用戶登錄頁面比較簡潔,為防止用戶登錄的操作錯誤,應(yīng)設(shè)置錯誤處理頁面,在登錄操作過程中,一般發(fā)生的錯誤有:用戶輸入了錯誤的用戶名或密碼、用戶干脆單擊了登錄按鈕,對上述狀況的推斷就要通過Servlet文件來實現(xiàn)。學生登錄界面如圖4-1所示:圖4-1學生登錄面

管理員老師登錄界面如4-2圖所示:圖4-2管理員老師登錄界面在登錄頁面時,當用戶提交了登錄資料后,就由“UsersServlet.java”這個servlet進行驗證,它的工作主要是推斷用戶登錄的帳號和密碼是否一樣。完成這些工作就必需連接存儲用戶數(shù)據(jù)庫取出相關(guān)信息記錄。假如用戶輸入了錯誤的用戶名和密碼,通過history.back();返回到登錄界面并提示出錯,如圖4-3所示:圖4-3登錄錯誤提示頁面若用戶提交正確的用戶和密碼后,假如記錄驗證無誤,就通過JSP的request.getRequestDispatcher()方法跳轉(zhuǎn)到相應(yīng)的界面;推斷用戶是否輸入正確用戶名和密碼的Java程序片段如下所示://學生登錄信息驗證 publicvoidstu(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ StringStuId=request.getParameter("StuId"); StringStuPwd=request.getParameter("StuPwd"); Stringsql="select*fromstudentwhereStuId=?andStuPwd=?"; Stringparams[]={StuId,StuPwd}; QueryRunnerqr=Conn.getQueryRunner(); Studentstudent=null; Listlist=null; try{ list=(List)qr.query(sql,newBeanListHandler(Student.class),params); }catch(SQLExceptione){ } if(list.size()>0){ student=(Student)list.get(0); HttpSessionsession=request.getSession(); session.setAttribute("student",student); request.getRequestDispatcher("/servlet/OptionExamSelect").forward(request,response); }else{ response.setContentType("textml;charset=UTF-8"); PrintWriterout=response.getWriter(); out.println("<scriptlanguage=javascript>alert('學號或密碼有誤,請重新登錄!');history.back();</script>"); } }//老師和管理員登錄信息驗證 publicvoidtea(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ StringTeaId=request.getParameter("TeaId"); StringTeaPwd=request.getParameter("TeaPwd"); System.out.println(TeaId); System.out.println(TeaPwd); Stringsql="select*fromteacherwhereTeaId=?andTeaPwd=?"; Stringparams[]={TeaId,TeaPwd}; QueryRunnerqr=Conn.getQueryRunner(); Teacherteacher=null; Listlist=null; try{ list=(List)qr.query(sql,newBeanListHandler(Teacher.class),params); }catch(SQLExceptione){ } if(list.size()>0){ teacher=(Teacher)list.get(0); System.out.println(teacher.getTealimit()); //老師登錄 if(teacher.getTealimit().equals("0")){ HttpSessionsession=request.getSession(); session.setAttribute("teacher",teacher); response.sendRedirect("/examOL/teacher/main.jsp"); } //管理員登錄 if(teacher.getTealimit().equals("1")){ HttpSessionsession=request.getSession(); session.setAttribute("teacher",teacher); response.sendRedirect("/examOL/admin/main.jsp"); } }else{ response.setContentType("textml;charset=UTF-8"); PrintWriterout=response.getWriter(); out .println("<scriptlanguage=javascript>alert('用戶名或密碼有誤,請重新登錄!');history.back();</script>"); } }4.1.4系統(tǒng)主要模塊頁面整個系統(tǒng)都采納JSP+JavaBean+Servletm模式實現(xiàn)。JSP+JavaBean+servlet模式的運用實現(xiàn)了代碼的重復利用;是系統(tǒng)程序易編寫、易維護、易運用;并且可以在任何安裝了Java運行環(huán)境的平臺上運用而不須要重新編譯。系統(tǒng)首頁如圖4-4、4-5、4-6所示。

學生登錄系統(tǒng)進入學生選擇考試頁面如圖4-4所示:圖4-4學生登錄首頁老師登錄系統(tǒng)后,進入老師首頁如下圖4-5所示:圖4-5老師界面

管理員登錄系統(tǒng)后,進入管理員首頁如下圖4-6所示:圖4-6管理員首頁不同用戶登錄系統(tǒng)后顯示的界面都是簡潔都是一些功能的鏈接。外觀是一個DIV+CSS的后臺管理模版。4.1.5學生考試模塊的實現(xiàn)頁面考生可以通過首頁登錄進入選擇考試頁面,如上圖所示。在該頁面考生能查看考試科目和開考時間,可以修改個人的密碼。修改密碼勝利后將自動注銷重新登錄。假如到了起先考試的時間“是否考試”中就會由“等待考試”變成“起先考試”的連接了,考生可以點擊此處進入到考試頁面??荚図撁嬗械褂嫊r顯示,假如時間到了系統(tǒng)會自動提交。

學生考試界面如下圖4-7所示。圖4-7考試頁面功能實現(xiàn)代碼如下:sql="SELECT*FROMtest,subjectWHEREtest.SubNum=subject.SubNumANDtest.TesNum="+id;Paperpaper=null; try{ Listlist=(List)qr.query(sql,newBeanListHandler(Paper.class)); paper=(Paper)list.get(0); }catch(SQLExceptione){ e.printStackTrace(); }sql="select*fromquestionwhereSubNum="+paper.getSubNum()+""+"ANDquestion.QueType='選擇題'"+"orderByrand()Limit"+paper.getTesSinCount(); System.out.println("選擇題"+sql); Listsincount=null; try{ sincount=(List)qr.query(sql,newBeanListHandler( Question.class)); }catch(SQLExceptione){ e.printStackTrace(); }sql="select*fromquestionwhereSubNum="+paper.getSubNum()+""+"ANDquestion.QueType='填空題'"+"orderByrand()Limit"+paper.getTesBlaCount(); System.out.println("填空題"+sql); Listblabount=null; try{ blabount=(List)qr.query(sql,newBeanListHandler( Question.class)); }catch(SQLExceptione){ e.printStackTrace(); }sql="select*fromquestionwhereSubNum="+paper.getSubNum()+"" +"ANDquestion.QueType='問答題'" +"orderByrand()Limit"+paper.getTesAnsCount(); System.out.println("問答題"+sql); Listanscount=null; try{ anscount=(List)qr.query(sql,newBeanListHandler( Question.class)); }catch(SQLExceptione){ e.printStackTrace(); }4.1.6老師添加試題制作試卷模塊的實現(xiàn)老師登錄到系統(tǒng)后通過左邊的管理菜單了解到自己擁有那些功能:題庫信息查看、添加題庫,試卷信息查看,添加試卷,閱卷管理等。題庫添加:先選擇所添加試題的科目和題型再進行添加。系統(tǒng)設(shè)置了選擇題,填空題,問答題。老師可以在線制作試卷,設(shè)置考試的科目、時間、考試時間段、題型分布、分值分布、考題數(shù)量等,考題數(shù)量必需依據(jù)系統(tǒng)提示題庫總數(shù)量設(shè)置,不能把考題數(shù)量超出題庫的總數(shù)量。

在線制作試卷頁面如下圖4-8所示。圖4-8在線制作試卷頁面實現(xiàn)在線制作試卷代碼如下: request.setCharacterEncoding("UTF-8"); StringSubNum=request.getParameter("subnum"); StringTeaNum=request.getParameter("teanum"); StringTesName=request.getParameter("TesName"); StringTesTotalper=request.getParameter("TesTotalper"); StringTesSinCount=request.getParameter("TesSinCount"); StringTesBlaCount=request.getParameter("TesBlaCount"); StringTesAnsCount=request.getParameter("TesAnsCount"); StringTesSinPer=request.getParameter("TesSinPer"); StringTesBlaPer=request.getParameter("TesBlaPer"); StringTesAnsPer=request.getParameter("TesAnsPer"); StringTesTime=request.getParameter("TesTime"); Stringatarttime=request.getParameter("atarttime"); Stringendtime=request.getParameter("endtime"); Stringdone=request.getParameter("done"); System.out.println(SubNum); Stringsql="insertintotest"+"(SubNum,TeaNum,TesName,TesTotalper,TesSinCount,TesSinPer,TesBlaCount,TesBlaPer,TesAnsCount,TesAnsPer,TesTime,atarttime,endtime,Done,addtime)"+"values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,now())"; Stringparams[]={SubNum,TeaNum,TesName,TesTotalper,TesSinCount,TesSinPer,TesBlaCount,TesBlaPer,TesAnsCount,TesAnsPer,TesTime,atarttime,endtime,done};QueryRunnerqr=Conn.getQueryRunner();try{ qr.update(sql,params); }catch(SQLExceptio

溫馨提示

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

評論

0/150

提交評論