版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于java實現(xiàn)計算機考試系統(tǒng)摘要 無紙化考試系統(tǒng)是當代教育主要標志,讓考試結果愈加合理、公正、公平,也能夠節(jié)約人力成本。高校在線考試系統(tǒng),慣用客戶機/服務器(C/S)型MIS型架構,或基于Web使用瀏覽器/服務器(B/S)架構。C/S架構在線考試系統(tǒng),試題存放在遠程服務器上,客戶端安裝考試應用程序和數(shù)據(jù)庫客戶機配置,每次考試時需對客戶端進行安裝、配置。而采取B/S架構考試系統(tǒng),經(jīng)過與B/S結構數(shù)據(jù)庫管理系統(tǒng)結合可實現(xiàn)瘦客戶機,系統(tǒng)維護僅需在服務器端進行。故開發(fā)了基于B/S在線考試系統(tǒng)。網(wǎng)絡應用軟件運行模式主要有兩類:C/S和B/S模式。前者主要缺點是維護、升級相對比較麻煩,費用也比較高;B/S(Browser/Server)結構即瀏覽器和服務器結構。在這種結構下,用戶工作界面是經(jīng)過WWW瀏覽器來實現(xiàn),極少部分事務邏輯在前端(Browser)實現(xiàn),主要事務邏輯在服務器端(Server)實現(xiàn)。這么大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護與升級成本和工作量,降低了用戶總體成本。 本論文內容就是設計一個基于javaB/S結構計算機考試系統(tǒng),能夠基本實現(xiàn)學生、教師以及管理員所需要功效。在這個B/S結構設計中,學生經(jīng)過計算機網(wǎng)絡登入系統(tǒng),實時提交解答。系統(tǒng)能保留結果,供教師披閱,并能自動依照條件對客觀題進行判分,還能對分數(shù)進行統(tǒng)計、管理,幫助教師找出教學中存在問題,滿足任何授權考生隨時隨地考試并快速取得成績需求,同時也大大減輕了教師出題、監(jiān)考和判卷等繁重工作量。關鍵字:J2EE;java;MVC;在線;考試系統(tǒng)
Abstract Paperlessexamisanimportantsymbolofmoderneducationforthiskindofexammaketheresultmorereasonable,morejust,andreleasehumanresource.Theonlineexamsystemofuniversity,usuallyusestheC/SMISarchitecture,orbasedwebuseB/Sarchitecture.IntheexamsystemofC/Sarchitecture,wherethepapersarestoredintheremoteServerandtheClientmustsetuptheexamapplicationandconfigurethedatabase,wemustsetupandconfiguretheClienteverytimewhendoexam.However,theexamsystemusingtheB/SarchitecturecanimplementthinClientbycombiningtheManagementInformationSystem.Assystemmaintenanceisonlynecessaryattheseverend,ourdevelopedexamsystemisbasedonB/Sarchitecture.WEBapplicationsoftwareiseitherofC/SorB/Smodes.Themaindisadvantageofthepreviousmodeisthetroubleofmaintenanceandupdate,andthusthechargeishigher;theB/SarchitectureiscomposedofBrowserandServer.Inthisarchitecture,theuserinterfaceisjustimplementedonWWWBrowser,alittlepartofthetransactionsisimplementedinBrowser,andthemainpartoftransactionsisimplementedinServer.SotheloadofClientisreduced,andthusreducethecostofmaintenanceandupdate,soasthewholecost. ThisgraduateprojectisabouttheexamsystembasedonjavaandB/Sarchitecture.Ithasimplementedthebasicfunctionneededbythestudent,teacherandadministrator.InthisB/Sarchitectureproject,studentsloginthesystemthroughweb,andcommittheanswersinreal-time.Thesystemcanjudgethepaperandsavetheresult,statistic,managethepoints;helptheteachertofindtheprobleminteaching.Itallowsanystudentwhichisauthorizedtosubscribetoexamandgaintheresultatanytimeoranywhere,andreducetheworkloadoftheteacherforgivingquestion,invigilationandjudgingpaper.keywords:J2EE;java;MVC;web;examsystem
目錄第1章緒論 91.1項目背景 91.2計算機考試系統(tǒng)發(fā)展及現(xiàn)實狀況 91.3國內外發(fā)展現(xiàn)實狀況 91.4研究開發(fā)目標和基本內容 101.4.1系統(tǒng)開發(fā)主要任務和目標 101.4.2系統(tǒng)開發(fā)基本內容 111.5技術研究背景 11第2章系統(tǒng)技術介紹及應用 132.1JSP技術概述及工作原理 132.1.1JSP技術概要 132.1.2JSP工作原理 142.1.3JSP與ASP比較 142.2JDBC介紹 162.3MVC模式介紹 182.4Struts技術概述及工作原理 192.4.1Struts技術概述 192.4.2Struts工作原理 202.5Hibernate技術概述及工作原理 212.5.1Hibernate技術概述 212.5.2Hibernate工作原理 222.6Tomcat應用服務器介紹 232.7MySQL數(shù)據(jù)庫介紹 252.7.1數(shù)據(jù)庫歷史和發(fā)展 252.7.2MySQL介紹 252.7.3MySQL主要特征 26第3章系統(tǒng)需求分析 283.1系統(tǒng)功效概述 283.2權限與控制 283.3系統(tǒng)業(yè)務流程分析 293.3.1業(yè)務術語 293.3.2業(yè)務流程 293.4系統(tǒng)模塊介紹 333.4.1登錄模塊 333.4.2系統(tǒng)管理模塊 333.4.3科目管理模塊 343.4.4題庫管理模塊 353.4.5試卷管理模塊 353.4.6帳戶管理模塊 353.4.7考試管理模塊 363.4.8信息查詢模塊 363.5系統(tǒng)開發(fā)環(huán)境 36第4章系統(tǒng)設計 374.1系統(tǒng)整體架構設計 374.2系統(tǒng)管理設計 374.3題庫管理設計 434.4科目管理設計 444.5試卷管理設計 454.6帳戶管理設計 454.7考試管理設計 464.8信息查詢設計 474.9數(shù)據(jù)庫設計 48第5章系統(tǒng)實現(xiàn) 515.1系統(tǒng)Model層實現(xiàn) 515.1.1類AdminBean: 515.1.2類SchoolBean: 515.1.3類CollegeBean: 525.1.4類ClassBean: 525.1.5類TeacherBean: 535.1.6類StudentBean: 535.1.7類ExamBean: 545.1.8類PaperBean: 555.1.9類SubjectBean: 565.1.10類TiankongBean: 565.1.11類XuanzeBean: 575.2系統(tǒng)數(shù)據(jù)訪問對象DAO層實現(xiàn) 585.2.1類AdminBeanDAO: 585.2.2類SchoolBeanDAO: 585.2.3類CollegeBeanDAO: 595.2.4類ClassBeanDAO: 595.2.5類TeacherBeanDAO: 595.2.6類StudentBeanDAO: 605.2.7類ExamBeanDAO: 605.2.8類PaperBeanDAO: 605.2.9類SubjectBeanDAO: 605.2.10類TiankongBeanDAO: 615.2.11類XuanzeBeanDAO: 615.3系統(tǒng)中ACTION類 615.3.1類AccountAction: 615.3.2類AccountManageAction: 625.3.3類SchoolAction: 625.3.4類CollegeAction: 635.3.5類ClassAction: 645.3.6類TeacherAction: 645.3.7類StudentAction: 655.3.8類ExamAction: 655.3.9類PaperAction: 665.3.10類SubjectAction: 675.3.11類QuestionAction: 685.4系統(tǒng)中視圖層 69第6章總結 77
第1章緒論1.1項目背景 無紙化考試系統(tǒng)是當代教育主要標志,這么考試讓考試結果愈加合理,愈加公正、公平。也讓無須要人力從中解脫出來,去完成其它一些事情。學生經(jīng)過計算機網(wǎng)絡登入系統(tǒng),實時提交解答。系統(tǒng)能保留結果,供教師披閱,并能自動依照條件對客觀題進行判分,還能對分數(shù)進行統(tǒng)計、管理,幫助教師找出教學中存在問題,滿足任何授權考生隨時隨地考試并快速取得成績需求,同時也大大減輕了教師出題、監(jiān)考和判卷等繁重工作量。 鑒于現(xiàn)在大多數(shù)學校計算機考試系統(tǒng)基本上都是C/S結構,對時間、地點以及考試規(guī)模都有很大限制,而現(xiàn)在大學里基本上學生都人手一臺電腦。假如將考試系統(tǒng)做成B/S結構話就能夠將沒有這些方面限制,能夠進行大規(guī)模同時考試,而且計算機能夠方便進行考試,不需要進行任何客戶端安裝,只需要有一個瀏覽器。1.2計算機考試系統(tǒng)發(fā)展及現(xiàn)實狀況 20世紀50年代,電子計算機和光電閱讀機在大規(guī)模考試中廣泛利用促進了標準化考試推廣和普及。然而應該指出,這時考試方法仍是傳統(tǒng)紙筆考試形式。到了2O世紀末,伴隨測試理論完善、計算機普及、多媒體技術利用和經(jīng)濟增加,測試界已清楚地看到單一紙筆考試弊大于利。那么紙筆考試所暴露出來問題該怎樣處理?標準化考試還要不要推行?于是教授們開始在測試方法和伎倆上下工夫,國外TOEFL如此,國內CET亦然。這一改變競來得如此之快,能夠說是在向一個時代告別,即:計算機化考試時代到來[1]。1.3國內外發(fā)展現(xiàn)實狀況現(xiàn)在國內外都有許多計算機考試系統(tǒng),而CAT(computerizedAdaptiveTesting,計算機自適應考試系統(tǒng))是近年來測驗研究中引人注目并取得了重大發(fā)展領域。計算機化白適應測驗(簡稱CAT)是在項目反應理論基礎上,建立題庫,然后計算機依照被試能力水平自動地選擇測試題目,并對被試所達成能力水平做出判斷一個全新測驗形式[2]。所謂自適應測驗它基本思想是“因人施測”,使不一樣水平被試者都能接收一組跟自己特質水平相適應試題。所謂“自適應”就是測驗本身要自動地適應被試詳細情況,在被試作答過程中及時依照作答資料估出被試可能水平,并針對這一水平快速決議,從大型題庫中調取難度恰當、性能優(yōu)良題目繼續(xù)施測。直到施測題目足夠多,測驗信息量累計和達成指定值為止。如今在美國,CAT已經(jīng)在教育測驗、職業(yè)測量、人事測評等領域中大顯身手,如美國碩士入學考試(GraduateRecordExamination)、工商管理類碩士入學考試(GraduateforManagementandAdministrationTest)以及全美護士國家委員會資格考試(NurseNationalCommitteeLicenseTest)等都已采取了CAT方式。在信息產(chǎn)業(yè)中,美國Novell企業(yè)于1991年成功應用了CAT進行認證考試,使參加Novell自適應考試人數(shù)超出1,000,000人次。在我國,已經(jīng)出現(xiàn)一些應用型研究,自行編制了一些CAT測驗,并取得了實際利用效果,上海電大在上海市計算機應用能力考試項目“VB6.0程序設計”中已采取了CAT考試設計方法。江西師大小學數(shù)學CAT研究、華南理工大“數(shù)據(jù)結構”自適應測試系統(tǒng)研究也取得了一定結果。自上世紀九十年代早期開始,全國大學英語四、六級考試委員會一直致力于項目反應理論和“計算機自適應測驗”研究和開發(fā)。1.4研究開發(fā)目標和基本內容1.4.1系統(tǒng)開發(fā)主要任務和目標 1、實現(xiàn)保留試題數(shù)據(jù)庫系統(tǒng)2、實現(xiàn)在線考試系統(tǒng)服務器端及客戶端3、了解試卷批改規(guī)則,實現(xiàn)客觀題自動判分4、實現(xiàn)系統(tǒng)成績查詢功效1.4.2系統(tǒng)開發(fā)基本內容1、提供數(shù)據(jù)庫訪問權限給不一樣人員進行試題庫添加、管理,試卷批改,答案輸入;2、從試題庫中生成難度合理試卷;3、經(jīng)過網(wǎng)絡實現(xiàn)與考生互動,隨時增減試題難度,方便最大程度地考查學生水平;4、結合試題難度系數(shù)幫助教師判分。1.5技術研究背景 J2EE是適適用于創(chuàng)建服務器應用程序和服務Java2平臺企業(yè)版Java2PlatformEnterpriseEdition,J2EE),該技術基礎就是關鍵Java平臺或Java2平臺標準版,J2EE不但鞏固了標準版中許多優(yōu)點,比如“編寫一次、隨地運行”特征,方便存取數(shù)據(jù)庫JDBCAPI、CORBA技術以及能夠在Intemet應用中保護數(shù)據(jù)安全模式等等,同時還提供了對EJB(EnterpriseJavaBeans)、JavaServletsAPI、JSP(JavaServerPages)以及XML技術全方面支持[3]。J2EE使用多層分布式應用模型,應用邏輯按功效劃分為組件,各個應用組件依照他們所在層面分布在不一樣機器上,處理了兩層模式(client/server)弊端.在傳統(tǒng)模式中,客戶端擔當了過多角色,可能第一次布署時比較輕易,但難于升級,可伸展性也不理想,經(jīng)常是基于某種專有協(xié)議(通常是某種數(shù)據(jù)庫協(xié)議),重用業(yè)務邏輯和界面邏輯非常困難.現(xiàn)在J2EE多層企業(yè)級應用模型將兩層化模型中不一樣層面切分成許多層,每個多層化應用能夠為不一樣服務提供一個獨立層面[4]。本系統(tǒng)采取J2EE進行開發(fā),J2EE尤其適適用于WEB開發(fā),現(xiàn)在最流行WEB開發(fā)模式是SSH(Struts+Spring+Hibernate)模式,Struts作為視圖層,Spring作為控制層,Hibernate為模型層。這么寫程序有很清楚分層,耦合度低,有利于開發(fā)和維護。 這些框架能夠為開發(fā)者提供一個簡單易用模型,采取一個經(jīng)過良好設計開源框架有很多好處:開發(fā)者只需要寫一些必須代碼。他們不需要直接接觸底層API。經(jīng)過良好設計框架能夠為程序提供清楚結構而且提升程序內聚性。清楚結構使得其余人很輕易加入項目。一個輕易適用框架能夠經(jīng)過一些例子和文檔為用戶提供最好實踐。使用成功框架代碼比自己代碼輕易測試??蚣軕撛谛枰獣r候才使用,不要為了使用框架而使用框架。所為我這個系統(tǒng)使用是Struts+Hibernate,這兩個都是比較成熟開源框架,經(jīng)過Hibernate做OR映射和對數(shù)據(jù)庫訪問。Struts做視圖層,StrutsActionServlet做控制層。
第2章系統(tǒng)技術介紹及應用2.1JSP技術概述及工作原理2.1.1JSP技術概要在開始介紹JSP之前,我先要介紹兩個名詞:組件和容器還有servlet。 組件: 組件是你應用程序組體構件。它包含servlets、JavaBeans、JSP、HTML頁面、EJBs以及其它類似東西。 容器: 容器是那些執(zhí)行組件應用程序。假如你應用程序由JSP和servlet組件組成,那么你就需要一個具備JSP支持servlet容器(正式名稱是servlet引擎);假如你應用程序是有EJBs組成,那就需要一個EJB容器。 servlet: servlet是一個獨立于平臺和協(xié)議服務器端Java應用程序,能夠動態(tài)生成WEB頁面。servlet由WEB服務器進行加載,該WEB服務器必須包含支持servletjava虛擬機。 JSP: JSP(javaserverpages)是由SUN企業(yè)在servlet基礎上開發(fā)出來一個動態(tài)網(wǎng)頁制作技術,其可使您能夠將網(wǎng)頁中動態(tài)部分和靜態(tài)HTML相分離。您能夠使用日常得心應手工具并按照日常方式來書寫HTML語句。然后,將動態(tài)部分用特殊標識嵌入即可,這些標識經(jīng)常以“<%”開始并以“%>”結束。通常,您要將文件以“.jsp”為擴展名,并將它放置到任何您能夠放置普通WEB頁面路徑下。盡管JSP文件看起來更象是HTML文件而不是Servlet文件,但,實際上,它恰恰將轉換為Servlet文件,其中靜態(tài)HTML僅僅用來輸出Servlet服務方法返回信息。假如JSPpages已經(jīng)被轉換為Servlet且Servlet被編譯進而被裝載(在第一次被Request時),當您再次Request此JSP頁面時,將覺察不到一瞬延遲。 JSP有4個關鍵成份:指令(directive)、動作(action)、scriptlet和標識庫(taglibrary)。指令是指那些發(fā)送給JSP容器消息,它使程序能夠指定頁面設置、包含其它資源中內容和指定JSP中使用定制標識庫。動作將功效封裝在預定義標識中,然后程序員能夠將它們(預定義標識)嵌入JSP中。通常依照發(fā)送給服務器特定客戶請求中信息來執(zhí)行動作。它們還能夠創(chuàng)建在JSPscriptlet中使用Java對象。Scriptlet,即腳本元素(scriptingelement),使程序員能夠插入與JSP中組件(和其它Web應用程序組件)進行交互Java代碼,以處理請求。標識庫是標識擴展機制一部分,它使程序員能夠創(chuàng)建定制標識,這種標識使得程序員能夠操作JSP內容。[5]畢業(yè)設計(論文)網(wǎng)QQ:優(yōu)異畢業(yè)設計網(wǎng)計算機畢業(yè)設計網(wǎng).com畢業(yè)設計資料網(wǎng)163.com畢業(yè)設計論文網(wǎng)58.com2.1.2JSP工作原理 當用戶第一次請求或者刷新一個JSP頁面時,JSP容器首先是要找到這個JSP頁面源代碼文件,然后開始處理,把這個JSP源文件翻譯成java代碼文件。當用戶請求這個文件時,需要JSP容器來處理這個文件。[6]2.1.3JSP與ASP比較 通常說來,Sun企業(yè)JavaServerPages(JSP)和MicrosoftActiveServerPages(ASP)在技術方面有許多相同之處。二者都為動態(tài)網(wǎng)頁技術,而且雙方都能夠代替CGI技術,使網(wǎng)站開發(fā)時程能夠大大縮短,在性能上也有較高表現(xiàn),更主要一點是,二者都能夠為程序員提供組件設計功效,經(jīng)過組件設計,將網(wǎng)頁中邏輯處理部分交由組件負責處理(ASP使用COM組件、JSP則有JavaBean組件),而和網(wǎng)頁上排版、美工分離。盡管JavaServerPages技術和ActiveServerPages(ASP)在許多方面都很相同,但依然存在很多不一樣之處,其中本質上區(qū)分在于:二者是起源于不一樣技術規(guī)范組織。以下就來比較兩大技術有哪些不一樣點,而又為各自帶來哪些優(yōu)勢。 平臺和服務器彈性 ASP(ActiveServerPages)技術主要在微軟(Microsoft)企業(yè)Windows平臺上運行,其中包含Windows、WindowsXP和Windows,而且搭配其WEB服務器IIS(InternetInformationServices)。不過,在其余平臺運行時,不是性能低落,就是根本不支持,所以,當在開發(fā)網(wǎng)站系統(tǒng)時,選擇NT+IIS+ASP體系結構時,未來當系統(tǒng)無法負荷時,也只能繼續(xù)選擇Windows平臺服務器,無法改寫在性能表現(xiàn)相當優(yōu)異UNIX平臺上。 JSP(JavaServerPages)技術主要運行在操作系統(tǒng)上一個JavaVirtualMachine(JVM)虛擬機器上,所以,它能夠跨越全部平臺,比如:NT、Windows、Solaris、Linux、OS/390、AIX、HP-UX,等等,除了能在各式各樣操作系統(tǒng)上執(zhí)行,而且能搭配現(xiàn)有WEB服務器:Apache、IIS、NetscapeEnterpriseServer,等等,將靜態(tài)HTML網(wǎng)頁交由執(zhí)行速度較快WebServer處理,而動態(tài)產(chǎn)生網(wǎng)頁部分,就交由JSPContainer來執(zhí)行。由上述可知,JSP(JavaServerPages)技術在跨平臺表現(xiàn)比ASP來得更有彈性。 WEB網(wǎng)頁程序員未來在開發(fā)電子商務平臺時,就不需要再考慮客戶廠商操作系統(tǒng)平臺,可更專心于系統(tǒng)功效開發(fā)。對應地,廠商在使用JavaServerPages技術開發(fā)系統(tǒng)平臺時,不再需要擔心未來在擴充軟、硬件時,是否產(chǎn)生不兼容問題。光這一點,就能為企業(yè)省下一大筆費用,這是JSP主要優(yōu)點。 開放開發(fā)環(huán)境 自從1995年,Sun企業(yè)已經(jīng)開放技術與國際Java組織合作開發(fā)和修改Java技術與規(guī)范。JSP應用程序接口(API)毫無疑問已經(jīng)取得成功,并伴隨Java組織不停擴大其應用范圍,現(xiàn)在全力發(fā)展Java技術廠商不勝枚舉,比如:最近IBM企業(yè)強力推廣WebSphere家族,正是完全支持J2EE標準而開發(fā)。數(shù)據(jù)庫廠商Oracle也發(fā)展自己ApplicationServer來和自己企業(yè)本身數(shù)據(jù)庫產(chǎn)品Oracle9i做一緊密結合。那也更不用提Amazon系統(tǒng)供貨商BEA企業(yè),它產(chǎn)品WebLogic也是完全支持JavaServerPages技術和J2EE規(guī)范。 相反,ASP技術僅依靠微軟本身推進,其發(fā)展建立在獨占、封閉基礎之上,而且微軟本身技術又只允許在微軟相關平臺服務器上執(zhí)行,所以,在標準方面顯得有點力不從心。 執(zhí)行性能表現(xiàn) ASP和JSP在執(zhí)行性能表現(xiàn)上,有一段顯著差距,JSP除了在一開始加載時間會比較久外,之后表現(xiàn)就遠遠比ASP表現(xiàn)來得好。原因在于:JSP在一開始接收到請求時,會產(chǎn)生一份Servlet實體(instance),它會先被暫存在內存中,我們稱之為連續(xù)(Persistence),當再有相同請求時,這實體會產(chǎn)生一個線程(thread)來服務它。假如過了一段時間都不再用到此實體時,Container會自動將其釋放,至于時間長短,通常都是能夠在Container上自行設定。 而ASP在每次接收到請求時,都必須要重新編譯,所以,JSP執(zhí)行比每次都要編譯執(zhí)行ASP要快,尤其是程序中存在循環(huán)操作時,JSP速度要快上1到2倍。不過,ASP在這部分缺點,將隨ASP+出現(xiàn)有所改觀,在新版ASP+技術中,性能表現(xiàn)上有很大突破。[7]2.2JDBC介紹 JDBC(JavaDataBaseConnectivity),是用于執(zhí)行SQL語句Java應用程序接口,是一套API集合,在這個集合中設置了許多允許Java程序連接數(shù)據(jù)庫框架。JDBC由一組用Java語言寫成類和接口組成,是一個連接不一樣數(shù)據(jù)庫規(guī)范,其宗旨是讓各數(shù)據(jù)庫開發(fā)商為Java程序員提供標準數(shù)據(jù)庫訪問類和接口。JDBC與Java結合,使用戶能夠很輕易把SQL語句傳送到任何關系型數(shù)據(jù)庫中,程序員用它編寫數(shù)據(jù)庫應用程序,能夠在各種數(shù)據(jù)庫系統(tǒng)上運行。[8]這是真正可移植性軟件所必須具備一個特點。JDBC已經(jīng)被業(yè)界普遍采取,而且是在Java在服務器端成功主要貢獻原因。JDBC驅動程序是依靠獨立軟件企業(yè)開發(fā)。JDBC驅動程序適合特定數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)訪問模型,主要那些數(shù)據(jù)庫系統(tǒng)都有對應驅動程序,比如Microsoft、oracle、Informix、Sybase、Postgress、MySQL等等。JDBC與java應用程序和數(shù)據(jù)庫關系如圖2.2所表示. 圖2.2JDBC與java應用程序和數(shù)據(jù)庫關系JDBC中主要對象包含: class:-DriverManager-驅動管理,取得連接 interface: -Connection–連接對象 -Statement–執(zhí)行SQL語句 -PrepareStatement–執(zhí)行SQL語句,預編譯,可帶參數(shù) -CallableStatement–執(zhí)行存放過程 ResultSet–查詢結果統(tǒng)計集 ResultSetMetaData–統(tǒng)計集元信息 2.3MVC模式介紹 MVC是一個體系結構模式,代表Model—View—Controller,是應用于交互式系統(tǒng)一個體系結構模式。MVC產(chǎn)生于20世紀70年代Palo—Alto試驗室Smalltalk編程環(huán)境。MVC模式指導模塊職責分配和模塊之間通信協(xié)議。職責分配是面向對象分析和設計中最主要工作,協(xié)議設計則是相當困難工作。MVC為這兩項工作提供了指導,所以意義重大。 Model是應用程序對象,也就是包含應用程序數(shù)據(jù)和業(yè)務邏輯對象。Model對外表現(xiàn)為一個對象,實際上能夠也應該是一組子對象集合。 傳統(tǒng)意義上View是屏幕對象,負責向用戶顯示交互界面。這個意義能夠進行擴展,將View視為向外界展現(xiàn)應用程序狀態(tài)接口和界面。 全部用戶輸入都由Controller負責處理。在交互式系統(tǒng)中,Controller是造成Model發(fā)生改變唯一原因,是造成View發(fā)生改變兩個原因之一,所以是控制中心。 Controller將用戶事件翻譯成為請求,而不是命令。假如機械地遵照MVC規(guī)則,Controller邏輯將十分復雜。Controller通常需要查詢View和Model才知道怎樣處理用戶輸入。不要把全部邏輯寫在Controller里。View和Model都是有智能對象。能夠通知它們,由它們自己決定應正確方式。一個應用程序或者組件只能有一個Model,不過這個Model能夠對應多個View。View向Model注冊,要求在Model數(shù)據(jù)發(fā)生改變時取得通知消息。View得到通知消息之后,獲取Model對應數(shù)據(jù),更新自己顯示。View不向Model發(fā)送消息。一個View對應一個Controller。View負責創(chuàng)建和初始化Controller,這也是View和Controller關系親密原因之一。Controller接收用戶輸入,假如有與應用程序數(shù)據(jù)無關,而只包括顯示改變用戶輸入,Controller直接通知View。 Controller和View關系親密另一個原因是當代應用程序界面復雜,靈活多變。所以Controller需要大量了解View情況,大量查詢View信息,距離太遠不利于效率和靈活性,協(xié)議也極難設計,所以經(jīng)常捆綁在一起。比如,現(xiàn)在基于控件圖形界面,很多控件實際上是一個封裝好MVC實體,經(jīng)過屬性、事件和方法與外界協(xié)同工作,強行拆分反而適得其反。 因為一個Model對應多個View,一個View對應一個Controller,所以一個Model對應多個Controllers。Controller接收外部輸入,是造成Model發(fā)生改變唯一原因。同時,Model改變可能造成Controller行為改變。[9] MVC模式如圖2.3所表示。圖2.3MVC模式圖2.4Struts技術概述及工作原理2.4.1Struts技術概述Struts最初是由CraigR.McClanahan創(chuàng)建,然后在用于ApacheSoftwareFoundation(ASF)Jakarta項目。6月,Struts1.0公布。那以后,很多人在源代碼和文檔方面對該項目做出過貢獻,Struts得到快速發(fā)展。在CraigR.McClanahan將Struts用于ApacheJakarta項目標時候,Struts就成為了開放源代碼軟件,任何人都能夠經(jīng)過下載到源代碼。Struts是構建基于javaWeb應用程序首選框架。經(jīng)過采取模型-視圖-控制器(MVC)設計模式,使用Struts能夠開發(fā)使用JavaServlets和JavaServerPages高性能、面向事務Web應用程序,并能夠處理很多相關問題。首先,需要認識到Struts帶來不但僅是編程便利性,Struts還從根本上為Web編程人員構思和構建Web應用程序提供了一個新方式。在MVC體系結構中,中心Servlet(被稱為控制器)接收全部應用程序請求。然后控制器將對請求進行處理,同時準備視圖(通常是JSP)所需要任何數(shù)據(jù),并將此數(shù)據(jù)發(fā)給JSP。接著JSP使用由控制器準備數(shù)據(jù)生成瀏覽器響應。本體系結構中,事務邏輯和顯示邏輯彼此相互獨立。[10]在struts框架中,模型分為兩個部分:·系統(tǒng)內部狀態(tài)·能夠改變狀態(tài)操作(事務邏輯)內部狀態(tài)通常由一組ActinFormJavaBean表示。依照設計或應用程序復雜度不一樣,這些Bean能夠是自包含并具備連續(xù)狀態(tài),或只在需要時才取得數(shù)據(jù)(從某個數(shù)據(jù)庫)。大型應用程序通常在方法內部封裝事務邏輯(操作),這些方法能夠被擁有狀態(tài)信息bean調用。比如購物車bean,它擁有用戶購置商品信息,可能還有checkOut()方法用來檢驗用戶信用卡,并向倉庫發(fā)定貨信息。小型程序中,操作可能會被內嵌在Action類,它是struts框架中控制器角色一部分。當邏輯簡單時這個方法很適合。提議用戶將事務邏輯(要做什么)與Action類所飾演角色(決定做什么)分開。[11]2.4.2Struts工作原理 Struts應用程序執(zhí)行流如圖2.4圖2.41.瀏覽器向Struts應用程序發(fā)出請求,ActionServlet(控制器)對該請求進行處理。2.ActionServlet(控制器)用HTML表單填充ActionForm(視圖)對象,并調用其validate()方法。3.ActionServlet(控制器)執(zhí)行Action對象(控制器)。4.Action(控制器)與模型組件一起為視圖準備數(shù)據(jù)。5.Action(控制器)將控制權交給JSP(視圖)。6.JSP(視圖)使用模型數(shù)據(jù)生成對瀏覽器響應。2.5Hibernate技術概述及工作原理2.5.1Hibernate技術概述 現(xiàn)今應用系統(tǒng)設計中,MVC作為主流系統(tǒng)架構模式之一,貫通了整個設計流程。MVC中M,也就是所謂Model,則能夠說是與業(yè)務邏輯和數(shù)據(jù)邏輯關聯(lián)最為緊密部分。而持久層作為Model層中主要組成,其設計優(yōu)劣勢必對系統(tǒng)整體表現(xiàn)產(chǎn)生至關主要影響。 說到持久層設計就必須說到持久層框架,現(xiàn)在有很多優(yōu)異實現(xiàn)版本,其中ORM持久層框架,則是未來主流。 所謂ORM—Object/RelationalMapper,從字面上了解是:對象—關系型數(shù)據(jù)映射組件。 在java發(fā)展初級階段,直接調用JDBC幾乎是數(shù)據(jù)庫訪問唯一伎倆。伴隨近年來設計思想和Java技術本身演化,出現(xiàn)了許多JDBC封裝技術,這些技術為我們數(shù)據(jù)庫訪問層實現(xiàn)提供了更多選擇,現(xiàn)在主流JDBC封裝框架包含:Hibernate、ApacheOJB、iBatis,JDO以及J2EE框架中CMP等。這些框架以優(yōu)良設計大大提升了數(shù)據(jù)庫訪問層開發(fā)效率,而且經(jīng)過對數(shù)據(jù)訪問中各種資源和數(shù)據(jù)緩存調度,實現(xiàn)了更佳性能。 Hibernate提供了強大、高性能對象到關系型數(shù)據(jù)庫持久化服務。利用Hibernate,開發(fā)人員能夠按照Java基礎語義(包含關聯(lián)、繼承、多態(tài)、組合以及Java集合架構)進行持久化開發(fā)。Hibernate提供HQL(HibernateQueryLanguage)是面向對象查詢語言,它在對象型數(shù)據(jù)和關系型數(shù)據(jù)庫之間構建了一條快速、高效、便捷溝通渠道。 末,Hibernate第一個正式版本對外公布,之后兩年作者GavinKing以靈活快速迭代公布,使得Hibernate快速發(fā)展起來。 6月8日,Hibernate2公布,提供了對大多數(shù)主流數(shù)據(jù)庫良好支持,提供了完善數(shù)據(jù)關聯(lián)、事務處理、緩存管理、延遲加載機制實現(xiàn),同時堪稱典范開發(fā)文檔(HibernateReference)也為廣大用戶提供了一份清楚易懂參考手冊。末,Hibernate取得了Jolt大獎而且Hibernate被業(yè)內著名開源組織JBoss收納,成為隸屬于JBoss組織子項目之一。這兩個時間確立了Hibernate在JavaORM架構中主導地位。[12]2.5.2Hibernate工作原理 Hibernate基礎代碼包含POJO和Hibernate映射文件。 POJO在Hibernate語義中了解為數(shù)據(jù)庫表所對應DomainObject。這里POJO是所謂“PlainOrdinaryJavaObject”,指無格式普通Java對象,能夠簡單地了解為一個不包含邏輯代碼值對象,這么類只包含字段get和set方法。 Hibernate是一個“對象—關系型數(shù)據(jù)映射組件”,它使用映射文件將對象和關系型數(shù)據(jù)相關聯(lián)。在Hibernate中,映射文件通常以“.hbm.xml”作為后綴。 Hibernate配置文件主要用于配置數(shù)據(jù)庫連接和運行時所需要各種屬性。主要配置內容為:SessionFactory中數(shù)據(jù)庫URL配置、數(shù)據(jù)庫JDBC驅動配置、數(shù)據(jù)庫用戶名配置、數(shù)據(jù)庫用戶密碼配置、數(shù)據(jù)庫適配器配置,映射文件配置等等。 因為Hibernate對JDBC進行很好封裝,所以我們并不需要直接經(jīng)過JDBC操作數(shù)據(jù)庫表,而是經(jīng)過Hibernate間接使用。首先經(jīng)過Configurationconfig=newConfiguration().configure();得到Configuration類,Configuration類負責管理Hibernate配置信息。再經(jīng)過SessionFactorysessionFactory=config.buildSessionFactory();得到sessionFactory,SessionFactory中保留了對應該前數(shù)據(jù)庫配置全部映射關系,同時負責維護當前二級數(shù)據(jù)緩存和StatementPool。Session是Hibernate持久化操作基礎。這里Session與傳統(tǒng)意義上Web層HttpSession沒有什么關系。HibernateSession之與Hibernate,相當于JDBCConnection之與JDBC。Session經(jīng)過Sessionsession=sessionFactory.openSession();得到,Session作為貫通Hibernate持久化管理器關鍵,提供了眾多持久化方法,如save、update、delete,find等。經(jīng)過這些方法我們就能夠操作數(shù)據(jù)庫了。Session是一個輕量級對象。通常每一個Session實例和一個數(shù)據(jù)庫事務綁定,也就是說,每執(zhí)行一個數(shù)據(jù)庫事務,都應該先創(chuàng)建一個新Session實例。假如事務執(zhí)行中出現(xiàn)異常,應該撤消事務。不論事務執(zhí)行成功是否,最終都應該調用Sessionclose()方法,從而釋放Session實例占用資源。[13]2.6Tomcat應用服務器介紹 學習Servlet技術,首先需要有一個Servlet運行環(huán)境,也就是需要有一個Servlet容器,這里介紹Tomcat。Tomcat服務器是一個無償開放源代碼Web應用服務器,它是Apache軟件基金會(ApacheSoftwareFoundation)Jakarta項目中一個關鍵項目,由Apache、Sun和其余一些企業(yè)及個人共同開發(fā)而成。因為有了Sun參加和支持,最新Servlet和JSP規(guī)范總是能在Tomcat中得到表現(xiàn)。因為Tomcat技術先進、性能穩(wěn)定,而且無償,因而深受Java興趣者喜愛并得到了部分軟件開發(fā)商認可,成為現(xiàn)在比較流行Web應用服務器 Tomcat很受廣大程序員喜歡,因為它運行時占用系統(tǒng)資源小,擴展性好,支持負載平衡與郵件服務等開發(fā)應用系統(tǒng)慣用功效;而且它還在不停改進和完善中,任何一個感興趣程序員都能夠更改它或在其中加入新功效。Tomcat是一個小型輕量級應用服務器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多場所下被普遍使用,是開發(fā)和調試JSP程序首選。對于一個初學者來說,能夠這么認為,當在一臺機器上配置好Apache服務器,可利用它響應對HTML頁面訪問請求。實際上Tomcat部分是Apache服務器擴展,但它是獨立運行,所以當你運行tomcat時,它實際上作為一個與Apache獨立進程單獨運行。[14] 圖2.6是Tomcat服務器接收客戶請求并做出響應過程。 圖2.6Tomcat服務器接收客戶請求并做出響應過程1客戶端(通常都是瀏覽器)訪問Web服務器,發(fā)送HTPP請求。2Web服務器接收到請求后,傳遞給Servlet容器。3Servlet容器加載Servlet,產(chǎn)生Servlet實例后,向其傳遞表示請求和響應對象。4Servlet實例使用請求對象得到客戶端請求信息,然后進行對應處理。5Servlet實例將處理結果經(jīng)過響應對象發(fā)送回客戶端,容器負責確保響應正確送出,同時將控制返回給Web服務器。[15]2.7MySQL數(shù)據(jù)庫介紹2.7.1數(shù)據(jù)庫歷史和發(fā)展 在當前信息時代,作為信息管理主要工具——數(shù)據(jù)庫技術得到了廣泛應用。數(shù)據(jù)庫一詞起源于20世紀50年代,當初美國研究人員為了戰(zhàn)爭需要,把各種情報集中在一起存放在計算機中,稱為InformationBase或DataBase。半個世紀以來,數(shù)據(jù)庫技術已經(jīng)成為計算機領域中最主要技術之一,它是軟件學科中一個獨立分支。數(shù)據(jù)庫技術出現(xiàn)使得計算機應用滲透到工業(yè)、農(nóng)業(yè)、商業(yè)、行政、科研、工程、國防、軍事、文化教育等各個部門,滲透到社會每個角落,而且正改變著人們工作和生活方式。管理信息系統(tǒng)、辦公自動化系統(tǒng)、決議支持系統(tǒng)等都是使用數(shù)據(jù)庫技術計算機應用系統(tǒng)。數(shù)據(jù)庫技術已經(jīng)成為了信息高速公路關鍵組件技術[16]。當前主要數(shù)據(jù)庫產(chǎn)品有IBMDB2當前版本為9,MicrosoftSQLServer當前版本為,Oracle數(shù)據(jù)庫當前版本為11g,和開源小區(qū)MySQL當前版本為5.1。2.7.2MySQL介紹 MySQL: MySQL是最受歡迎開源SQL數(shù)據(jù)庫管理系統(tǒng),它由MySQLAB開發(fā)、公布和支持。MySQLAB是一家基于MySQL開發(fā)人員商業(yè)企業(yè),它是一家使用了一個成功商業(yè)模式來結合開源價值和方法論第二代開源企業(yè)。MySQL是MySQLAB注冊商標。MySQL網(wǎng)站()提供了關于MySQL和MySQLAB最新消息。MySQL是一個關系數(shù)據(jù)庫管理系統(tǒng)關系數(shù)據(jù)庫把數(shù)據(jù)存放在分立表格中,這比把全部數(shù)據(jù)存放在一個大倉庫中要好得多,這么做將增加你速度和靈活性。“MySQL”中SQL代表“StructuredQueryLanguage”(結構化查詢語言)。SQL是用于訪問數(shù)據(jù)庫最通用標準語言,它是由ANSI/ISO定義SQL標準。SQL標準發(fā)展自1986年以來,已經(jīng)存在多個版本:SQL-86,SQL-92,SQL:1999,SQL:,其中SQL:是該標準當前版本。MySQL是一個真正多用戶、多線程SQL數(shù)據(jù)庫服務器。SQL(結構化查詢語言)是世界上最流行和標準化數(shù)據(jù)庫語言。MySQL是以一個客戶機/服務器結構實現(xiàn),它由一個服務器守護程序mysqld和很多不一樣客戶程序和庫組成。SQL是一個標準化語言,它使得存放、更新和存取信息更輕易。比如,你能用SQL語言為一個網(wǎng)站檢索產(chǎn)品信息及存放用戶信息,同時MySQL也足夠快和靈活以允許你存放統(tǒng)計文件和圖像。[17]MySQL主要目標是快速、健壯和易用。最初是因為我們需要這么一個SQL服務器,它能處理與任何可不昂貴硬件平臺上提供數(shù)據(jù)庫廠家在一個數(shù)量級上大型數(shù)據(jù)庫,但速度更加快,MySQL就開發(fā)出來。2.7.3MySQL主要特征·使用關鍵線程完全多線程。這意味著它能很輕易地利用多CPU。·C、C++、Eiffel、Java、Perl、PHP、PythonAPI·可運行在不一樣平臺上?!ざ鄠€列類型:1、2、3、4、和8字節(jié)長度有符號/無符號整數(shù)、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、TIMESTAMP、YEAR、SET和ENUM類型?!だ靡粋€優(yōu)化一遍掃描多重聯(lián)結(one-sweepmulti-join)非??焖俚剡M行聯(lián)結(join)?!そ?jīng)過一個高度優(yōu)化類庫實現(xiàn)SQL函數(shù)庫而且像他們能達成一樣快速,通常在查詢初始化后不應該有任何內存分配?!ひ粋€非??焖倩诰€程內存分配系統(tǒng)?!ず瘮?shù)名不會與表或列名沖突。比如ABS是一個有效列名字。對函數(shù)調用唯一限制是函數(shù)名與隨即“(”不能有空格·支持ANSISQLLEFTOUTERJOIN和ODBC語法?!と縈ySQL程序能夠用選項--help或-?取得聯(lián)機幫助?!し掌髂転榭蛻籼峁┒鄠€語言犯錯消息
第3章系統(tǒng)需求分析3.1系統(tǒng)功效概述 伴隨網(wǎng)絡發(fā)展,越來越多應用被移植到網(wǎng)絡上,有些人預言網(wǎng)絡操作系統(tǒng)將會代替現(xiàn)在桌面操作系統(tǒng)。采取B/S結構WEB應用程序具備瘦客戶端特點,它不需要像C/S結構桌面應用程序那樣進行繁瑣和費時安裝,你只需要一個瀏覽器便能夠使用WEB應用程序。不過WEB應用程序也有一定不足,因為它將大量操作由服務器完成,這將大大加重服務器負擔,所以大型WEB應用程序需要強大服務器支持。 本系統(tǒng)采取B/S結構設計開發(fā),意在讓用戶經(jīng)過網(wǎng)絡瀏覽器實現(xiàn)對系統(tǒng)訪問。能夠大大降低各個用戶在時間和空間上限制。不一樣級別用戶能夠對系統(tǒng)進行不一樣管理和操作。這個系統(tǒng)主要目標是能夠讓考試變得更方便,讓改卷變得更輕松,讓管理變得更輕易。有了這個系統(tǒng),學生能夠拿到一臺計算機就能夠考試,無須擔心這臺機器上是否裝有考試系統(tǒng)。3.2權限與控制 用戶按照不一樣角色進行分類,分為管理員(admin)、學生(student)和教師(teacher)三類,每個角色對應不一樣權限。admin帳號為系統(tǒng)產(chǎn)生是存在。student和teacher帳號不能注冊,必須由管理員進行錄入,產(chǎn)生對應帳號和密碼在告訴學生和教師,學生和教師可登錄系統(tǒng)進行密碼修改。admin主要職責是維護、管理和添加各種數(shù)據(jù)。teacher主要職責是管理題庫、試卷庫、查看學生考試信息。student主要職責是考試和查看自己考試信息。3.3系統(tǒng)業(yè)務流程分析3.3.1業(yè)務術語名稱說明角色系統(tǒng)中包含管理員(admin)學生(student)教師(teacher)三種角色帳號登錄時需要,唯一區(qū)分每個用戶。密碼登錄時必須輸入。3.3.2業(yè)務流程登錄:圖登錄流程圖
管理員登錄:圖管理員登錄流程圖
教師登錄:圖教師登錄流程圖
學生登錄:圖學生登錄流程圖
3.4系統(tǒng)模塊介紹 依照對計算機考試系統(tǒng)分析和了解,本系統(tǒng)應該包含以下幾個功效:3.4.1登錄模塊 登錄頁面上有一個角色下拉框,兩個文本框分別是輸入帳號和密碼。登錄前選擇登錄角色,輸入帳號和密碼,假如對應數(shù)據(jù)庫表中與輸入帳號密碼相同則登錄成功,不然頁面上顯示錯誤信息。3.4.2系統(tǒng)管理模塊 系統(tǒng)管理模塊是只有管理員可見模塊,它包含5個小模塊,分別是:學校數(shù)據(jù)模塊、學院數(shù)據(jù)模塊、班級數(shù)據(jù)模塊、教師數(shù)據(jù)模塊、學生數(shù)據(jù)模塊。 (1)學校數(shù)據(jù)模塊學校數(shù)據(jù)模塊首先在頁面中列出相關學校數(shù)據(jù),它功效包含對學校數(shù)據(jù)增加、刪除和修改,增加操作將跳轉到一個增加頁面填入對應字段驗證經(jīng)過后保留到數(shù)據(jù)庫。刪除一條統(tǒng)計時則需要考慮這條統(tǒng)計是否被后面數(shù)據(jù)所使用,要是被使用則提醒無法刪除。修改一條統(tǒng)計時跳轉到修改頁面,對一些可修改字段進行修改,驗證經(jīng)過后保留。(2)學院數(shù)據(jù)模塊 學院數(shù)據(jù)模塊首先在頁面中列出相關學院數(shù)據(jù),它功效包含對學院數(shù)據(jù)增加、刪除和修改,增加操作將跳轉到增加頁面,頁面中有一個所在學校字段時一個下拉框,內容為學校數(shù)據(jù)中增加進去學校,選擇一個學校填入其余數(shù)據(jù)驗證經(jīng)過后保留到數(shù)據(jù)庫。刪除一條統(tǒng)計時則需要考慮這條統(tǒng)計是否被后面數(shù)據(jù)所使用,要是被使用則提醒無法刪除。修改一條統(tǒng)計時跳轉到修改頁面,對一些可修改字段進行修改,驗證經(jīng)過后保留。 (3)班級數(shù)據(jù)模塊 班級數(shù)據(jù)模塊首先在頁面中列出相關班級數(shù)據(jù),它功效包含對班級數(shù)據(jù)增加、刪除和修改,增加操作將跳轉到增加頁面,頁面中有兩個下拉框一個是所在學校,一個是所在學院,這兩個為二級聯(lián)動下拉框,選中所在學校后,學院下拉框中顯示對應學校學院,填入其余數(shù)據(jù)驗證經(jīng)過后保留到數(shù)據(jù)庫。刪除一條統(tǒng)計時則需要考慮這條統(tǒng)計是否被后面數(shù)據(jù)所使用,要是被使用則提醒無法刪除。修改一條統(tǒng)計時跳轉到修改頁面,對一些可修改字段進行修改,驗證經(jīng)過后保留。(4)教師數(shù)據(jù)模塊 教師數(shù)據(jù)模塊首先在頁面總列出相關教師數(shù)據(jù),它功效包含對教師數(shù)據(jù)增加、刪除和修改,增加操作將跳轉到增加頁面,頁面中有兩個下拉框一個是所在學校,一個是所在學院,這兩個為二級聯(lián)動下拉框,選中所在學校后,學院下拉框中顯示對應學校學院,填入其余數(shù)據(jù)驗證經(jīng)過后保留到數(shù)據(jù)庫。刪除一條統(tǒng)計時則需要考慮這條統(tǒng)計是否被后面數(shù)據(jù)所使用,要是被使用則提醒無法刪除。修改一條統(tǒng)計時跳轉到修改頁面,對一些可修改字段進行修改,驗證經(jīng)過后保留。 (5)學生數(shù)據(jù)模塊 學生數(shù)據(jù)模塊首先在頁面中列出相關學生數(shù)據(jù),它功效包含對學生數(shù)據(jù)增加、刪除和修改,增加操作將跳轉到增加頁面,頁面中有三個下拉框一個為所在學校,一個為所在學院,一個為所在班級,這三個為三級聯(lián)動下拉框,選擇對應學校、學院、班級后,填入其余數(shù)據(jù)驗證經(jīng)過后保留到數(shù)據(jù)庫。刪除一條統(tǒng)計時則需要考慮這條統(tǒng)計是否被后面數(shù)據(jù)所使用,要是被使用則提醒無法刪除。修改一條統(tǒng)計時跳轉到修改頁面,對一些可修改字段進行修改,驗證經(jīng)過后保留。3.4.3科目管理模塊 科目管理模塊頁面首先顯示大學一年級科目列表,頁面上有大學一年級、大學二年級、大學三年級、大學四年級鏈接,點擊分別顯示不一樣年級科目列表。模塊功效包含對科目數(shù)據(jù)增加、刪除和修改,增加操作是只要選擇一個年級然后填入科目名稱驗證經(jīng)過后保留到數(shù)據(jù)庫。刪除一條統(tǒng)計時則需要考慮這條統(tǒng)計是否被后面數(shù)據(jù)所使用,要是被使用則提醒無法刪除。修改一條統(tǒng)計時跳轉到修改頁面,對一些可修改字段進行修改,驗證經(jīng)過后保留。3.4.4題庫管理模塊題庫管理模塊頁面上包含列出各年級科目,列出題型,列出題目列表,默認為選擇題。題庫管理模塊功效包含對題庫數(shù)據(jù)增加、刪除、修改和產(chǎn)生試卷、試卷重置。增加操作是進入某個科目和某種題型頁面后點擊增加到題目鏈接后進入增加題目標頁面,填入對應數(shù)據(jù)驗證經(jīng)過后保留到數(shù)據(jù)庫。刪除一條統(tǒng)計時則需要考慮這條統(tǒng)計是否被后面數(shù)據(jù)所使用,要是被使用則提醒無法刪除。修改一條統(tǒng)計時跳轉到修改頁面,對一些可修改字段進行修改,驗證經(jīng)過后保留。手動產(chǎn)生試卷首先要選擇(將統(tǒng)計前面checkBox打勾)需要加入到試卷題目,點擊將題目加入到試卷鏈接后題目信息被保留到cookie中,等到各種題型題目都選擇好并加入到試卷后,能夠進行試卷預覽、試卷重置或者直接生成試卷,試卷預覽是以考試試卷形式跳出一個新頁面,試卷重置是將保留到cookie中題目信息去除,生成試卷時首先要進入預覽,填入試卷名和考試時間后按確定將試卷保留到數(shù)據(jù)庫。用戶可到試卷管理模塊查看生成試卷信息。3.4.5試卷管理模塊試卷管理頁面上列出了各年級科目,和科目標試卷列表。點擊試卷名稱能夠查看試卷信息,點擊刪除能夠將此試卷從數(shù)據(jù)庫中刪除。3.4.6帳戶管理模塊 帳戶管理模塊主要分為帳戶信息、帳戶信息修改和帳戶密碼修改3個子模塊。帳戶管理頁面首先顯示帳戶信息,點擊帳戶信息修改鏈接進入帳戶信息修改頁面,顯示帳戶信息各個字段,修改可修改字段(角色和帳號為不可修改)按確定進行修改。點擊帳戶密碼修改進入密碼修改頁面帳號為不可修改,需要輸入舊密碼和輸入兩次新密碼,舊密碼必須正確且兩次新密碼必須相同,滿足則點擊確定修改成功。3.4.7考試管理模塊 考試管理模塊分為考試新聞、進入考試和信息查詢,考試管理模塊首先顯示考試新聞,這個頁面顯示一些新聞或者公告。點擊進入考試鏈接進入另一個頁面,頁面顯示有年級、科目和試卷三個級聯(lián)下拉框供選擇,點擊下一步進入考試頁面,顯示試卷,開始計時,答題完成后點擊提交,后臺進行改卷并保留。點擊信息查詢能夠查詢考試統(tǒng)計,點擊相關統(tǒng)計能夠查看詳細信息。3.4.8信息查詢模塊 信息查詢模塊不一樣與考試管理中信息查詢子模塊,考試管理中信息查詢是讓考試學生查詢自己考試信息用。而這個信息查詢則是為了讓教師用戶查詢某個班級、某個名字或者某個學號學生考試信息。頁面上有一個下拉框顯示教師所在學院班級,兩個文本框,一個輸入學生姓名,一個輸入學號,輸入查詢條件后點擊查詢按鈕在頁面中列出對應查詢結果。點擊某個學生能夠進入此學生考試信息。3.5系統(tǒng)開發(fā)環(huán)境 操作系統(tǒng):MicrosoftWindowsXPprofessional 程序開發(fā)環(huán)境:MyEclipse6.0 應用服務器:Tomcat6 數(shù)據(jù)庫:MySql5.1
第4章系統(tǒng)設計4.1系統(tǒng)整體架構設計 計算機考試系統(tǒng)功效總體結構圖如圖4.1所表示:圖4.1系統(tǒng)整體架構設計4.2系統(tǒng)管理設計 系統(tǒng)管理分為5個子模塊,分別是學校數(shù)據(jù)管理,學院數(shù)據(jù)管理,班級數(shù)據(jù)管理,教師數(shù)據(jù)管理,學生數(shù)據(jù)管理。學校數(shù)據(jù)管理流程如圖4.2.1所表示:圖4.2.1學校數(shù)據(jù)管理流程圖
學院數(shù)據(jù)管理流程圖如圖4.2.2所表示:圖4.2.2學院管理數(shù)據(jù)流程圖
班級數(shù)據(jù)管理流程圖如圖4.圖4.2.3班級數(shù)據(jù)管理流程圖
教師數(shù)據(jù)管理流程圖如圖4.2.4所表示:圖4.2.4教師數(shù)據(jù)管理流程圖
學生數(shù)據(jù)流程圖如圖4.2.5所表示:圖4.2.5學生數(shù)據(jù)管理流程圖
4.3題庫管理設計 題庫管理能夠讓管理員或者教師管理題目,完成對題目標增加、刪除和修改操作,對于生成題目能夠選擇需要生成試卷。題庫管理流程圖如圖4.3所表示:圖4.3題庫管理流程圖
4.4科目管理設計 科目管理能夠讓管理員或者是教師管理各個年級科目,能夠對科目數(shù)據(jù)進行增加、刪除和修改操作??颇抗芾砹鞒虉D如圖4.4所表示:圖4.4科目管理流程圖
4.5試卷管理設計 試卷管理能夠讓管理員或者教師查看某個年級某個科目標試卷,能夠查看某個試卷詳細信息或者是刪除該試卷。 試卷管理流程圖如圖4.5所表示: 圖4.5試卷管理流程圖4.6帳戶管理設計 帳戶管理能夠讓教師和學生用戶能夠修改個人信息,及修改個人密碼。 帳戶管理流程圖如圖4.6所表示: 圖4.6帳戶管理流程圖4.7考試管理設計 考試管理能夠讓學生用戶,查看考試新聞公告,進行考試,或者查看自己考試信息,以及考試試卷信息。 考試管理流程圖如圖4.7所表示: 圖4.7考試管理流程圖4.8信息查詢設計 信息查詢能夠讓教師查詢本學院學生考試情況考試成績。 信息查詢流程如圖4.8所表示:圖4.8信息查詢流程圖4.9數(shù)據(jù)庫設計 一個考試系統(tǒng)必須要有一些必要數(shù)據(jù)庫表來保留所需數(shù)據(jù),比如學校表,學院表,班級表,教師表,管理員表,學生表,因為要考試所以需要題目表,試卷表和考試表。表間關系分別為:一個學校有多個學院,一個學院有多個班級,一個學院有多個教師,一個班級有多個學生,一個科目有多張試卷,一個科目有多個考試,一個科目有多個題目,一張試卷由進行數(shù)次考試,一個學生能夠有數(shù)次考試。 經(jīng)過詳細思索與設計,數(shù)據(jù)庫表設計如圖4.9所表示:圖4.9.1表中<pk>表示主鍵(primarykey),<fk>表示外鍵(foreignkey)。箭頭表示外鍵引用方向。數(shù)據(jù)庫表中意義以下列圖所表示:主要字段名意義SCHOOL學校COLLEGE學院CLASS班級TEACHER教師STUDENT學生SUBJECT科目PAPER試卷EXAM考試XUANZE選擇題TIANKONG填空題POINT分數(shù)LEVEL難度TYPE類型*_ID*標識符*_NAME*名字(名稱)*_AGE*年紀*_ADDRESS*地址*_PASSWORD*密碼*_ACCOUNT*_賬號*_DESC*描述*_BRIEF*簡述*_SCORE*分數(shù)*_TIME*時間表4.9.2數(shù)據(jù)庫表結構字段意義
第5章系統(tǒng)實現(xiàn)5.1系統(tǒng)Model層實現(xiàn)5.1.1類AdminBean:包名com.examsystem.model類名數(shù)據(jù)庫表名AdminBean.javaTB_ADMINOR映射文件AdminBean.hbm.xml字段名privateIntegeradminId;privateStringadminName;privateStringadminPassword;privateStringroleName;ADMIN_IDADMIN_NAMEADMIN_PASSWORDROLE_NAME方法publicvoidsetAdminId(IntegeradminId);publicIntegergetAdminId();publicvoidsetAdminName(StringadminName);publicStringgetAdminName();publicvoidsetAdminPassword(StringadminPassword);publicStr
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 南京工業(yè)大學浦江學院《圖形與標志設計》2021-2022學年第一學期期末試卷
- 非特異性免疫說課稿
- 深圳市萬豪御景苑施工組織設計
- 南京工業(yè)大學浦江學院《企業(yè)家精神》2022-2023學年第一學期期末試卷
- 【初中化學】化學反應的定量關系單元綜合題-2024-2025學年九年級化學人教版上冊
- 南京工業(yè)大學浦江學院《公益組織內部治理和戰(zhàn)略管理》2022-2023學年第一學期期末試卷
- 精神科責任自負協(xié)議書(2篇)
- 南京工業(yè)大學《有機波譜分析》2022-2023學年第一學期期末試卷
- 南京工業(yè)大學《無機非金屬材料工學》2021-2022學年第一學期期末試卷
- 教育4-5歲幼兒尊重并接納不同群體的實施方案
- 技術顧問聘書(通用7篇)
- 穿無菌衣戴無菌手套(課堂)課件
- 胃早癌的簡述課件
- 毛細管電泳檢測糖化血紅蛋白課件
- 核心素養(yǎng)下的道德與法治課教學課件
- 中學生良好學習習慣養(yǎng)成教育課件
- 漢語普通話前后鼻音區(qū)分考試題庫(200題版)
- 四年級上冊語文老師家長會
- 12-14mm帶壓開孔器操作說明書
- 初中語文 九年級 君子自強不息 練習
- 安全培訓教育計劃表模板范本
評論
0/150
提交評論