




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
目錄緒論 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可行性分析 42.2.1經(jīng)濟可行性 42.2.2技術可行性 42.3設計目標 52.4功能要求 52.5系統(tǒng)開發(fā)環(huán)境配置 62.6系統(tǒng)開發(fā)工具 62.6.1開發(fā)語言—JSP(JavaServerPage) 62.6.2數(shù)據(jù)庫—MySQL5.0 7第3章網(wǎng)上考試系統(tǒng)設計 83.1數(shù)據(jù)庫設計 83.1.1數(shù)據(jù)庫需求分析 83.1.2數(shù)據(jù)庫概念結構設計 93.1.3數(shù)據(jù)庫邏輯結構設計 103.1.4數(shù)據(jù)庫表設計 133.2系統(tǒng)結構設計 153.2.1頁面模塊化設計 153.2.2MVC模式設計(Jsp+Servlet+JavaBean) 16第4章網(wǎng)上考試系統(tǒng)實現(xiàn) 174.1系統(tǒng)各部分的實現(xiàn)方法 174.1.1創(chuàng)建與數(shù)據(jù)庫的連接 174.1.2訪問數(shù)據(jù)庫的JavaBean 184.1.3用戶及管理員登錄模塊頁面 194.1.4系統(tǒng)主要模塊頁面 234.1.5學生考試模塊的實現(xiàn)頁面 254.1.6教師添加試題制作試卷模塊的實現(xiàn) 27第5章系統(tǒng)測試 305.1什么是軟件測試 305.2軟件測試的目標與方法 305.3系統(tǒng)的不足和展望 30結束語 32致謝 33參考文獻 34摘要在線考試系統(tǒng)是目前市場占有率較高,應用最廣泛的遠程網(wǎng)絡學習考試軟件,適合政府、行業(yè)及企業(yè)的各專業(yè)網(wǎng)上考試、作業(yè)、練習等應用。它采用Web方式,同時適用于局域網(wǎng)和Internet,無需安裝客戶端,即可實現(xiàn)網(wǎng)上考試、作業(yè)、練習、成績排行等功能,并能夠答卷保存、自動判分、成績查詢和分析等功能。在開發(fā)方法上,引入了當今流行的ssh技術思想,數(shù)據(jù)庫采用Mysql。把整個開發(fā)程分為需求分析、概要設計、詳細設計、系統(tǒng)實現(xiàn)等步驟。該系統(tǒng)通過優(yōu)化和再造管理流程,使人力資源的管理更為高效和科學,數(shù)據(jù)更為準確,從而將人事部門從繁重的、耗時的工作中解放出來,把精力集中到更高層的政策性工作中去。關鍵詞在線考試系統(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)劣,不但反映其對教學內容和應掌握知識的分析、理解、吸收、運用的能力,更反映教師對教學內容的把握和熟練程度。傳統(tǒng)的學校教學中,進行一場考試,要求老師編寫試卷、印試卷、安排考試、監(jiān)考、收集試卷、評改試卷、講評試卷和分析試卷,這是一個繁雜的過程,需要大量人力、物力與時間的投入,已經(jīng)越來越不適應學校信息化建設與現(xiàn)代教學的需要。尤其在遠程網(wǎng)絡教學中,學生分布廣,不易統(tǒng)一集中安排考試,給校方和學生帶來了眾多的不便。而網(wǎng)上考試系統(tǒng)不僅減輕了在組織考試、評卷、成績統(tǒng)計等方面所花費的人力和物力,并且突破了時間與空間的限制,不僅節(jié)省了資源,而且提高了評分的客觀性、公正性和準確度,大大改善了考試工作的效率。加上數(shù)據(jù)庫技術的利用,大大簡化了傳統(tǒng)考試的過程,因此在線考試是電子化教學的不可缺少的輔助手段。在當今信息時代,計算機技術與網(wǎng)絡技術越來越廣地應用于各個領域,改變著人們的學習、工作、生活乃至思維方式,也引起了教育領域的重大變革。將計算機與網(wǎng)絡技術應用于現(xiàn)代高等教育中,是現(xiàn)代高等教育發(fā)展的需要,也是改革教育模式,提高學校教學效果和教學效率、提高科研和管理水平的必要手段。第1章系統(tǒng)開發(fā)背景及意義1.1系統(tǒng)開發(fā)背景隨著計算機技術、網(wǎng)絡技術迅速發(fā)展和高校校園網(wǎng)功能的日益完善,很多高校建立了基于校園網(wǎng)的網(wǎng)絡信息管理平臺,為提高教學管理水平提供了先進的管理手段。目前,基于網(wǎng)絡的在線考試系統(tǒng)己經(jīng)成為現(xiàn)代考試方式的有力補充和發(fā)展。相對于傳統(tǒng)的筆試,網(wǎng)絡在線考試不僅減輕了在組織考試、評卷、成績統(tǒng)計等方面所花費的人力和物力,并且突破了時間與空間的限制,不僅節(jié)省了資源,而且提高了評分的客觀性、公正性和準確度,大大改善了考試工作的效率。1.2系統(tǒng)開發(fā)意義很多學校學生的期末考試仍采用任課教師(個人或集體)考前出題的方式。為解決學生壓題,考前漏題,補(緩)考試題與正式考試試題題量及難度差異問題,教務管理部門通常要求教師同時出多套試卷,其題量與難度要求相同,并且要同時給出答案和評分標準。這樣做雖能解決一些問題,但給教師增加了很大的工作負擔,若上下屆學生的同一門課程由同一教師承擔,則難免幾屆學生用相同幾套試卷;若由不同教師任課出題,則上下屆學生的成績之間又不具有可比性。若建立題庫,每次考試前由題庫中題目隨機生成試卷,則可較好地解決考教分離的問題,也可將廣大教師從每學期末繁重的命題工作中解放出來。近年來,部分學校陸續(xù)開發(fā)了一些基于微機的題庫系統(tǒng),并作為成果向其它學校推廣,但這些題庫一般都是結合本校具體情況,針對單一課程的小型題庫,甚至某些學校購得的題庫系統(tǒng)中的題目本身是不可維護的,即使題目已不適合自己的學生考試使用,也無法更新題庫中的題目。為解決題庫系統(tǒng)中存在的這些問題,作者經(jīng)過研究幾種不同的網(wǎng)上系統(tǒng),經(jīng)充分的考慮,最后給出了一個較為理想的題庫系統(tǒng)解決方案,并結合當前比較使用的B/S結構開發(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ī)模的考試,尤其是到了考試密集期(如期末,期中)。諸多學科的考試都要陸續(xù)開始的時候,對于教室資源和教師數(shù)量相對緊張的學校,如何安排考場,調配監(jiān)考人員,是一件相對繁瑣而又復雜的事情。如果考試再涉及到不同地域之間的同步,如英語四,六級的考試,還要考慮更多的問題。進行考試:由于同一次考試的試卷相同,要杜絕考生作弊是一個普遍的難題,因此,歷屆組織考試的人動了很多腦筋,如分AB卷,加強監(jiān)考,加重對作弊者的懲罰程度等,但這些都沒能從根本上杜絕作弊。不同地域監(jiān)考的嚴格程度,考試時問控制的嚴格程度,也很難達到統(tǒng)一。過多人為因素的加入,也使得考試的公正性下降。判卷:考試結束后,采用人工判卷比較容易出錯,并可能出現(xiàn)人為造成的不公正現(xiàn)象。2.2可行性分析可行性分析也稱為可行性研究,即是在系統(tǒng)調查的基礎上,針對新系統(tǒng)的開發(fā)是否具備必要性和可能性,對新系統(tǒng)的開發(fā)從技術、經(jīng)濟、管理的方面進行分析和研究,以避免投資失誤,保證新系統(tǒng)的開發(fā)成功??尚行匝芯康哪康木褪怯米钚〉拇鷥r在盡可能短的時間內確定問題是否能夠解決。該系統(tǒng)的可行性分析包括以下幾個方面的內容。2.2.1經(jīng)濟可行性主要是對項目的經(jīng)濟效益進行評價,利用計算機來實現(xiàn)網(wǎng)上考試以成為適應當今教學管理的方式。開發(fā)一套能滿足網(wǎng)上考試系統(tǒng)的軟件是十分必要的,實現(xiàn)試卷管理和試卷生成自動化,在減少由于認為失誤而早成損失的同時,也可以使教師減少工作量。本系統(tǒng)在經(jīng)濟上是可以接受的,并且本系統(tǒng)實施后可以顯著提高考試效率,有助于學院完全實現(xiàn)網(wǎng)絡化管理。所以本系統(tǒng)在經(jīng)濟上是可行的。2.2.2技術可行性技術上的可行性分析主要分析技術條件是否能順利完成開發(fā)工作,硬、軟件能否滿足開發(fā)者的需要等。軟件方面,網(wǎng)絡化考試需要的各種軟件環(huán)境都已具備,數(shù)據(jù)庫服務器方面則有MySQL,均能夠處理大量數(shù)據(jù),同時保持數(shù)據(jù)的完整性并提供許多高級管理功能。其靈活性、安全性和易用性為數(shù)據(jù)庫編程提供了良好的條件。因此,系統(tǒng)的軟件開發(fā)平臺已成熟可行。 硬件方面,科技飛速發(fā)展的今天,硬件更新的速度越來越快,容量越來越大,可靠性越來越高,價格越來越低,其硬件平臺完全能滿足此系統(tǒng)的需要。2.3設計目標在線考試系統(tǒng)的總體目標:在線考試系統(tǒng)可以幫助教師完成一個考試從題目設計,考試安排,考試實施,考卷批改到分數(shù)計算總結的所有工作。所有的考試數(shù)據(jù)和其它數(shù)據(jù)庫需要一種主流的方式進行存儲和管理,例如使用數(shù)據(jù)庫技術??荚嚁?shù)據(jù)的存放和處理必須對考試保密,需要一定的安全性保障。題目最好有一定的穩(wěn)定性和隨機性。穩(wěn)定性可以保證每一次考試對每一個考生是公平的,隨機性可以避免作弊的發(fā)生。考試的部分客觀題在考生考完之后系統(tǒng)就能自動評分,并保存考生的主觀題答案。2.4功能要求系統(tǒng)應該具備的基本功能:用戶類別:登錄系統(tǒng)的身份定為三種,一是管理員,二是普通老師,四是學生,只有被授權的用戶才可以使用本系統(tǒng)的資源。權限管理:系統(tǒng)需要經(jīng)過有效的身份驗證可以登錄。用戶的身份不同,使用的系統(tǒng)資源也不同??忌豢梢詤⒓釉诰€考試;普通教師可以在線制作試卷,控制考試、成績查詢、添加試題、閱卷等。管理員可添加系系部、教師、專業(yè)、科目信息、查詢修改管理員信息及審批試卷、查詢考生成績。在線考試功能:考生輸入學號密碼登陸系統(tǒng)后,選擇對應的試卷可進行考試。答題中,有倒計時的功能,考試結束時還沒提交就自動交卷,系統(tǒng)將自動對客觀題進行評分。在線制作試卷:教師、管理員可在線制作試卷,可設定試題的類型、分值,但教師制作試卷后必須要由管理員審核才能考試??刂瓶荚嚬δ埽嚎稍O定每次的考試時間。考生管理功能:可注冊新增學生用戶,同時查看考生及班級考生的信息??忌煽儾樵児δ埽禾峁┛忌骺颇砍煽兊脑敿毑樵儭T嚲韺徟δ埽褐挥泄芾韱T有此權限。教師制作試卷完畢,只有經(jīng)過管理員審批后才能發(fā)布,發(fā)布后學生才能開考。除了實現(xiàn)上述功能以外,在線考試系統(tǒng)還應該具有友好、簡潔的界面,安全性要高,穩(wěn)定性要強。2.5系統(tǒng)開發(fā)環(huán)境配置選擇微軟平臺作為主導,一方面考慮目前微軟的飛速發(fā)展,越來越多的企業(yè)在規(guī)劃內部網(wǎng)絡時,將微軟平臺作為首選方案;令一方面從技術角度來講,微軟平臺上的應用無論是在開發(fā)上,還是在軟件的部署上都是非常容易,而且性能優(yōu)越。具體如下:開發(fā)工具:MyEclipse8.0輔助開發(fā)工具:Dreamweaver8數(shù)據(jù)庫:MySQL5.0服務器:ApacheTomcat6.0運行環(huán)境:安裝JDK1.6支持Java運行。技術:前臺網(wǎng)頁的設計采用JSP技術制作。負責響應用戶對業(yè)務邏輯的請求并根據(jù)用戶的請求行為,決定將哪個JSP頁面發(fā)送給客戶由servlet處理,JavaBean則負責數(shù)據(jù)的處理。2.6系統(tǒng)開發(fā)工具本系統(tǒng)是基于JSP+MySQL5.0數(shù)據(jù)庫技術實現(xiàn)的,現(xiàn)對JSP技術和SQLServer2005數(shù)據(jù)庫作簡要的介紹。2.6.1開發(fā)語言—JSP(JavaServerPage)JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。JavaServlet是JSP的技術基礎,而且大型的Web應用程序的開發(fā)需要JavaServlet和JSP配合才能完成。JSP具備了Java技術的簡單易用,完全的面向對象,具有平臺無關性且安全可靠,主要面向因特網(wǎng)的等特點。JSP的技術的優(yōu)勢:一次編寫,到處運行。在這一點上Java比PHP更出色,除了系統(tǒng)之外,代碼不需要做任何更改。系統(tǒng)的多平臺支持?;旧峡梢栽谒衅脚_上的任意環(huán)境中開發(fā),在任意環(huán)境中進行系統(tǒng)部署,在任意環(huán)境中擴展。相比ASP/PHP的局限性是顯而易見的。JSP技術是用Java語言作為腳本語言的。Java語言是成熟的、強大的、易擴充的編程語言。高效性與安全性。JSP在執(zhí)行前先被編譯成字節(jié)碼,字節(jié)碼由Java虛擬機解釋執(zhí)行,比源碼解釋效率高??删S護性。由于JSP技術是一種開放的、跨平臺的結構,因此Web服務器、平臺及其他組件能很容易升級或切換,且不會影響JSP基本的應用程序。多樣化和功能強大的開發(fā)工具支持。Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費得到,并且其中許多已經(jīng)可以順利的運行于多種平臺之下。2.6.2數(shù)據(jù)庫—MySQL5.0MySQL是一個精巧的SQL數(shù)據(jù)庫管理系統(tǒng),雖然它不是開放源代碼的產(chǎn)品,但在某些情況下你可以自由使用。由于它的強大功能、靈活性、豐富的應用編程接口(API)以及精巧的系統(tǒng)結構,受到了廣大自由軟件愛好者甚至是商業(yè)軟件用戶的青睞,特別是與Apache和PHP/PERL結合,為建立基于數(shù)據(jù)庫的動態(tài)網(wǎng)站提供了強大動力。SQL是一種標準化的語言,它使得存儲、更新和存取信息更容易。例如,你能用SQL語言為一個網(wǎng)站檢索產(chǎn)品信息及存儲顧客信息,同時MySQL也足夠快和靈活以允許你存儲記錄文件和圖像。包含資料:源程序+論文(15000字以上)+可執(zhí)行程序+答辯稿ppt+開題報告若有需要請聯(lián)系QQ:Email:
第3章網(wǎng)上考試系統(tǒng)設計3.1數(shù)據(jù)庫設計在對網(wǎng)上考試系統(tǒng)數(shù)據(jù)庫部分進行設計的過程中,通過對系統(tǒng)功能進行需求分析得到系統(tǒng)的基本信息表,繪制系統(tǒng)業(yè)務流程圖和系統(tǒng)數(shù)據(jù)流程圖,分析得到數(shù)據(jù)字典;在概率結構設計階段通過對需求階段得到的用戶需求抽象得到數(shù)據(jù)庫關系模型的E-R圖;在邏輯結構設計階段得到數(shù)據(jù)庫的關系模式并繪制信息表。詳細設計過程如下介紹。3.1.1數(shù)據(jù)庫需求分析需求分析是設計數(shù)據(jù)庫的起點,需求分析的結果是否準確地反映了用戶的實際要求,將直接影響到后面各個階段的設計,并影響到設計結果是否合理和實用。系統(tǒng)基本信息綜合以上分析,要實現(xiàn)上面的所有功能模塊,數(shù)據(jù)庫共要設計十個表,它們分別是:科目表、班級表、系別表、專業(yè)表、試卷信息表、學生表、學生成績表、學生答題試卷信息表、教師表、題庫表。系統(tǒng)層次圖根據(jù)所要實現(xiàn)的功能和用戶權限的設置。系統(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ù)庫概念結構設計概念設計階段主要是將需求分析階段得到的用戶需求抽象為信息結構(概念模型)的過程,它是整個數(shù)據(jù)庫設計的關鍵,包括概念模型設計和新系統(tǒng)流程兩個階段。在需求分析階段所得到的應用需求應該首先抽象為信息世界的結構,才能更好地、更準確地用某一DBMS實現(xiàn)這些需求。概念數(shù)據(jù)模型獨立于具體的數(shù)據(jù)處理的細節(jié)和數(shù)據(jù)庫管理系統(tǒng)。這次設計仍采用傳統(tǒng)的實體聯(lián)系圖作為概念設計的工具。再進行優(yōu)化后,盡量滿足結構清晰、關聯(lián)簡潔、實體個數(shù)適中、屬性分配合理、沒有低級冗余。系統(tǒng)E-R圖如下圖3-3所示:圖3-3系統(tǒng)E-R圖3.1.3數(shù)據(jù)庫邏輯結構設計對于關系型數(shù)據(jù)庫,數(shù)據(jù)庫的概念結構設計完畢后,要把E-R圖描述的概念數(shù)據(jù)模型轉換為等價的關系模式極其約束。邏輯設計的基本工作主要包括如下的3個步驟。關系模式設計該設計以概念結構設計中的E-R圖為主要依據(jù),這幾出相關的整體邏輯結構。該系統(tǒng)的關系模式如下圖3-4所示:圖3-4概念關系模型圖完整性設計完整性要求用于描述各種信息之間的制約關系,以及關聯(lián)關系,各個數(shù)據(jù)項的取值范圍以及各個數(shù)據(jù)項是否可以取值。根據(jù)實際需要,采取一定的手段來滿足用戶的完整性需求。域完整性約束要求屬性值必須在域中。實體完整性約束要求主鍵必須唯一且不能為空。如用戶信息表中的用戶名設置為主鍵,并且要求唯一且不能為空。模式優(yōu)化本次采用3NF為規(guī)范準則來分解關系。將一個關系分解為兩個或者多個關系,以滿足規(guī)范,從而避免產(chǎn)生插入異常、刪除異常、更新異常。包含資料:源程序+論文(15000字以上)+可執(zhí)行程序+答辯稿ppt+開題報告若有需要請聯(lián)系QQ:Email:
3.1.4數(shù)據(jù)庫表設計學生信息表如圖3-5所示圖3-5學生信息表教師信息表如圖3-6所示圖3-6教師信息表題庫信息表如圖3-7所示圖3-14班級信息表3.2系統(tǒng)結構設計3.2.1頁面模塊化設計模塊化設計的要求不僅是為了提高代碼的重用性,更重要的是為了提高代碼的可維護性和穩(wěn)定性。一個模塊化程度高、結構清晰的應用程序,在程序維護時的便利性是可想而知的。最初設計方案時,就要規(guī)劃好哪些模塊是可以提出來多次使用,哪些模塊雖只使用一次,但提出來之后能使代碼更清晰等。網(wǎng)上考試系統(tǒng)是一個典型的數(shù)據(jù)庫開發(fā)應用程序,本系統(tǒng)主要用管理員、教師和學生二大模塊組成,各模塊功能如下:教師模塊:該模塊主要是教師通過登錄該系統(tǒng)能夠修改個人信息,添加試題,在線制作試卷,閱卷等。學生模塊:該模塊主要是學生通過登錄該系統(tǒng)能夠修改個人信息(只能修改密碼),進行考試等。3.2.2MVC模式設計(Jsp+Servlet+JavaBean)集成SSH框架的系統(tǒng)從職責上分為四層:表示層、業(yè)務邏輯層、數(shù)據(jù)持久層和域模塊層,以幫助開發(fā)人員在短期內搭建結構清晰、可復用性好、維護方便的Web應用程序。其中使用Struts作為系統(tǒng)的整體基礎架構,負責MVC的分離,在Struts框架的模型部分,控制業(yè)務跳轉,利用Hibernate框架對持久層提供支持,Spring做管理,管理struts和hibernate。具體做法是:用面向對象的分析方法根據(jù)需求提出一些模型,將這些模型實現(xiàn)為基本的Java對象,然后編寫基本的DAO(DataAccessObjects)接口,并給出Hibernate的DAO實現(xiàn),采用Hibernate架構實現(xiàn)的DAO類來實現(xiàn)Java類與數(shù)據(jù)庫之間的轉換和訪問,最后由Spring做管理,管理struts和hibernate。系統(tǒng)的基本業(yè)務流程是:在表示層中,首先通過JSP頁面實現(xiàn)交互界面,負責接收請求(Request)和傳送響應(Response),然后Struts根據(jù)配置文件(struts-config.xml)將ActionServlet接收到的Request委派給相應的Action處理。在業(yè)務層中,管理服務組件的SpringIoC容器負責向Action提供業(yè)務模型(Model)組件和該組件的協(xié)作對象數(shù)據(jù)處理(DAO)組件完成業(yè)務邏輯,并提供事務處理、緩沖池等容器組件以提升系統(tǒng)性能和保證數(shù)據(jù)的完整性。而在持久層中,則依賴于Hibernate的對象化映射和數(shù)據(jù)庫交互,處理DAO組件請求的數(shù)據(jù),并返回處理結果。采用上述開發(fā)模型,不僅實現(xiàn)了視圖、控制器與模型的徹底分離,而且還實現(xiàn)了業(yè)務邏輯層與持久層的分離。這樣無論前端如何變化,模型層只需很少的改動,并且數(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連接連接在服務器tomcat里配置的連接池。再介紹系統(tǒng)主要部分的實現(xiàn)方法。4.1.1創(chuàng)建與數(shù)據(jù)庫的連接配置數(shù)據(jù)源創(chuàng)建連接池,再通過JavaBean連接到數(shù)據(jù)源再對數(shù)據(jù)庫進行操作。連接池是創(chuàng)建和管理一個連接的緩沖池的技術,這些連接準備好被任何需要它們的線程使用。連接池可以極大的改善用戶的Java應用程序的性能,同時減少全部資源的使用。連接池主要的優(yōu)點有:減少連接創(chuàng)建時間、簡化的編程模式、受控的資源使用。連接池能夠使性能最大化,同時還能將資源利用控制在一定的水平之下,不過如果超過該水平,應用程序將崩潰而不僅僅是變慢。配置連接池:1.首先要將mysql的驅動包放在tomcat/lib目錄下2.在應用服務器Tomcat里的/conf下找到一個context.xml文件,在里面添加的內容如下:<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ù)的構造器。JavaBean通過提供符合一致性設計模式的公共方法將內部域暴露成為屬性。眾所周知,屬性名稱符合這種模式,其他Java類可以通過自省機制發(fā)現(xiàn)和操作這些JavaBean屬性。用戶可以使用JavaBean將功能、處理、值、數(shù)據(jù)庫訪問和其他任何可以用Java代碼創(chuàng)造的對象進行打包,并且其他的開發(fā)者可以通過內部的JSP頁面、Servlet、其他JavaBean、Applet程序或應用來使用這些對象。用戶可以認為JavaBean提供了一種隨時隨地的復制和粘貼的功能,而不用關心任何改變。JSP的一個重要特性就是可以用JavaBean實現(xiàn)功能的擴展。將大部分功能放在JavaBean中完成,以使JSP頁面程序更干凈簡潔、利于維護。JavaBean可以很方便的用來捕獲頁面表單的輸入并完成各種業(yè)務邏輯的處理。連接數(shù)據(jù)庫的JavaBean——Conn。通過JSP頁面調用此JavaBean,可以實現(xiàn)對數(shù)據(jù)庫的連接,數(shù)據(jù)表的添加、刪除、更新等操作。4.1.3用戶及管理員登錄模塊頁面用戶登錄頁面比較簡單,為防止用戶登錄的操作錯誤,應設置錯誤處理頁面,在登錄操作過程中,一般發(fā)生的錯誤有:用戶輸入了錯誤的用戶名或密碼、用戶直接單擊了登錄按鈕,對上述情況的判斷就要通過Servlet文件來實現(xiàn)。學生登錄界面如圖4-1所示:圖4-1學生登錄面
管理員教師登錄界面如4-2圖所示:圖4-2管理員教師登錄界面在登錄頁面時,當用戶提交了登錄資料后,就由“UsersServlet.java”這個servlet進行驗證,它的工作主要是判斷用戶登錄的帳號和密碼是否一致。完成這些工作就必須連接存儲用戶數(shù)據(jù)庫取出相關信息記錄。如果用戶輸入了錯誤的用戶名和密碼,通過history.back();返回到登錄界面并提示出錯,如圖4-3所示:圖4-3登錄錯誤提示頁面若用戶提交正確的用戶和密碼后,如果記錄驗證無誤,就通過JSP的request.getRequestDispatcher()方法跳轉到相應的界面;判斷用戶是否輸入正確用戶名和密碼的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ù)量必須根據(jù)系統(tǒng)提示題庫總數(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,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年合同到期解約申請模板
- 2025年藥店店員合同模板
- 一年級下冊數(shù)學教案-兩位數(shù)加減整十數(shù)、一位數(shù)的口算 (20)-西師大版
- 分數(shù)的初步認識(一)練習十一(教案)2024-2025學年數(shù)學三年級上冊 蘇教版
- 2024年人工種植牙項目投資申請報告代可行性研究報告
- 2025年杭州科技職業(yè)技術學院單招職業(yè)傾向性測試題庫1套
- 2025屆黑龍江省“六校聯(lián)盟”高三上學期聯(lián)考化學試題及答案
- 2025年度教師專業(yè)成長路徑規(guī)劃聘用合同
- 2025年度養(yǎng)老產(chǎn)業(yè)簡易版股份轉讓合同模板
- 2025年度文化旅游產(chǎn)業(yè)合作授權委托書
- 外研版(三起)小學英語三年級下冊Unit 1 Animal friends Get ready start up 課件
- (新版)廣電全媒體運營師資格認證考試復習題庫(含答案)
- 保安員資格考試復習題庫及答案(800題)
- 《公路建設項目文件管理規(guī)程》
- 春節(jié)文化研究手冊
- 技能大師工作室建設PPT幻燈片課件(PPT 66頁)
- 統(tǒng)編版四年級道德與法治下冊第8課《這些東西哪里來》教學課件(含視頻)
- 市場營銷課程標準
- 鋼琴基礎教程1教案
- 上海科技版(滬科版)初中數(shù)學八年級下冊全冊教案
- 小學音樂課后服務教學設計方案計劃
評論
0/150
提交評論