版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、本科生畢業(yè)論文(設計)題目: 在線知識測試系統(tǒng)的設計與實現 院 (系) 電子與信息工程系 專 業(yè) 計算機科學與技術 在線知識測試系統(tǒng)的設計與實現摘 要 21世紀的計算機網絡科學技術不斷發(fā)展,過去傳統(tǒng)的基于紙筆的測試形式慢慢的不能適應現在的發(fā)展需求,利用計算機互聯(lián)網技術的在線測試系統(tǒng)應運而生。該系統(tǒng)極大程度上減少了傳統(tǒng)知識測試所帶來的困難,系統(tǒng)應用于教育領域,將會極大的減少教師的工作量。 全文共分為開發(fā)方案、需求分析、系統(tǒng)設計、關鍵技術解決,結論五部分。開發(fā)方案中主要介紹開發(fā)在線測試系統(tǒng)的目的、開發(fā)方案的選擇及開發(fā)框架技術的確定;需求分析介紹了在線測試系統(tǒng)的總體需求及系統(tǒng)各模塊的功能需求;系統(tǒng)設
2、計介紹了系統(tǒng)設計的指導思想、數據庫的設計、系統(tǒng)模塊的設計;關鍵技術介紹了在具體實現時需解決的一些技術,如開發(fā)框架的整合技術、開發(fā)框架與數據庫的連接等。本文采用struts1.2框架,與jsp網絡編程技術和數據庫技術相結合的手段,實現了一個基于mvc模式的在線知識測試系統(tǒng)的設計與實現。本文嚴格按照軟件工程的思想和步驟進行在線知識測試系統(tǒng)的設計與實現的開發(fā),通過需求分析、概要設計、詳細設計、系統(tǒng)的編碼實現等步驟完成在線知識測試系統(tǒng)的設計與實現的研發(fā)工作。關鍵詞 在線測試; struts; ajax; mysqlonline knowledge test systemchen zhe(departm
3、ent of electronic and information engineering,ankang university,ankang,725000)abstract withthecontinuousdevelopmentofthescienceandtechnologyofcomputernetworkinthe21stcentury,thetraditionalknowledgetestbasedonpenandpapercannotmeettheneeds,sotheonlineknowledgetestsystemonaccountofcomputerinternettechn
4、ologyemergesasthetimesrequire.thesystemgreatlyreducesthedifficultiescausedbythetraditionalknowledgetest,anditsapplicationinthefieldofeducationwillgreatlyreducetheteachersworkload.thetextcanbedividedintofiveparts:developmentprograms,requirementsanalysis,systemdesign,keytechnologysolutionsandconclusio
5、n.developmentprogramsmainlyintroducethepurposeofdevelopingonlinetestsystem,theselectionofdevelopmentprogramandtheconfirmationofdevelopmentframework;requirementsanalysisdescribestheoveralldemandforonlinetestingsystemandthefunctionofeachmoduleinthesystem;systemdesignpresentstheguidingideologyofthisdes
6、ign,includingdatabasedesignandsystemmoduledesign;keytechnologysolutionintroducethespecifictechnologyinimplementation,suchastheintegrationoftechnologyfordevelopmentframework,connectionsbetweenframeworkanddatabaseandsoon.thispaperadoptsthemethodofcombiningstruts1.2framework,thejspwebprogramminganddata
7、basetechnologytoachieveabasedonmvc-patterninternetonlineknowledgetestsystem.thisarticledevelopstheinternetonlineknowledgetestsysteminstrictaccordancewiththeideasandthestepsofthesoftwareengineering,andcompletestheresearchanddevelopmentworkoftheinternetonlineknowledgetestsystembyrequirementsanalysis,o
8、utlinedesign,detaileddesign,encodingthesystemandothersteps.keywords onlinetest;struts;ajax;mysql 目 錄1 緒論11.1 引言11.2 研究背景11.2.1 理論研究現狀11.2.2 實踐應用現狀21.2.3 關鍵技術32 系統(tǒng)需求及可行性研究72.1系統(tǒng)的需求72.2可行性研究72.3總結73 系統(tǒng)設計93.1 系統(tǒng)功能93.1.1 系統(tǒng)目標93.1.2 系統(tǒng)綜合功能框架圖93.1.3 系統(tǒng)模塊功能分析113.2 系統(tǒng)數據庫設計134 系統(tǒng)功能實現174.1 數據連接174.2 安全策略174.3
9、 數據庫連接公用模塊174.4 在線知識測試系統(tǒng)的設計與實現設計184.5 測試者信息模塊實現184.6 知識測試模塊及成績處理實現214.7 struts-config.xml文件配置265 后臺模塊295.1 后臺首頁設計295.2 測試者信息管理305.3 知識測試題目管理315.4 ajax動態(tài)下拉列表框326 系統(tǒng)測試356.1 測試者賬號注冊、登錄、找回密碼356.2 后臺測試356.3 在線測試356.4 多人同時在線測試366.5 多名管理員同時登錄367 總結與展望37參考文獻39致 謝411 緒論1.1 引言隨著科技的飛速發(fā)展,網絡技術漸漸深入到人們的日常生活中。同時,帶來
10、的是教育方式的一次變革,而互聯(lián)網在線測試就是其中一個很重要的方向?;趙eb技術的網絡測試系統(tǒng)可以借助于遍布全球的internet進行。因此,知識測試既可以在本地進行,也可以在異地進行,大大擴展了知識測試的靈活性。縮短了傳統(tǒng)知識測試要求老師打印試卷,安排知識測試、監(jiān)考、收集試卷、評改試卷、講評試卷以及分析試卷的時間,這個漫長且復雜的過程,也使知識測試更趨于客觀、公正。在線測試系統(tǒng)極大地提高了教學的靈活性,并且現在在許多領域已經有了廣泛的應用。其中最有影響的案例就是ets(美國教育知識測試中心)舉辦的gre(美國研究生入學知識測試)的計算機化知識測試,它使知識測試由原來的每年只能有兩次參加知識測
11、試的機會變成了每個工作日都可以參加的知識測試。本論文設計了一個基于mysql5.5+jsp+struts1.2+ajax的在線測試系統(tǒng)。該系統(tǒng)原則上可以滿足學校及現代信息化企業(yè)的內部知識測試需求,可以實現學校低成本的投入,提高辦公效率的宗旨。例如:一個學校如果使用了本系統(tǒng),就無需老師閱卷、評卷,而是直接由系統(tǒng)代為判卷,使老師從傳統(tǒng)的繁瑣的閱卷過程中解放出來,為廣大老師省去不少的時間,也提高了準確率,從而有更大的精力致力于日常的教學過程中,極大地提高了辦公效率。在線知識測試系統(tǒng)的設計與實現已成為時代發(fā)展的趨勢,眾多的優(yōu)勢為在線知識測試系統(tǒng)的設計與實現在我國順利普及打下良好的基礎,這也從而使得我國
12、的網絡信息迅速普及,讓中國的高速信息化戰(zhàn)略順利進行! 1.2 研究背景1.2.1 理論研究現狀目前對于在線知識測試系統(tǒng)的設計與實現的前身計算機輔助測試系統(tǒng)的研究,國外很早就開始了,并且在題庫建設、統(tǒng)計測量等方面取得了許多顯著理論成果,比如像我們熟知的經典測量理論和項目反應理論、題庫理論、自適應測驗理論等??墒顷P于internet環(huán)境下的網絡知識測試測評系統(tǒng)的研究目前還處于發(fā)展階段,在設計、開發(fā)方面缺乏系統(tǒng)的理論指導。關于網路知識測試測評系統(tǒng)開發(fā)規(guī)范與標準的研究前景,世界上已經有許多標準化組織或機構制定的網絡教育資源標準里面都涉及到了有關網上在線測試系統(tǒng)的相關內容,其中影響較大的有:ieee l
13、tsc的lom、oclc dublin core的dublin core元數據標準,以及ims的leaning resource metadata和qti。我國教育部高教司于2000年5月已經推出了現代遠程教育資源建設技術規(guī)范,該規(guī)范中對網絡題庫、知識測試系統(tǒng)的建設規(guī)范進行了定義。2000年11月,教育部組織國內8所重點高校的有關專揀成立了教育部教育信息化技術標準委員會(celtsc)開展網絡教育技術標準研制,它指定了中國現代遠程教育技術標準celts,其中包括練習/測試互操作規(guī)范qti(celts-10)、平臺與媒體標準引用組譜(celts-17)。雖然目前這些標準還處于不斷檢驗、完善階段,
14、符合這些標準的網絡知識測試系統(tǒng)還很少。而我國的celts標準主要參考ieee和ims,目前完成了11項規(guī)范,處于試用階段。目前國內的大多數產品,無論是商業(yè)公司或學校開發(fā)的網絡系統(tǒng)大都與這些規(guī)范有一定差距。1.2.2 實踐應用現狀計算機應用于知識測試源于美國,歷經多年,已經在國外得到了廣泛的應用。國外有許多專門的知識測試機構采用計算機輔助測試對參加考核的對象進行評價。著名的知識測試機構有美國思而文學習系統(tǒng)有限公司,它是一家從事教育和計算機化知識測試服務的專業(yè)公司,它在世界的6大洲140多個國家和地區(qū)有2200多個知識測試中心,可用25種語言提供近百個不同類型、一千多種知識測試。每年全球參加計算機
15、化知識測試的人數就有約400萬。如今大部分的授權機構均委托思而文公司為其進行測試、評估。比如在信息技術領域中全球領先的計算機公司的授證知識測試,還有專業(yè)人員的認證知識測試、建筑師和股票經紀人的知識測試、醫(yī)護人員的專業(yè)測試、美國飛機駕駛員(faa)的知識測試等。世界上最大的知識測試機構美國教育知識測試服務中心從1993年開始在cre(研究生入學知識測試)采用自適應知識測試模式,同時逐步減少紙卷筆試為基礎的知識測試。2000年開始,toefl知識測試在中國采用自適應知識測試模式??偟目磥?,國外的知識測試特別是技術資格認證的知識測試,它都逐步采用了計算機輔助測試的方法,且自適應知識測試的形式開始廣泛
16、運用。我國在這方面相對落后,目前還主要是計算機題庫的應用,只有計算機類的知識測試部分采用了計算機輔助測試的方式,如大學計算機初級知識測試、高中信息技術會考。國家在中小學教育中已經開展了建立題庫的工作,大學英語四、六級知識測試(cet)都采用計算機抽題出卷的方式進行測驗。其中比較出名的有杭州電子工業(yè)學院開發(fā)的英語題庫系統(tǒng)、北京師范大學研制的題庫系統(tǒng)等。internet出現后,人們把焦點轉向了基于web的網絡知識測試系統(tǒng)。相對來說國外領先一步,而且目前已有許多成功案例,如:toefl、gre知識測試。微軟、思科的水平認證知識測試已經逐步由原來的單擊版計算機測試向網絡化的測試過渡。微軟atc管理中心
17、基于網絡的聯(lián)機培訓認證知識測試是其中的典型代表。國內的清華大學、西安交通大學、湖北大學、重慶大學等也相繼基于internet網絡開發(fā)了針對客觀題的網上測試系統(tǒng)。另外國內一商業(yè)原件公司也在積極研制,其中比較著名的有英時軟件公司的powerexam、清華豪泰的科教2000,點控科技的點控知識測試平臺等。1.2.3 關鍵技術(1) jsp技術jsp(java server pages)是由sun microsystems公司倡導的并且由許多公司參與一起建立的一種動態(tài)網頁技術標準。jsp技術1有點類似asp技術,它是在傳統(tǒng)的網頁html文件(*.htm,*.html)中插入了java程序段(scrip
18、tlet)和jsp標記(tag),從而形成jsp文件(*.jsp)。 用jsp開發(fā)的web應用是跨平臺的,它既能在linux下運行,也能在其他操作系統(tǒng)上運行。web服務器在遇到訪問jsp網頁的請求時,首先執(zhí)行其中的程序片段,然后將執(zhí)行結果以html格式返回給客戶。程序片段可以操作數據庫、重新定向網頁以及發(fā)送 email 等等,這就是建立動態(tài)網站所需要的功能。所有程序操作都在服務器端執(zhí)行,網絡上傳送給客戶端的僅是得到的結果,對客戶瀏覽器的要求最低。jsp(javaserver pages)是一種基于java的腳本技術2。在jsp 的眾多優(yōu)點之中,其中之一是它能將 html 編碼從 web 頁面的
19、業(yè)務邏輯中有效地分離出來。用 jsp 訪問可重用的組件3,如 servlet、javabean 4和基于 java 的 web 應用程序。jsp 還支持在 web 頁面中直接嵌入 java 代碼5。可用兩種方法訪問 jsp 文件:瀏覽器發(fā)送 jsp 文件請求、發(fā)送至 servlet 的請求6。(2)struts技術struts 是apache軟件基金會(asf)贊助的一個開源項目7。它最初是jakarta項目中的一個子項目 ,該技術在2004年3月成為asf的頂級項目。它通過采用javaservlet/jsp技術,實現了基于java eeweb應用的mvc設計模式的應用框架,是mvc經典設計模
20、式中的一個經典產品。struts框架具有組件的模塊化,靈活性和重用性的優(yōu)點,同時簡化了基于mvc的web應用程序的開發(fā)。struts可以清晰地區(qū)分控制,事務邏輯和外觀,從而簡化了開發(fā)應用程序的過程。struts提供的類使得開發(fā)工作更加簡單,struts配置文件8 struts-config.xml。這是將struts組件結合在一起的文件:默認位置 web-infstruts-config.xml。配置文件可以定義:1)全局轉發(fā)2)actionmapping類 幫助控制器將請求映射到操作3)actionform bean 顯示模塊數據4)jdbc數據源以下是struts工作流程如圖1.1所示。a
21、ctionservletclientactionjspmodelstrust-config.xml(反射)dispath(調用)forwardhttp requesthttp responseget圖1.1 struts流程圖在struts的實現里,model的具體表現形式就是actionform對象和與其對應的action對象了。在struts中model以一個或多個javabean的形式存在。這些bean分為三類:action form、action、javabean orejb。actionform通常稱之為formbean,封裝了來自于client的用戶請求信息(3)jdbc技術jdb
22、c(java data base connectivity,java數據庫連接)是一種用于執(zhí)行sql語句的java api,可以為多種關系數據庫提供統(tǒng)一訪問,它由一組用java語言編寫的類和接口組成。jdbc提供了一種基準,據此可以構建更高級的工具和接口,使數據庫開發(fā)人員能夠編寫數據庫應用程序。只要有了jdbc,向各種關系數據發(fā)送sql語句就成了一件很容易的事。換言之,有了jdbc api,也就不必為訪問sybase數據庫專門寫一個程序,為訪問oracle數據庫又專門寫一個程序,或為訪問informix數據庫又編寫另一個程序等等,如今程序員只需用jdbc api寫一個程序就夠了,該程序可向相應
23、數據庫發(fā)送sql調用。同時,將java語言和jdbc結合起來使程序員不必為不同的平臺編寫不同的應用程序,只須寫一遍程序就可以讓它在任何平臺上運行,這也是java語言的特點“編寫一次,處處運行”的優(yōu)勢。java 具有堅固、安全、易于使用、易于理解和可從網絡上自動下載等特性,是編寫數據庫應用程序的杰出語言。(4)javascript技術9javascript是一種基于對象和事件驅動并具有相對安全性的客戶端腳本語言10。同時也是一種廣泛用于客戶端web開發(fā)的腳本語言,常用來給html網頁添加動態(tài)功能,比如響應用戶的各種操作。它最初由網景公司(netscape)的brendan eich設計,是一種動
24、態(tài)、弱類型、基于原型的語言,內置支持類。javascript是sun公司的注冊商標。ecma國際以javascript為基礎制定了ecmascript標準。javascript也可以用于其他場合,如服務器端編程。完整的javascript實現包含三個部分:ecmascript,文檔對象模型,字節(jié)順序記號11。(5)mysql數據庫12mysql是一種關系型數據庫管理系統(tǒng),是由瑞典mysql ab公司開發(fā),目前屬于oracle公司。關聯(lián)數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。mysql的sql語言是用于訪問數據庫的最常用標準化語言13。my
25、sql軟件還采用了雙授權政策,它分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,所以一般中小型網站的開發(fā)都選擇mysql作為網站數據庫14。由于其社區(qū)版的性能卓越,搭配php和apache可組成良好的開發(fā)環(huán)境。2 系統(tǒng)需求及可行性研究2.1系統(tǒng)的需求隨著社會經濟的發(fā)展,人們對教育也越來越重視。知識測試是教育中的一個重要環(huán)節(jié),近些年來隨著知識測試的類型及復雜程度不斷增加以及知識測試要求不斷提高,過去傳統(tǒng)的知識測試方式要求教師打印考卷、監(jiān)考、批卷、使教師的工作量越來越大,而且這些環(huán)節(jié)由于全部由人工完成,非常容易出錯。因此,許多學?;蛑R測試機構就建立網絡在線知識測
26、試網站來降低管理成本和減少人力物力的投入,同時,也為測試者提供更全面、更靈活的服務。測試者希望對自己的學習情況進行客觀、科學的評價;教務人員希望有效地改進現有的知識測試模式,提高知識測試效率。為了滿足測試者和教務人員的需求,網絡在線知識測試系統(tǒng)的設計與實現應包含在線知識測試、成績查詢等功能,以滿足用戶的需求。2.2可行性研究開發(fā)一個網絡在線測試系統(tǒng),實現系統(tǒng)的主要功能,即添加試題,添加試卷,分發(fā)試卷,在線考試、試卷評分,成績匯總及管理,考生信息管理,定時收卷,注冊與驗證登錄。數據庫可并發(fā)訪問并具有較大的吞吐量。所建議系統(tǒng)是基于b/s模式的web系統(tǒng),使用jsp語言開發(fā)并使用經典的mvc三層構架
27、使用mysql作為數據庫管理系統(tǒng)。tomcat 6.0作為應用服務器使用免費的mysql和tomcat軟件可以大大減少項目開支運用數據庫連接池技術緩解了系統(tǒng)中數據庫的壓力瓶頸,提高了對數據庫操作的性能本系統(tǒng)運用了目前比較流行的web框架strut,提供了對開發(fā)mvc系統(tǒng)的底層很好的支持,而mvc是表現層、業(yè)務邏輯層和持久層分開,因而是系統(tǒng)具有很好的擴充性,用戶界面可以靈活變化。涉及到的最核心的技術問題就是如何實現在不刷新頁面的情況下實時顯示知識測試時間及剩余時間,并做到到達知識測試時間自動提交試卷的功能。如果在ajax技術出現以前,要實現這些功能會比較麻煩,單現在通過ajax技術可以輕松實現這
28、些功能,這為網絡在線知識測試系統(tǒng)的設計與實現提供給了技術保障。2.3總結通過以上的研究,我覺得所建議的在線知識測試系統(tǒng)是可行的。隨著企業(yè)網和校園網的迅猛發(fā)展,網上測試已成為必不可擋的測試方式,將來會漸漸成為一種趨勢,更好的為企業(yè)和學校提供更佳快捷便利的測試機制,在技術方面完全可以實現以上所說的全部功能,只有慢慢的去開發(fā),去實現,才能夠發(fā)現問題,解決問題,慢慢的完善在線知識測試系統(tǒng)的功能,將來的知識測試系統(tǒng)功能一定會更強大,更完善。3 系統(tǒng)設計在該系統(tǒng)設計前,首先要對系統(tǒng)實現的目標,需求有一定的了解與分析,本章的作用就是闡述系統(tǒng)要實現的目標及詳細的系統(tǒng)框架。3.1 系統(tǒng)功能3.1.1 系統(tǒng)目標根
29、據所作的需求分析及用戶的需求可知,網絡在線測試系統(tǒng)屬于中小型的軟件,在系統(tǒng)實施后,應達到以下目標:(1)具有空間性。被授權的用戶可以在異地登陸網絡在線測試系統(tǒng),而無需到指定地點進行知識測試(2)操作簡單方便、界面簡潔美觀。(3)系統(tǒng)提供知識測試時間倒計時功能,使測試者實時了解剩余時間。(4)隨機抽取試題。(5)實現自動提交試卷的功能。當知識測試時間達到規(guī)定時間時,如果測試者還未提交試卷,系統(tǒng)將自動交卷,以保證知識測試嚴肅、公正地進行。(6)系統(tǒng)自動閱卷,保證成績真實準確。(7)測試者可以查詢知識測試成績。(8)系統(tǒng)運行穩(wěn)定、安全可靠。3.1.2 系統(tǒng)綜合功能框架圖根據在線知識測試系統(tǒng)的設計與實
30、現的特點,可以將其分為前臺和后臺兩個部分進行設計。前臺主要用于測試者注冊和登陸系統(tǒng)、在線知識測試、查詢成績以及修改個人資料等;后臺主要用于管理員對測試者信息、課程信息、考題信息和測試者成績信息等進行管理。具體功能結構如圖3.1和圖3.2所示。在線知識測試系統(tǒng)的前臺測試者注冊找回密碼在線知識測試成績查詢修改個人資料退出系統(tǒng)知識測試規(guī)則選擇測試課程準備知識測試在線知識測試自動閱卷顯示知識測試成績圖3.1在線知識測試系統(tǒng)的前臺功能結構圖在線知識測試系統(tǒng)的后臺管理員信息管理測試者信息管理測試者成績查詢課程信息管理套題信息管理知識測試題目管理退出后臺管理圖3.2 在線知識測試系統(tǒng)的后臺功能結構圖3.1.
31、3 系統(tǒng)模塊功能分析本系統(tǒng)主要分為在線測試模塊與后臺管理模塊。在線測試模塊中的主要功能是允許考生在網站上針對指定的課程進行考試。后臺模塊是管理員對網頁信息進行管理的首頁面,在該界面中,管理員可以清楚的了解網站后臺管理系統(tǒng)包含的基本操作。一下是系統(tǒng)模塊中涉及的一些相關頁面:測試者登錄頁面15,該頁面主要用于實現測試者登錄,同時也提供了測試者注冊、找回密碼和進入后臺的超鏈接,如圖3.3所示。圖3.3 測試者登錄頁面(login.jsp)在線知識測試頁面,該頁面用于實現在線答題功能,同時提供了顯示知識測試時間和剩余時間及自動提交試卷的功能,如圖3.4所示。圖3.4 在線知識測試頁面(startexa
32、m.jsp)套題信息管理頁面16,該頁面主要用于實現顯示套題基本信息、批量刪除套題信息等功能,同時還提供了添加套題的超鏈接,如圖3.5所示。圖3.5 套題信息管理頁面(taoti.jsp)試題頁面,該頁面主要用于將知識測試題目添加到數據庫,同時實現了在不刷新頁面的情況下,改變課程時自動顯示相關課程對應的套題,如圖3.6所示。圖3.6 添加知識測試題目頁面(question_add.jsp)3.2 系統(tǒng)數據庫設計根據用戶角色和系統(tǒng)實現的功能,本系統(tǒng)數據庫設計了一個數據庫db_netexam數據庫。 采用的數據庫是mysql5.5 ,包含如下6個表文件:(1)tb_student(測試者信息表)測
33、試者信息表用來保存測試者信息,結構如表3.7所示。表3.7 tb_student測試者信息表字段名數據類型是否為空是否主鍵默認值描述idbigint(8)noyesnullid號(自動編號)namevarchar(20)nononull姓名pwdvarchar(20)nononull密碼sexvarchar(2)nononull性別jointimedatetime(8)nonogetdate()注冊時間questionvarchar(50)nononull提示問題answervarchar(50)nononull問題答案prefessionvarchar(30)yesnonull專業(yè)cardn
34、ovarchar(18)nononull身份證(2)tb_taoti(套題信息表)套題信息表用來保存套題信息,該表的結構如表3.8所示。表3.8 tb_taoti套題信息表字段名數據類型是否為空是否主鍵默認值描述idbigint(8)noyesnullid號(自動編號)namevarchar(50)nononull套題名稱lessonidbigint(8)nononull所屬課程jointimedatetime(8)nonogetdate()添加時間(3)tb_questions(測試題目信息表)用來保存知識測試題目信息,該表中保存著所屬課程和所屬套題的id,通過這兩個id可以獲取所屬課程和套
35、題的信息。結構如表3.9所示。表3.9 tb_questions知識測試題目信息表字段名數據類型是否為空是否主鍵默認值描述idbigint(8)noyesnullid號(自動編號)subjectvarchar(50)nononull問題typechar(6)nononull類型jointimedatetime(6)nonogetdate()添加時間lessonidint(4)nononull所屬課程idtaotildbigint(8)nononull所屬套題idoptionavarchar(50)nononull選項aoptionbvarchar(50)nononull選項boptioncva
36、rchar(50)nononull選項coptiondvarchar(50)nononull選項danswervarchar(50)nononull正確答案notevarchar(50)yesnonull備注(4)tb_sturesult(測試者成績信息表)用來保存測試者成績,該表中的所屬課程字段whichlesson與tb_lesson表中的name字段相關聯(lián)。結構如表3.10所示。表3.10 tb_sturesult測試者成績信息表字段名數據類型是否為空是否主鍵默認值描述idbigint(8)noyesnullid號(自動編號)stuidvarchar(16)nononull準考證號whi
37、chlessonvarchar(60)nononull所屬課程ressingleint(4)nononull單選題分數resmoreint(4)nononull多選題分數restotalint(4)nononull合計分數jointimedatetime(8)nonogetdate()添加時間(5)tb_lesson(課程信息表)tb_lesson表用來儲存課程信息,各字段及含義如表3.11所示。表3.11 tb_lesson課程信息表字段名數據類型是否為空是否主鍵默認值描述idbigint(8)noyesnullid號(自動編號)namevarchar(60)nononull姓名jointi
38、medatetime(8)nonogetdate()注冊時間(6)tb_manager(管理員信息表)tb_manager用來存儲管理員信息,各字段及含義如表3.12所示。表3.12 tb_manager管理員信息表字段名數據類型是否為空是否主鍵默認值描述idbigint(8)noyesnullid號(自動編號)namevarchar(30)nononull姓名pwdvarchar(30)nononull密碼(7)數據表之間的關系設計17圖3.13表達了各數據表之間的關聯(lián)關系.圖3.13數據表之間的關聯(lián)關系由于在線知識測試系統(tǒng)的設計與實現對于數據的安全性及完整性要求比較高,并且為了增加程序的使
39、用范圍,還要保證系統(tǒng)可以擁有儲存足夠多數據的能力。mysql是一種高性能的關系型數據庫管理系統(tǒng),逐漸成為在線事務進程和數據倉庫等最好的數據庫平臺。綜上所述,本系統(tǒng)采用mysql數據庫。4 系統(tǒng)功能實現經過前期的系統(tǒng)功能,需求分析,已經清楚本設計需要完成的具體功能有,在線測試前臺與后臺管理模塊,具體功能劃分如下:4.1 數據連接數據庫作為在線知識測試系統(tǒng)的設計與實現的核心,在建立之后要和前臺應用程序建立連接才能發(fā)揮它的作用。jsp程序通過jdbc來連接和操作數據庫。jdbc是一組api,可以協(xié)助編程人員輕松地處理程序與數據庫之間的連接和操作動作。進行數據庫連接時,需要使用java.sql套件中的
40、類。在正式連接數據庫時,首先必須使用java.sql.class類中的forname方法加載驅動程序類,語法如下:class.forname(string 驅動程序類描述);對于sql server數據庫,使用如下語句加載驅動程序類:class.forname(“com.mysql.jdbc.driver”);加載驅動程序類后,就可以使用drivermanager類來打開數據庫連接,其語法如下:connection 連接對象=drivermanager.getconnection(string 數據庫名稱,string 用戶名稱,string 用戶密碼);對于mysql數據庫,一個示例如下:s
41、tringurl=” jdbc:mysql:/:3306/exam”;username=”root”password=123connection conn=drivermanager.getconnection(url,username,passworcd);相應地,關閉數據庫連接使用連接對象的close方法,其語法如下:連接對象.close();4.2 安全策略使用session限制未經登錄的訪問。當測試者從登錄界面登錄,jsp程序進行用戶名稱和密碼的檢查后,如果數據符合則成功登錄,將用戶的id值寫到session對象中,對以后的頁面都會先檢查session對象保存的數據,
42、從而判斷用戶是否可瀏覽頁面,以達到安全控制的目的。如果檢查失敗都會導向登錄界面,要求用戶重新登錄。4.3 數據庫連接公用模塊在本知識測試系統(tǒng)中,我們把數據庫參數寫入一個名為conndb.properties的配置文件17中,這樣在程序運行時如果環(huán)境變化,可以方便地修改數據庫配置。conndb.properties內容如下:db_class_name=com.mysql.jdbc.driverdb_url=jdbc:mysql:/:3306/db_netexam?useunicode=true&characterencoding=gb2312db_user=rootdb_pwd
43、=1234.4 在線知識測試系統(tǒng)的設計與實現設計在線知識測試系統(tǒng)的設計與實現由一個公用模塊和3個主要功能模塊組成:(1)數據庫連接公用模塊(2)測試者信息模塊(3)在線知識測試模塊(4)后臺模塊4.5 測試者信息模塊實現該模塊主要包括測試者注冊、測試者登錄、修改個人資料以及找回密碼等4個功能18。測試者首先要注冊為網站用戶,然后才被授權登錄網站進行一系列操作的權限;登錄后測試者還可以修改個人的注冊資料。如果測試者忘記了登錄密碼,還可以通過網站提供的找回密碼功能快速找回密碼。由于本系統(tǒng)采用的是struts框架,所以在實現測試者信息模塊時,需要編寫測試者信息模塊對應的actionform類和act
44、ion實現類。(1)編寫測試者信息模塊的actionform類。在測試者信息模塊中,只涉及到數據表tb_student(測試者信息表),雖然根據這個數據表可以得出測試者信息模塊的actionform類。但是本模塊中應用的actionform類中并不是只包括這些屬性。由于在修改個人資料時,需要驗證輸入的原密碼是否正確,所以還需要在測試者信息的actionform類中添加一個oldpwd屬性,同時,在進行批量刪除測試者信息時,還需要添加一個保存要刪除測試者id號的delidarray屬性,由于是批量刪除,所以該屬性類型為字符串數組。代碼位置(actionformstudentform.java)p
45、ublic class studentform extends actionform private string sex;/性別private string pwd;/密碼private date jointime;/注冊時間private string profession;/專業(yè)private string name;/姓名private string answer;/密碼提示答案private string id;/自動生成的id號private string question;/密碼提示問題private string cardno;/private string oldpwd;/原
46、密碼private string delidarray=new string0;/記錄刪除id號的屬性public string getsex() return sex;public void setsex(string sex) this.sex = sex;(2)創(chuàng)建測試者信息模塊的action實現類測試者信息模塊化的action實現類student繼承了action類。在該類中,首先需要在該類的構造方法中分別實例化測試者信息模塊的studentdao類。action實現類的主要方法是execute(),該方法會被自動執(zhí)行,這個方法本身沒有具體的事務,它是根據httpservletrequ
47、est的getparameter()方法獲取的action參數值執(zhí)行相應方法的。測試者信息模塊action實現類的關鍵代碼如下:代碼位置(actionstudent.java)public actionforward execute(actionmapping mapping, actionform form,httpservletrequest request, httpservletresponse response) string action = request.getparameter(action);/獲取action參數的值if (studentquery.equals(acti
48、on) return studentquery(mapping, form, request, response);/查詢測試者信息的方法 else if (login.equals(action) /測試者身份驗證的方法return studentlogin(mapping, form, request, response); else if (studentadd.equals(action) /測試者注冊的方法system.out.println(開始增加測試者。);return studentadd(mapping, form, request, response);(3)測試者注冊的
49、實現過程運行在線知識測試系統(tǒng)的設計與實現,首先進入的是測試者登錄頁面,在該頁面中單擊“注冊”按鈕,即可進入到測試者注冊頁面,在該頁面中輸入個人資料及密碼,如圖4.1所示。單擊“保存”按鈕,系統(tǒng)將根據您輸入的身份證號進行驗證是否已經注冊,如果沒有注冊,將彈出如圖4.2所示的提示框,否則進入到注冊失敗對話框。圖4.1測試者注冊頁面的運行結果圖4.2 注冊成功對話框注冊信息頁面主要用于收集輸入的測試者注冊信息,及通過自定義的javascript函數驗證輸入信息是否合法。在設置用于收集注冊信息的表單時,采用的是struts框架的html標簽實現的。(4)修改測試者信息的action實現類在添加注冊信息
50、頁面中輸入合法的注冊信息后,單擊“保存”按鈕,網頁會訪問一個url,這個url是/manage/student.do?action=studentadd。從該url地址中可以知道添加注冊信息頁面涉及到的action的參數值為studentadd,也就是當action=studentadd時,會調用保存測試者注冊信息的方法customeradd()。在該方法中,首先需要將接受到的表單信息強制轉換成actionform類型,然后調用studentdao類中的insert()方法,將測試者信息保存到數據表中,并將返回值保存到變量ret中,如果返回值為re,表示該測試者信息已經注冊,將提示信息“您已經
51、注冊,直接登錄即可!”保存到httpservletrequest對象的error參數中,然后將頁面重定向到錯誤提示信息頁面;否則,如果返回值為miss,表示注冊失敗,將錯誤提示信息“注冊失敗”保存到httpservletrequest對象的error參數中,然后將頁面重定向到錯誤提示信息頁面;否則表示注冊成功,將返回的準考證號保存到httpservletrequest對象的ret參數中,然后將頁面重定向到測試者注冊成功頁面。保存測試者注冊信息的方法studentadd()的具體代碼如下(actionstudent.java):/ 添加測試者注冊信息private actionforward s
52、tudentadd(actionmapping mapping, actionform form,httpservletrequest request, httpservletresponse response) studentform studentform = (studentform) form;string ret = studentdao.insert(studentform);system.out.println(返回值ret: + ret);if (ret.equals(re) request.setattribute(error, 您已經注冊,直接登錄即可!);return mapping.findforward(error);else if(ret.equals(miss)request.setattribute(error, 注冊失??!);return mapping.findforward(error);elserequest.setattribute(ret,ret);return mapping.findforward(studentadd);(5)編寫保存測試者注冊信息的studentdao(接口)類。保存測試者信息使用的studentdao類的方法是insert()。在inser
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專用設備基礎知識考核試卷
- 2025年度主題餐廳合作經營合同書
- 2025年度特殊工種解除勞動合同協(xié)議書范本
- 2025年度餐飲服務與供應鏈管理合同
- 寵物心臟疾病介入治療技術考核試卷
- 印刷油墨研發(fā)考核試卷
- 2025年全球及中國斗式橋梁檢查車行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 財務課程設計企業(yè)
- 麻疹課程設計方案
- 非遺課程設計蒸花饃
- 2025寒假散學典禮(休業(yè)式)上校長精彩講話:以董宇輝的創(chuàng)新、羅振宇的堅持、馬龍的熱愛啟迪未來
- 安徽省示范高中2024-2025學年高一(上)期末綜合測試物理試卷(含答案)
- 安徽省合肥市包河區(qū)2023-2024學年九年級上學期期末化學試題
- 《酸堿罐區(qū)設計規(guī)范》編制說明
- PMC主管年終總結報告
- 售樓部保安管理培訓
- 倉儲培訓課件模板
- 2025屆高考地理一輪復習第七講水循環(huán)與洋流自主練含解析
- GB/T 44914-2024和田玉分級
- 2024年度企業(yè)入駐跨境電商孵化基地合作協(xié)議3篇
- 《形勢與政策》課程標準
評論
0/150
提交評論