孫躍捕魚達(dá)人游戲項(xiàng)目開發(fā)最終確定_第1頁
孫躍捕魚達(dá)人游戲項(xiàng)目開發(fā)最終確定_第2頁
孫躍捕魚達(dá)人游戲項(xiàng)目開發(fā)最終確定_第3頁
孫躍捕魚達(dá)人游戲項(xiàng)目開發(fā)最終確定_第4頁
孫躍捕魚達(dá)人游戲項(xiàng)目開發(fā)最終確定_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1951學(xué)校代碼:程設(shè)計(jì)說明書題目:捕魚達(dá)人游戲項(xiàng)目開發(fā)學(xué)生姓名:孫躍學(xué)院:理學(xué)院班級:信計(jì)12-2指導(dǎo)教師:侯睿二。一五年六月二十六日內(nèi)蒙古工業(yè)大學(xué)課程設(shè)計(jì)(論文)任務(wù)書班級:指導(dǎo)教師:課程名稱:數(shù)據(jù)庫應(yīng)用課程設(shè)計(jì)學(xué)院:理學(xué)院信計(jì)12-2學(xué)生姓名:孫躍學(xué)號:201220905048侯睿一、題目捕魚達(dá)人游戲項(xiàng)目開發(fā)二、目的與意義課程設(shè)計(jì)、綜合設(shè)計(jì)的基本教學(xué)目的是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識和技能分析與解決實(shí)際問題的能力,以及嚴(yán)肅認(rèn)真的科學(xué)態(tài)度和嚴(yán)謹(jǐn)求實(shí)的工作作風(fēng)。三、要求(包括原始數(shù)據(jù)、技術(shù)參數(shù)、設(shè)計(jì)要求、圖紙量、工作量要求等)采用SQLServer2005建立數(shù)據(jù)庫,采用界面方式或命令方式創(chuàng)建數(shù)

2、據(jù)庫和表。選用一種開發(fā)環(huán)境設(shè)計(jì)界面,實(shí)現(xiàn)信息的插入、修改、刪除、查詢的基本功能。在開發(fā)環(huán)境下,通過某種方法建立與SQLServer2005數(shù)據(jù)庫的連接。四、工作內(nèi)容、進(jìn)度安排主要內(nèi)容用Java程序設(shè)計(jì)語言及開發(fā)環(huán)境實(shí)現(xiàn)簡單的捕魚達(dá)人游戲設(shè)計(jì)。后臺數(shù)據(jù)庫采用SQLServer2005,完成開發(fā)環(huán)境和后臺數(shù)據(jù)庫的連接,系統(tǒng)功能包含基本信息的查詢、錄入、修改、以及刪除。工作進(jìn)度安排第一天:熟悉課程設(shè)計(jì)題目及具體要求,對所解決的問題盡量做到胸中有數(shù),基本確定選擇的高級語言及開發(fā)環(huán)境。第二天到第四天:拿出解決問題的初步方案,根據(jù)課題給出的用戶基本需求,寫出各數(shù)據(jù)實(shí)體的數(shù)據(jù)項(xiàng)和聯(lián)系實(shí)體的活動以及活動要使用

3、的數(shù)據(jù)項(xiàng),通過EHR圖來表示。由E-R圖建立適當(dāng)?shù)谋恚凑詹煌妒降亩x,對表進(jìn)行規(guī)范化,并在數(shù)據(jù)庫管理系統(tǒng)中實(shí)現(xiàn)設(shè)計(jì)的數(shù)據(jù)庫和表。第五天到第七天:設(shè)計(jì)功能模塊,確定每個(gè)模塊的功能,以及各個(gè)模塊之間的關(guān)系。第八天到第十天:對每個(gè)模塊進(jìn)行具體分析,確定需要的用戶界面以及結(jié)構(gòu),完成軟件的整體框架,在開發(fā)環(huán)境下,編程實(shí)現(xiàn)所開發(fā)的系統(tǒng)。第十一天到第十二天:綜合調(diào)試,去除軟件中的bug,美化應(yīng)用程序的界面。有能力的學(xué)生增加簡單的數(shù)據(jù)校驗(yàn)、在線錯(cuò)誤處理和在線幫助的功能。第十三天和第十五天:撰寫課程設(shè)計(jì)報(bào)告,驗(yàn)收。五、主要參考文獻(xiàn)1關(guān)邸可奇.SQLServer實(shí)用教程M.北京:電子工業(yè)出版社.2014.2

4、徐傳運(yùn).Java高級程序設(shè)計(jì)M.北京:清華大學(xué)出版社.2014.審核意見系(教研室)主任(簽字):指導(dǎo)教師下達(dá)時(shí)間2015年6月8日指導(dǎo)教師簽字:摘要捕魚達(dá)人游戲采用Java高級程序語言設(shè)計(jì),游戲后臺數(shù)據(jù)存儲、調(diào)用,使用SQLServer2005數(shù)據(jù)庫管理系統(tǒng)。捕魚達(dá)人游戲的設(shè)計(jì)目的是是以深海為游戲場景,各種魚兒在其中游動的姿態(tài)自然,炮彈打擊粒子效果華麗,打擊感強(qiáng)烈,很具有趣味性。實(shí)現(xiàn)如用數(shù)據(jù)庫存儲用戶名和密碼,憑正確的用戶名和密碼登錄游戲;需要有不同種類的魚;讓魚游動起來,被炮擊中時(shí)有特效(翻滾),并獲得金幣;炮臺可以根據(jù)鼠標(biāo)的位置調(diào)整方向;炮臺發(fā)射時(shí)消耗金幣;可以切換背景,增加趣味性等功能

5、。主要依靠如FishPanel.java,Fish.java,FishNet.java,sqljdbc4.jar等一些類和框架實(shí)現(xiàn)相關(guān)功能。關(guān)鍵詞:Java;SQLServer;Eclipse;數(shù)據(jù)庫連接目錄引言隨著人們娛樂生活的不斷豐富,人們對休閑游戲的需求也越來越高。捕魚達(dá)人是以深海為游戲場景,各種魚兒在其中游動的姿態(tài)自然,炮彈打擊粒子效果華麗,打擊感強(qiáng)烈,很具有趣味性。捕魚達(dá)人游戲采用Java高級程序語言設(shè)計(jì)。Java是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。Java技術(shù)具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應(yīng)用于PC數(shù)據(jù)中心、游戲控制臺、科學(xué)超級計(jì)算機(jī)、移動電話

6、和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。游戲后臺數(shù)據(jù)存儲、調(diào)用,使用SQLServer2005數(shù)據(jù)庫管理系統(tǒng)。SQLServer是Microsoft公司推出的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn)。MicrosoftSQLServer是一個(gè)全面的數(shù)據(jù)庫平臺,使用集成的商業(yè)智能(BI)工具提供了企業(yè)級的數(shù)據(jù)管理。MicrosoftSQLServer數(shù)據(jù)庫引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲功能,可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。第一章開發(fā)環(huán)境進(jìn)行游戲開發(fā)設(shè)計(jì)首先要考慮到合適的開發(fā)環(huán)境,根據(jù)需要不同,合理選擇開發(fā)語言、環(huán)境,以及

7、合理的數(shù)據(jù)管理系統(tǒng),這是游戲開發(fā)的重要環(huán)節(jié)。開發(fā)語言、環(huán)境,以及合理的數(shù)據(jù)管理系統(tǒng)選擇的好,是軟件開發(fā)成功的重要一步。1.1 Java(計(jì)算機(jī)編程語言)1.1.1 Java簡介JavaJava是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言技術(shù)具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應(yīng)用于PG數(shù)據(jù)中心、游戲控制臺、科學(xué)超級計(jì)算機(jī)、移動電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。1.1.2 Java程序的優(yōu)勢與傳統(tǒng)程序不同,Sun公司在推出Java之際就將其作為一種開放的技術(shù)。全球數(shù)以萬計(jì)的Java開發(fā)公司被要求所設(shè)計(jì)的Java軟件必須相互兼容?!癑ava語言靠群體的力量而非公

8、司的力量”是Sun公司的口號之一,并獲得了廣大軟件開發(fā)商的認(rèn)同。這與微軟公司所倡導(dǎo)的注重精英和封閉式的模式完全不同。Sun公司對Java編程語言的解釋是:Java編程語言是個(gè)簡單、面向?qū)ο?、分布式、解釋性、健壯、安全與系統(tǒng)無關(guān)、可移植、高性能、多線程和靜態(tài)的0Java平臺是基于Java語言的平臺。這樣的平臺非常流行。Java是功能完善的通用程序設(shè)計(jì)語言,可以用來開發(fā)可靠的、要求嚴(yán)格的應(yīng)用程序。1.2 Eclipse(集成開發(fā)環(huán)境)Eclipse是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse附帶了一

9、個(gè)標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(JavaDevelopmentKit,JDK0。1.3 SQLServer2005(數(shù)據(jù)庫)SQLServer是Microsoft公司推出的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。具有使用MicrosoftSQLServer是一(BI)工具提供了企業(yè)級的數(shù)據(jù)管方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn)個(gè)全面的數(shù)據(jù)庫平臺,使用集成的商業(yè)智能理。MicrosoftSQLServer數(shù)據(jù)庫引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲功能,可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。1.3.1 SQLServer數(shù)據(jù)庫的優(yōu)點(diǎn)SQLServer能夠滿足今天的商業(yè)環(huán)境要求

10、不同類型的數(shù)據(jù)庫解決方案。它一種應(yīng)用廣泛的數(shù)據(jù)庫管理系統(tǒng),具有許多顯著的優(yōu)點(diǎn):易用性、適合分布式組織的可伸縮性、用于決策支持的數(shù)據(jù)倉庫功能、與許多其他服務(wù)器軟件緊密關(guān)聯(lián)的集成性、良好的性價(jià)比等。SQLServer還為數(shù)據(jù)管理與分析帶來了靈活性。從數(shù)據(jù)管理和分析角度看,將原始數(shù)據(jù)轉(zhuǎn)化為商業(yè)智能和充分利用We滯來的機(jī)會非常重要。作為一個(gè)完備的數(shù)據(jù)庫和數(shù)據(jù)分析包,SQLServer為快速開發(fā)新一代企業(yè)級商業(yè)應(yīng)用程序、為企業(yè)贏得核心競爭優(yōu)勢打開了勝利之門。SQLServer是一個(gè)具備完全Web支持的數(shù)據(jù)庫產(chǎn)品,提供了對可擴(kuò)展標(biāo)記語言(XML)的核心支持以及在Internet上和防火墻外進(jìn)行查詢的能力。

11、1.3.2 SQL語言結(jié)構(gòu)化查詢語言(StructuredQueryLanguage)簡稱SQL結(jié)構(gòu)化查詢語言是一種數(shù)據(jù)庫查詢和程序設(shè)計(jì)語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng)。SQL是一種用于和關(guān)系數(shù)據(jù)庫進(jìn)行交互計(jì)算機(jī)語言。當(dāng)用戶想檢索數(shù)據(jù)庫中的數(shù)據(jù)時(shí),就查以用SQL語言發(fā)出請求,DBMS數(shù)據(jù)庫管理系統(tǒng))對SQL請求進(jìn)行處理,檢索到所要求的數(shù)據(jù),并將其返回給用戶。如今SQL語言僅僅是一個(gè)查詢工具,它是可以對關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行組織、管理和檢索的主要工具。?SQL語言可以控制DBMS1供給用戶的所有功能,SQL語言已成為用戶與基于SQL的DBMS勺接口。它的功能包括:數(shù)據(jù)定義、數(shù)

12、據(jù)檢索、數(shù)據(jù)操作、存取共享、數(shù)據(jù)完整性。T-SQL是SQL語言的一種版本,應(yīng)用于SQLServer服務(wù)器,主要包括以下幾個(gè)方面構(gòu)成:數(shù)據(jù)定義語言(DDL)oDDL用于執(zhí)行數(shù)據(jù)庫的任務(wù),對數(shù)據(jù)庫以及數(shù)據(jù)庫中的各種對象進(jìn)行創(chuàng)建、刪除、修改等操作。數(shù)據(jù)庫對象主要包括表、缺省約束、規(guī)則、視圖、觸發(fā)器、存儲過程。其中主要包括的語句是CREATE,ALTER,DROP數(shù)據(jù)操縱語言(DML)oDMLlg于操縱數(shù)據(jù)庫中的各種對象,檢索和修改數(shù)據(jù)。其中主要包括的語句是SELECT,INSERT,UPDATE,DELETE數(shù)據(jù)控制語言(DCL)。DCL用于安全管理,確定哪些用戶可以查看或修改數(shù)據(jù)庫中的數(shù)據(jù)。主要包

13、括的語句是GRANT,REVOKE,DENY所以通過數(shù)據(jù)庫對宿舍管理系統(tǒng)進(jìn)行后臺數(shù)據(jù)支持能夠很好的實(shí)現(xiàn)捕魚達(dá)人游戲中,對于用戶數(shù)據(jù)的查詢、增加、修改、刪除等功能。第二章需求分析與功能設(shè)計(jì)進(jìn)行軟件項(xiàng)目設(shè)計(jì)和數(shù)據(jù)庫設(shè)計(jì),首先必須準(zhǔn)確了解并分析用戶需求(包括數(shù)據(jù)和處理),是捕魚達(dá)人游戲的設(shè)計(jì)的重要基礎(chǔ)和依據(jù)。2.1用戶需求捕魚達(dá)人是以深海為游戲場景,各種魚兒在其中游動的姿態(tài)自然,炮彈打擊粒子效果華麗,打擊感強(qiáng)烈,很具有趣味性。所開發(fā)的游戲應(yīng)包含以下功能:(1)用數(shù)據(jù)庫存儲用戶名和密碼,憑正確的用戶名和密碼登錄游戲。(2)需要有不同種類的魚;(3)讓魚游動起來,被炮擊中時(shí)有特效(翻滾),并獲得金幣;(

14、4)炮臺可以根據(jù)鼠標(biāo)的位置調(diào)整方向;(5)炮臺發(fā)射時(shí)消耗金幣;(6)可以切換背景,增加趣味性;(7)根據(jù)實(shí)際開發(fā)情況適當(dāng)修改和優(yōu)化程序。2.2 系統(tǒng)分析實(shí)現(xiàn)以上功能需要在程序中定義相關(guān)的類,完成相關(guān)功能的設(shè)計(jì)根據(jù)游戲中主要主要功能實(shí)現(xiàn)應(yīng)包括:FishFrame.java(主文件),F(xiàn)ishPanel.java(畫布類),F(xiàn)ish.java(魚),F(xiàn)ishThread.java(魚游動),Bullet.java(子彈),BulletThread.java(子彈移動),F(xiàn)ishNet.java(漁網(wǎng)),Money.java(金幣)MoneMoveThread.java(金幣移動),LoginChe

15、ck.java(數(shù)據(jù)庫連接測試),LogInFrame.java(登陸界面),sqljdbc4.jar(數(shù)據(jù)FishTtreadl.javaJaradip.js.va.LoeoaJlJ'ka1-JfltvaLonirfh*2kjwAInfTrsTrwr-PjwAMoteHcivtlhread.itvaMotsjrjiva上1國-本游戲的整體流程如圖庫連接框架)。圖2.1為本程序各主要的好唯架Bull*1,jWiDull:tTlurea.J.java.FizK。丁已FithFWandjar5適EIR|E-sc.dLilrui«>*:sq,lj-llclj皿。2.3 主要功

16、能實(shí)現(xiàn)如上所述,本程序的實(shí)現(xiàn),主要依靠以下一些類和框架:FishFrame.java,FishPanel.java,Fish.java,FishThread.java,Bullet.java,第三章數(shù)據(jù)庫建立及維護(hù)數(shù)據(jù)庫是存放數(shù)據(jù)的倉庫,而且這些數(shù)據(jù)存在一定的關(guān)聯(lián),并按照一定的格式存放在計(jì)算機(jī)上。從廣義上講,數(shù)據(jù)庫不僅包含數(shù)字,還包括文本、圖像、音頻、視頻等。為了使用戶名和用戶密碼更加方便的管理和調(diào)用,本游戲的用戶名和密碼存儲在SQLServer數(shù)據(jù)庫中。3.1 數(shù)據(jù)庫的建立為了更加方便簡潔的對數(shù)據(jù)庫進(jìn)行操作,也為聯(lián)系課堂所學(xué),本文中我們使用T-SQL語句對數(shù)據(jù)庫進(jìn)行操作。3.1.1 數(shù)據(jù)庫的

17、建立創(chuàng)建一個(gè)名為game的數(shù)據(jù)庫,其初始大小為5MB最大為50MB允許數(shù)據(jù)庫自動增長,增長方式是按10%t匕例增長。日志文件初始為2MB最大可增長為5MB,按1MBf長。存放位置為"D:fishgame建立數(shù)據(jù)庫的T-SQL語句如下:CREATEDATABASgameONPRIMARY(NAMEgame_data',FILENAM目D:fishgamegame.mdf'SIZE=5MBMAXSIZ=50MBFILEGROWTH0%)LOGON(NAMEgame_log',FILENAM目D:fishgamegame.ldf'SIZE=2MBMAXSIZ

18、=5MBFILEGROWTHMB);建立數(shù)據(jù)庫的過程如圖3.1所示:3.1.2 表的建立在已經(jīng)建立好的game數(shù)據(jù)庫中建立一個(gè)名為tb_user的表,用于存放用戶的序號(id),用戶名(username),密碼(password),并定義id數(shù)據(jù)類型為bigint,屬性為主鍵非空;定義username數(shù)據(jù)類型為varchar(50),屬性為非空;定義password數(shù)據(jù)類型為varchar(50),屬性為非空。建立表的T-SQL語句如下:USEgameGOCREATETABLEtb_user(idbigintNOTNULLPRIMARYKEYusernamevarchar(50)NOTNULL

19、,passwordvarchar(50)NOTNULL)建立表的過程如圖3.2所示:3.1.3 向表中插入數(shù)據(jù)表建立好之后需要將用戶序號(id)、用戶名(username)和密碼(password)插入到建立好的表中,準(zhǔn)備被調(diào)用,預(yù)設(shè)6個(gè)用戶:admin、user1、user2、user3、user4和user5。向表中插入數(shù)據(jù)的T-SQL語句如下:USEgameGOINSERTINTOtbuserVALUES1,'admin','admin')INSERTINTOtbuserVALUES2,'user1','123'INSERT

20、INTOtbuserVALUES3,'user2','234'INSERTINTOtbuserVALUES4,'user3','345'INSERTINTOtb_userVALUES5,'user4','456')INSERTINTOtb_userVALUES6,'user5','567')向表中插入數(shù)據(jù)的過程和插入結(jié)果如圖3.3、圖3.4所示:3.2 數(shù)據(jù)庫的備份與維護(hù)隨著計(jì)算機(jī)信息系統(tǒng)的不斷發(fā)展,用戶的核心業(yè)務(wù)越來越依賴于信息系統(tǒng)的可靠運(yùn)行,信息系統(tǒng)中的關(guān)鍵業(yè)務(wù)數(shù)

21、據(jù)已經(jīng)成為用戶最為重要的資產(chǎn),對于一個(gè)數(shù)據(jù)庫系統(tǒng)來說,數(shù)據(jù)的安全性和可靠性是至關(guān)重要的。盡管數(shù)據(jù)庫管理系統(tǒng)中采取了各種保護(hù)措施以保護(hù)數(shù)據(jù)庫的安全性和完整性,但是,計(jì)算機(jī)系統(tǒng)中的軟硬件故障、用戶誤操作、病毒、自然災(zāi)難等都可能會導(dǎo)致數(shù)據(jù)庫系統(tǒng)災(zāi)難性的破壞。所以,做好數(shù)據(jù)庫的備份工作極為重要。下面我們用T-SQL語句對數(shù)據(jù)庫進(jìn)行備份。使用邏輯名為fishgameBK創(chuàng)建一個(gè)命名的備份設(shè)備,并將數(shù)據(jù)庫game完全備份到該設(shè)備。T-SQL語句如下:USEmasterGOEXECsp_addumpdevice'disk','fishgameBK','D:fishga

22、meBKdata.bak'BACKUPDATABASEameTOfishgameBK備份數(shù)據(jù)庫的過程如圖3.5所示:第四章數(shù)據(jù)庫連接為了使用戶名和用戶密碼更加方便的管理和調(diào)用,本游戲的用戶名和密碼存儲在SQLServer數(shù)據(jù)庫中。為了能夠使程序能夠調(diào)用我們預(yù)先存入的用戶信息,我們需要連接SQLServer數(shù)據(jù)庫。4.1 SQLServer的調(diào)試4.1.1 SQLServer身份驗(yàn)證如果SQLServer2005安裝時(shí)選擇的驗(yàn)證方式為身份驗(yàn)證,首先將之改為“SQLServer身份驗(yàn)證”,以下為操作步驟:步驟1打開SQLServerManagementStudio。步驟2使用Windows

23、身份驗(yàn)證連接服務(wù)器。步驟3選擇根節(jié)點(diǎn),單擊右鍵選擇屬性。步驟4單擊“安全性”選項(xiàng)卡,選擇“SQLServer和Windows身份驗(yàn)證”方式。步驟5設(shè)置賬號sa用戶的密碼。選擇sa賬戶“屬性”,如下圖步驟6啟用sa賬號步驟7重新啟動MSSQLSERV0M二一直拉1事號H鼻蟲-I牲。帚HR*M皮©立住(用早止01后斷5*-4號|津名,寬生住一1展辮0定1吳剜JiFit_JNct:*i(stiLXjSQL"b步驟8斷開連接,使用SQLServer身份驗(yàn)證的方式登錄服務(wù)器4.1.2 MSSQLSERVER勺協(xié)議使用JDBC連接數(shù)據(jù)庫需要啟動SQLServer數(shù)據(jù)庫需要先打開MSSQ

24、LSERVEW議TCP/IP服務(wù),步驟如下:步驟1打開SQLServerConfigurationManager。步驟2啟用TCP/IP服務(wù)。4.2 使用JDBC連接數(shù)據(jù)庫4.2.1 LoginCheck類連接測試LoginCheck.java程序如下:packagecom.tarena.case09;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;publicc

25、lassLoginCheckpublicstaticbooleanisLogin(Stringuname,Stringpwd)StringdName="com.microsoft.sqlserver.jdbc.SQLServerDriver"StringdbUrl="jdbc:sqlserver:localhost:1433;"+"DatabaseName=game"StringdbUser="sa"StringdbPwd="123456”;Connectioncon;/1.加載數(shù)據(jù)類tryClass.f

26、orName(dName);/2.創(chuàng)建數(shù)據(jù)庫連接con=DriverManager.getConnection(dbUrl,dbUser,dbPwd);Stringsql="select*fromtb_userwhereusername=?andpassword=?"PreparedStatementpstat=con.prepareStatement(sql);/為占位符賦值pstat.setString(1,uname);pstat.setString(2,pwd);/執(zhí)行查詢ResultSetrs=pstat.executeQuery();/根據(jù)查詢結(jié)果返回對應(yīng)的值r

27、eturnrs.next();catch(ClassNotFoundExceptione)e.printStackTrace();catch(SQLExceptione)e.printStackTrace();returnfalse;publicstaticvoidmain(Stringargs)/LoginCherk.isLogin("","");booleanflag=LoginCheck.isLogin("admin","admin");System.out.println(flag);執(zhí)行程序,連接成功提示

28、如圖4.11,返回值為true。rroDliems&JavaDtddiation后ConsoleS3<terminated>LcginCheckJavaApplicationC:ProgramFilesJavajdkl,7.O21binjavaw.exe(2015-6-25下午10:59:23)4.2.2 LogInFrame類連接測試LogInFrame類詳細(xì)程序請見附件。步驟1測試時(shí),注釋掉登錄成功進(jìn)入游戲的操作。if(LogznCheck.isLoin(namepwd)mgLgbel.江丁3共變最爆;”):,打f.受事父/*|frarne.dispose();Fish

29、framef-newFishFrame();f.addFish();FishFrameff,門cwFiGhFrmniu)ff.showUin():elsemsgLabe<setText(”毛口名青空卒fiS.)步驟2輸入一組數(shù)據(jù)庫中不存在的用戶名和密碼,用戶名:test,提示“用用F名或密碼相援戶名或密碼錯(cuò)誤”,如下圖步驟3輸入一組數(shù)據(jù)庫中存在的用戶名和密碼,用戶名:useri,提示“登錄成功”,如下圖。步驟4取消注釋掉登錄成功進(jìn)入游戲的操作,輸入一組數(shù)據(jù)庫中存在的用戶名和密碼,用戶名:useri,登陸成功進(jìn)入游戲,如下圖第五章功能展示5.1 進(jìn)入游戲輸入正確的用戶名和密碼,進(jìn)入如下游戲

30、界面,開始游戲,可以看到:游動的魚,左上角當(dāng)前金幣數(shù),右上角從右至左依次為關(guān)閉游戲、最小化和切換風(fēng)格,此外炮臺會跟隨鼠標(biāo)的移動變換方向,播放背景音樂等。5.2 發(fā)射炮彈沒捕到魚發(fā)射炮彈沒捕到魚,金幣數(shù)量每次減1。5.3 發(fā)射炮彈捕到魚發(fā)射炮彈捕到魚,金幣每次加1,同時(shí)捕到兩條金幣加2,以此類推。5.4 切換游戲風(fēng)格共設(shè)計(jì)了3個(gè)風(fēng)格可以切換,增加了游戲的趣味性,如圖,切換到了風(fēng)格3。5.5 游戲結(jié)束提示功能為了使游戲不過于枯燥,增加挑戰(zhàn)性與趣味性,當(dāng)金幣數(shù)量為0時(shí),彈出窗口提示選擇重新開始游戲或者退出游戲5.6 其他功能游戲中還設(shè)計(jì)了其他功能,無法用圖片的形式描述,如游動的魚,炮臺會跟隨鼠標(biāo)的移

31、動變換方向,進(jìn)入游戲自動播放背景音樂等。如圖,為插入的背景音樂。至此,用戶需求的功能基本得到實(shí)現(xiàn)。惕PackageExplorer笈-809*P君src9ReferencedLibraries&JRESystemLibraryjdkl,V.:n_21/love.wav&image:felip5.7課程設(shè)計(jì)總結(jié)本次課程設(shè)計(jì)歷時(shí)三周,我們第一小組的成員,從對Java編程的一無所知,到最終通過學(xué)習(xí)、分工合作,共同完成了我們的作品-捕魚達(dá)人,并且讓自己編寫的程序連接到了SQLServer數(shù)據(jù)庫,我們的收獲是顯而易見的,在此,也感謝老師們的付出和同學(xué)們的幫助。通過本次課程設(shè)計(jì),讓我們親身

32、感受到了“紙上得來終覺淺”這句話的含義,可能聽老師講的時(shí)候都能聽懂,等到自己操作的時(shí)候就總是眼高手低,不知如何下手,但最終我們通過分工合作、相互請教解決了在開發(fā)過程中,從需求分析到功能實(shí)現(xiàn)的一些問題,完成了這個(gè)項(xiàng)目。由于Java語言對我們較為陌生,加之可以與數(shù)據(jù)庫關(guān)聯(lián)的地方也不是很多。因此在數(shù)據(jù)庫建立、表的建立、數(shù)據(jù)的插入和數(shù)據(jù)庫的備份方面,我盡量與課上所學(xué)關(guān)聯(lián)起來,以上操作全部用T-SQL語句實(shí)現(xiàn)。在開發(fā)過程中,我們也查找了不少資料,從實(shí)際出發(fā)幾次修改了需求分析,使最終開發(fā)出的游戲具有一定趣味性,并且基本實(shí)現(xiàn)需求。通過本次課設(shè)我意識到,我們對知識的學(xué)習(xí),不能光停留在書本上,還要開拓眼界,主動

33、學(xué)習(xí),才能讓自己跟得上時(shí)代的步伐。參考文獻(xiàn)1鄭阿奇.SQLServer實(shí)用教程M.北京:電子工業(yè)出版社.2014.2劉衛(wèi)國.SQLServer2005數(shù)據(jù)庫應(yīng)用技術(shù)M.北京:人民郵電出版社2013.3姜桂洪.SQLServer2005數(shù)據(jù)庫應(yīng)用與開發(fā)M.北京:清華大學(xué)出版社2014.4顧韻華.數(shù)據(jù)庫基礎(chǔ)教程:SQLServer平臺M.北京:電子工業(yè)出版社2014.5徐傳運(yùn).Java高級程序設(shè)計(jì)M.北京:清華大學(xué)出版社.2014.6陳國君.Java程序設(shè)計(jì)基礎(chǔ)M.北京:清華大學(xué)出版社.2015.7張桂珠.Java面向?qū)ο蟪绦蛟O(shè)計(jì)M.北京:北京郵電大學(xué)出版社.2015.8皮德常.Java簡明教程M

34、.北京:清華大學(xué)出版社.2015.附錄附錄AFishPanel類源代碼packagecom.tarena.case09;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.Graphics2D;importjava.awt.Image;importjava.awt.Point;importjava.awt.event.ActionEvent;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importj

35、ava.awt.event.MouseMotionListener;importjava.io.File;importjava.io.IOException;importjava.util.Vector;importjavax.imageio.ImageIO;importjavax.swing.ImageIcon;importjavax.swing.JFrame;importjavax.swing.JOptionPane;importjavax.swing.JPanel;importcom.tarena.case09.Bullet;implementsimportcom.tarena.case

36、09.BulletThread;publicclassFishPanelextendsJPanelMouseMotionListener,MouseListener,Runnableintscore=200;publicintwidth;/publicintheight;/publicintbarrelX;/publicintbarrelY;/doubleroate;intmouseY=0;intmouseX=0;窗口寬度窗口高度炮筒的圖片橫坐標(biāo)炮筒的縱坐標(biāo)Vector<Fish>fishs=newVector<Fish>();Vector<Bullet>b

37、ullets=newVector<Bullet>();Vector<FishNet>nets=newVector<FishNet>()Vector<Money>ms=newVector<Money>();ImagebglmgnewImageIcon("image/case09/start01.jpg").getImage();ImagebgImg1newImageIcon("image/case09/bg1.jpg").getImage();JFrameframe;publicFishPanel

38、(intwidth,intheight,JFrameframe)this.width=width;this.height=height;this.frame=frame;barrelX=416;barrelY=this.height-62;publicvoidpaint(Graphicsg)super.paint(g);g.drawImage(bgImg,0,0,this);for(inti=0;i<fishs.size();i+)Fishf=(Fish)fishs.get(i);f.drawFish(g);g.drawImage(bgImg1,15,this.height-72,thi

39、s);ImageiconrightAdd=newImageIcon("image/case09/ui_button_65.png");g.drawimage(rightAdd.getimage(),460,this.height-60,this);ImageIconleftEduce=newImageIcon("image/case09/ui_button_63.png");g.drawImage(leftEduce.getImage(),340,this.height-60,this);/畫子彈for(inti=0;i<bullets.size(

40、);i+)Bulletb=bullets.get(i);b.drawBullet(g);)for(inti=0;i<nets.size();i+)FishNetnet=nets.get(i);g.drawImage(net.icon.getImage(),net.x,net.y,this);)/畫錢for(inti=0;i<ms.size();i+)Moneym=ms.get(i);g.drawImage(m.icon.getImage(),m.x,m.y,this);)/畫分?jǐn)?shù)25525345g.setFont(newFont("微軟雅黑",Font.BOLD

41、,30);g.setColor(Color.red);g.drawString("當(dāng)前金幣:"+score+"",10,30);/畫炮筒drawBarrel(g);)publicvoiddrawBarrel(Graphicsg)/畫炮筒ImageIconbarrel=newImageIcon("image/case09/level.png");intx=barrelX+19;inty=barrelY+39;doublex1=(double)mouseY-y;doubley1=(double)mouseX-x;doublef=0.0;f

42、=-Math.atan(y1/x1);if(f<=-Math.PI/2)f=-Math.PI/2;if(f>=Math.PI/2)f=Math.PI/2;roate=f;Graphics2Dgp=(Graphics2D)g;gp.rotate(f,x,y);gp.drawImage(barrel.getImage(),barrelX,barrelY,this);OverridepublicvoidmouseDragged(MouseEvente)OverridepublicvoidmouseMoved(MouseEvente)this.mouseX=e.getX();this.mo

43、useY=e.getY();FishPanel.this.repaint();)OverridepublicvoidmouseClicked(MouseEvente)/TODOAuto-generatedmethodstub)OverridepublicvoidmouseEntered(MouseEvente)/TODOAuto-generatedmethodstub)OverridepublicvoidmouseExited(MouseEvente)OverridepublicvoidmousePressed(MouseEvente)Bulletbullet=newBullet(FishPa

44、nel.this);bullet.img=newImageIcon("image/case09/A4.png");bullet.x=barrelX+19-10;bullet.y=barrelY+39-17;bullet.roate=roate;bullet.p=newPoint(barrelX+19,barrelY+39);bullets.add(bullet);BulletThreadt=newBulletThread(bullet);t.start();score-;if(score<=0)intxi=JOptionPane.showConfirmDialog(F

45、ishPanel.this,"GAMEOVERfe擊是重新開始游戲,退出點(diǎn)否!","提示JOptionPane.YES_NO_OPTION);if(xi=JOptionPane.YES_OPTION)frame.dispose();FishFramef=newFishFrame();f.init();f.addFish();)if(xi=JOptionPane.NO_OPTION)System.exit(0);)privatevoidstart()/TODOAuto-generatedmethodstub)OverridepublicvoidmouseReleas

46、ed(MouseEvente)Overridepublicvoidrun()while(true)tryThread.sleep(30);catch(InterruptedExceptione)e.printStackTrace();)for(inti=nets.size()-1;i>=0;i-)FishNetnet=nets.get(i);if(net.isLive)net.graw();elsefor(intj=net.catchF.size()-1;j>=0;j-)Fishf=net.catchF.get(j);intaa=fishs.indexOf(f);if(aa!=-1

47、)fishs.get(aa).isMove=false;fishs.remove(f);nets.get(i).catchF.remove(f);nets.remove(net);)附錄BFish類源代碼packagecom.tarena.case09;importjava.awt.Graphics;importjavax.swing.Imagelcon;publicclassFishpublicintx;/橫坐標(biāo)publicinty;縱坐標(biāo)publicintimgNum=0;/當(dāng)前顯示的圖片下標(biāo)publicImageiconimgs;/魚的圖片publicbooleanisCatch=fal

48、se;/是否被捕booleanisMove=true;publicImageiconimgsCatch;publicintroad=0;/移動路線publicintstep=2;/移動的速度publicinttimeThread=30;FishPanelpanel;publicstaticintright_to_left=1;publicstaticintup_to_buttom=2;publicstaticintleft_to_right=3;publicFish(FishPanelpanel)this.panel=panel;/畫魚的圖片publicvoiddrawFish(Graphic

49、sg)if(isCatch)g.drawImage(imgsCatchimgNum%2.getImage(),x,y,panel);elseg.drawImage(imgsimgNum%10.getImage(),x,y,panel);)/魚游動publicvoidmove()/如果沒被捕if(!isCatch)switch(road)case 1:x=x-step;if(x<-imgsimgNum.getIconWidth()panel.fishs.remove(this);)break;case 2:y=y+step;if(y>panel.getHeight()panel.fi

50、shs.remove(this);break;case 3:x=x+step;if(x>panel.getWidth()panel.fishs.remove(this);break;imgNum+;if(imgNum>=imgs.length&&!isCatch)imgNum=0;if(imgNum>=imgsCatch.length&&isCatch)imgNum=0;panel.repaint();附錄CFishNet類源代碼packagecom.tarena.case09;importjava.util.Vector;importjava

51、x.swing.ImageIcon;publicclassFishNetintx;inty;intcount=0;publicbooleanisLive=true;Imageiconicon;FishPanelpanel;Vector<Fish>catchF=newVector<Fish>();publicFishNet(intx,inty,imageiconicon,FishPanelpanel)this.panel=panel;this.x=x;this.y=y;this.icon=icon;)publicvoidgraw()count+;if(count>=

52、5)x=-100;y=-100;isLive=false;)/網(wǎng)捕魚publicvoidcaFish()for(intj=0;j<panel.fishs.size();j+)Fishf=panel.fishs.get(j);if(f.x>this.x-(f.imgs0.getIconWidth()/2)+5&&f.x+f.imgsf.imgNum.getIconWidth()/2<this.x+this.icon.getIconWidth()&&f.y>this.y-(f.imgs0.getIconHeight()/2)+5&&a

53、mp;f.y+f.imgsf.imgNum.getIconHeight()/2<this.y+this.icon.getIconHeight()panel.fishs.get(j).isCatch=true;catchF.add(f);Moneym=newMoney(f.x,f.y,panel);panel.ms.add(m);panel.score+;newMoneMoveThread(m).start();附錄DLogInFrame類源代碼packagecom.tarena.case09;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.ImageIcon;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPasswordField;importja

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論