軟件工程畢業(yè)論文-“明成天下-三國英雄行”游戲設(shè)計(jì)與開發(fā)_第1頁
已閱讀1頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  本科畢業(yè)設(shè)計(jì)任務(wù)書</b></p><p>  本科畢業(yè)設(shè)計(jì)進(jìn)度計(jì)劃表</p><p>  本科畢業(yè)設(shè)計(jì)開題報(bào)告</p><p>  題 目:“明成天下-三國英雄行”游戲設(shè)計(jì)與開發(fā)</p><p>  2013 年 3 月 15 日</p><p><b&g

2、t;  本科畢業(yè)論文</b></p><p><b>  (20 屆)</b></p><p>  “明成天下-三國英雄行”游戲設(shè)計(jì)與開發(fā)</p><p><b>  摘 要</b></p><p>  隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)絡(luò)游戲的出現(xiàn)代表了一種全新娛樂方式的誕生。目前網(wǎng)絡(luò)游戲正

3、以其獨(dú)特的魅力吸引著眾多的玩家。隨著游戲產(chǎn)業(yè)的蓬勃發(fā)展將需要越來越多的人加入到游戲開發(fā)中來,而Java是現(xiàn)在全球最時(shí)髦的開發(fā)工具之一,它擁有一套龐大且完善的類庫,內(nèi)置了其他語言需要靠庫甚至是操作系統(tǒng)才能支持的功能。Java語言的大部分是為因特網(wǎng)設(shè)計(jì)的,所以,程序員可以很容易的用Java編寫并運(yùn)行基于Web的游戲。</p><p>  本設(shè)計(jì)是一款基于java的網(wǎng)頁游戲,簡要概述了JSP的技術(shù)特點(diǎn),B/S架構(gòu),Aj

4、ax技術(shù),html,xml,JavaScript,S2SH框架和數(shù)據(jù)庫技術(shù)。隨后構(gòu)建了一個(gè)B/S模式的網(wǎng)絡(luò)游戲,并對(duì)該系統(tǒng)進(jìn)行需求分析,總體設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼與測(cè)試。</p><p>  本文從游戲的背景研究和發(fā)展現(xiàn)狀開始,詳細(xì)描述了整個(gè)游戲的制作過程。對(duì)實(shí)現(xiàn)的主要功能以及操作過程進(jìn)行了重點(diǎn)討論,開發(fā)用到了Java類庫中的很多的包以及其中的類,文中會(huì)對(duì)這些包和類的用法進(jìn)行講解。</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運(yùn)行環(huán)境4</b></p><p>  3 系統(tǒng)總體設(shè)計(jì)5</p><p>  3.1基本設(shè)計(jì)原則5</p><p>  3.2業(yè)務(wù)流程設(shè)計(jì)5</p><p>  3.3數(shù)據(jù)庫設(shè)計(jì)6</p><p>  3

15、.3.1概念數(shù)據(jù)模型設(shè)計(jì)7</p><p>  3.3.2邏輯數(shù)據(jù)模型設(shè)計(jì)8</p><p>  3.3.3物理數(shù)據(jù)模型設(shè)計(jì)8</p><p>  3.4系統(tǒng)結(jié)構(gòu)設(shè)計(jì)8</p><p>  3.4.1頁面結(jié)構(gòu)設(shè)計(jì)8</p><p>  3.4.2代碼結(jié)構(gòu)設(shè)計(jì)9</p><p>  4

16、 系統(tǒng)詳細(xì)設(shè)計(jì)10</p><p>  4.1數(shù)據(jù)庫實(shí)現(xiàn)10</p><p>  4.2系統(tǒng)所需jar包10</p><p>  4.3源代碼設(shè)計(jì)12</p><p>  4.3.1面向接口編程12</p><p>  4.3.2軟件包和JAVA源代碼文件12</p><p>

17、  4.4頁面設(shè)計(jì)15</p><p>  5 頁面展示和異常處理17</p><p>  5.1頁面展示17</p><p>  5.2信息驗(yàn)證及異常處理20</p><p><b>  總結(jié)21</b></p><p><b>  參考文獻(xiàn)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、東漢與西晉之間的分裂對(duì)峙時(shí)期,有曹魏、蜀漢、東吳三個(gè)政權(quán)。三國時(shí)代波瀾壯闊,充滿生機(jī),常引起后人追思。晉代陳壽所著史書《三國志》,對(duì)研究三國歷史頗有參考價(jià)值。明代羅貫中以三國歷史為藍(lán)本,編撰小說《三國演義》成為中國四大名著之一,其豐富多彩的歷史內(nèi)涵也流傳到世界各地。時(shí)至今日,三國時(shí)期的人物及事件仍然是言談、文學(xué)、影視、游戲等各個(gè)方面的重要內(nèi)容。</p><p>  三國游戲在當(dāng)今已成為很熱門話題,選題以三國魏蜀吳

20、為背景順應(yīng)大眾的需要,將會(huì)得到廣泛的關(guān)注,從而可以發(fā)揮此游戲的價(jià)值</p><p>  而Java的創(chuàng)建者把Java稱為“網(wǎng)絡(luò)編程語言”,且由于JAVA游戲一般來說簡單有趣,并且對(duì)用戶硬件要求極小,所以JAVA游戲通常對(duì)使用計(jì)算機(jī)的廣大用戶都有吸引力。</p><p><b>  1.2課題發(fā)展概況</b></p><p>  在人們逐步進(jìn)入信

21、息時(shí)代后,電腦游戲使得人生變成了真正的游戲。在傳統(tǒng)中國社會(huì)中,文化、教育與知識(shí)是神圣的,莊嚴(yán)的,是天地君親師。這種傳統(tǒng)的體制,使人們?cè)诮邮芙逃倪^程中,就受到了束縛。如果誰把這種神圣的東西與游戲連在一起,就會(huì)被認(rèn)為是對(duì)圣賢的一種褻瀆。而現(xiàn)在,網(wǎng)絡(luò)技術(shù)和數(shù)字技術(shù)把文化、教育和知識(shí)都變成了娛樂變成了游戲,將它們從神壇上請(qǐng)下來,使它們變成了大眾的、平民的東西,可愛的、容易接受的東西。作為融合高科技的文化藝術(shù)產(chǎn)品,電腦除給人們的生活帶來聯(lián)想之外

22、,它更能給使用者帶來更多現(xiàn)實(shí)中不能擁有的體驗(yàn),這正是當(dāng)今世上被看好的體驗(yàn)型經(jīng)濟(jì)的典型代表。隨著人民生活水平的提高,人們的生活模式和思想模式都發(fā)生著變化。電腦游戲業(yè)經(jīng)過多年發(fā)展,跌跌撞撞地走過來。應(yīng)該看到人們?cè)陔娔X和互聯(lián)網(wǎng)帶來的時(shí)代標(biāo)志性變化中,電腦游戲市場(chǎng)的逐步完善與巨大的潛在能量,作為一種現(xiàn)代娛樂形式,其正在世界范圍內(nèi)創(chuàng)造巨大的市場(chǎng)空間和受眾群體。</p><p>  傳統(tǒng)的單機(jī)游戲曾風(fēng)靡一時(shí),游戲愛好者在簡單

23、的打斗中獲得了虛幻世界的滿足,但過了一段時(shí)間后,單機(jī)游戲的模式由于不能滿足人們相互交流的愿望以及其內(nèi)容的簡單重復(fù),面對(duì)電腦的獨(dú)孤求敗總讓人有一種自以為是而又百無聊賴的感覺。逐漸失去了對(duì)用戶的吸引力,游戲愛好者期待著新的游戲模式出現(xiàn)。于是,電腦游戲開始朝著網(wǎng)絡(luò)游戲發(fā)展,隨著網(wǎng)絡(luò)建設(shè)快速發(fā)展,人們生活方式隨著時(shí)代發(fā)展而改變,網(wǎng)絡(luò)游戲迅速取代單機(jī)游戲成為了游戲玩家新的寵兒。</p><p>  1.3 B/S架構(gòu)簡介&

24、lt;/p><p>  瀏覽器和服務(wù)器架構(gòu)。無需在客戶機(jī)上安裝應(yīng)用軟件,只需要求客戶機(jī)裝有瀏覽器即可。</p><p>  瀏覽器和服務(wù)器架構(gòu)的特點(diǎn)和優(yōu)勢(shì):</p><p> ?。?)分布性強(qiáng),可以隨時(shí)隨地進(jìn)行查看游戲。</p><p> ?。?)具有良好的擴(kuò)展性,通過增加網(wǎng)頁即可增加服務(wù)器功能。 </p><p>  (

25、3)維護(hù)簡單方便,只需要改變服務(wù)器端,就可以對(duì)所有用戶進(jìn)行同步的更新。</p><p>  1.4 jQuery技術(shù)簡介</p><p>  jQuery是一個(gè)優(yōu)秀的Javascript框架。它是輕量級(jí)的js庫 ,它兼容CSS3,還兼容各種瀏覽器,jQuery使用戶能更方便地處理HTML documents、events、實(shí)現(xiàn)動(dòng)畫效果,并且方便地為網(wǎng)站提供AJAX交互。jQuery還有一個(gè)

26、比較大的優(yōu)勢(shì)是,它的文檔說明很全,而且各種 應(yīng)用也說得很詳細(xì),同時(shí)還有許多成熟的插件可供選擇。jQuery能夠使用戶的html頁面保持代碼和html內(nèi)容分離。</p><p>  1.5 Ajax技術(shù)簡介</p><p>  Ajax的核心是JavaScript對(duì)象XmlHttpRequest,它是一種支持異步請(qǐng)求的技術(shù)。簡而言之,XmlHttpRequest使您可以使用JavaScrip

27、t向服務(wù)器提出請(qǐng)求并處理響應(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è)計(jì)模式,至今已被廣泛使用。最近幾年被推薦位Oracle旗下Sun公司Java

28、 EE平臺(tái)的設(shè)計(jì)模式,并且受到越來越多的使用ColdFusion和PHP開發(fā)者的歡迎。</p><p>  MVC設(shè)計(jì)模式把程序的輸入、處理和輸出分開,使各個(gè)部件處理自己的任務(wù)。使程序有較高的重用性和適用性,并且有著較低的生命周期成本,有利于軟件工程化管理并具備較高的可維護(hù)性。</p><p>  1.7 S2SH框架簡介</p><p>  S2(Struts2)

29、、S(Spring)、H(Hibernate)三大框架相整合,Struts2采用攔截器機(jī)制處理用戶的請(qǐng)求,使業(yè)務(wù)邏輯控制與ServletAPI完全脫離開的框架,Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架,Hibernate是一個(gè)開源的對(duì)象關(guān)系映射框架,運(yùn)用它可使程序員使用對(duì)象編程思維操縱數(shù)據(jù)庫。</p><p>  1.8數(shù)據(jù)庫技術(shù)簡介</p><p>  

30、數(shù)據(jù)庫技術(shù)是現(xiàn)代信息科學(xué)與技術(shù)的重要組成部分,是計(jì)算機(jī)數(shù)據(jù)處理與信息管理系統(tǒng)的核心。數(shù)據(jù)庫技術(shù)研究和結(jié)局了計(jì)算機(jī)信息處理過程中大量數(shù)據(jù)有效地組織和存儲(chǔ)的問題,在數(shù)據(jù)庫系統(tǒng)中減少數(shù)據(jù)存儲(chǔ)冗余,實(shí)現(xiàn)數(shù)據(jù)共享、保障數(shù)據(jù)安全以及高效得檢索和處理數(shù)據(jù)。</p><p>  MySql:是一種數(shù)據(jù)庫查詢和程序設(shè)計(jì)語言,可以用于存儲(chǔ)數(shù)據(jù),查詢、更新管理關(guān)系數(shù)據(jù)庫系統(tǒng)。嵌入到Java代碼中實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的操作。</p>

31、<p><b>  2 需求分析</b></p><p><b>  2.1功能需求</b></p><p>  功能需求分析是整個(gè)軟件工程中的一個(gè)最關(guān)鍵的過程。主要任務(wù)是根據(jù)用戶需求和運(yùn)行條件,確定系統(tǒng)將實(shí)現(xiàn)的功能。</p><p>  經(jīng)過需求分析,本三國游戲系統(tǒng)具體需求如下:</p>

32、<p> ?。?)用戶注冊(cè)、登錄;</p><p>  (2)選擇勢(shì)力查看信息;</p><p> ?。?)選擇城市操作具體內(nèi)容;</p><p> ?。?)執(zhí)行城市操作。</p><p><b>  2.2性能需求</b></p><p> ?。?)系統(tǒng)安全性:業(yè)務(wù)邏輯不對(duì)外暴露,保證

33、系統(tǒng)安全。</p><p> ?。?)系統(tǒng)穩(wěn)定性:保證系統(tǒng)運(yùn)行穩(wěn)定,對(duì)可能出現(xiàn)的異常加以處理。</p><p> ?。?)界面友好性:提供簡易實(shí)用的用戶界面。</p><p> ?。?)數(shù)據(jù)安全性:用戶身份驗(yàn)證,管理員后臺(tái)管理數(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è)計(jì):Navicat for MySQL</p><p> ?。?)開發(fā)軟件:MyEclipse 8.5 jd

35、k1.6</p><p>  (6)瀏覽器:Internet Explorer</p><p><b>  2.4運(yùn)行環(huán)境</b></p><p>  本系統(tǒng)能夠在主流操作系統(tǒng):Windows下運(yùn)行,并能夠通過因特網(wǎng)或企業(yè)廣域網(wǎng)對(duì)本系統(tǒng)進(jìn)行管理。</p><p>  3 系統(tǒng)總體設(shè)計(jì)</p><p

36、><b>  3.1基本設(shè)計(jì)原則</b></p><p>  (1)系統(tǒng)必須具備可靠性。</p><p> ?。?)系統(tǒng)必須具備健壯性。</p><p>  系統(tǒng)必須能夠判斷輸入信息是否符合規(guī)范要求。</p><p> ?。?)系統(tǒng)必須具備可測(cè)試性。</p><p>  系統(tǒng)必須能經(jīng)過輸入數(shù)

37、據(jù)的測(cè)試,保證系統(tǒng)得到全面的檢驗(yàn)。</p><p> ?。?)系統(tǒng)必須具備可擴(kuò)展性。</p><p>  在系統(tǒng)需要變更業(yè)務(wù)規(guī)則或更新功能時(shí)候,應(yīng)該通過升級(jí)接口來實(shí)現(xiàn)而不是修改代碼。這就要求系統(tǒng)必須具備可擴(kuò)展性。</p><p><b>  3.2業(yè)務(wù)流程設(shè)計(jì)</b></p><p>  (1)用戶身份驗(yàn)證:注冊(cè)會(huì)員,已

38、注冊(cè)的用戶可以登錄和注銷;</p><p>  (2)選擇勢(shì)力信息查看:已登錄用戶可以看到除自己以外所有公用信息</p><p> ?。?)購物車操作:游客和會(huì)員都可以將書籍信息加到購物車,可以刪除購物車中的書籍信息,購物車中的書籍信息在生成訂單或離開網(wǎng)站時(shí)清除;</p><p>  (4)生成訂單:生成訂單時(shí)檢查是否登錄,若未登錄則不能生成訂單;</p>

39、;<p> ?。?)登錄用戶操作:登錄用戶可以查看訂單、訂單明細(xì),修改個(gè)人信息,注銷;</p><p><b>  業(yè)務(wù)流程如圖:</b></p><p><b>  圖3-1業(yè)務(wù)流程圖</b></p><p><b>  3.3數(shù)據(jù)庫設(shè)計(jì)</b></p><p>

40、;  數(shù)據(jù)庫在整個(gè)系統(tǒng)中處于非常重要的位置,所有的功能脫離了數(shù)據(jù)庫都無法實(shí)現(xiàn),數(shù)據(jù)庫的好壞直接決定著系統(tǒng)的數(shù)據(jù)安全和運(yùn)行效率。</p><p>  根據(jù)功能需求,支持系統(tǒng)運(yùn)行的數(shù)據(jù)庫需要滿足如下特點(diǎn):</p><p> ?。?)由于需要用戶注冊(cè)和登錄,所以需要一個(gè)用戶表用來存儲(chǔ)會(huì)員信息;</p><p>  (2)三國英雄行的主要的角色是英雄,所以需要一個(gè)英雄表來英

41、雄信息;</p><p> ?。?)英雄一定屬于某個(gè)城市,所以需要一個(gè)城市表來存儲(chǔ)城市信息;</p><p> ?。?)城市屬于某個(gè)勢(shì)力,所以需要一個(gè)勢(shì)力表;</p><p>  3.3.1概念數(shù)據(jù)模型設(shè)計(jì)</p><p>  經(jīng)過分析得出E-R圖(實(shí)體-關(guān)系圖)如下:</p><p>  圖3-2概念數(shù)據(jù)模型設(shè)計(jì) E

42、=R圖</p><p>  3.3.2邏輯數(shù)據(jù)模型設(shè)計(jì)</p><p>  將E-R圖轉(zhuǎn)化為關(guān)系數(shù)據(jù)模式:</p><p>  用戶(用戶id,用戶名,密碼, email);</p><p>  勢(shì)力(勢(shì)力id,勢(shì)力名);</p><p>  城市(城市id,城市名,金錢,糧食,防御,兵力,士氣);</p>

43、<p>  英雄(英雄id,英雄名,武力,智力,忠誠度);</p><p>  3.3.3物理數(shù)據(jù)模型設(shè)計(jì)</p><p>  在Navicat For MySQL軟件中設(shè)計(jì)物理數(shù)據(jù)模型:</p><p>  圖3-3物理數(shù)據(jù)模型設(shè)計(jì)</p><p><b>  3.4系統(tǒng)結(jié)構(gòu)設(shè)計(jì)</b></p>

44、;<p>  3.4.1頁面結(jié)構(gòu)設(shè)計(jì)</p><p> ?。?)左部顯示游戲地圖</p><p> ?。?)中部顯示武將操作,列出可供選擇武將列表;</p><p> ?。?)地圖下部顯示各類操作,可以軍事,內(nèi)政,人才等</p><p>  (4)右部顯示用戶信息如名稱,所屬國家等,及注銷操作。</p><p

45、>  3.4.2代碼結(jié)構(gòu)設(shè)計(jì)</p><p>  本系統(tǒng)采用四層B/S結(jié)構(gòu),包括表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層和數(shù)據(jù)層。</p><p>  表示層主要由JSP,Struts2。主要負(fù)責(zé)MVC模型中的視圖和控制部分。</p><p>  業(yè)務(wù)邏輯層指的是Service層,主要處理系統(tǒng)的業(yè)務(wù)邏輯,并使表示層與數(shù)據(jù)訪問層分離。</p><p&g

46、t;  數(shù)據(jù)訪問層指的是DAO層,該層主要完成對(duì)象-關(guān)系映射的建立,通過這個(gè)映射和訪問業(yè)務(wù)對(duì)象即可實(shí)現(xiàn)對(duì)數(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>  瀏覽器接受到用戶請(qǐng)求后調(diào)用相應(yīng)JSP接收請(qǐng)求,隨后轉(zhuǎn)到相應(yīng)的Action處理,Action經(jīng)過判斷后創(chuàng)建Action實(shí)例,把數(shù)據(jù)和請(qǐng)求傳遞給Service層,調(diào)用相應(yīng)的Service方法處理,Service根據(jù)業(yè)務(wù)要求創(chuàng)建相應(yīng)的Dao實(shí)例,調(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í)體類型的數(shù)據(jù)依賴Spring bean的注入。</p><p>  如此將代碼分層,各層的分工明確,降低了各個(gè)模塊間的耦合性,使系統(tǒng)便于維護(hù)和升級(jí)。</p><p>  4 系統(tǒng)詳細(xì)設(shè)計(jì)</p><p><b>  4.1數(shù)據(jù)庫實(shí)現(xiàn)</b>

49、;</p><p>  進(jìn)入cmd,輸入mysql –u root –p敲回車后輸入密碼,進(jìn)入到MySQL monitor下,如圖:</p><p>  圖4-1 建立數(shù)據(jù)庫</p><p>  在光標(biāo)處輸入代碼建立數(shù)據(jù)庫。</p><p><b>  具體代碼參見附錄。</b></p><p>

50、  4.2系統(tǒng)所需jar包</p><p>  (1)antlr-2.7.6.jar </p><p>  語言轉(zhuǎn)換工,Hibernate利用它實(shí)現(xiàn) HQL 到 SQL的轉(zhuǎn)換</p><p> ?。?)c3p0-0.9.1.2.jar</p><p>  c3p0是一個(gè)開源的JDBC連接池,實(shí)現(xiàn)了數(shù)據(jù)源和JNDI的綁定。c3p0.jar是他的

51、驅(qū)動(dòng)包。</p><p>  (3)hibernate3.jar</p><p>  Hibernate的核心庫,進(jìn)行數(shù)據(jù)庫連接必須用的包</p><p> ?。?)commons-beanutils-1.8.3.jar</p><p>  beanutils主要提供了對(duì)于JavaBean的各種操作。</p><p>

52、 ?。?)commons-logging-1.1.1.jar</p><p><b>  日志工具。</b></p><p> ?。?)commons-collections.jar: </p><p>  Apache Commons包中的一個(gè),包含了一些Apache開發(fā)的集合類,功能比java.util.*強(qiáng)大。</p>&l

53、t;p>  (7)commons-lang.jar: </p><p>  Apache Commons包中的一個(gè),包含了一些數(shù)據(jù)類型工具類</p><p> ?。?)mysql-connector-java-5.0.8-bin.jar</p><p><b>  數(shù)據(jù)庫驅(qū)動(dòng)。</b></p><p>  (9)c

54、ommons-fileupload-1.2.2.jar</p><p>  實(shí)現(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ā)布模塊的單個(gè)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è)計(jì)</b></p><p>  4.3.1面向接口編程</p><p>  接口是一系列方法的聲明,是一些方法特征的集合,一個(gè)接口只有方法的特征,沒有方法的實(shí)現(xiàn)。定義接口就是將定義與實(shí)現(xiàn)相分離

57、。一般情況下實(shí)現(xiàn)一個(gè)系統(tǒng)的時(shí)候,通常是將定義與實(shí)現(xiàn)合為一體,不加分離的,系統(tǒng)設(shè)計(jì)規(guī)范應(yīng)該是定義與實(shí)現(xiàn)分離。因此,在本系統(tǒng)中,選擇使用面向接口編程方法。</p><p>  面向接口編程的優(yōu)點(diǎn):</p><p>  (1)在最初設(shè)計(jì)的時(shí)候可以將更多的精力集中在業(yè)務(wù)研究上,而不是具體實(shí)現(xiàn)上。</p><p> ?。?)接口設(shè)計(jì)完成后,實(shí)現(xiàn)工作將會(huì)非常簡單。</p&

58、gt;<p> ?。?)可以同時(shí)設(shè)計(jì)接口和具體實(shí)現(xiàn),也可以先實(shí)現(xiàn)后抽取接口,增大了開發(fā)的靈活性。</p><p>  在本系統(tǒng)中,在Service層和Dao層采用面向接口編程,因此Service層和Dao層都別有兩個(gè)包,一個(gè)存放接口,一個(gè)存放實(shí)現(xiàn)。</p><p>  4.3.2軟件包和JAVA源代碼文件</p><p><b> ?。?)P

59、OJO:</b></p><p>  POJO的源文件主要定義實(shí)體類。</p><p>  實(shí)體類,如勢(shì)力類,城市類,英雄類,</p><p>  用戶類等等,具體如圖4-3:</p><p>  圖4-3 POJO層源文件</p><p>  在類中聲明實(shí)體屬性并實(shí)現(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í)行與之對(duì)應(yīng)的函數(shù),再調(diào)用方法獲取其他數(shù)據(jù),

70、隨后將數(shù)據(jù)封裝到Bean中并交給相應(yīng)的Service處理。最后將處理結(jié)果返回給JSP顯示在瀏覽器中。</p><p>  例如在UserAction.java中為regist后調(diào)用注冊(cè)函數(shù)實(shí)現(xiàn)注冊(cè)功能,代碼如下。</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("注冊(cè)成功,請(qǐng)登錄系統(tǒng)!");<

75、;/p><p>  return SUCCESS;</p><p><b>  } else {</b></p><p>  addActionError("注冊(cè)失敗,請(qǐng)重試!");</p><p>  return "failure";</p><p><

76、;b>  }</b></p><p><b>  } else {</b></p><p>  addActionError("驗(yàn)證碼不匹配,請(qǐng)重新輸入");</p><p>  return "failure";</p><p><b>  }<

77、/b></p><p><b>  }</b></p><p> ?。?)Service層:</p><p>  業(yè)務(wù)邏輯層定義了接口和實(shí)現(xiàn)。在系統(tǒng)中,業(yè)務(wù)邏輯是最容易變動(dòng)的部分,應(yīng)該用Service調(diào)用Dao,這樣一來當(dāng)業(yè)務(wù)邏輯變動(dòng)時(shí)只需修改Service代碼即可。</p><p>  業(yè)務(wù)層用工廠設(shè)計(jì)模式實(shí)例化

78、Dao對(duì)象,在處理完相應(yīng)的業(yè)務(wù)后,調(diào)用Dao實(shí)例的方法對(duì)數(shù)據(jù)庫進(jìn)行操作。</p><p>  例如在更改城市糧食值的時(shí)候要判斷這個(gè)城市有沒有英雄智力信息,如果包含英雄那么才能更改城市糧食值。所以在業(yè)務(wù)層的更新城市糧食值方法下加上對(duì)是否存在英雄信息的判定,該方法代碼如下:</p><p>  圖4-8 業(yè)務(wù)處理實(shí)例</p><p><b> ?。?)Dao層

79、:</b></p><p>  數(shù)據(jù)訪問層同樣采用面向接口編程,根據(jù)業(yè)務(wù)需求,DAO實(shí)現(xiàn)相應(yīng)的對(duì)數(shù)據(jù)庫的操作。</p><p>  要對(duì)數(shù)據(jù)庫操作必須使用SQL語句,DAO層的代碼就是把SQL語句嵌入到Java代碼中。依賴Hibernate實(shí)現(xiàn)該功能。HibernateDaoSupport類中的get方法,根據(jù)參數(shù)不同實(shí)現(xiàn)不同的查詢功能;update方法實(shí)現(xiàn)數(shù)據(jù)庫的插入、更新等

80、功能。</p><p>  例如注冊(cè)用戶時(shí)需要調(diào)用的DAO,在用戶表中添加用戶信息, 在用戶輸入用戶名時(shí),系統(tǒng)將調(diào)用DAO層,實(shí)例化一個(gè)List來存儲(chǔ)數(shù)據(jù)庫中所有用戶名信息,通過hibernate的hql語句查詢得到,返回給Service層得到User對(duì)象。</p><p>  用hql語句可以大量簡化JDBC代碼,從而使我們的開發(fā)過程變得更加高效。</p><p>

81、;<b>  4.4頁面設(shè)計(jì)</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)注冊(cè)信息填寫: </p><p>  填寫注冊(cè)信息以便完成注冊(cè)。</p><p><b>  圖5-2 注冊(cè)頁面</b></p><p><b>  登錄頁面:</b></p><p&

83、gt;<b>  登錄到游戲頁面</b></p><p><b>  圖5-3 登錄頁面</b></p><p><b>  游戲頁面:</b></p><p>  只有用戶才可以進(jìn)入游戲頁面。登陸后顯示用戶名和國家勢(shì)力</p><p>  圖5-4 游戲開始頁面 </p

84、><p><b> ?。?)開始游戲頁:</b></p><p>  用戶將鼠標(biāo)拖到城池上后的效果。顯示主城名,金錢,防御和食物</p><p>  圖5-5 城池效果-建業(yè)</p><p>  圖5-6城池效果-許都</p><p>  圖5-7城池效果-成都</p><p>

85、;  操作城市:鼠標(biāo)點(diǎn)擊城市后顯示軍事,內(nèi)政,人才功能</p><p><b>  圖5-7操作</b></p><p>  具體操作軍事中的訓(xùn)練為例</p><p>  圖5-8 軍事訓(xùn)練操作</p><p>  點(diǎn)擊訓(xùn)練后,得到結(jié)果如下圖:</p><p>  圖5-9 軍事訓(xùn)練結(jié)果</

86、p><p>  5.2信息驗(yàn)證及異常處理</p><p>  在系統(tǒng)測(cè)試過程中發(fā)現(xiàn)可能出現(xiàn)的問題,并對(duì)這些問題進(jìn)行處理。從而保證系統(tǒng)運(yùn)行穩(wěn)定和數(shù)據(jù)安全。</p><p> ?。?)注冊(cè)時(shí)應(yīng)驗(yàn)證注冊(cè)信息,不能出現(xiàn)空值或者空格,否則不能注冊(cè),如下圖:</p><p>  5-10注冊(cè)信息驗(yàn)證</p><p>  (2)登錄時(shí)輸

87、入的用戶名和密碼也不能為空或包含空格,如下圖:</p><p>  5-11登錄信息驗(yàn)證</p><p><b>  總結(jié)</b></p><p>  本設(shè)計(jì)選題為三國英雄行游戲的實(shí)現(xiàn)。三國英雄行作為一個(gè)B/S的網(wǎng)頁游戲系統(tǒng),具有當(dāng)前市場(chǎng)上大部分游戲的普遍特性。 </p><p>  本系統(tǒng)是一個(gè)在MyEclipse 8

88、.5,tomcat,mysql,jdk1.6環(huán)境下使用JAVA語言開發(fā)的企業(yè)級(jí)的三國游戲系統(tǒng)。這是本人在大學(xué)期間設(shè)計(jì)的第一個(gè)比較完整的系統(tǒng),包含了從頁面,到業(yè)務(wù)層和數(shù)據(jù)庫的設(shè)計(jì)和實(shí)現(xiàn)。本設(shè)計(jì)重點(diǎn)主要偏重于代碼部分的設(shè)計(jì)和編寫,采用了四層B/S結(jié)構(gòu),由于以前從未按照這種結(jié)構(gòu)編寫代碼,本次開發(fā)深刻地體會(huì)到了把表示層,業(yè)務(wù)層,數(shù)據(jù)庫訪問層和數(shù)據(jù)庫分開帶來的好處。并用到了面向接口編程,既簡化了代碼,又增強(qiáng)了代碼的復(fù)用性和程序的可擴(kuò)充性。在開發(fā)階

89、段的后期,實(shí)現(xiàn)了最初設(shè)計(jì)的基本功能的基礎(chǔ)上,又對(duì)系統(tǒng)可能出現(xiàn)的問題和錯(cuò)誤進(jìn)行了排查和解決,保證了系統(tǒng)運(yùn)行的穩(wěn)定性。</p><p>  本系統(tǒng)的不足之處在于頁面設(shè)計(jì)上,由于自己的美工水平一般,所以顯得自己的界面效果顯得不太完善美觀,戰(zhàn)爭的效果無法很炫的展示出來,這是一個(gè)不足,由于本次開發(fā)所需技術(shù)多為自學(xué),,用到Spring,Structs,Hibernate這三大框架。也由于是第一次應(yīng)用三大框架相結(jié)合,所以在有些

90、地方顯得不太符合三大框架邏輯,對(duì)于一個(gè)開發(fā)javaee的項(xiàng)目的程序員來說,三大框架是必須要熟練運(yùn)用的,所以在今后的日子里,應(yīng)該加強(qiáng)對(duì)三大框架的學(xué)習(xí),為以后的開發(fā)提早做準(zhǔn)備。</p><p>  畢業(yè)設(shè)計(jì)是大學(xué)學(xué)習(xí)的一個(gè)總結(jié),是一個(gè)學(xué)生真實(shí)知識(shí)水平的試金石。在做畢業(yè)設(shè)計(jì)的幾個(gè)月間,我力求完美的完成它,,雖然仍有些許遺憾和不足之處,但我依然從中學(xué)到了許多。希望這次設(shè)計(jì)能為我的本科學(xué)習(xí)和生活畫上完美的句號(hào)。</p

91、><p><b>  參考文獻(xiàn)</b></p><p>  [1](美)特班等著 嚴(yán)建援 等譯 Java Web開發(fā)實(shí)戰(zhàn)經(jīng)典 清華大學(xué)出版社 2011年11月</p><p>  [2] (美)Bruce Eckel著 陳昊鵬譯 Java編程思想 機(jī)械工業(yè)出版社 2007年6月</p><p>  [3] (美)昂納日

92、托 JSP速成教程 機(jī)械工業(yè)出版社 2002年</p><p>  [4] 唐四新編著 基于Web標(biāo)準(zhǔn)的網(wǎng)頁設(shè)計(jì)與制作 清華大學(xué)出版社 2009年12月</p><p>  [5] Jeffrey D.Ullman Jennifer Widom著 岳麗華 金培權(quán) 萬壽紅等譯 A First Coures in DATEBASE SYSTEMS 機(jī)械工業(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è)計(jì) 清華大學(xué)出版社 2008年1月</p><p>  [9] 唐振明編 JavaEE架構(gòu)與程序設(shè)計(jì) 電子工業(yè)出版社 2011年10月</p><p>  [10] 湯鳴紅編 JavaWeb應(yīng)用開發(fā) 化學(xué)工業(yè)出版社 2009年7月</p><p><b>  致謝</b>

95、;</p><p>  本設(shè)計(jì)的完成是在王克儉老師的細(xì)心指導(dǎo)下進(jìn)行的。在每次設(shè)計(jì)遇到問題時(shí),都是老師不辭辛苦的講解才使得我的設(shè)計(jì)順利的進(jìn)行。從設(shè)計(jì)的選題,程序的編寫、修改、完善,再到最后寫論文的整個(gè)過程中,花費(fèi)了王老師很多的寶貴時(shí)間和精力,在此向王克儉老師表示衷心地感謝!老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,開拓進(jìn)取的精神和高度的責(zé)任心都將使本人受益終生!還要感謝河北農(nóng)業(yè)大學(xué)信息學(xué)院的其他老師們,從常淑慧老師的C語言,再到王超老師

96、的數(shù)據(jù)結(jié)構(gòu),孫晨霞老師的數(shù)據(jù)庫,李閱歷老師的面向?qū)ο蠓治雠c設(shè)計(jì)等,是他們引領(lǐng)我跨過計(jì)算機(jī)科學(xué)與技術(shù)領(lǐng)域的門檻,并為以后的學(xué)習(xí)打下理論基礎(chǔ)。也要感謝我的同學(xué),在設(shè)計(jì)中遇到問題的時(shí)候,他們幫助我填補(bǔ)了知識(shí)的空缺和漏洞,還幫助我解決了一些技術(shù)難題。最后要感謝我的母校河北農(nóng)業(yè)大學(xué),在這里學(xué)習(xí)和生活的四年里,我既學(xué)到了寶貴的知識(shí),又豐富了自己的閱歷,還結(jié)識(shí)了許多良師益友。在河北農(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論