版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 本科畢業(yè)設(shè)計任務(wù)書</b></p><p> 本科畢業(yè)設(shè)計進度計劃表</p><p> 本科畢業(yè)設(shè)計開題報告</p><p> 題 目:“明成天下-三國英雄行”游戲設(shè)計與開發(fā)</p><p> 2013 年 3 月 15 日</p><p><b&g
2、t; 本科畢業(yè)論文</b></p><p><b> ?。?0 屆)</b></p><p> “明成天下-三國英雄行”游戲設(shè)計與開發(fā)</p><p><b> 摘 要</b></p><p> 隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)絡(luò)游戲的出現(xiàn)代表了一種全新娛樂方式的誕生。目前網(wǎng)絡(luò)游戲正
3、以其獨特的魅力吸引著眾多的玩家。隨著游戲產(chǎn)業(yè)的蓬勃發(fā)展將需要越來越多的人加入到游戲開發(fā)中來,而Java是現(xiàn)在全球最時髦的開發(fā)工具之一,它擁有一套龐大且完善的類庫,內(nèi)置了其他語言需要靠庫甚至是操作系統(tǒng)才能支持的功能。Java語言的大部分是為因特網(wǎng)設(shè)計的,所以,程序員可以很容易的用Java編寫并運行基于Web的游戲。</p><p> 本設(shè)計是一款基于java的網(wǎng)頁游戲,簡要概述了JSP的技術(shù)特點,B/S架構(gòu),Aj
4、ax技術(shù),html,xml,JavaScript,S2SH框架和數(shù)據(jù)庫技術(shù)。隨后構(gòu)建了一個B/S模式的網(wǎng)絡(luò)游戲,并對該系統(tǒng)進行需求分析,總體設(shè)計,詳細設(shè)計,編碼與測試。</p><p> 本文從游戲的背景研究和發(fā)展現(xiàn)狀開始,詳細描述了整個游戲的制作過程。對實現(xiàn)的主要功能以及操作過程進行了重點討論,開發(fā)用到了Java類庫中的很多的包以及其中的類,文中會對這些包和類的用法進行講解。</p><p
5、> 關(guān)鍵詞:網(wǎng)絡(luò)游戲;B2C;JAVAEE;javascript</p><p><b> Abstract</b></p><p> With the rapid development of Internet, network game represents a new form of entertainment. At present the net
6、work game is its unique charm to attract a large number of game player. As the development of game industry will need more and more people join in the game development, and Java is one of the world's most popular dev
7、elopment tools now, it has a huge sound library, built in other languages need to rely on the library or operating system can support functions. Most of the Java language is</p><p> This is a design based o
8、n the Java webpage game, briefly summarizes the characteristics of JSP technology, B/S framework, AJAX technology, HTML, XML, JavaScript,S2SH framework and database technology. Then we construct a B/S model of network ga
9、me, and carries on the demand analysis, the system design, detailed design, coding and testing.</p><p> This paper starts from the research background and status of game development, a detailed description
10、of the process of the whole game. The main functions of the system and operation process were discussed, development and use of the Java Library of many of the package and the class, this paper will analyse these package
11、s and classes.</p><p> Keywords: network game;B2C;JAVAEE;JavaScript</p><p><b> 目 錄</b></p><p><b> 1 緒論1</b></p><p><b> 1.1選題背景1&
12、lt;/b></p><p> 1.2課題發(fā)展概況1</p><p> 1.3 B/S架構(gòu)簡介2</p><p> 1.4 jQuery技術(shù)簡介2</p><p> 1.5 Ajax技術(shù)簡介2</p><p> 1.6 MVC框架簡介2</p><p> 1.7 S2
13、SH框架簡介2</p><p> 1.8數(shù)據(jù)庫技術(shù)簡介3</p><p> 2 需求分析4</p><p><b> 2.1功能需求4</b></p><p><b> 2.2性能需求4</b></p><p><b> 2.3開發(fā)環(huán)境4&
14、lt;/b></p><p><b> 2.4運行環(huán)境4</b></p><p> 3 系統(tǒng)總體設(shè)計5</p><p> 3.1基本設(shè)計原則5</p><p> 3.2業(yè)務(wù)流程設(shè)計5</p><p> 3.3數(shù)據(jù)庫設(shè)計6</p><p> 3
15、.3.1概念數(shù)據(jù)模型設(shè)計7</p><p> 3.3.2邏輯數(shù)據(jù)模型設(shè)計8</p><p> 3.3.3物理數(shù)據(jù)模型設(shè)計8</p><p> 3.4系統(tǒng)結(jié)構(gòu)設(shè)計8</p><p> 3.4.1頁面結(jié)構(gòu)設(shè)計8</p><p> 3.4.2代碼結(jié)構(gòu)設(shè)計9</p><p> 4
16、 系統(tǒng)詳細設(shè)計10</p><p> 4.1數(shù)據(jù)庫實現(xiàn)10</p><p> 4.2系統(tǒng)所需jar包10</p><p> 4.3源代碼設(shè)計12</p><p> 4.3.1面向接口編程12</p><p> 4.3.2軟件包和JAVA源代碼文件12</p><p>
17、 4.4頁面設(shè)計15</p><p> 5 頁面展示和異常處理17</p><p> 5.1頁面展示17</p><p> 5.2信息驗證及異常處理20</p><p><b> 總結(jié)21</b></p><p><b> 參考文獻22</b>&l
18、t;/p><p><b> 致謝23</b></p><p><b> 附錄24</b></p><p><b> 1 緒論</b></p><p><b> 1.1選題背景</b></p><p> 三國是中國歷史上
19、東漢與西晉之間的分裂對峙時期,有曹魏、蜀漢、東吳三個政權(quán)。三國時代波瀾壯闊,充滿生機,常引起后人追思。晉代陳壽所著史書《三國志》,對研究三國歷史頗有參考價值。明代羅貫中以三國歷史為藍本,編撰小說《三國演義》成為中國四大名著之一,其豐富多彩的歷史內(nèi)涵也流傳到世界各地。時至今日,三國時期的人物及事件仍然是言談、文學(xué)、影視、游戲等各個方面的重要內(nèi)容。</p><p> 三國游戲在當(dāng)今已成為很熱門話題,選題以三國魏蜀吳
20、為背景順應(yīng)大眾的需要,將會得到廣泛的關(guān)注,從而可以發(fā)揮此游戲的價值</p><p> 而Java的創(chuàng)建者把Java稱為“網(wǎng)絡(luò)編程語言”,且由于JAVA游戲一般來說簡單有趣,并且對用戶硬件要求極小,所以JAVA游戲通常對使用計算機的廣大用戶都有吸引力。</p><p><b> 1.2課題發(fā)展概況</b></p><p> 在人們逐步進入信
21、息時代后,電腦游戲使得人生變成了真正的游戲。在傳統(tǒng)中國社會中,文化、教育與知識是神圣的,莊嚴的,是天地君親師。這種傳統(tǒng)的體制,使人們在接受教育的過程中,就受到了束縛。如果誰把這種神圣的東西與游戲連在一起,就會被認為是對圣賢的一種褻瀆。而現(xiàn)在,網(wǎng)絡(luò)技術(shù)和數(shù)字技術(shù)把文化、教育和知識都變成了娛樂變成了游戲,將它們從神壇上請下來,使它們變成了大眾的、平民的東西,可愛的、容易接受的東西。作為融合高科技的文化藝術(shù)產(chǎn)品,電腦除給人們的生活帶來聯(lián)想之外
22、,它更能給使用者帶來更多現(xiàn)實中不能擁有的體驗,這正是當(dāng)今世上被看好的體驗型經(jīng)濟的典型代表。隨著人民生活水平的提高,人們的生活模式和思想模式都發(fā)生著變化。電腦游戲業(yè)經(jīng)過多年發(fā)展,跌跌撞撞地走過來。應(yīng)該看到人們在電腦和互聯(lián)網(wǎng)帶來的時代標志性變化中,電腦游戲市場的逐步完善與巨大的潛在能量,作為一種現(xiàn)代娛樂形式,其正在世界范圍內(nèi)創(chuàng)造巨大的市場空間和受眾群體。</p><p> 傳統(tǒng)的單機游戲曾風(fēng)靡一時,游戲愛好者在簡單
23、的打斗中獲得了虛幻世界的滿足,但過了一段時間后,單機游戲的模式由于不能滿足人們相互交流的愿望以及其內(nèi)容的簡單重復(fù),面對電腦的獨孤求敗總讓人有一種自以為是而又百無聊賴的感覺。逐漸失去了對用戶的吸引力,游戲愛好者期待著新的游戲模式出現(xiàn)。于是,電腦游戲開始朝著網(wǎng)絡(luò)游戲發(fā)展,隨著網(wǎng)絡(luò)建設(shè)快速發(fā)展,人們生活方式隨著時代發(fā)展而改變,網(wǎng)絡(luò)游戲迅速取代單機游戲成為了游戲玩家新的寵兒。</p><p> 1.3 B/S架構(gòu)簡介&
24、lt;/p><p> 瀏覽器和服務(wù)器架構(gòu)。無需在客戶機上安裝應(yīng)用軟件,只需要求客戶機裝有瀏覽器即可。</p><p> 瀏覽器和服務(wù)器架構(gòu)的特點和優(yōu)勢:</p><p> ?。?)分布性強,可以隨時隨地進行查看游戲。</p><p> (2)具有良好的擴展性,通過增加網(wǎng)頁即可增加服務(wù)器功能。 </p><p> ?。?/p>
25、3)維護簡單方便,只需要改變服務(wù)器端,就可以對所有用戶進行同步的更新。</p><p> 1.4 jQuery技術(shù)簡介</p><p> jQuery是一個優(yōu)秀的Javascript框架。它是輕量級的js庫 ,它兼容CSS3,還兼容各種瀏覽器,jQuery使用戶能更方便地處理HTML documents、events、實現(xiàn)動畫效果,并且方便地為網(wǎng)站提供AJAX交互。jQuery還有一個
26、比較大的優(yōu)勢是,它的文檔說明很全,而且各種 應(yīng)用也說得很詳細,同時還有許多成熟的插件可供選擇。jQuery能夠使用戶的html頁面保持代碼和html內(nèi)容分離。</p><p> 1.5 Ajax技術(shù)簡介</p><p> Ajax的核心是JavaScript對象XmlHttpRequest,它是一種支持異步請求的技術(shù)。簡而言之,XmlHttpRequest使您可以使用JavaScrip
27、t向服務(wù)器提出請求并處理響應(yīng),而不 阻塞用戶,因特網(wǎng)應(yīng)用程序可以變得更完善,更友好。</p><p> 1.6 MVC框架簡介</p><p> M(Model,模型)、V(view,視圖)、C(controller,控制器)。是Xer ox PARC在八十年代為編程語言Smalltalk-80發(fā)明的一種軟件設(shè)計模式,至今已被廣泛使用。最近幾年被推薦位Oracle旗下Sun公司Java
28、 EE平臺的設(shè)計模式,并且受到越來越多的使用ColdFusion和PHP開發(fā)者的歡迎。</p><p> MVC設(shè)計模式把程序的輸入、處理和輸出分開,使各個部件處理自己的任務(wù)。使程序有較高的重用性和適用性,并且有著較低的生命周期成本,有利于軟件工程化管理并具備較高的可維護性。</p><p> 1.7 S2SH框架簡介</p><p> S2(Struts2)
29、、S(Spring)、H(Hibernate)三大框架相整合,Struts2采用攔截器機制處理用戶的請求,使業(yè)務(wù)邏輯控制與ServletAPI完全脫離開的框架,Spring是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架,Hibernate是一個開源的對象關(guān)系映射框架,運用它可使程序員使用對象編程思維操縱數(shù)據(jù)庫。</p><p> 1.8數(shù)據(jù)庫技術(shù)簡介</p><p>
30、數(shù)據(jù)庫技術(shù)是現(xiàn)代信息科學(xué)與技術(shù)的重要組成部分,是計算機數(shù)據(jù)處理與信息管理系統(tǒng)的核心。數(shù)據(jù)庫技術(shù)研究和結(jié)局了計算機信息處理過程中大量數(shù)據(jù)有效地組織和存儲的問題,在數(shù)據(jù)庫系統(tǒng)中減少數(shù)據(jù)存儲冗余,實現(xiàn)數(shù)據(jù)共享、保障數(shù)據(jù)安全以及高效得檢索和處理數(shù)據(jù)。</p><p> MySql:是一種數(shù)據(jù)庫查詢和程序設(shè)計語言,可以用于存儲數(shù)據(jù),查詢、更新管理關(guān)系數(shù)據(jù)庫系統(tǒng)。嵌入到Java代碼中實現(xiàn)對數(shù)據(jù)庫的操作。</p>
31、<p><b> 2 需求分析</b></p><p><b> 2.1功能需求</b></p><p> 功能需求分析是整個軟件工程中的一個最關(guān)鍵的過程。主要任務(wù)是根據(jù)用戶需求和運行條件,確定系統(tǒng)將實現(xiàn)的功能。</p><p> 經(jīng)過需求分析,本三國游戲系統(tǒng)具體需求如下:</p>
32、<p> (1)用戶注冊、登錄;</p><p> ?。?)選擇勢力查看信息;</p><p> ?。?)選擇城市操作具體內(nèi)容;</p><p> ?。?)執(zhí)行城市操作。</p><p><b> 2.2性能需求</b></p><p> ?。?)系統(tǒng)安全性:業(yè)務(wù)邏輯不對外暴露,保證
33、系統(tǒng)安全。</p><p> ?。?)系統(tǒng)穩(wěn)定性:保證系統(tǒng)運行穩(wěn)定,對可能出現(xiàn)的異常加以處理。</p><p> (3)界面友好性:提供簡易實用的用戶界面。</p><p> (4)數(shù)據(jù)安全性:用戶身份驗證,管理員后臺管理數(shù)據(jù)庫,保證數(shù)據(jù)安全。</p><p><b> 2.3開發(fā)環(huán)境</b></p>
34、<p> ?。?)操作系統(tǒng):Microsoft Windows 7</p><p> ?。?)服務(wù)器:Apache-Tomcat-6.0.32</p><p> (3)數(shù)據(jù)庫:MySQL</p><p> ?。?)數(shù)據(jù)庫設(shè)計:Navicat for MySQL</p><p> ?。?)開發(fā)軟件:MyEclipse 8.5 jd
35、k1.6</p><p> ?。?)瀏覽器:Internet Explorer</p><p><b> 2.4運行環(huán)境</b></p><p> 本系統(tǒng)能夠在主流操作系統(tǒng):Windows下運行,并能夠通過因特網(wǎng)或企業(yè)廣域網(wǎng)對本系統(tǒng)進行管理。</p><p> 3 系統(tǒng)總體設(shè)計</p><p
36、><b> 3.1基本設(shè)計原則</b></p><p> ?。?)系統(tǒng)必須具備可靠性。</p><p> ?。?)系統(tǒng)必須具備健壯性。</p><p> 系統(tǒng)必須能夠判斷輸入信息是否符合規(guī)范要求。</p><p> (3)系統(tǒng)必須具備可測試性。</p><p> 系統(tǒng)必須能經(jīng)過輸入數(shù)
37、據(jù)的測試,保證系統(tǒng)得到全面的檢驗。</p><p> (4)系統(tǒng)必須具備可擴展性。</p><p> 在系統(tǒng)需要變更業(yè)務(wù)規(guī)則或更新功能時候,應(yīng)該通過升級接口來實現(xiàn)而不是修改代碼。這就要求系統(tǒng)必須具備可擴展性。</p><p><b> 3.2業(yè)務(wù)流程設(shè)計</b></p><p> ?。?)用戶身份驗證:注冊會員,已
38、注冊的用戶可以登錄和注銷;</p><p> ?。?)選擇勢力信息查看:已登錄用戶可以看到除自己以外所有公用信息</p><p> ?。?)購物車操作:游客和會員都可以將書籍信息加到購物車,可以刪除購物車中的書籍信息,購物車中的書籍信息在生成訂單或離開網(wǎng)站時清除;</p><p> ?。?)生成訂單:生成訂單時檢查是否登錄,若未登錄則不能生成訂單;</p>
39、;<p> ?。?)登錄用戶操作:登錄用戶可以查看訂單、訂單明細,修改個人信息,注銷;</p><p><b> 業(yè)務(wù)流程如圖:</b></p><p><b> 圖3-1業(yè)務(wù)流程圖</b></p><p><b> 3.3數(shù)據(jù)庫設(shè)計</b></p><p>
40、; 數(shù)據(jù)庫在整個系統(tǒng)中處于非常重要的位置,所有的功能脫離了數(shù)據(jù)庫都無法實現(xiàn),數(shù)據(jù)庫的好壞直接決定著系統(tǒng)的數(shù)據(jù)安全和運行效率。</p><p> 根據(jù)功能需求,支持系統(tǒng)運行的數(shù)據(jù)庫需要滿足如下特點:</p><p> ?。?)由于需要用戶注冊和登錄,所以需要一個用戶表用來存儲會員信息;</p><p> ?。?)三國英雄行的主要的角色是英雄,所以需要一個英雄表來英
41、雄信息;</p><p> ?。?)英雄一定屬于某個城市,所以需要一個城市表來存儲城市信息;</p><p> ?。?)城市屬于某個勢力,所以需要一個勢力表;</p><p> 3.3.1概念數(shù)據(jù)模型設(shè)計</p><p> 經(jīng)過分析得出E-R圖(實體-關(guān)系圖)如下:</p><p> 圖3-2概念數(shù)據(jù)模型設(shè)計 E
42、=R圖</p><p> 3.3.2邏輯數(shù)據(jù)模型設(shè)計</p><p> 將E-R圖轉(zhuǎn)化為關(guān)系數(shù)據(jù)模式:</p><p> 用戶(用戶id,用戶名,密碼, email);</p><p> 勢力(勢力id,勢力名);</p><p> 城市(城市id,城市名,金錢,糧食,防御,兵力,士氣);</p>
43、<p> 英雄(英雄id,英雄名,武力,智力,忠誠度);</p><p> 3.3.3物理數(shù)據(jù)模型設(shè)計</p><p> 在Navicat For MySQL軟件中設(shè)計物理數(shù)據(jù)模型:</p><p> 圖3-3物理數(shù)據(jù)模型設(shè)計</p><p><b> 3.4系統(tǒng)結(jié)構(gòu)設(shè)計</b></p>
44、;<p> 3.4.1頁面結(jié)構(gòu)設(shè)計</p><p> (1)左部顯示游戲地圖</p><p> ?。?)中部顯示武將操作,列出可供選擇武將列表;</p><p> ?。?)地圖下部顯示各類操作,可以軍事,內(nèi)政,人才等</p><p> (4)右部顯示用戶信息如名稱,所屬國家等,及注銷操作。</p><p
45、> 3.4.2代碼結(jié)構(gòu)設(shè)計</p><p> 本系統(tǒng)采用四層B/S結(jié)構(gòu),包括表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層和數(shù)據(jù)層。</p><p> 表示層主要由JSP,Struts2。主要負責(zé)MVC模型中的視圖和控制部分。</p><p> 業(yè)務(wù)邏輯層指的是Service層,主要處理系統(tǒng)的業(yè)務(wù)邏輯,并使表示層與數(shù)據(jù)訪問層分離。</p><p&g
46、t; 數(shù)據(jù)訪問層指的是DAO層,該層主要完成對象-關(guān)系映射的建立,通過這個映射和訪問業(yè)務(wù)對象即可實現(xiàn)對數(shù)據(jù)庫的訪問,提高了開發(fā)效率。</p><p><b> 數(shù)據(jù)層指數(shù)據(jù)庫。</b></p><p> 代碼結(jié)構(gòu)示意圖如下:</p><p> 圖3-4 代碼結(jié)構(gòu)示意圖</p><p><b> 代碼執(zhí)
47、行流程說明:</b></p><p> 瀏覽器接受到用戶請求后調(diào)用相應(yīng)JSP接收請求,隨后轉(zhuǎn)到相應(yīng)的Action處理,Action經(jīng)過判斷后創(chuàng)建Action實例,把數(shù)據(jù)和請求傳遞給Service層,調(diào)用相應(yīng)的Service方法處理,Service根據(jù)業(yè)務(wù)要求創(chuàng)建相應(yīng)的Dao實例,調(diào)用Dao中的相應(yīng)方法訪問數(shù)據(jù)庫。把操作數(shù)據(jù)庫產(chǎn)生的結(jié)果返回給Service,再由Action返回給Action,最后由A
48、ction跳轉(zhuǎn)到相應(yīng)的JSP將處理結(jié)果顯示在瀏覽器上反饋給用戶。Action與業(yè)務(wù)層和DAO層之間的實體類型的數(shù)據(jù)依賴Spring bean的注入。</p><p> 如此將代碼分層,各層的分工明確,降低了各個模塊間的耦合性,使系統(tǒng)便于維護和升級。</p><p> 4 系統(tǒng)詳細設(shè)計</p><p><b> 4.1數(shù)據(jù)庫實現(xiàn)</b>
49、;</p><p> 進入cmd,輸入mysql –u root –p敲回車后輸入密碼,進入到MySQL monitor下,如圖:</p><p> 圖4-1 建立數(shù)據(jù)庫</p><p> 在光標處輸入代碼建立數(shù)據(jù)庫。</p><p><b> 具體代碼參見附錄。</b></p><p>
50、 4.2系統(tǒng)所需jar包</p><p> ?。?)antlr-2.7.6.jar </p><p> 語言轉(zhuǎn)換工,Hibernate利用它實現(xiàn) HQL 到 SQL的轉(zhuǎn)換</p><p> (2)c3p0-0.9.1.2.jar</p><p> c3p0是一個開源的JDBC連接池,實現(xiàn)了數(shù)據(jù)源和JNDI的綁定。c3p0.jar是他的
51、驅(qū)動包。</p><p> ?。?)hibernate3.jar</p><p> Hibernate的核心庫,進行數(shù)據(jù)庫連接必須用的包</p><p> ?。?)commons-beanutils-1.8.3.jar</p><p> beanutils主要提供了對于JavaBean的各種操作。</p><p>
52、 (5)commons-logging-1.1.1.jar</p><p><b> 日志工具。</b></p><p> (6)commons-collections.jar: </p><p> Apache Commons包中的一個,包含了一些Apache開發(fā)的集合類,功能比java.util.*強大。</p>&l
53、t;p> (7)commons-lang.jar: </p><p> Apache Commons包中的一個,包含了一些數(shù)據(jù)類型工具類</p><p> ?。?)mysql-connector-java-5.0.8-bin.jar</p><p><b> 數(shù)據(jù)庫驅(qū)動。</b></p><p> ?。?)c
54、ommons-fileupload-1.2.2.jar</p><p> 實現(xiàn)文件上傳必須引入的包。</p><p> ?。?0)commons-io-2.0.1.jar</p><p><b> 處理IO的包。</b></p><p> ?。?1)spring.jar</p><p> 包
55、含有完整發(fā)布模塊的單個jar 包。</p><p> ?。?2)struts2-core-2.1.6.jar </p><p> struts2的核心包 </p><p> 全部所需jar包如圖:</p><p> 圖4-2 所需
56、的jar包</p><p> 還需將這些包導(dǎo)入到WEBINF目錄下的lib文件夾中。</p><p><b> 4.3源代碼設(shè)計</b></p><p> 4.3.1面向接口編程</p><p> 接口是一系列方法的聲明,是一些方法特征的集合,一個接口只有方法的特征,沒有方法的實現(xiàn)。定義接口就是將定義與實現(xiàn)相分離
57、。一般情況下實現(xiàn)一個系統(tǒng)的時候,通常是將定義與實現(xiàn)合為一體,不加分離的,系統(tǒng)設(shè)計規(guī)范應(yīng)該是定義與實現(xiàn)分離。因此,在本系統(tǒng)中,選擇使用面向接口編程方法。</p><p> 面向接口編程的優(yōu)點:</p><p> (1)在最初設(shè)計的時候可以將更多的精力集中在業(yè)務(wù)研究上,而不是具體實現(xiàn)上。</p><p> ?。?)接口設(shè)計完成后,實現(xiàn)工作將會非常簡單。</p&
58、gt;<p> (3)可以同時設(shè)計接口和具體實現(xiàn),也可以先實現(xiàn)后抽取接口,增大了開發(fā)的靈活性。</p><p> 在本系統(tǒng)中,在Service層和Dao層采用面向接口編程,因此Service層和Dao層都別有兩個包,一個存放接口,一個存放實現(xiàn)。</p><p> 4.3.2軟件包和JAVA源代碼文件</p><p><b> ?。?)P
59、OJO:</b></p><p> POJO的源文件主要定義實體類。</p><p> 實體類,如勢力類,城市類,英雄類,</p><p> 用戶類等等,具體如圖4-3:</p><p> 圖4-3 POJO層源文件</p><p> 在類中聲明實體屬性并實現(xiàn)相應(yīng)的Set、Get方法。例如英雄類,
60、代碼如下。</p><p> package cn.xmg.sanguo.po;</p><p> public class Hero {</p><p> private Integer id;// 主鍵</p><p> private String name;// 武將名</p><p> pri
61、vate Integer force;// 武力</p><p> private Integer zhili;// 智力</p><p> private Integer honest; //忠誠度</p><p> private City city;</p><p> public Integer getId() {<
62、/p><p> return id;</p><p><b> }</b></p><p> public void setId(Integer id) {</p><p> this.id = id;</p><p><b> }</b></p><
63、;p> public String getName() {</p><p> return name;</p><p><b> }</b></p><p> public void setName(String name) {</p><p> this.name = name;</p>
64、<p><b> }</b></p><p> public Integer getForce() {</p><p> return force;</p><p><b> }</b></p><p> public void setForce(Integer force) {
65、</p><p> this.force = force;</p><p><b> }</b></p><p> public Integer getZhili() {</p><p> return zhili;</p><p><b> }</b></p
66、><p> public void setZhili(Integer zhili) {</p><p> this.zhili = zhili;</p><p><b> }</b></p><p> public City getCity() {</p><p> return city;
67、</p><p><b> }</b></p><p> public void setCity(City city) {</p><p> this.city = city;</p><p><b> }</b></p><p> public Integer g
68、etHonest() {</p><p> return honest;</p><p><b> }</b></p><p> public void setHonest(Integer honest) {</p><p> this.honest = honest;</p><p>&
69、lt;b> }}</b></p><p> ?。?)Action層:</p><p> Action層主要定義交互類,詳情如圖:</p><p> 圖4-6 Action包及源文件 </p><p> Action層通過調(diào)用過濾器的方法獲取值,先判斷并選擇執(zhí)行與之對應(yīng)的函數(shù),再調(diào)用方法獲取其他數(shù)據(jù),
70、隨后將數(shù)據(jù)封裝到Bean中并交給相應(yīng)的Service處理。最后將處理結(jié)果返回給JSP顯示在瀏覽器中。</p><p> 例如在UserAction.java中為regist后調(diào)用注冊函數(shù)實現(xiàn)注冊功能,代碼如下。</p><p> @Action(value = "/regist",</p><p> // 使用results屬性為該方法指定
71、Result映射</p><p> results = {</p><p> @Result(name = "success", type = "dispatcher", location = "/success.jsp"),</p><p> @Result(name = "failure
72、", type = "dispatcher", location = "/regist.jsp"),</p><p> @Result(name = "input", type = "dispatcher", location = "/regist.jsp") })</p><p&g
73、t; public String regist() throws Exception {</p><p> Map session = ActionContext.getContext().getSession();</p><p> String ver2 = (String) session.get("rand");</p><p>
74、 session.put("rand", null);</p><p> if (vercode.equalsIgnoreCase(ver2)) {</p><p> if (mgr.addUser(model) > 0) {</p><p> addActionMessage("注冊成功,請登錄系統(tǒng)!");<
75、;/p><p> return SUCCESS;</p><p><b> } else {</b></p><p> addActionError("注冊失敗,請重試!");</p><p> return "failure";</p><p><
76、;b> }</b></p><p><b> } else {</b></p><p> addActionError("驗證碼不匹配,請重新輸入");</p><p> return "failure";</p><p><b> }<
77、/b></p><p><b> }</b></p><p> (3)Service層:</p><p> 業(yè)務(wù)邏輯層定義了接口和實現(xiàn)。在系統(tǒng)中,業(yè)務(wù)邏輯是最容易變動的部分,應(yīng)該用Service調(diào)用Dao,這樣一來當(dāng)業(yè)務(wù)邏輯變動時只需修改Service代碼即可。</p><p> 業(yè)務(wù)層用工廠設(shè)計模式實例化
78、Dao對象,在處理完相應(yīng)的業(yè)務(wù)后,調(diào)用Dao實例的方法對數(shù)據(jù)庫進行操作。</p><p> 例如在更改城市糧食值的時候要判斷這個城市有沒有英雄智力信息,如果包含英雄那么才能更改城市糧食值。所以在業(yè)務(wù)層的更新城市糧食值方法下加上對是否存在英雄信息的判定,該方法代碼如下:</p><p> 圖4-8 業(yè)務(wù)處理實例</p><p><b> ?。?)Dao層
79、:</b></p><p> 數(shù)據(jù)訪問層同樣采用面向接口編程,根據(jù)業(yè)務(wù)需求,DAO實現(xiàn)相應(yīng)的對數(shù)據(jù)庫的操作。</p><p> 要對數(shù)據(jù)庫操作必須使用SQL語句,DAO層的代碼就是把SQL語句嵌入到Java代碼中。依賴Hibernate實現(xiàn)該功能。HibernateDaoSupport類中的get方法,根據(jù)參數(shù)不同實現(xiàn)不同的查詢功能;update方法實現(xiàn)數(shù)據(jù)庫的插入、更新等
80、功能。</p><p> 例如注冊用戶時需要調(diào)用的DAO,在用戶表中添加用戶信息, 在用戶輸入用戶名時,系統(tǒng)將調(diào)用DAO層,實例化一個List來存儲數(shù)據(jù)庫中所有用戶名信息,通過hibernate的hql語句查詢得到,返回給Service層得到User對象。</p><p> 用hql語句可以大量簡化JDBC代碼,從而使我們的開發(fā)過程變得更加高效。</p><p>
81、;<b> 4.4頁面設(shè)計</b></p><p> JSP文件全部放在工程根目錄下的WebRoot文件中,圖片放置在WebRoot中的images文件夾下。css文件放在css文件夾下,js文件放在js文件夾下如圖:</p><p> 圖4-9 JSP文件放置</p><p> 5 頁面展示和異常處理</p><
82、;p><b> 5.1頁面展示</b></p><p> (1)注冊信息填寫: </p><p> 填寫注冊信息以便完成注冊。</p><p><b> 圖5-2 注冊頁面</b></p><p><b> 登錄頁面:</b></p><p&
83、gt;<b> 登錄到游戲頁面</b></p><p><b> 圖5-3 登錄頁面</b></p><p><b> 游戲頁面:</b></p><p> 只有用戶才可以進入游戲頁面。登陸后顯示用戶名和國家勢力</p><p> 圖5-4 游戲開始頁面 </p
84、><p><b> ?。?)開始游戲頁:</b></p><p> 用戶將鼠標拖到城池上后的效果。顯示主城名,金錢,防御和食物</p><p> 圖5-5 城池效果-建業(yè)</p><p> 圖5-6城池效果-許都</p><p> 圖5-7城池效果-成都</p><p>
85、; 操作城市:鼠標點擊城市后顯示軍事,內(nèi)政,人才功能</p><p><b> 圖5-7操作</b></p><p> 具體操作軍事中的訓(xùn)練為例</p><p> 圖5-8 軍事訓(xùn)練操作</p><p> 點擊訓(xùn)練后,得到結(jié)果如下圖:</p><p> 圖5-9 軍事訓(xùn)練結(jié)果</
86、p><p> 5.2信息驗證及異常處理</p><p> 在系統(tǒng)測試過程中發(fā)現(xiàn)可能出現(xiàn)的問題,并對這些問題進行處理。從而保證系統(tǒng)運行穩(wěn)定和數(shù)據(jù)安全。</p><p> ?。?)注冊時應(yīng)驗證注冊信息,不能出現(xiàn)空值或者空格,否則不能注冊,如下圖:</p><p> 5-10注冊信息驗證</p><p> ?。?)登錄時輸
87、入的用戶名和密碼也不能為空或包含空格,如下圖:</p><p> 5-11登錄信息驗證</p><p><b> 總結(jié)</b></p><p> 本設(shè)計選題為三國英雄行游戲的實現(xiàn)。三國英雄行作為一個B/S的網(wǎng)頁游戲系統(tǒng),具有當(dāng)前市場上大部分游戲的普遍特性。 </p><p> 本系統(tǒng)是一個在MyEclipse 8
88、.5,tomcat,mysql,jdk1.6環(huán)境下使用JAVA語言開發(fā)的企業(yè)級的三國游戲系統(tǒng)。這是本人在大學(xué)期間設(shè)計的第一個比較完整的系統(tǒng),包含了從頁面,到業(yè)務(wù)層和數(shù)據(jù)庫的設(shè)計和實現(xiàn)。本設(shè)計重點主要偏重于代碼部分的設(shè)計和編寫,采用了四層B/S結(jié)構(gòu),由于以前從未按照這種結(jié)構(gòu)編寫代碼,本次開發(fā)深刻地體會到了把表示層,業(yè)務(wù)層,數(shù)據(jù)庫訪問層和數(shù)據(jù)庫分開帶來的好處。并用到了面向接口編程,既簡化了代碼,又增強了代碼的復(fù)用性和程序的可擴充性。在開發(fā)階
89、段的后期,實現(xiàn)了最初設(shè)計的基本功能的基礎(chǔ)上,又對系統(tǒng)可能出現(xiàn)的問題和錯誤進行了排查和解決,保證了系統(tǒng)運行的穩(wěn)定性。</p><p> 本系統(tǒng)的不足之處在于頁面設(shè)計上,由于自己的美工水平一般,所以顯得自己的界面效果顯得不太完善美觀,戰(zhàn)爭的效果無法很炫的展示出來,這是一個不足,由于本次開發(fā)所需技術(shù)多為自學(xué),,用到Spring,Structs,Hibernate這三大框架。也由于是第一次應(yīng)用三大框架相結(jié)合,所以在有些
90、地方顯得不太符合三大框架邏輯,對于一個開發(fā)javaee的項目的程序員來說,三大框架是必須要熟練運用的,所以在今后的日子里,應(yīng)該加強對三大框架的學(xué)習(xí),為以后的開發(fā)提早做準備。</p><p> 畢業(yè)設(shè)計是大學(xué)學(xué)習(xí)的一個總結(jié),是一個學(xué)生真實知識水平的試金石。在做畢業(yè)設(shè)計的幾個月間,我力求完美的完成它,,雖然仍有些許遺憾和不足之處,但我依然從中學(xué)到了許多。希望這次設(shè)計能為我的本科學(xué)習(xí)和生活畫上完美的句號。</p
91、><p><b> 參考文獻</b></p><p> [1](美)特班等著 嚴建援 等譯 Java Web開發(fā)實戰(zhàn)經(jīng)典 清華大學(xué)出版社 2011年11月</p><p> [2] (美)Bruce Eckel著 陳昊鵬譯 Java編程思想 機械工業(yè)出版社 2007年6月</p><p> [3] (美)昂納日
92、托 JSP速成教程 機械工業(yè)出版社 2002年</p><p> [4] 唐四新編著 基于Web標準的網(wǎng)頁設(shè)計與制作 清華大學(xué)出版社 2009年12月</p><p> [5] Jeffrey D.Ullman Jennifer Widom著 岳麗華 金培權(quán) 萬壽紅等譯 A First Coures in DATEBASE SYSTEMS 機械工業(yè)出版社 2009年05月
93、</p><p> [6] 李剛編著 Struts2.1 權(quán)威指南 電子工業(yè)出版社 2009年5月</p><p> [7] 張孝祥,徐明華 叢書主編,邱加永 等編著 JSP基礎(chǔ)與案例開發(fā)詳解(軟件開發(fā)課堂) 清華大學(xué)出版社 2009年08月01日</p><p> [8] Jocy Geogre,Dinesh Batra,Joseph Valacic
94、h,Jeffrey Hoffer著 龔曉慶等譯 面向?qū)ο蠓治雠c設(shè)計 清華大學(xué)出版社 2008年1月</p><p> [9] 唐振明編 JavaEE架構(gòu)與程序設(shè)計 電子工業(yè)出版社 2011年10月</p><p> [10] 湯鳴紅編 JavaWeb應(yīng)用開發(fā) 化學(xué)工業(yè)出版社 2009年7月</p><p><b> 致謝</b>
95、;</p><p> 本設(shè)計的完成是在王克儉老師的細心指導(dǎo)下進行的。在每次設(shè)計遇到問題時,都是老師不辭辛苦的講解才使得我的設(shè)計順利的進行。從設(shè)計的選題,程序的編寫、修改、完善,再到最后寫論文的整個過程中,花費了王老師很多的寶貴時間和精力,在此向王克儉老師表示衷心地感謝!老師嚴謹?shù)闹螌W(xué)態(tài)度,開拓進取的精神和高度的責(zé)任心都將使本人受益終生!還要感謝河北農(nóng)業(yè)大學(xué)信息學(xué)院的其他老師們,從常淑慧老師的C語言,再到王超老師
96、的數(shù)據(jù)結(jié)構(gòu),孫晨霞老師的數(shù)據(jù)庫,李閱歷老師的面向?qū)ο蠓治雠c設(shè)計等,是他們引領(lǐng)我跨過計算機科學(xué)與技術(shù)領(lǐng)域的門檻,并為以后的學(xué)習(xí)打下理論基礎(chǔ)。也要感謝我的同學(xué),在設(shè)計中遇到問題的時候,他們幫助我填補了知識的空缺和漏洞,還幫助我解決了一些技術(shù)難題。最后要感謝我的母校河北農(nóng)業(yè)大學(xué),在這里學(xué)習(xí)和生活的四年里,我既學(xué)到了寶貴的知識,又豐富了自己的閱歷,還結(jié)識了許多良師益友。在河北農(nóng)業(yè)大學(xué)的這四年,不僅是我學(xué)生生涯的一部分,更是我的一段美麗人生。&l
97、t;/p><p><b> 附錄</b></p><p> create database sgx</p><p> CREATE TABLE `city` (</p><p> `id` int(11) NOT NULL auto_increment,</p><p> `city_nam
98、e` varchar(50) default NULL,</p><p> `city_money` int(11) default NULL,</p><p> `city_food` int(11) default NULL,</p><p> `city_defend` int(11) default NULL,</p><p>
99、 `city_bingli` int(11) default NULL,</p><p> `city_shiqi` int(11) default NULL,</p><p> `shili_id` int(11) default NULL,</p><p> PRIMARY KEY (`id`),</p><p> UNIQU
100、E KEY `city_name` (`city_name`),</p><p> KEY `FK2E996BDFB08559` (`shili_id`),</p><p> CONSTRAINT `FK2E996BDFB08559` FOREIGN KEY (`shili_id`) REFERENCES `shili` (`id`)</p><p> ) E
101、NGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;;</p><p> CREATE TABLE `hero` (</p><p> `id` int(11) NOT NULL auto_increment,</p><p> `hero_name` varchar(50) default NULL,<
102、/p><p> `hero_force` int(11) default NULL,</p><p> `hero_zhili` int(11) default NULL,</p><p> `city_id` int(11) default NULL,</p><p> `hero_honest` int(11) default NUL
103、L,</p><p> PRIMARY KEY (`id`),</p><p> UNIQUE KEY `hero_name` (`hero_name`),</p><p> KEY `FK30CFFA791164BB` (`city_id`),</p><p> CONSTRAINT `FK30CFFA791164BB` FORE
104、IGN KEY (`city_id`) REFERENCES `city` (`id`)</p><p> ) ENGINE=InnoDB AUTO_INCREMENT=505 DEFAULT CHARSET=utf8;</p><p> CREATE TABLE `shili` (</p><p> `id` int(11) NOT NULL auto_in
105、crement,</p><p> `shili_name` varchar(50) default NULL,</p><p> PRIMARY KEY (`id`),</p><p> UNIQUE KEY `shili_name` (`shili_name`)</p><p> ) ENGINE=InnoDB AUTO_INC
106、REMENT=4 DEFAULT CHARSET=utf8;</p><p> CREATE TABLE `user` (</p><p> `id` int(11) NOT NULL auto_increment,</p><p> `username` varchar(50) default NULL,</p><p> `pas
107、sword` varchar(50) default NULL,</p><p> `state` int(11) default NULL,</p><p> `email` varchar(50) default NULL,</p><p> `shili_id` int(11) default NULL,</p><p> PR
108、IMARY KEY (`id`),</p><p> UNIQUE KEY `username` (`username`),</p><p> UNIQUE KEY `password` (`password`),</p><p> UNIQUE KEY `email` (`email`),</p><p> KEY `FK36EB
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- “明成天下-三國英雄行”游戲設(shè)計與開發(fā)
- 橫版過關(guān)游戲《三國志》的設(shè)計與開發(fā)畢業(yè)論文
- 軟件工程畢業(yè)論文-連連看小游戲設(shè)計
- 軟件工程畢業(yè)論文-超級瑪麗小游戲設(shè)計
- 軟件工程畢業(yè)論文-網(wǎng)絡(luò)對戰(zhàn)游戲平臺的設(shè)計與實現(xiàn)
- 軟件工程畢業(yè)論文-水費管理系統(tǒng)的設(shè)計與開發(fā)
- 軟件工程畢業(yè)論文-個人博客系統(tǒng)的設(shè)計與開發(fā)
- 軟件工程畢業(yè)論文-基于python的博客設(shè)計與開發(fā)
- 軟件工程畢業(yè)論文
- 軟件工程畢業(yè)論文
- 軟件工程畢業(yè)論文
- 軟件工程畢業(yè)論文-貪吃蛇小游戲的設(shè)計與實現(xiàn)
- 軟件工程畢業(yè)論文-android跑步應(yīng)用開發(fā)
- 畢業(yè)論文三國演義
- 軟件工程專業(yè)畢業(yè)論文
- 本科軟件工程畢業(yè)論文
- 畢業(yè)論文 三國演義
- 軟件工程畢業(yè)論文-大學(xué)生論壇系統(tǒng)的設(shè)計與開發(fā)
- 軟件工程畢業(yè)論文-ip地址防盜工具的開發(fā)
- 本科畢業(yè)論文軟件工程設(shè)計
評論
0/150
提交評論