2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢 業(yè) 論 文 </b></p><p>  題 目 基于JavaEE的畢業(yè)設(shè)計選題測試及管理系統(tǒng)的設(shè)計與實現(xiàn) </p><p>  英文題目 Design and Implementation of The Graduation Design Topics Selection Testing an

2、d Management System Based on JavaEE </p><p>  院 系 信息科學與技術(shù)學院 </p><p>  專 業(yè) 計算機科學與技術(shù) </p><p>  姓 名 <

3、;/p><p>  班級學號 </p><p>  指導教師 </p><p><b>  二○一二年五月</b></p><p><b>  摘 要</b></p><p>  

4、基于JavaEE的畢業(yè)設(shè)計選題測試及管理系統(tǒng)通過在畢業(yè)設(shè)計選題之前的測試來判斷學生能力,指導學生選擇自己優(yōu)勢方向來選擇題目,能夠更好幫助畢業(yè)生正確選題。系統(tǒng)提供給學生有在線測試、查看評測結(jié)果、查看評測報告、推薦導師和課題、提交論文、下載論文等功能。系統(tǒng)提供給老師管理課題、查看學生測試結(jié)果、提交課題研究建議、查看學生論文、上傳批閱的論文等功能。系統(tǒng)提供給系統(tǒng)管理員有管理用戶信息、管理題庫等功能。系統(tǒng)采用的Struts架構(gòu)是對MVC設(shè)計模式

5、的一種實現(xiàn),它繼承了MVC設(shè)計模式的所有特性,組件的模塊化、重用性、靈活性使得開發(fā)更加快捷,管理和維護更加方便。</p><p>  學生測試后可以更了解自己的專業(yè)水平,通過系統(tǒng)推薦的導師和課題,可以幫助學生更好的選擇導師。導師可以通過系統(tǒng)更全面的了解學生的各方面能力同時選擇學生。在學生與導師雙向選定后對學生論文的進度跟進,論文批改工作方面也起到了一定的協(xié)助作用。</p><p>  關(guān)鍵

6、詞:Struts,選題測試,論文管理</p><p><b>  Abstract</b></p><p>  Based on JavaEE the Graduation Design Topics Selection Testing and Management System can determine the ability of the students ac

7、cording to the testing result. The System can guide the students according to their own advantages to choose a topic, and help to evaluate them and select topic correctly. The system provides students with online testing

8、, show evaluation results, show testing scores, recommend tutors and thesis, upload thesis, and download thesis and some other functions. The system pr</p><p>  After testing, students can better understand

9、their professional level. Through the recommendation by the system, students can select their tutors better; tutors can have a more comprehensive understanding of all aspects of students’ ability. The system also has ass

10、istant function in following the track of papers’ writing and in correcting the papers.</p><p>  Key words: Struts, Topics testing, Paper management</p><p><b>  目 錄</b></p>&

11、lt;p><b>  摘 要I</b></p><p>  AbstractII</p><p><b>  1 概 述</b></p><p>  1.1課題意義(1)</p><p>  1.2課題目標(1)</p><p>  1.3論文結(jié)構(gòu)簡介(2

12、)</p><p>  2 技術(shù)介紹和分析 </p><p>  2.1 Struts簡介(3)</p><p>  2.2 Mysql簡介(3)</p><p>  2.3 Myeclipse簡介(4)</p><p>  2.4 Rational Rose簡介(5)</p><p>

13、;<b>  3 系統(tǒng)需求分析</b></p><p>  3.1系統(tǒng)概述(7)</p><p>  3.2系統(tǒng)功能分析(7)</p><p>  3.3系統(tǒng)用例建模(9)</p><p><b>  4 系統(tǒng)設(shè)計</b></p><p>  4.1設(shè)計目標及原則

14、(15)</p><p>  4.2系統(tǒng)總體架構(gòu)設(shè)計(16)</p><p>  4.3系統(tǒng)數(shù)據(jù)庫設(shè)計(17)</p><p>  4.4(Web)表示層設(shè)計(18)</p><p>  4.5業(yè)務(wù)邏輯層設(shè)計(20)</p><p>  4.6(DAO)數(shù)據(jù)訪問層設(shè)計(21)</p><p

15、><b>  5 系統(tǒng)實現(xiàn)</b></p><p>  5.1開發(fā)環(huán)境配置(24)</p><p>  5.2(Web)表示層實現(xiàn)(25)</p><p>  5.3業(yè)務(wù)邏輯層實現(xiàn)(27)</p><p>  5.4(DAO)數(shù)據(jù)訪問層實現(xiàn)(29)</p><p><b>

16、;  6 系統(tǒng)測試</b></p><p>  6.1冒煙測試(33)</p><p>  6.2功能測試(34)</p><p><b>  致 謝(38)</b></p><p><b>  參考文獻(39)</b></p><p><b>

17、;  1 概述</b></p><p><b>  1.1 課題意義</b></p><p>  畢業(yè)設(shè)計是對大學生們在大學期間所學的所有知識的掌握程度進行考核。現(xiàn)在很多學生對大學學習的知識沒有進行過系統(tǒng)的應(yīng)用和總結(jié),不了解自己總體的水平、優(yōu)勢和劣勢。導師與學生之間的交流還停留在紙質(zhì)論文交流的方式。由于不少學生正式選題時不了解有哪些導師的研究方向適合自己

18、,造成選題盲目甚至做出來的畢業(yè)設(shè)計不符合要求等現(xiàn)象。出題的教師出題前也沒有渠道來充分了解學生具體情況,設(shè)置的選題可能無法體現(xiàn)學生的技能水平。學生在制作畢業(yè)設(shè)計期間與老師要進行頻繁的交流,特別是在畢業(yè)論文的修改、提交、審核、評閱、意見反饋,畢業(yè)設(shè)計制作進度的監(jiān)督、系統(tǒng)質(zhì)量的監(jiān)督方面。本系統(tǒng)就是為了方便學生科學的了解自己的專業(yè)技能水平,根據(jù)自己有優(yōu)勢的方面選擇畢業(yè)設(shè)計,方便導師與學生之間的交流和學生順利完成畢業(yè)設(shè)計而提出來的采用當前流行架構(gòu)

19、和技術(shù)完成的系統(tǒng)。</p><p><b>  1.2 課題目標</b></p><p>  通過本課題的研究和課題系統(tǒng)的實現(xiàn),可以讓學生以學生身份登錄,通過學生的在線測試系統(tǒng)將提供測試結(jié)果,根據(jù)測試結(jié)果再提供給學生選題建議,如適合選擇的課題和導師。撰寫論文期間可以上傳寫好的論文和下載導師批改過的論文,導師可以以教師身份登錄,給每個選題填寫題目要求和對學生的期望要求,

20、可以查看學生的評測結(jié)果,對所帶的學生提交的論文可以下載下來進行審閱,并提交到系統(tǒng)供學生查看。管理員通過該系統(tǒng)對所以系統(tǒng)用戶進行管理,對題庫進行管理。最終系統(tǒng)能幫助學生選題和教師出題,以及畢業(yè)論文高效設(shè)計和制作,搭建教師與學生的有效交流平臺。</p><p>  1.3 論文結(jié)構(gòu)簡介</p><p>  系統(tǒng)是根據(jù)軟件工程中軟件開發(fā)過程來制作的,首先進行的是可行性研究,需求分析,總體結(jié)構(gòu)設(shè)計

21、,詳細設(shè)計,編碼實現(xiàn),系統(tǒng)測試,最后是系統(tǒng)維護。根據(jù)這個過程來組織論文的結(jié)構(gòu)如下:</p><p>  (1)概述:主要敘述課題研究對用戶的意義,介紹最終系統(tǒng)應(yīng)該完成的功能和達到的效果。</p><p> ?。?)技術(shù)介紹和分析:對系統(tǒng)所用的技術(shù)和工具作比較和介紹,闡述使用各項技術(shù)和工具的優(yōu)勢。</p><p>  (3)需求分析:根據(jù)實際的應(yīng)用和用戶需求概述得到開

22、發(fā)的系統(tǒng)的需求,通過對角色的分析得到系統(tǒng)使用對象的特點和功能需求。根據(jù)用戶之間的關(guān)系為系統(tǒng)內(nèi)部邏輯的設(shè)計和數(shù)據(jù)庫的設(shè)計提供參考。</p><p>  (4)系統(tǒng)設(shè)計:根據(jù)系統(tǒng)需求設(shè)計系統(tǒng)總體的架構(gòu)和數(shù)據(jù)庫。并解析JavaEE技術(shù)在各層之間的具體應(yīng)用。</p><p>  (5)系統(tǒng)實現(xiàn):根據(jù)系統(tǒng)設(shè)計,闡述系統(tǒng)功能實現(xiàn)過程、數(shù)據(jù)庫創(chuàng)建過程、前后臺工作過程。通過對學生選題測試功能中Struts

23、架構(gòu)的運作過程來更具體的闡述實現(xiàn)過程。</p><p> ?。?)系統(tǒng)測試與維護:通過測試工具的使用,測試系統(tǒng)是否符合用戶需求。通過測試完善系統(tǒng),改進系統(tǒng),改正系統(tǒng)中存在的隱含的缺陷。</p><p>  小結(jié):通過本節(jié)的介紹,使得對系統(tǒng)的制作的意義和目的進一步細化。堅定了實現(xiàn)系統(tǒng)的決心,并對完成系統(tǒng)有了大概的總體把握。</p><p>  2 技術(shù)介紹和分析&l

24、t;/p><p>  2.1 Struts簡介</p><p>  Struts框架是一種流行的MVC框架,它是對MVC的實現(xiàn)[1],將Servlet和JSP標記作為實現(xiàn)的一部分。Struts最早是作為Apache基金會Jakarta項目組的組成部分Open Source項目,項目的創(chuàng)立者希望通過對該項目的研究,改進和提高JavaServer Pages 、Servlet、標簽庫以及面向?qū)ο蟮?/p>

25、技術(shù)水準。Struts采用MVC模式,能夠很好的幫助Java開發(fā)者利用JavaEE開發(fā)Web應(yīng)用。Struts的使用能夠很好的幫助開發(fā)團隊減少在運用MVC設(shè)計模型來開發(fā)Web應(yīng)用的時間。它的優(yōu)勢主要集中在:</p><p> ?。?)是一款開源軟件,開發(fā)者可以深入了解其內(nèi)部實現(xiàn)機制,各種開發(fā)要用的jar包可以通過網(wǎng)絡(luò)下載到本地,非常便捷。</p><p> ?。?)有自己的標記庫即Tagl

26、ib,一方面使得JSP頁面盡可能少的嵌入Java腳本,不必考慮Java語法或其他JSP語法專注于頁面的可視特征上。另一方面給應(yīng)用開發(fā)者很強的后臺支持。</p><p> ?。?)頁面導航功能,通過一個配置文件struts.xml來控制整個系統(tǒng)各部分之間的聯(lián)系,對各個頁面的請求進行分發(fā)。對后期的系統(tǒng)維護提供了很大的便利,對系統(tǒng)的脈絡(luò)也更加清晰。</p><p>  Struts在實現(xiàn)MVC模

27、型時,模型層是將模型分為系統(tǒng)的內(nèi)部狀態(tài)和事物邏輯兩個部分,內(nèi)部狀態(tài)通常由一組ActionForm JavaBean表示,大型應(yīng)用程序的事物邏輯封裝在方法內(nèi)部,小型應(yīng)用程序則可能內(nèi)嵌在Action類中。視圖層由JSP建立,應(yīng)用Struts的標簽庫??刂茖佑玫氖抢^承自ActionSupport的Action類,實際操作中是在struts.xml配置文件中進行Action映射。</p><p>  2.2 Mysql簡

28、介</p><p>  Mysql是目前非常流行的SQL語言數(shù)據(jù)庫,是開放源代碼的非商用的關(guān)系型數(shù)據(jù)庫。由于其開源性使得當前很多系統(tǒng)都使用Mysql數(shù)據(jù)庫。雖然是免費的但是與同類商業(yè)用途的數(shù)據(jù)庫比并不遜色。其主要特性有:</p><p>  (1)數(shù)據(jù)的物理存儲和存取路徑對用戶是不透明的,這樣也減少了用戶的使用難度。對數(shù)據(jù)庫不是十分了解的用戶使用起來比較簡單。</p><

29、;p>  (2)不僅在WINDOWS操作系統(tǒng)還可以在LINUX、UNIX、SUN OS等操作系統(tǒng)上使用。</p><p> ?。?)Mysql提供了不同的數(shù)據(jù)類型供選擇,支持所有的SQL數(shù)值類型。根據(jù)數(shù)據(jù)結(jié)構(gòu)可以選擇不同格式和大小的數(shù)據(jù)類型,使得磁盤空間更加節(jié)省,數(shù)據(jù)庫的性能的到提高。如:char提供的是定長的數(shù)據(jù)存儲類型使得檢索該類型的數(shù)據(jù)比較快,varchar類型的數(shù)據(jù)可以保存變長的字符串,通過設(shè)置其最

30、大可存儲的數(shù)據(jù)的長度可以在不知道數(shù)據(jù)長度的情況下存儲任何小于該最大長度的字符串。</p><p> ?。?)查詢功能很強大,支持SELECT和WHERE語句的count()、avg()、min()、sum()函數(shù)和order by等命令,使得檢索時可以進行一些運算,對檢索出來的結(jié)果可以進行一些處理。</p><p>  (5)支持多個用戶對數(shù)據(jù)庫的同時訪問。</p><

31、p>  與另一個比較常用的Access數(shù)據(jù)庫比較,Access只能運行在Windows操作系統(tǒng),適合數(shù)據(jù)量小的數(shù)據(jù)存儲,但數(shù)據(jù)量太大時會造成服務(wù)器死機有時甚至服務(wù)器崩潰。本系統(tǒng)是面向信息學院所有學生和教師的,要存儲學生信息和教師信息以及題庫信息,不適合使用Access數(shù)據(jù)庫。而開發(fā)的系統(tǒng)對數(shù)據(jù)的查詢和速度要求比較大,所以使用Mysql數(shù)據(jù)庫更加適合本系統(tǒng)。</p><p>  2.3 Myeclipse簡介

32、</p><p>  Myeclipse是企業(yè)級工作平臺是對Eclipse IDE的擴展,它是功能非常豐富的JavaEE的集成開發(fā)環(huán)境,在Myeclipse下可以對系統(tǒng)進行編碼、調(diào)試、測試和發(fā)布,另外支持html的所有標記。在使用Myeclipse時對代碼能進行提示功能,并且對語法的錯誤能提示和定位錯誤。對于一些代碼如JavaBean中的Get和Set方法可以自動生成相應(yīng)的代碼,節(jié)省了工作量。Myeclipse就

33、是Eclipse的插件,它結(jié)構(gòu)上是模塊化得,在不影響其他模塊的情況下可以對任一模塊單褲升級和擴展。系統(tǒng)開發(fā)時使用的是Myeclipse 8.0版本,從Myeclipse 5.0版本就增加了UML雙向建模工具、可視化的Hibernate/ORM工具、Web services支持和Oracle數(shù)據(jù)庫開發(fā)等。之后出現(xiàn)了Myeclipse6.XGA版本,它兼容了Eclipse 3.3,可在WINDOWS,LINUX等操作系統(tǒng)上運行,并且支持Ja

34、va持久化結(jié)構(gòu)開發(fā),能夠?qū)椖孔詣硬渴鸷蛦臃?wù),另外還集成了Myeclipse Tomcat 6服務(wù)器。隨后又出現(xiàn)了Myeclipse 7.0和8.0版本,7.9版</p><p>  2.4 Rational Rose簡介</p><p>  Rational Rose是由美國的Rational公司開發(fā)的一種面向?qū)ο蟮目梢暬9ぞ摺@肦ational Rose可以建立用UML(統(tǒng)一

35、建模語言)描述的軟件系統(tǒng)模型,而且可以自動生成和維護C++、Java、Visual Basic和Oracle等語言和系統(tǒng)的代碼。Rational Rose 包括了統(tǒng)一建模語言(UML)、面向?qū)ο蟮能浖こ蹋∣OSE)及對象建模技術(shù)(OMT)[2]。Rational可以運行在WINDOWS操作系統(tǒng)下,其主要的特點有:</p><p>  (1)保證模型和代碼高度一致,它實現(xiàn)了正向和逆向和雙向工程。它可以更具模型生成

36、代碼,也可根據(jù)軟件系統(tǒng)導出系統(tǒng)的模型。</p><p> ?。?)支持多種語言,Rational Rose支持包括C++、Visual C++、Java等語言,為Rational Rose用戶提供了便利。</p><p> ?。?)為團隊開發(fā)提供強有力的支持,它提供了蔡榮SCM(軟件配置管理)的團隊開發(fā)方式和沒有SCM下的團隊開發(fā)方式,用戶可以根據(jù)具體項目規(guī)模和資源選擇。</p>

37、;<p>  (4)支持模型的Internet發(fā)布,Rose中有Internet Web Publisher能將模型發(fā)布為HTML版本,使得其他人員可以通過IE等瀏覽器瀏覽模型。</p><p> ?。?)生成使用簡單且定制靈活的文檔,Rose中的文檔生成工具SoDA可以提供模型文檔模板,可以自動生成Word格式的文檔。</p><p> ?。?)支持關(guān)系型數(shù)據(jù)庫的建模,Ro

38、se能為SQL Server、Oracle等支持標準DDL的數(shù)據(jù)庫自動生成數(shù)據(jù)描述語言。</p><p>  小結(jié): 在選擇開發(fā)和設(shè)計使用的工具時并不是選擇最好的而選擇的是比較適合本系統(tǒng)的工具。Struts使得開發(fā)的項目層次分明,便于管理。Myeclipse的高度集成性使得與其它軟件的合作性比較好。Rational Rose在建立系統(tǒng)模型過中起到了非常重要的作用。</p><p><

39、b>  3 系統(tǒng)需求分析</b></p><p>  系統(tǒng)需求分析是在需求獲取結(jié)束之后進行的,主要是根據(jù)獲取的需求提煉、分析和仔細審查收集到的需求,以確保項目參與者都明白其含義并分析每個需求與其他需求的關(guān)系,找出其中的錯誤、遺漏、重疊、不一致或其他不足的地方。通過分析得到系統(tǒng)可以實現(xiàn)的范圍和實現(xiàn)能力,根據(jù)用戶的需求對需求進行排序。系統(tǒng)需求分析的目的在與開發(fā)出高質(zhì)量和具體的需求,為軟件設(shè)計和實現(xiàn)

40、提供依據(jù)。</p><p><b>  3.1 系統(tǒng)概述</b></p><p>  基于JavaEE的畢業(yè)設(shè)計選題測試及管理系統(tǒng)要求學生在設(shè)計選題前期參加平臺提供的測試了解自己的專業(yè)知識掌握能力和動手能力,以便選題。同時也為教師了解學生具體情況提供參考,確保畢業(yè)論文(設(shè)計)選題工作的順利開展。此外系統(tǒng)也要解決畢業(yè)設(shè)計的相關(guān)管理業(yè)務(wù)功能,包括學生與教師在畢業(yè)設(shè)計制作期

41、間的論文交流功能。</p><p>  為了保證系統(tǒng)能發(fā)揮其作用,系統(tǒng)管理員要把所有學生和教師信息和測試用題庫按照數(shù)據(jù)庫相應(yīng)的表的要求存入數(shù)據(jù)庫中,導師在學生測試之前應(yīng)該提供所有可選的課題和課題建議和每個課題特別要求哪些課程信息到系統(tǒng)。系統(tǒng)的功能應(yīng)該包括所有用戶的合法登陸,系統(tǒng)根據(jù)學生所在專業(yè)設(shè)置的課程出題,從學生的測試結(jié)果來判斷和推薦適合該學生做的課題和適合選擇的老師。教師可以從系統(tǒng)中查看預(yù)先選擇了自己的學生的

42、測試成績。在畢業(yè)設(shè)計制作期間,學生可以通過系統(tǒng)來與導師交流制作的論文等。該系統(tǒng)使用應(yīng)該盡量簡單,容易被理解。</p><p>  3.2 系統(tǒng)功能分析</p><p>  系統(tǒng)功能分析可以幫助將整個系統(tǒng)的任務(wù)細化成較小的模塊,將一個大問題進行分解。為了能夠?qū)崿F(xiàn)學生的專業(yè)知識掌握能力和動手能力的測試、教師通過學生的測試成績來了解學生綜合能力,系統(tǒng)管理員對系統(tǒng)的后臺數(shù)據(jù)庫進行管理,系統(tǒng)應(yīng)該分別

43、對這三個角色的功能進行實現(xiàn)。系統(tǒng)按角色的功能分為三大功能模塊,如圖3-1所示。</p><p>  圖3-1 功能模塊圖</p><p>  每個功能模塊之間是相互獨立的。</p><p>  3.3 系統(tǒng)用例建模</p><p>  系統(tǒng)的角色是指系統(tǒng)外部的實體,一般系統(tǒng)參與者為系統(tǒng)用戶、與所建造系統(tǒng)交互的其他系統(tǒng)和一些可以運行的進程。由于

44、本系統(tǒng)與其他系統(tǒng)和進程沒有直接的聯(lián)系,是一個獨立的系統(tǒng),所以系統(tǒng)主要參與的角色分為三個:學生、教師和系統(tǒng)管理員。對于不同角色使用該系統(tǒng)是要保證系統(tǒng)部分信息已經(jīng)完善,部分用例有時間上的優(yōu)先順序。所有用戶使用系統(tǒng)時必須先登錄,學生和教師的部分必填的個人信息要導入到系統(tǒng)中,教師在學生測試之前要完成對課題的設(shè)置和課題建議工作。</p><p>  從系統(tǒng)概述可得到,學生參與者具有的功能如圖3-2所示。</p>

45、<p>  圖3-2 學生用例圖</p><p>  student(學生)的用例有:</p><p>  login:登陸系統(tǒng)</p><p>  logout:退出系統(tǒng)</p><p>  testing:測試 </p><p>  extract_questions:抽取試題</p>

46、<p>  answer_questions:回答測題</p><p>  submit_test_paper:提交考卷</p><p>  manage_personal_infor:管理個人信息</p><p>  view_personal_infor:查看個人信息</p><p>  change_password:修改密

47、碼</p><p>  view_test_result:查看測試結(jié)果</p><p>  view_test_report:查看測試報告</p><p>  save_test_report:保存測試報告</p><p>  manage_thesis:管理論文</p><p>  upload_thesis:上傳論

48、文</p><p>  download_thesis:下載已批改論文</p><p>  apply_teacher:預(yù)選導師</p><p>  對于學生的功能可以看到選題測試功能包括:抽取試題、回答問題、提交答卷用例。</p><p><b>  選題測試用例說明:</b></p><p>

49、  前置條件:進入主頁面,登錄系統(tǒng)。</p><p><b>  基本事件流:</b></p><p>  1. 輸入用戶名、密碼和用戶身份</p><p>  2. 點擊“登錄”,系統(tǒng)通過對用戶信息驗證和數(shù)據(jù)庫中用戶信息的對比檢</p><p>  測用戶的合法性,如果用戶合法則進入學生后臺管理首頁</p>

50、<p>  3. 單擊“我要測試”菜單下的“開始測試”,如果用戶還未測試則進入測試</p><p><b>  頁面</b></p><p>  4. 單擊“抽取試題”按鈕,做完測題后,單擊“提交答卷”按鈕,測試完</p><p><b>  畢</b></p><p><b&g

51、t;  備選事件流:</b></p><p>  1. 當用戶輸入的用戶名或密碼為空時,系統(tǒng)將不進行跳轉(zhuǎn),不出現(xiàn)用戶操作頁面</p><p>  2. 當用戶已經(jīng)測試,則不跳轉(zhuǎn)到測試頁面,而是跳轉(zhuǎn)到提示已經(jīng)測試的頁面</p><p>  后置條件:用戶測試完成,得到測試結(jié)果和測試報告。</p><p>  教師實體具有的功能如圖3

52、-3所示。</p><p>  圖3-3 教師用例圖</p><p>  teacher(教師)的用例有:</p><p>  login:登陸系統(tǒng)</p><p>  logout:退出系統(tǒng)</p><p>  attribute_thesises:分配課題</p><p>  manage_

53、student_thesis:管理學生論文</p><p>  fill_in_thesis_requirement:填寫課題要求課程</p><p>  view_student_test_result:查看學生測試結(jié)果</p><p>  manage_apply_information:管理學生預(yù)選情況</p><p>  manage

54、_thesis:管理課題</p><p>  add _thesis:添加課題</p><p>  delete_thesis:刪除課題</p><p>  update_thesis:更新課題</p><p>  view_thesis:查看課題</p><p>  manage_personal_infor:管理個

55、人信息</p><p>  change_password:修改密碼</p><p>  view_personal_infor:查看個人信息</p><p>  教師的主要功能給出選題內(nèi)容及建議,通過查看學生的測試結(jié)果和測試報告了解學生情況。</p><p>  查看學生測試結(jié)果用例說明:</p><p>  前置條

56、件:用戶登錄成功,學生完成測試。</p><p><b>  基本事件流:</b></p><p>  1. 輸入用戶名、密碼和用戶身份</p><p>  2. 點擊“登錄”,系統(tǒng)通過對用戶信息驗證和數(shù)據(jù)庫中用戶信息的對比檢測用戶的合法性,如果用戶合法則進入教師后臺管理首頁</p><p>  3. 教師點擊“學生測試

57、成績”菜單下的“查看測試成績”,系統(tǒng)查找到學生測試成績,提取學生測試信息返回顯示</p><p>  備選事件流:學生未測試則提示學生尚未有測試結(jié)果。</p><p>  后置條件:顯示學生測試成績</p><p>  系統(tǒng)管理員實體具有的功能如圖3-4所示。</p><p>  圖3-4 管理員用例圖</p><p>

58、;  administrator(管理員)的用例有:</p><p>  login:登陸系統(tǒng)</p><p>  logout:退出系統(tǒng)</p><p>  manage_users_infor:管理用戶信息</p><p>  add_user_infor:添加用戶信息</p><p>  delete_user_

59、infor:刪除用戶信息</p><p>  update_user_infor:更新用戶信息</p><p>  select_user_infor:查找用戶信息</p><p>  manage_questions_infor:管理題庫</p><p>  add_questions_infor:添加測題</p><p

60、>  delete_questions_infor:刪除測題</p><p>  update_questions_infor:更新測題</p><p>  view_questions_infor:查找測題</p><p>  manage_thesis_infor:管理課題信息</p><p>  view_thesis_infor

61、:查看課題信息</p><p>  update_password:修改密碼</p><p>  管理員的主要功能之一是對學生信息進行管理。</p><p>  學生信息管理用例說明: </p><p>  前置條件:管理員合法登陸,進入管理員后臺管理首頁</p><p><b>  基本事件流:</b

62、></p><p>  單擊“學生信息管理”菜單下的“查看學生信息”菜單,系統(tǒng)從數(shù)據(jù)庫</p><p>  選出所有學生信息在頁面顯示</p><p>  單擊一條學生信息記錄后的“編輯”按鈕,對信息進行修改單擊“確定”</p><p>  單擊一條學生信息記錄后面的“刪除”按鈕,對信息進行刪除</p><p>

63、  備選事件流:當用戶表中數(shù)據(jù)的外鍵被修改時,如果與外鍵所在基本表中數(shù)據(jù)不符合,則無法修改。當用戶要管理的表格中數(shù)據(jù)為空時,系統(tǒng)不顯示數(shù)據(jù)。</p><p>  后置條件:數(shù)據(jù)管理成功,數(shù)據(jù)庫保存修改后的表信息,數(shù)據(jù)庫刪除記錄。</p><p>  小結(jié): 系統(tǒng)需求分析需要注意很多原則,避免出現(xiàn)的需求出現(xiàn)沖突。通過分析得到的需求還必須與用戶所要的需求相一致。如果對用戶的需求誤解了將對以后的

64、系統(tǒng)的設(shè)計和實現(xiàn)造成很大的誤導,并且不好改動,所以這一步需謹慎。通過對系統(tǒng)進行需求分析,對系統(tǒng)的實現(xiàn)更加細化和明確。</p><p><b>  4 系統(tǒng)設(shè)計</b></p><p>  系統(tǒng)設(shè)計時站在對系統(tǒng)規(guī)劃的角度來考慮系統(tǒng)該如何實現(xiàn)、如何將需求轉(zhuǎn)換為軟件設(shè)計的問題。系統(tǒng)設(shè)計分為概要設(shè)計和詳細設(shè)計。根據(jù)軟件工程中軟件設(shè)計的抽象與逐步求精原則[5],先從系統(tǒng)的整個

65、結(jié)構(gòu)出發(fā)來設(shè)計系統(tǒng)總體架構(gòu)設(shè)計,再設(shè)計系統(tǒng)需要實現(xiàn)的功能模塊、系統(tǒng)界面、數(shù)據(jù)庫表等。</p><p>  4.1 設(shè)計目標及原則</p><p>  隨著科技的發(fā)展,越來越多的自動化的產(chǎn)品被應(yīng)用于生活中,特別是年輕人對這些數(shù)字化產(chǎn)品特別熱衷,這樣使得現(xiàn)在的孩子們都不愿意去使用不易理解,使用復雜的產(chǎn)品。從用戶的使用感受考慮,系統(tǒng)設(shè)計時應(yīng)該盡量以使用簡單、操作一目了然、界面友好、有交互性為主。

66、基于主要用戶為學生團體,所以界面風格上設(shè)計的要清新,美觀。對于不同專業(yè)的學生要評測出真實的水平,測試系統(tǒng)題型應(yīng)該與學生所學專業(yè)設(shè)置的課程掛鉤,并且有難易程度的過度。軟件總體框架要以JavaEE思想來設(shè)計。對于數(shù)據(jù)庫的設(shè)計,要充分考慮到數(shù)據(jù)的存儲需求并充分利用不同數(shù)據(jù)類型的優(yōu)勢來選擇存儲數(shù)據(jù)類型。最終的系統(tǒng)能夠?qū)崿F(xiàn)所有需求獲取階段得到的需求,主要是學生在線測試和對測試進行分析的功能以及論文交流的功能,能夠使老師通過系統(tǒng)了解學生的優(yōu)勢和劣勢

67、,對導師真正出畢業(yè)設(shè)計選題提供參考。系統(tǒng)設(shè)計還應(yīng)該以易于實現(xiàn)、易于測試、易于維護為基本理念。</p><p>  系統(tǒng)設(shè)計的原則是指導設(shè)計過程的。為了能設(shè)計出符合需求的系統(tǒng),設(shè)計時要遵守以下原則:</p><p> ?。?)結(jié)構(gòu)應(yīng)該分層次,從而建立軟件成分之間的控制[6]。</p><p>  (2)設(shè)計應(yīng)當模塊化,邏輯上將軟件劃分為完成特定功能或子功能的部件。&l

68、t;/p><p> ?。?)設(shè)計應(yīng)該包含數(shù)據(jù)抽象和過程抽象</p><p> ?。?)模塊與外部環(huán)境之間的接口盡量少</p><p> ?。?)系統(tǒng)盡量簡單,減少處理的時間和費用</p><p> ?。?)系統(tǒng)數(shù)據(jù)的一致性,對于系統(tǒng)中的相同信息的顯示和存儲要一致</p><p> ?。?)系統(tǒng)具備一定的出錯處理功能,提高系

69、統(tǒng)的可靠性。</p><p>  4.2 系統(tǒng)總體架構(gòu)設(shè)計</p><p>  系統(tǒng)采用的是JavaEE技術(shù),總共分為表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層三層來考慮。系統(tǒng)體系結(jié)構(gòu)如下圖4-1所示。</p><p>  圖4-1 體系結(jié)構(gòu)圖</p><p>  通過Web瀏覽器來作為MVC架構(gòu)的視圖層。Web表示層用于獲取提交的數(shù)據(jù)、顯示請求的業(yè)務(wù)功

70、能返回的數(shù)據(jù)。業(yè)務(wù)邏輯層是處于承上啟下的位置,它完成了DAO層的調(diào)用又被Web表示層調(diào)用。DAO層調(diào)用Bean中對象實現(xiàn)持久化方法,對關(guān)系數(shù)據(jù)庫進行操作。系統(tǒng)運作流程為Web瀏覽器發(fā)送HTTP請求給JSP頁面,在JSP頁面中請求某項業(yè)務(wù),JSP將調(diào)用Service層對業(yè)務(wù)實現(xiàn)的功能函數(shù),Service層在調(diào)用不同的DAO層中的方法,DAO層每個被調(diào)用的方法則實現(xiàn)了對數(shù)據(jù)庫的操作,操作完成后將數(shù)據(jù)庫的數(shù)據(jù)返回給DAO層中的方法,DAO層再

71、返回數(shù)據(jù)給Service層,Service層將數(shù)據(jù)返回給JSP頁面,JSP通過Struts2標簽、HTML標記來顯示數(shù)據(jù),返回HTTP響應(yīng)到Web瀏覽器。此時一次請求服務(wù)完成。</p><p>  4.3 系統(tǒng)數(shù)據(jù)庫設(shè)計</p><p>  根據(jù)對系統(tǒng)的分析得到如下的實體關(guān)系圖如下圖4-2所示:</p><p>  圖4-2 系統(tǒng)E-R圖</p>&l

72、t;p>  從圖中可以看到各個實體間的聯(lián)系。關(guān)系型數(shù)據(jù)庫要滿足三類完整性約束,即實體完整性,參照完整性,用戶自定義的完整性[7]。通過這三個約束將實體型轉(zhuǎn)換得到關(guān)系模式即為數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計:</p><p>  學生(學號,學生姓名,登陸密碼,性別,專業(yè)號,郵箱號,測試標記)</p><p>  課程(課程號,課程名,專業(yè)號)</p><p>  教師(教

73、師號,教師姓名,登陸密碼,性別,允許指導學生數(shù),學院號,郵箱號)</p><p>  管理員(管理員號,管理員姓名,登陸密碼)</p><p>  專業(yè)(專業(yè)號,專業(yè)名,學院號)</p><p>  學院(學院號,學院名)</p><p>  學生測試課程(學號,課程號,課程名,得分,測試日期)</p><p>  問

74、題(問題編號,問題內(nèi)容,選項A內(nèi)容,選項B內(nèi)容,選項C內(nèi)容,選項D內(nèi)容,答案選項,分數(shù),課程號)</p><p>  論文指導(學號,論文號,論文主題,學生論文存放位置,更新標志,學生上傳日期,教師號,教師論文存放位置,教師上傳日期)</p><p>  課題(課題號,課題名,出題日期,課題介紹,課題研究建議,教師號)</p><p>  課題要求(課題號,課題名,

75、課程號,課程名)</p><p>  預(yù)選老師(學號,教師號,預(yù)選標志,教師同意標志,拒絕原因)</p><p>  4.4 (Web)表示層設(shè)計</p><p>  表示層是服務(wù)器與用戶之間的接口。根據(jù)所見即所得原理,表示層將業(yè)務(wù)邏輯層返回的數(shù)據(jù)以用戶能理解的形式在頁面中顯示,用戶通過表示層提供的接口輸入數(shù)據(jù),通過頁面來傳遞數(shù)據(jù)到后臺業(yè)務(wù)邏輯層進行處理。</

76、p><p>  本系統(tǒng)的表示層主要通過不同的Action控制在JSP頁面體現(xiàn)。其中又用到了Struts2的標簽和Ajax技術(shù)。Struts2標簽使得數(shù)據(jù)顯示更加更加方便,代碼量減少,同時數(shù)據(jù)傳輸方便。當業(yè)務(wù)邏輯層將數(shù)據(jù)傳遞給相應(yīng)的Action后,通過struts.xml中的映射來跳轉(zhuǎn)到相應(yīng)的JSP頁面,在頁面中使用Struts2標簽就可以將傳遞過來的參數(shù)顯示在頁面中。用戶在使用系統(tǒng)時更希望界面簡單,操作簡便,有盡量少

77、刷新操作和等待時間。Ajax技術(shù)實現(xiàn)了瀏覽器與服務(wù)器之間數(shù)據(jù)的異步傳輸,Ajax中是使用JavaScript來傳遞數(shù)據(jù)給業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層將處理后要返回的數(shù)據(jù)傳回給請求數(shù)據(jù)的客戶端JSP頁面,頁面再通過DOM(Document Object Model)顯示新數(shù)據(jù),在整個過程中用戶可以不手動刷新頁面。為了更好的實現(xiàn)導航的功能,系統(tǒng)表示層設(shè)計時,讓不同角色的用戶的操作都顯示在導航欄,當頁面跳轉(zhuǎn)時,導航欄不會改變位置,而請求的頁面則顯示

78、在一個固定的框架中。在頁面顯示數(shù)據(jù)時傳遞的是對象數(shù)組。</p><p>  根據(jù)需求分析得到學生登陸后的業(yè)務(wù)功能實現(xiàn)如下活動圖4-3所示。</p><p>  圖4-3 學生活動圖</p><p>  當學生為登陸后可以進行測試或查看個人信息,如果還未進行測試則測試成績、測試報告、預(yù)選老師業(yè)務(wù)都無數(shù)據(jù)顯示,如果已經(jīng)測試則可以查看到測試成績、測試報告、預(yù)選老師、退出系

79、統(tǒng)。</p><p>  學生選題活動圖如圖4-4所示。</p><p>  圖4-4學生選題活動圖</p><p>  學生首先進行測試,系統(tǒng)根據(jù)學生擅長的課程推薦課題及老師,學生預(yù)選課題對應(yīng)的老師。老師通過查看預(yù)選了課題的學生的測試成績決定是否同意學生預(yù)選。老師同意學生預(yù)選則可以分配課題給學生,學生可以查看課題信息;拒絕則給出拒絕信息,學生可以查看老師拒絕信息。

80、</p><p>  4.5 業(yè)務(wù)邏輯層設(shè)計</p><p>  業(yè)務(wù)邏輯層(Service層)主要是針對不同的業(yè)務(wù)需求來調(diào)用數(shù)據(jù)訪問層(DAO層)的方法,從而實現(xiàn)不同業(yè)務(wù)需求功能。業(yè)務(wù)邏輯層提供了一系列可提供給用戶的服務(wù),是對用戶問題提供解決的方法。業(yè)務(wù)邏輯層的實現(xiàn)是通過調(diào)用數(shù)據(jù)訪問層的方法來實現(xiàn)的。業(yè)務(wù)邏輯層不需要知道如何操作具體數(shù)據(jù),只要知道通過DAO層的什么方法得到什么參數(shù),或者傳

81、遞什么參數(shù)從而能達到功能的實現(xiàn)。對于數(shù)據(jù)訪問層而言,業(yè)務(wù)邏輯層主要充當?shù)氖钦{(diào)度者的角色,而對(Web)表示層而言,業(yè)務(wù)邏輯層充當?shù)氖潜徽{(diào)度的角色。</p><p>  當學生申請導師時要傳遞學號和教師號到Service層來調(diào)用Service層的申請方法,Service層將參數(shù)傳遞至DAO層,DAO層再調(diào)用數(shù)據(jù)庫操作方法,操作完成后以applyInfor對象的形式返回申請導師表中的一條記錄,其中applyInfor

82、中的學號stuNum和教師號teacherNum分別依賴于學生表student中的學號和教師表teacher中的教師號,具體如圖4-5所示。</p><p>  圖4-5 預(yù)選導師過程使用的類圖</p><p>  Service層的applyInforSI對象中的setApplyFlag()方法為預(yù)選導師時調(diào)用的方法,該方法調(diào)用了DAO層applyInforDI對象的setApplyFl

83、ag()方法。</p><p>  4.6 (DAO)數(shù)據(jù)訪問層設(shè)計</p><p> ?。―AO)數(shù)據(jù)訪問層主要實現(xiàn)的功能是對數(shù)據(jù)庫中的數(shù)據(jù)進行操作,簡而言之就是一系列的對數(shù)據(jù)庫中的記錄進行增加、刪除、修改、查找操作。DAO層調(diào)用了Bean實體類,使用SQL語句來操作數(shù)據(jù)庫,為了體現(xiàn)類的封裝性,實現(xiàn)時則是調(diào)用封裝好的數(shù)據(jù)庫操作對象中的方法來實現(xiàn)對數(shù)據(jù)庫的操作。</p>&l

84、t;p>  從數(shù)據(jù)庫設(shè)計中得到相應(yīng)的DAO層的設(shè)計如圖4-6所示。</p><p>  圖4-6 DAO層設(shè)計的類文件</p><p>  adminDI.java:對管理員表進行操作</p><p>  applyInforDI.java :對學生預(yù)選導師表進行操作</p><p>  courseDI.java:對課程表進行操作&l

85、t;/p><p>  instituteDI.java:對學院表進行操作</p><p>  majorDI.java:對專業(yè)表進行操作</p><p>  pageDI.java:對上下頁跳轉(zhuǎn)進行判斷</p><p>  questionDI.java:對測題表進行操作</p><p>  stuCourseDI.jav

86、a:對學生測試課程表進行操作</p><p>  studentDI.java:對學生表進行操作</p><p>  teacherDI.java:對教師表進行操作</p><p>  thesisInforDI.java:對課題表進行操作</p><p>  thesisRequirementDI.java:對課題要求表進行操作</p

87、><p>  DAO層與數(shù)據(jù)庫操作對象間的類圖如圖4-7所示。</p><p>  圖4-7 測題DAO操作測題信息表類圖</p><p>  測題DAO(questionDI)通過數(shù)據(jù)庫連接connect類中的連接數(shù)據(jù)庫的方法來獲取數(shù)據(jù)庫連接,再將連接和SQL語句傳遞給數(shù)據(jù)庫操作dbOperator類中的方法來實現(xiàn)對數(shù)據(jù)庫中question表的操作。questionD

88、I中對測題question對象進行了實例化作為DAO層的返回參數(shù)。</p><p>  小結(jié): 系統(tǒng)設(shè)計在軟件工程中占了很重要的角色,并且是占用整個開發(fā)周期中比較長時間的階段。系統(tǒng)設(shè)計的好壞直接影響系統(tǒng)實現(xiàn)時的復雜度,如果設(shè)計時對需求分析不充分則業(yè)務(wù)功能模塊就會缺少從而影響系統(tǒng)功能。通過對系統(tǒng)設(shè)計的分析知道該從哪個方面開始著手做,并且清楚了每個角色的操作。對數(shù)據(jù)庫每個字段的設(shè)計意義也更明確。理解了整個JavaEE

89、在系統(tǒng)架構(gòu)中的表現(xiàn)形式。</p><p><b>  5 系統(tǒng)實現(xiàn)</b></p><p>  系統(tǒng)實現(xiàn)是系統(tǒng)設(shè)計之后的工作,是將系統(tǒng)設(shè)計轉(zhuǎn)換為可執(zhí)行的程序代碼的過程。只有在對數(shù)據(jù)庫設(shè)計、系統(tǒng)結(jié)構(gòu)充分分析之后進行系統(tǒng)開發(fā)工作才能符合需求。系統(tǒng)實現(xiàn)需要掌握系統(tǒng)開發(fā)工具的使用方法和程序設(shè)計語言,本系統(tǒng)主要應(yīng)用程序設(shè)計語言有Java、Javascript,開發(fā)技術(shù)有Str

90、uts、Ajax。系統(tǒng)實現(xiàn)按功能模塊的劃分來分別實現(xiàn),循序漸進。</p><p>  5.1 開發(fā)環(huán)境配置</p><p>  本系統(tǒng)的技術(shù)要求是基于JavaEE的Web應(yīng)用系統(tǒng)。所以要從硬件和軟件兩個方面考慮來配置系統(tǒng)。從系統(tǒng)硬件需求角度出發(fā),系統(tǒng)是在個人PC機上開發(fā)的,普通的PC機的配置即可用于開發(fā)本系統(tǒng)。從軟件角度出發(fā),系統(tǒng)需配置Web系統(tǒng)開發(fā)工具,所以選擇了Myeclipse 8.

91、0作為開發(fā)軟件。由于用到的數(shù)據(jù)很多,為了便于管理和使用的快速、穩(wěn)定,選擇MySQL Server 5.1作為系統(tǒng)的數(shù)據(jù)庫。因為MySQL數(shù)據(jù)庫是要通過SQL命令來操作的不是很方便,為了對數(shù)據(jù)庫的操作能更簡便,系統(tǒng)還需安裝Navicate Lite 8.2,這是一款具有可視化圖形用戶界面,操作安全簡便的MySQL數(shù)據(jù)庫服務(wù)器管理和開發(fā)工具。系統(tǒng)采用的是Tomcat作為Web應(yīng)用服務(wù)器,Tomcat技術(shù)先進、性能也很穩(wěn)定,是當前非常受歡迎的

92、一款服務(wù)器。</p><p>  首先,從各個官方網(wǎng)站下載好各個軟件,因為進行JavaEE開發(fā)時使用的一系列軟件都需要JavaSE的支持,所以首先安裝JDK開發(fā)環(huán)境。之后根據(jù)安裝向?qū)О惭bMyeclipse 8.0、Tomcat、Navicate Lite 8.2、MySQL Server 5.1等軟件。啟動Tomcat,通過在瀏覽器中輸入網(wǎng)址:http://localhost:8080/后是否出現(xiàn)服務(wù)器的主頁面來

93、查看服務(wù)器是否正常運行。啟動Myeclipse,在Myeclipse對服務(wù)器進行配置,在Myeclipse中建立一個Web項目,通過對項目的部署,在瀏覽器中輸入網(wǎng)址來瀏覽本地建立的項目測試Tomcat服務(wù)器與Myeclipse能正確連接。打開Navicat,新建一個數(shù)據(jù)庫,通過Web項目中.java后綴類型的文件中輸入簡單的數(shù)據(jù)庫操作語句,運行該文件后查看數(shù)據(jù)庫能否成功連接。當Myeclipse和Tomcat之間、Myeclipse和N

94、avicate Lite之間、Navicate Lite和MySQL Server之間都能建立聯(lián)系則開發(fā)環(huán)境搭建完畢。</p><p>  5.2 (Web)表示層實現(xiàn)</p><p>  Web表示層的實現(xiàn)是通過Struts調(diào)用對應(yīng)的Action在再JSP中體現(xiàn)來實現(xiàn)的。表示層主要功能有分析提交的動作和Ajax提交的異步請求、顯示請求的數(shù)據(jù)與分析返回給Ajax中Json的數(shù)據(jù)然后將其顯示

95、到用戶界面。首先需要對Struts2進行配置。具體的配置信息寫入web.xml文件。</p><p>  <!--配置歡迎界面--></p><p>  <welcome-file-list></p><p>  <welcome-file>index.jsp</welcome-file></p><

96、;p>  </welcome-file-list></p><p>  <!--配置過濾器--></p><p><b>  <filter></b></p><p>  <!--配置過濾器名稱--></p><p>  <filter-name>stru

97、ts2</filter-name></p><p>  <!--過濾器對應(yīng)的類--></p><p>  <filter-class></p><p>  org.apache.struts2.dispatcher.FilterDispatcher</p><p>  </filter-class&g

98、t;</p><p><b>  </filter></b></p><p>  <filter-mapping></p><p>  <filter-name>struts2</filter-name></p><p>  <!--設(shè)置過濾匹配的URL模式為所有模式

99、均匹配--></p><p>  <url-pattern>/*</url-pattern></p><p>  </filter-mapping> </p><p>  web.xml文件配置好后對所有請求均過濾,在struts.xml中對不同請求決定對應(yīng)的是哪個Action。以學生登陸后開始測試為例,當學生登陸后選擇“開

100、始測試”菜單,進入請求對應(yīng)的Action,代碼如下:</p><p>  <li><a href="courseAction.action?stuNum=<%=session.getAttribute("loginStuNum")%>" target="content">開始測試</a></li>

101、;</p><p>  請求courseAction.action,并且將參數(shù)stuNum傳遞到action中,在struts.xml中配置跳轉(zhuǎn)的Action和不同返回結(jié)果應(yīng)該跳轉(zhuǎn)的頁面,具體配置如下:</p><p>  <!--我要測試--></p><p>  <action name="courseAction" cla

102、ss="com.action.courseAction"></p><p>  <result name="success">/student/test.jsp</result></p><p>  <result name="tested">/student/tested.jsp<

103、/result></p><p><b>  </action></b></p><p>  此時在com.action.courseAction中對請求的任務(wù)提供數(shù)據(jù),具體實現(xiàn)如下:</p><p>  package com.action;</p><p><b>  //引入所需要的包&

104、lt;/b></p><p>  import java.util.List;</p><p>  import com.Service.Implements.studentSI;</p><p>  import com.opensymphony.xwork2.ActionSupport;</p><p>  @SuppressWar

105、nings("serial")</p><p>  public class courseAction extends ActionSupport{</p><p>  private String stuNum;//學生學號</p><p>  public String getStuNum() { //學號的get方法</p&g

106、t;<p>  return stuNum;</p><p><b>  }</b></p><p>  public void setStuNum(String stuNum) {//學號的set方法</p><p>  this.stuNum = stuNum;</p><p><b> 

107、 }</b></p><p>  public String execute() throws Exception {</p><p>  this.stuSI = new studentSI();</p><p>  if(this.stuSI.testFlagIsO(stuNum)){//查看用戶是否已經(jīng)測試</p><p>

108、;  return "tested";//已經(jīng)測試</p><p><b>  }</b></p><p>  return SUCCESS; //未測試</p><p><b>  }</b></p><p><b>  }</b></p>

109、<p>  當根據(jù)struts.xml文件中的映射跳轉(zhuǎn)到com.action.courseAction.action,自動執(zhí)行setStuNum()方法給變量stuNum賦值,再執(zhí)行execute()方法,execute()方法調(diào)用了Service層的方法來判斷用戶是否已經(jīng)測試,如果學生已經(jīng)測試測execute()方法返回值為“tested”字符串,如果學生還沒有進行測試則返回值為“success”字符串,在struts.

110、xml文件中<result></result>標簽下來配置不同的返回結(jié)果所跳轉(zhuǎn)的頁面,當返回返回“tested”字符串則跳轉(zhuǎn)到系統(tǒng)根目錄下student/tested.jsp頁面提示已經(jīng)測試,如果返回的是“success”字符串則跳轉(zhuǎn)到系統(tǒng)根目錄下的student/test.jsp頁面進行測試。</p><p>  5.3 業(yè)務(wù)邏輯層實現(xiàn)</p><p>  業(yè)務(wù)邏

111、輯層實現(xiàn)是通過Service層來實現(xiàn)的,Service層編寫不同的業(yè)務(wù)邏輯,根據(jù)業(yè)務(wù)需要的數(shù)據(jù)來對DAO層的方法進行了調(diào)用來獲取數(shù)據(jù)實現(xiàn)業(yè)務(wù)功能。</p><p>  業(yè)務(wù)邏輯層不需要考慮如何操作底層數(shù)據(jù)庫,只需傳入?yún)?shù)給DAO層的方法,再通過DAO層的方法來獲取所需的數(shù)據(jù)。以測試試題的業(yè)務(wù)邏輯為例進行分析業(yè)務(wù)邏輯層的實現(xiàn)。</p><p>  package com.Service.Im

112、plements;</p><p>  import java.util.List;</p><p>  import com.bean.question;//引入bean中的question類</p><p>  import com.Dao.Implements.questionDI;//引入DAO層的questionDI類</p><p

113、>  public class questionSI {</p><p><b>  //添加測題信息</b></p><p>  public void add(question question){</p><p>  questionDI questionDI = new questionDI();</p><

114、p>  questionDI.addQue(question);</p><p><b>  }</b></p><p>  //刪除測題課程信息</p><p>  public void del(int questionNum){</p><p>  questionDI questionDI = new qu

115、estionDI();</p><p>  questionDI.deleteQue(questionNum);</p><p><b>  }</b></p><p>  //查找某個課程號對應(yīng)的所有測題</p><p>  public List<question> searchAllByCourN(in

溫馨提示

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

最新文檔

評論

0/150

提交評論