畢業(yè)論文-Java實(shí)現(xiàn)蜘蛛紙牌_第1頁
畢業(yè)論文-Java實(shí)現(xiàn)蜘蛛紙牌_第2頁
畢業(yè)論文-Java實(shí)現(xiàn)蜘蛛紙牌_第3頁
畢業(yè)論文-Java實(shí)現(xiàn)蜘蛛紙牌_第4頁
畢業(yè)論文-Java實(shí)現(xiàn)蜘蛛紙牌_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 太原理工大學(xué)畢業(yè)設(shè)計(jì)(論文)用紙 緒論1.1 游戲開發(fā)的背景知識(shí)蜘蛛紙牌時(shí)一款很受大家喜歡的休閑類游戲,隨著科學(xué)技術(shù)的不斷發(fā)展的蜘蛛紙牌的的功能也越來越強(qiáng)大,界面變的越來越美觀,玩蜘蛛紙牌的人也很多。蜘蛛紙牌在window 2000 的時(shí)候就已經(jīng)存在于系統(tǒng)中,一直是大家在休閑的最佳游戲。通過這次蜘蛛紙牌游戲的設(shè)計(jì),實(shí)現(xiàn)蜘蛛紙牌的主要功能,不論是對(duì)游戲的了解,還是對(duì)自己設(shè)計(jì)程序的能力都是很好的提高。游戲的目標(biāo)是以最少的移動(dòng)次數(shù)將牌面中的十疊牌以及待發(fā)的五組,共計(jì)八副牌整理移除。當(dāng)所有牌被移除整理到界面的左下方,游戲獲勝。1.2 需要做的準(zhǔn)備工作需要做的工作有學(xué)習(xí)掌握開發(fā)程序的方法,安裝所需的編

2、程的平臺(tái)eclipse,了解開發(fā)工具,進(jìn)行進(jìn)程分析,根據(jù)得需求規(guī)格說明書設(shè)計(jì)具體的程序流程圖,編寫程序,修改程序,運(yùn)行程序,系統(tǒng)調(diào)試程序、測(cè)試程序,發(fā)布程序。2 開發(fā)工具介紹2.1 java語言概述java是一種可以撰寫跨HYPERLINK /view/58664.htm平臺(tái)HYPERLINK /view/220910.htm應(yīng)用HYPERLINK /subview/37/6030295.htm軟件的面向?qū)ο蟮腍YPERLINK /subview/17674/10597204.htm程序HYPERLINK /view/14417.htm設(shè)計(jì)HYPERLINK /subview/9793/106

3、63680.htm語言,是由HYPERLINK /view/1061350.htmSun Microsystems公司于1995年5月推出的Java程序設(shè)計(jì)語言和HYPERLINK /view/209634.htmJava平臺(tái)(即JavaEE, JavaME, JavaSE)的總稱。Java自面世后就非常流行,發(fā)展迅速,對(duì)HYPERLINK /view/824.htmC+語言形成了有力沖擊。Java 技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和HYPERLINK /view/4547.htm安全性,廣泛應(yīng)用于個(gè)人HYPERLINK /subview/13621/4882082.htmPC、HYP

4、ERLINK /view/754520.htm數(shù)據(jù)中心、HYPERLINK /subview/2468/8069356.htm游戲控制臺(tái)、HYPERLINK /view/3805.htm科學(xué)HYPERLINK /view/296324.htm超級(jí)計(jì)算機(jī)、HYPERLINK /view/49217.htm移動(dòng)電話和HYPERLINK /view/6825.htm互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。在全球云計(jì)算和HYPERLINK /view/1168245.htm移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢(shì)和廣闊前景。現(xiàn)在常用的瀏覽器比如說360瀏覽器,IE瀏覽器中均配備有java a

5、pplet。 HYPERLINK /view/29.htmJava不同于一般的HYPERLINK /view/1182926.htm編譯執(zhí)行計(jì)算機(jī)語言和HYPERLINK /view/1182922.htm解釋執(zhí)行計(jì)算機(jī)語言。它首先將HYPERLINK /view/60376.htm源代碼編譯成二進(jìn)制HYPERLINK /view/560330.htm字節(jié)碼(bytecode),然后依賴各種不同平臺(tái)上的虛擬機(jī)來解釋執(zhí)行字節(jié)碼。從而實(shí)現(xiàn)了“一次編譯、到處執(zhí)行”的跨平臺(tái)特性。不過,每次的執(zhí)行編譯后的字節(jié)碼需要消耗一定的時(shí)間,這同時(shí)也在一定程度上降低了 Java 程序的性能。2.2 java語言的特

6、點(diǎn)java語言是一種簡單的、面向?qū)ο蟮摹⒎植际降摹⒔训摹踩摹⑴c平臺(tái)無關(guān)的、多線程、高性能的、動(dòng)態(tài)程序設(shè)計(jì)語言。1.java語言簡單易學(xué)的: java語言的語法與C語言和C+語言很接近,使得多數(shù)程序員很容易學(xué)習(xí)和使用java。另一方面,java丟棄了C+中很少使用的,很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動(dòng)的強(qiáng)制類型轉(zhuǎn)換。特別地。java語言不使用指針,并提供了自動(dòng)的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂。2.平臺(tái)無關(guān)性:平臺(tái)無關(guān)性是指Java能運(yùn)行于不同的平臺(tái)。Java引進(jìn)虛擬機(jī) 原理,并運(yùn)行于虛擬機(jī),實(shí)現(xiàn)不同平臺(tái)的Java接口之間。使用Java編寫的程序能在世界范圍

7、內(nèi)共享。Java的數(shù)據(jù)類型與 機(jī)器無關(guān),Java虛擬機(jī)(Java Virtual Machine)是建立在硬件和操作系統(tǒng)之上,實(shí)現(xiàn)Java二進(jìn)制代碼的解釋執(zhí)行功能, 提供于不同平臺(tái)的接口的。 3.安全性:Java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,Java提供了一個(gè)安全機(jī)制以防惡意HYPERLINK /wiki/代碼代碼的攻擊。除了Java語言具有的許多安全特性以外,Java對(duì)通過網(wǎng)絡(luò)下載的類具有一個(gè)安全防范機(jī)制(類HYPERLINK /wiki/classloaderclassloader),如分配不同的名字空間以防替代本地的同名類、HYPERLINK /wiki/字節(jié)代碼字節(jié)代碼檢查,并提供安全管

8、理機(jī)制(類SecurityManager)讓Java應(yīng)用設(shè)置安全哨兵。 4.面向?qū)ο?Java語言提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實(shí)現(xiàn)機(jī)制。Java語言全面支持動(dòng)態(tài)綁定,而C+ 語言只對(duì)虛函數(shù)使用動(dòng)態(tài)綁定。總之,Java語言是一個(gè)純的面向?qū)ο蟪绦蛟O(shè)計(jì)語言。5.分布式:Java語言支持Internet應(yīng)用的開發(fā),在基本的Java應(yīng)用編程接口中有一個(gè)網(wǎng)絡(luò)應(yīng)用編程接口,它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫,包括URL、URLConnection、Socket、 ServerSocket等。Java的RMI(遠(yuǎn)程方法激活)機(jī)制也是開發(fā)

9、分布式應(yīng)用的重要手段。 6.健壯性:Java的強(qiáng)類型機(jī)制、異常處理、廢料的自動(dòng)收集等是Java程序健壯性的重要保證。對(duì)指針的丟棄是Java的明智選擇。Java的安全檢查機(jī)制使得Java更具健壯性。 7.解釋型:Java程序在Java平臺(tái)上被編譯為字節(jié)碼格式, 然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。在運(yùn)行時(shí),Java平臺(tái)中的Java解釋器對(duì)這些字節(jié)碼進(jìn)行解釋執(zhí)行,執(zhí)行過程中需要的類在聯(lián)接階段被載入到運(yùn)行環(huán)境中。 8.動(dòng)態(tài):java程序的基本組成單元就是類,有些類是自己編寫的,有些是從類庫中引入的,而類又是運(yùn)行時(shí)動(dòng)態(tài)裝載的,這就使得Java可以在分部環(huán)境中動(dòng)態(tài)的維護(hù)程序及分類,而不像C+

10、那樣,沒檔期類庫升級(jí)以后,如果想讓程序具有新類庫提供的功能,就需要修改程序,重新編譯。9.多線程:在Java語言中,線程是一種特殊的對(duì)象,它必須由Thread類或其子類來創(chuàng)建。通常有兩種方法來創(chuàng)建線程:其一,使用型構(gòu)為Thread 的HYPERLINK /wiki/構(gòu)造子構(gòu)造子將一個(gè)實(shí)現(xiàn)了Runnable接口的對(duì)象包裝成一個(gè)線程,其二,從Thread類派生出子類并重寫run方法,使用該子類創(chuàng)建的對(duì)象即為線程。值得注意的是Thread類已經(jīng)實(shí)現(xiàn)了Runnable接口,因此,任何一個(gè)線程均有它的run方法,而run方法中包含了線程所要運(yùn)行的代碼。線程的活動(dòng)由一組方法來控制。 Java語言支持多個(gè)線

11、程的同時(shí)執(zhí)行,并提供多線程之間的同步機(jī)制。 10.可以移植的:這種可移植性來源于體系結(jié)構(gòu)中立性,另外,java還嚴(yán)格規(guī)定了各個(gè)基本數(shù)據(jù)類型的長度。java系統(tǒng)本身也具有很強(qiáng)的可移植性,java編譯器是用java實(shí)現(xiàn)的,java運(yùn)行環(huán)境是用ANSIC實(shí)現(xiàn)的。 11.Java語言是體系結(jié)構(gòu)中立的:Java程序(后綴為java的文件)在Java平臺(tái)上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為class的文件), 然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境和軟件的分發(fā)。2.3 Eclipse簡介Eclipse 是一個(gè)開放源代碼的、基于 Java 的可擴(kuò)展開發(fā)平臺(tái)。就其本

12、身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT)。 雖然大多數(shù)用戶很樂于將 Eclipse 當(dāng)作 Java 集成開發(fā)環(huán)境(IDE)來使用,但 Eclipse 的目標(biāo)卻不僅限于此。Eclipse 還包括插件開發(fā)環(huán)境(Plug-in Development Environment,PDE),這個(gè)組件主要針對(duì)希望擴(kuò)展 Eclipse 的軟件開發(fā)人員,因?yàn)樗试S他們構(gòu)建與 Eclipse 環(huán)境無縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對(duì)于給

13、 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場(chǎng)所。這種平等和一致性并不僅限于 Java 開發(fā)工具。盡管 Eclipse 是使用 Java 語言開發(fā)的,但它的用途并不限于 Java 語言;例如,支持諸如 C/C+ 和 COBOL 等編程語言的插件已經(jīng)可用,或預(yù)計(jì)將會(huì)推出。Eclipse 框架還可用來作為與軟件開發(fā)無關(guān)的其他應(yīng)用程序類型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)。基于 Eclipse 的應(yīng)用程序的一個(gè)突出例子是 IBM Rational Software Architect,它構(gòu)成了 IBM Java 開發(fā)工具系列的基礎(chǔ)。Eclipse I

14、DE for Java EE Developers。3 可行性分析可行性分析是通過對(duì)HYPERLINK /view/25183.htm項(xiàng)目的主要內(nèi)容和配套條件,如市場(chǎng)需求、資源供應(yīng)、建設(shè)規(guī)模、工藝路線、設(shè)備選型、環(huán)境影響、資金籌措、盈利能力等,從技術(shù)、經(jīng)濟(jì)、工程等方面進(jìn)行調(diào)查研究和分析比較,并對(duì)項(xiàng)目建成以后可能取得的財(cái)務(wù)、HYPERLINK /view/188272.htm經(jīng)濟(jì)效益及社會(huì)環(huán)境影響進(jìn)行預(yù)測(cè),從而提出該項(xiàng)目是否值得投資和如何進(jìn)行建設(shè)的咨詢意見,為HYPERLINK /view/1334011.htm項(xiàng)目決策提供依據(jù)的一種綜合性的HYPERLINK /view/532763.htm系

15、統(tǒng)分析方法。可行性分析應(yīng)具有預(yù)見性、公正性、可靠性、科學(xué)性的特點(diǎn)。3.1 概述 HYPERLINK /view/117853.htm可行性研究主要內(nèi)容是要求以全面、系統(tǒng)的分析為主要方法,經(jīng)濟(jì)效益為核心,圍繞影響項(xiàng)目的各種因素,運(yùn)用大量的數(shù)據(jù)資料論證擬建項(xiàng)目是否可行。對(duì)整個(gè)HYPERLINK /view/117853.htm可行性研究提出綜合分析評(píng)價(jià),指出優(yōu)缺點(diǎn)和建議。為了結(jié)論的需要,往往還需要加上一些附件,如試驗(yàn)數(shù)據(jù)、論證材料、計(jì)算圖表、附圖等,以增強(qiáng)可行性報(bào)告的說服力。化工HYPERLINK /view/1885765.htm項(xiàng)目可行性研究軟件(RSGL-KX2.0),以化工行業(yè)可行性研究報(bào)

16、告、立項(xiàng)申請(qǐng)書規(guī)范為基礎(chǔ),通過文本、數(shù)據(jù)靈活調(diào)用,生成符合國家規(guī)定的可行性研究報(bào)告、項(xiàng)目立項(xiàng)申請(qǐng)書的格式。 本軟件的意義在于提高化工應(yīng)用課題立項(xiàng)及項(xiàng)目生產(chǎn)轉(zhuǎn)化時(shí)的HYPERLINK /view/117853.htm可行性研究的準(zhǔn)確預(yù)測(cè),旨在克服化工科技人員在技術(shù)指標(biāo)、生產(chǎn)銷售、環(huán)境評(píng)價(jià)、成本核算、利潤分配、風(fēng)險(xiǎn)評(píng)估等方面的知識(shí)欠缺,降低化工項(xiàng)目的投資風(fēng)險(xiǎn)。該軟件的內(nèi)容翔實(shí),使用簡便,只需要輸入基礎(chǔ)技術(shù)數(shù)據(jù)和基礎(chǔ)經(jīng)濟(jì)數(shù)據(jù)就可得到規(guī)范的完整可行性研究報(bào)告和項(xiàng)目立項(xiàng)申請(qǐng)書文檔。 我國HYPERLINK /view/117853.htm可行性研究存在的主要問題,一是工程技術(shù)方案的研究論證深度不夠。按照

17、國外的通常做法,HYPERLINK /view/117853.htm可行性研究階段的研究深度應(yīng)能達(dá)到定方案的程度,因此要求在工程技術(shù)方案論證,應(yīng)達(dá)到Basic Design或Concept Design的程度,基本相當(dāng)于我國的初步設(shè)計(jì)應(yīng)達(dá)到的水平,應(yīng)提出明確的設(shè)備清單;二是HYPERLINK /view/591181.htm財(cái)務(wù)評(píng)價(jià)就項(xiàng)目論項(xiàng)目,這與國外利用企業(yè)理財(cái)?shù)睦碚摵头椒ㄟM(jìn)行資本預(yù)算管理,對(duì)HYPERLINK /view/1741329.htm投資項(xiàng)目進(jìn)行HYPERLINK /view/1478470.htm投資決策和HYPERLINK /view/1250741.htm融資決策的通行做

18、法存在重大差異,并且在HYPERLINK /view/1015416.htm經(jīng)濟(jì)評(píng)價(jià)方面不恰當(dāng)?shù)厥褂昧藝窠?jīng)濟(jì)評(píng)價(jià)的概念,由此引起一系列的認(rèn)識(shí)誤區(qū);三是在市場(chǎng)分析、組織機(jī)構(gòu)分析等方面與國外差別較大,研究深度嚴(yán)重不足;四是不重視多方案的比選及項(xiàng)目HYPERLINK /view/551082.htm風(fēng)險(xiǎn)分析,或者分析的內(nèi)容、深度嚴(yán)重不足,缺乏項(xiàng)目周期各階段風(fēng)險(xiǎn)管理的統(tǒng)一籌劃及策略論證。 可行性研究的依據(jù): 一個(gè)擬建項(xiàng)目的HYPERLINK /view/117853.htm可行性研究,必須在國家有關(guān)的規(guī)劃、政策、法規(guī)的指導(dǎo)下完成,同時(shí),還必須要有相應(yīng)的各種技術(shù)資料。進(jìn)行HYPERLINK /view

19、/117853.htm可行性研究工作的主要依據(jù)主要包括: 國家經(jīng)濟(jì)和社會(huì)發(fā)展的長期規(guī)劃,部門與地區(qū)規(guī)劃,經(jīng)濟(jì)建設(shè)的指導(dǎo)方針、任務(wù)、HYPERLINK /view/126536.htm產(chǎn)業(yè)政策、投資政策和技術(shù)經(jīng)濟(jì)政策以及國家和地方法規(guī)等; 經(jīng)過批準(zhǔn)的HYPERLINK /view/1366794.htm項(xiàng)目建議書和在項(xiàng)目建議書批準(zhǔn)后簽訂的意向性協(xié)議等; 由國家批準(zhǔn)的資源報(bào)告,國土開發(fā)整治規(guī)劃、區(qū)域規(guī)劃和工業(yè)基地規(guī)劃。對(duì)于交通運(yùn)輸項(xiàng)目建設(shè)要有有關(guān)的江河流域規(guī)劃與路網(wǎng)規(guī)劃等; 國家進(jìn)出口貿(mào)易政策和HYPERLINK /view/2432632.htm關(guān)稅政策; 當(dāng)?shù)氐臄M建廠址的自然、經(jīng)濟(jì)、社會(huì)等基礎(chǔ)

20、資料; 有關(guān)國家、地區(qū)和行業(yè)的工程技術(shù)、經(jīng)濟(jì)方面的法令、法規(guī)、標(biāo)準(zhǔn)定額資料等; 由國家頒布的建設(shè)項(xiàng)目可行性研究及HYPERLINK /view/1015416.htm經(jīng)濟(jì)評(píng)價(jià)的有關(guān)規(guī)定; 包含各種市場(chǎng)信息的HYPERLINK /view/1927124.htm市場(chǎng)調(diào)研報(bào)告。 可行性研究的一般要求: HYPERLINK /view/117853.htm可行性研究工作對(duì)于整個(gè)項(xiàng)目建設(shè)過程乃至整個(gè)國民經(jīng)濟(jì)都有非常重要的意義,為了保證可行性研究工作的科學(xué)性、客觀性和公正性,有效地防止錯(cuò)誤和遺漏,在可行性研究中, (1)首先必須站在客觀公正的立場(chǎng)進(jìn)行調(diào)查研究,做好基礎(chǔ)資料的收集工作。對(duì)于收集的基礎(chǔ)資料,

21、要按照客觀實(shí)際情況進(jìn)行論證評(píng)價(jià),如實(shí)地反映客觀HYPERLINK /view/187327.htm經(jīng)濟(jì)規(guī)律,從客觀數(shù)據(jù)出發(fā),通過科學(xué)分析,得出項(xiàng)目是否可行的結(jié)論。 (2)HYPERLINK /view/671183.htm可行性研究報(bào)告的內(nèi)容深度必須達(dá)到國家規(guī)定的標(biāo)準(zhǔn),基本內(nèi)容要完整,應(yīng)盡可能多地占有數(shù)據(jù)資料,避免粗制濫造,搞形式主義。 (3)為保證HYPERLINK /view/117853.htm可行性研究的工作質(zhì)量,應(yīng)保證咨詢?cè)O(shè)計(jì)單位足夠的工作周期,防止因各種原因的不負(fù)責(zé)任草率行事。具體工作周期由委托單位與咨詢?cè)O(shè)計(jì)單位在簽訂合同時(shí)協(xié)商確定。3.2 本系統(tǒng)的可行性分析 (1). 投資必要性

22、 主要根據(jù)市場(chǎng)調(diào)查及預(yù)測(cè)的結(jié)果,以及有關(guān)的產(chǎn)業(yè)政策等因素,論證項(xiàng)目投資建設(shè)的必要性; (2). 技術(shù)的可行性 主要從事項(xiàng)目實(shí)施的技術(shù)角度,合理設(shè)計(jì)技術(shù)方案,并進(jìn)行比選和評(píng)價(jià); (3). 財(cái)務(wù)的可行性 主要從項(xiàng)目及投資者的角度,設(shè)計(jì)合理財(cái)務(wù)方案,從企業(yè)理財(cái)?shù)慕嵌冗M(jìn)行資本預(yù)算,評(píng)價(jià)項(xiàng)目的財(cái)務(wù)盈利能力,進(jìn)行投資決策,并從融資主體(企業(yè))的角度評(píng)價(jià)股東投資收益、現(xiàn)金流量計(jì)劃及債務(wù)清償能力; (4). 組織的可行性 制定合理的項(xiàng)目實(shí)施進(jìn)度計(jì)劃、設(shè)計(jì)合理組織機(jī)構(gòu)、選擇經(jīng)驗(yàn)豐富的管理人員、建立良好的協(xié)作關(guān)系、制定合適的培訓(xùn)計(jì)劃等,保證項(xiàng)目順利執(zhí)行; (5). 經(jīng)濟(jì)的可行性 從資源配置的角度衡量項(xiàng)目的價(jià)值,評(píng)

23、價(jià)項(xiàng)目在實(shí)現(xiàn)區(qū)域經(jīng)濟(jì)發(fā)展目標(biāo)、有效配置經(jīng)濟(jì)資源、增加供應(yīng)、創(chuàng)造就業(yè)、改善環(huán)境、提高人民生活等方面的效益。 (6). 社會(huì)可行性 分析項(xiàng)目對(duì)社會(huì)的影響,包括政治體制、方針政策、經(jīng)濟(jì)結(jié)構(gòu)、法律道德、宗教民族、婦女兒童及社會(huì)穩(wěn)定性等; (7). 風(fēng)險(xiǎn)因素控制的可行性對(duì)項(xiàng)目的市場(chǎng)風(fēng)險(xiǎn)、技術(shù)風(fēng)險(xiǎn)、財(cái)務(wù)風(fēng)險(xiǎn)、組織風(fēng)險(xiǎn)、法律風(fēng)險(xiǎn)、經(jīng)濟(jì)及社會(huì)風(fēng)險(xiǎn)等因素進(jìn)行評(píng)價(jià),制定規(guī)避風(fēng)險(xiǎn)的對(duì)策,為項(xiàng)目全過程的風(fēng)險(xiǎn)管理提供依據(jù)。3.3 系統(tǒng)分析3.3.1 限定問題所謂問題,是現(xiàn)實(shí)情況與HYPERLINK /view/149377.htm計(jì)劃目標(biāo)或理想狀態(tài)之間的差距。系統(tǒng)分析的核心內(nèi)容有兩個(gè):其一是進(jìn)行“診斷”,即找出問題及其

24、原因;其二是“開處方”,即提出解決問題的最可行方案。所謂限定問題,就是要明確問題的本質(zhì)或特性、問題存在范圍和影響程度、問題產(chǎn)生的時(shí)間和環(huán)境、問題的癥狀和原因等。限定問題是系統(tǒng)分析中關(guān)鍵的一步,因?yàn)槿绻霸\斷”出錯(cuò),以后開的“處方”就不可能對(duì)癥下藥。在限定問題時(shí),要注意區(qū)別癥狀和問題,探討問題原因不能先入為主,同時(shí)要判別哪些是局部問題,哪些是整體問題,問題的最后確定應(yīng)該在調(diào)查研究之后。通過親身體驗(yàn)總結(jié)各銀行ATM提款機(jī)界面流程,得到本系統(tǒng)開發(fā)的主要流程界面(主要功能取款、轉(zhuǎn)賬、查詢、修改密碼等)。3.3.2 確定目標(biāo)系統(tǒng)分析目標(biāo)應(yīng)該根據(jù)客戶的要求和對(duì)需要解決問題的理解加以確定,如有可能應(yīng)盡量通過

25、指標(biāo)表示,以便進(jìn)行定量分析。對(duì)不能定量描述的目標(biāo)也應(yīng)該盡量用文字說明清楚,以便進(jìn)行定性分析和評(píng)價(jià)系統(tǒng)分析的成效。3.3.3 調(diào)查研究,收集數(shù)據(jù)調(diào)查研究和收集數(shù)據(jù)應(yīng)該圍繞問題起因進(jìn)行,一方面要驗(yàn)證有限定問題階段形成的假設(shè),另一方面要探討產(chǎn)生問題的根本原因,為下一步提出解決問題的備選方案做準(zhǔn)備。調(diào)查研究常用的有四種方式,即閱讀文件資料、HYPERLINK /view/1212144.htm訪談、觀察和調(diào)查。收集的數(shù)據(jù)和信息包括事實(shí)(facts)、見解(opinions)和態(tài)度(attitudes)。要對(duì)數(shù)據(jù)和信息去偽存真,交叉核實(shí),保證真實(shí)性和準(zhǔn)確性。3.3.4 提出方案和評(píng)價(jià)標(biāo)準(zhǔn)通過深入調(diào)查研究

26、,使真正有待解決的問題得以最終確定,使產(chǎn)生問題的主要原因得到明確,在此基礎(chǔ)上就可以有針對(duì)性地提出解決問題的備選方案。備選方案是解決問題和達(dá)到咨詢目標(biāo)可供選擇的建議或設(shè)計(jì),應(yīng)提出兩種以上的備選方案,以便提供進(jìn)一步HYPERLINK /view/20473.htm評(píng)估和篩選。為了對(duì)備選方案進(jìn)行HYPERLINK /view/20473.htm評(píng)估,要根據(jù)問題的性質(zhì)和客戶具備的條件。提出約束條件或評(píng)價(jià)標(biāo)準(zhǔn),供下一步應(yīng)用。3.3.5 方案評(píng)估根據(jù)上述約束條件或評(píng)價(jià)標(biāo)準(zhǔn),對(duì)解決問題備選方案進(jìn)行評(píng)估,評(píng)估應(yīng)該是綜合性的,不僅要考慮技術(shù)因素,也要考慮社會(huì)經(jīng)濟(jì)等因素,評(píng)估小組應(yīng)該有一定代表性,除咨詢項(xiàng)目組成員

27、外,也要吸收客戶組織的代表參加。根據(jù)評(píng)估結(jié)果確定最可行方案。3.3.6 提交可行方案最可行方案并不一定是最佳方案,它是在約束條件之內(nèi),根據(jù)評(píng)價(jià)標(biāo)準(zhǔn)篩選出的最現(xiàn)實(shí)可行的方案。如果HYPERLINK /view/1744472.htm客戶滿意,則系統(tǒng)分析達(dá)到目標(biāo)。如果客戶不滿意,則要與客戶協(xié)商調(diào)整約束條件或評(píng)價(jià)標(biāo)準(zhǔn),甚至重新限定的問題,開始新一輪系統(tǒng)分析,直到HYPERLINK /view/1744472.htm客戶滿意為止。4 總體設(shè)計(jì)4.1 系統(tǒng)設(shè)計(jì)即對(duì)有關(guān)系統(tǒng)全局問題的設(shè)計(jì),也就是設(shè)計(jì)系統(tǒng)總的處理方案,又稱系統(tǒng)概要設(shè)計(jì)。它包括:HYPERLINK /view/3314.htm計(jì)算機(jī)配置設(shè)計(jì)、

28、系統(tǒng)模塊結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫和文件設(shè)計(jì)、代碼設(shè)計(jì)以及系統(tǒng)可靠性與內(nèi)部控制設(shè)計(jì)等內(nèi)容。軟件功能分解屬于下列軟件開發(fā)中的總體設(shè)計(jì)階段。概要設(shè)計(jì)解決軟件系統(tǒng)的模塊劃分和模塊的層次機(jī)構(gòu)以及數(shù)據(jù)庫設(shè)計(jì);HYPERLINK /view/228950.htm詳細(xì)設(shè)計(jì)解決每個(gè)模塊的控制流程,內(nèi)部算法和HYPERLINK /view/9900.htm數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)。這個(gè)階段結(jié)束,要交付HYPERLINK /view/624719.htm概要設(shè)計(jì)說明書和設(shè)計(jì)說明,也可以合并在一起,稱為設(shè)計(jì)說明書。系統(tǒng)設(shè)計(jì)通常應(yīng)用兩種方法:一種是HYPERLINK /view/2058.htm歸納法,另一種是HYPERLINK /vi

29、ew/303331.htm演繹法。應(yīng)用HYPERLINK /view/2058.htm歸納法進(jìn)行系統(tǒng)設(shè)計(jì)的HYPERLINK /view/17674.htm程序是:首先盡可能地收集現(xiàn)有的和過去的同類系統(tǒng)的系統(tǒng)設(shè)計(jì)資料;在對(duì)這些系統(tǒng)的設(shè)計(jì)、制造和運(yùn)行狀況進(jìn)行分析研究的基礎(chǔ)上,根據(jù)所設(shè)計(jì)的系統(tǒng)的功能要求進(jìn)行多次選擇,然后對(duì)少數(shù)幾個(gè)同類系統(tǒng)作出相應(yīng)修正,最后得出一個(gè)理想的系統(tǒng)。HYPERLINK /view/303331.htm演繹法是一種公理化方法,即先從普遍的規(guī)則和HYPERLINK /view/437790.htm原理出發(fā),根據(jù)設(shè)計(jì)人員的知識(shí)和經(jīng)驗(yàn),從具有一定功能的元素集合中選擇能符合系統(tǒng)功能

30、要求的多種元素,然后將這些元素按照一定形式進(jìn)行組合(見HYPERLINK /view/591160.htm系統(tǒng)結(jié)構(gòu)),從而創(chuàng)造出具有所需功能的新系統(tǒng)。在系統(tǒng)設(shè)計(jì)的實(shí)踐中,這兩種方法往往是并用的。 系統(tǒng)設(shè)計(jì)原則: (1)階段開發(fā)原則 系統(tǒng)框架和HYPERLINK /view/9900.htm數(shù)據(jù)結(jié)構(gòu)全面設(shè)計(jì),具體功能實(shí)現(xiàn)分階段進(jìn)行。網(wǎng)站的建設(shè)過程可以采取以下三期:第一期工程搭建網(wǎng)站的基本構(gòu)架,實(shí)現(xiàn)HYPERLINK /view/4319973.htm電子商務(wù)網(wǎng)的大部分功能,初步實(shí)現(xiàn)網(wǎng)上交易;第二期工程實(shí)現(xiàn)網(wǎng)上競(jìng)價(jià)系統(tǒng)的全部功能;第三期工程實(shí)現(xiàn)網(wǎng)站在線的B to B 交易。 (2)易用性原則 方便

31、上網(wǎng)客戶瀏覽和操作,最大限度地減輕后臺(tái)管理人員的負(fù)擔(dān),做到部分業(yè)務(wù)的自動(dòng)化處理。 (3)業(yè)務(wù)完整性原則 對(duì)于業(yè)務(wù)進(jìn)行中的特殊情況能夠做出及時(shí)、正確的響應(yīng),保證業(yè)務(wù)數(shù)據(jù)的完整性。 (4)業(yè)務(wù)規(guī)范化原則 在系統(tǒng)設(shè)計(jì)的同時(shí),也為將來的業(yè)務(wù)流程制定了較為完善的規(guī)范,具有較強(qiáng)的實(shí)際操作性。 (5)可擴(kuò)展性原則 系統(tǒng)設(shè)計(jì)要考慮到業(yè)務(wù)未來發(fā)展的需要,要盡可能設(shè)計(jì)得簡明,各個(gè)功能模塊間的HYPERLINK /view/1599212.htm耦合度小,便于系統(tǒng)的擴(kuò)展。如果存在舊有的HYPERLINK /view/7809.htm數(shù)據(jù)庫系統(tǒng),則需要充分考慮HYPERLINK /view/80015.htm兼容性。

32、 本系統(tǒng)參照windows游戲蜘蛛紙牌,自己編寫設(shè)計(jì)實(shí)現(xiàn)其功能,它具有如下一些功能: 設(shè)計(jì)一個(gè)游戲界面,包括玩牌區(qū)、發(fā)牌區(qū)和回收區(qū)。 (1)紙牌以及其背景的設(shè)定。 (2)移動(dòng)紙牌。使用鼠標(biāo)將較小的紙牌拖放到較大的紙牌下方,可以拖動(dòng)一組紙牌,當(dāng)要求這組紙牌是同一個(gè)花色,并且這一組紙牌從上到下是從大到小排列的,且不間斷。 (3)回收紙牌。當(dāng)某列出現(xiàn)同一花色,從上到下依次是從K到A的不間組合時(shí),這組紙牌將被回收到回收區(qū)中。 (4)發(fā)牌。用鼠標(biāo)單擊發(fā)牌區(qū),若發(fā)牌區(qū)還有剩余的紙牌,則將發(fā)出一疊紙牌共10張,依次添加到玩牌區(qū)的10列紙牌最下方,但要求這10列紙牌沒有空白列。.若玩家不了解游戲規(guī)則可以點(diǎn)擊幫

33、助獲得游戲方法。 (5)級(jí)別設(shè)定。點(diǎn)擊“游戲”菜單中選取游戲難以級(jí)別,有3種級(jí)別,分別對(duì)應(yīng)初級(jí)、中級(jí)、高級(jí)。 (6)退出游戲。4.2 主要模型 該游戲的開發(fā)及相關(guān)功能的實(shí)現(xiàn)需要在Eclipse下建立java project,同時(shí)編寫Spider.java、PKCard.java、SpiderMenu.java、AboutDialog.class,另外將紙牌的圖片文件保存在images文件夾中。該游戲可分為以下各項(xiàng)功能:Spider.java 用于實(shí)現(xiàn)紙牌初始化、設(shè)置游戲等級(jí)以及異常處理。PKCard.java用于定義紙牌的顯示的各種屬性以及鼠標(biāo)事件的相應(yīng)屬性。SpiderMenu.java用于

34、添加游戲下拉菜單的各個(gè)選項(xiàng),包含圖形用戶界面的構(gòu)建,組件監(jiān)聽的實(shí)現(xiàn),以及顯示可執(zhí)行操作的線程。SpiderMenu.class生成Spider.class,AboutDialog.class和PKCard.class。4.3 系統(tǒng)功能結(jié)構(gòu)圖 所謂HYPERLINK /view/2130233.htm功能結(jié)構(gòu)圖就是將系統(tǒng)的功能進(jìn)行分解,按功能從屬關(guān)系表示的圖表。HYPERLINK /view/2670.htm管理信息系統(tǒng)的各子系統(tǒng)可以看作是系統(tǒng)目標(biāo)下層的功能,對(duì)其中每項(xiàng)功能還可以繼續(xù)分解為第三層、第四層甚至更多的功能。 HYPERLINK /view/2130233.htm功能結(jié)構(gòu)圖就是按照功能

35、的從屬關(guān)系畫成的圖表,圖中的每一個(gè)框都稱為一個(gè)功能模塊。功能模塊可以根據(jù)具體情況分的大一點(diǎn)或小一點(diǎn),分解得最小功能模塊可以是一個(gè)程序中的每個(gè)處理過程,而較大的功能模塊則可能是完成某一個(gè)任務(wù)的一組程序。 HYPERLINK /view/2130233.htm功能結(jié)構(gòu)圖是對(duì)HYPERLINK /view/25278.htm硬件、HYPERLINK /view/37.htm軟件、HYPERLINK /view/1038216.htm解決方案等進(jìn)行解剖,詳細(xì)描述功能列表的結(jié)構(gòu),構(gòu)成,剖面的從大到小,從粗到細(xì),從上到下等而描繪或畫出來的結(jié)構(gòu)圖。從概念上講,上層功能包括 (或控制)下層功能,愈上層功能愈籠

36、統(tǒng),愈下層功能愈具體。功能分解的過程就是一個(gè)由抽象到具體、由復(fù)雜到簡單的過程。圖中每一個(gè)框稱為一個(gè)功能模塊。功能模塊可以根據(jù)具體情況分得大一點(diǎn)或小一點(diǎn)。分解得最小的功能模塊可以是一個(gè)程序中的每個(gè)處理過程,而較大的功能模塊則可能是完成某一任務(wù)的一組程序。 系統(tǒng)設(shè)計(jì)是新系統(tǒng)的物理設(shè)計(jì)階段。根據(jù)HYPERLINK /view/170100.htm系統(tǒng)分析階段所確定的新系統(tǒng)的HYPERLINK /view/1650561.htm邏輯模型、功能要求,在用戶提供的環(huán)境條件下,設(shè)計(jì)出一個(gè)能在HYPERLINK /view/3314.htm計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境上實(shí)施的HYPERLINK /view/556358.h

37、tm方案,即建立新系統(tǒng)的物理模型。圖4-1 系統(tǒng)功能結(jié)構(gòu)圖5 詳細(xì)設(shè)計(jì)5.1 代碼功能功能模塊設(shè)計(jì) 蜘蛛紙牌游戲共由4個(gè)部分組成,分別是:Spider.java,SpiderMenuBar.java,PKCard.java,AboutDialog.java。SpiderMenuBar.java包含名為SpiderMenuBar的public類,其主要功能為生成蜘蛛紙牌游戲的菜單欄,實(shí)現(xiàn)菜單欄中各個(gè)組件的事件偵聽。主要包括3個(gè)模塊:圖形用戶界面的構(gòu)建;組件監(jiān)聽接口的實(shí)現(xiàn):顯示可執(zhí)行操作的線程。PKCard.java包含名為PKCard的public類,其主要功能為:定義紙牌的屬性,包括名稱,位置

38、等相關(guān)信息。并通過相關(guān)方法實(shí)現(xiàn)紙牌的移動(dòng)等。AboutDialog.java包含名為AboutDialog的public類,其主要功能為生成蜘蛛紙牌游戲的幫助欄。Spider.java包含名為Spider的public類,其主要功能為生成蜘蛛紙牌游戲的框架,實(shí)現(xiàn)游戲中的方法,包括:紙牌的隨機(jī)生成,位置的擺放等。 圖5-1程序的總體設(shè)計(jì)流程圖5.2 模塊一的詳細(xì)介紹SpiderMenuBar.java的功能是生成蜘蛛紙牌游戲的菜單欄。實(shí)現(xiàn)菜單欄中的各個(gè)組件的事件。5.2.1 主要的類 JMenuBar類、JMenu類、JMenuItem類、JRadioButton類都是設(shè)計(jì)GUI(圖形用戶界面)

39、的包javax.swing中的類。可以用import引用這些類。JMenuBar類是JComponent類的子類負(fù)責(zé)創(chuàng)建菜單條的。即JMenuBar類的一個(gè)實(shí)例就是一個(gè)菜單條。JMenu類是JComponent類的子類負(fù)責(zé)創(chuàng)建菜單組的。即JMenu類的一個(gè)實(shí)例化就是一個(gè)菜單。 JMenuItem類是JMenu類的父類負(fù)責(zé)創(chuàng)建菜單項(xiàng)。即JMenuItem類的一個(gè)實(shí)例化就是一個(gè)菜單項(xiàng)。 JRadioButtonMenuItem類負(fù)責(zé)一個(gè)單選按鈕菜單項(xiàng)的實(shí)現(xiàn)。JRadioButtonMenuItem 是屬于一組菜單項(xiàng)中的一個(gè)菜單項(xiàng),該組中只能選擇一個(gè)項(xiàng)。 ButtonGroup 類用于為一組按鈕創(chuàng)建

40、一個(gè)多斥作用域。使用相同的 ButtonGroup 對(duì)象創(chuàng)建一組按鈕意味著“開啟”其中一個(gè)按鈕時(shí),將關(guān)閉組中的其他所有按鈕。 SpiderMenuBar類是此文件的一個(gè)主類是JMenuBar的子類。Show類是Thread的子類用于創(chuàng)建線程。5.2.2 主要的變量 jNewGame、jHelp變量分別是JMenu類創(chuàng)建的“游戲”、“幫助”菜單。 jItemAbout、jItemOpen、jItemPlayAgain、jItemExit、jItemValid變量分別是JMenuItem 類創(chuàng)建的“關(guān)于”、“開局”、“重新發(fā)牌”、“退出”、“顯示可行操作”菜單項(xiàng)。 jRMItemEasy、jRMI

41、temNormal、jRMItemHard變量分別是JRadioButtonMenuItem類創(chuàng)建的“簡單:單一花色”、“中級(jí):雙花色”、“高級(jí):四花色”的單選按鈕菜單項(xiàng)。 group變量是ButtonGroup 類創(chuàng)建的一組按鈕選擇對(duì)象。spider變量是Spider類創(chuàng)建的對(duì)象用于主界面窗口的實(shí)現(xiàn)。將在Spider.java文件中介紹。5.2.3 主要的方法public JMenuBar()創(chuàng)建新的菜單欄。public JMenu(String text)構(gòu)造一個(gè)新菜單,用提供的字符串作為其文本。public JMenuItem(String text)創(chuàng)建帶有指定文本的菜單項(xiàng)。publi

42、c JRadioButtonMenuItem(String text)創(chuàng)建一個(gè)帶文本的單選按鈕菜單項(xiàng)。public ButtonGroup()創(chuàng)建一個(gè)新的單選按鈕對(duì)象組。 public void add(MenuItem item)向菜單增加由參數(shù)item指定的菜單項(xiàng)對(duì)象。public void add(AbstractButton b)將單選按鈕添菜單項(xiàng)加到組中。public void add(JMenu c)將指定的菜單添加加到菜單欄中。public void addSeparator()將新分隔符追加到菜單的末尾。所需要添加的事件處理的接口方法將在后來的模塊中進(jìn)行介紹。事件源即能夠產(chǎn)生的

43、事件的對(duì)象。監(jiān)視器用于對(duì)事件源進(jìn)行監(jiān)視以便對(duì)發(fā)生的事件做出處理。事件源通過調(diào)用相應(yīng)的方法將某個(gè)對(duì)象作為自己的監(jiān)視器。這個(gè)方法是addActionListen(ActionListener listen)該方法中的參數(shù)是ActionListener類型的接口。因此必須用ActionListener接口的類創(chuàng)建的對(duì)象傳遞給該方法的參數(shù),使得該對(duì)象成為事件源的的監(jiān)視器。監(jiān)視器負(fù)責(zé)調(diào)用特定的方法處理事件,創(chuàng)建監(jiān)視器的類必須提供處理事件的特定的方法,即實(shí)現(xiàn)接口方法。public void addMenuListener(MenuListener l)添加菜單事件的偵聽器。 void menuSelect

44、ed(MenuEvent e)選擇某個(gè)菜單時(shí)調(diào)用。 void menuDeselected(MenuEvent e)取消選擇某個(gè)菜單時(shí)調(diào)用。 void menuCanceled(MenuEvent e)取消菜單時(shí)調(diào)用。5.3 模塊二的詳細(xì)介紹PKCard的功能是定義紙牌的屬性,包括名稱,位置等相關(guān)信息。并通過相關(guān)方法實(shí)現(xiàn)了紙牌的移動(dòng)等。5.3.1 主要的類JDialog類是創(chuàng)建對(duì)話框窗口的主要類。可以使用此類創(chuàng)建自定義的對(duì)話框,或者調(diào)用 JOptionPane 中的多個(gè)類方法來創(chuàng)建各種標(biāo)準(zhǔn)對(duì)話框。Jpanel類是一個(gè)面板類負(fù)責(zé)創(chuàng)建一個(gè)面板容器,再向這個(gè)面板添加組件,然后將面板添加到底層容器中。

45、JTabbedPane類負(fù)責(zé)創(chuàng)建一個(gè)組件,它允許用戶通過單擊具有給定標(biāo)題和/或圖標(biāo)的選項(xiàng)卡,在一組組件之間進(jìn)行切換。JTextArea類負(fù)責(zé)創(chuàng)建一個(gè)顯示純文本的多行區(qū)域。它作為一個(gè)輕量級(jí)組件Container類負(fù)責(zé)創(chuàng)建一個(gè)容器對(duì)象,此容器可以包含其它組件。AboutDialog類是JDialog類的子類,負(fù)責(zé)創(chuàng)建一個(gè)顯示對(duì)話框。5.3.2 主要的變量jMainPane、jPanel1、jPanel2、變量是JPane1創(chuàng)建的面板容器。jt1、jt2是JTextArea類創(chuàng)建的文本區(qū)對(duì)象。jTabbedPane是JTabbedPane類創(chuàng)建的選項(xiàng)卡窗格對(duì)象。c變量是Container類創(chuàng)建的容器

46、。5.3.3 主要的方法public JTabbedPane()創(chuàng)建一個(gè)具有默認(rèn)的 JTabbedPane.TOP 選項(xiàng)卡布局的空 TabbedPane.public JDialog()創(chuàng)建一個(gè)沒有標(biāo)題并且沒有指定 Frame 所有者的無模式對(duì)話框。一個(gè)共享的、隱藏的窗體將被設(shè)置為該對(duì)話框的所有者。public JPanel()創(chuàng)建具有雙緩沖和流布局的新面板容器。public JTextArea(String text)構(gòu)造顯示指定文本為text的新的文本區(qū)。public void setTittle(String s)設(shè)置一個(gè)標(biāo)題為s的對(duì)話框。public void setSize(int

47、width,int heigth)創(chuàng)建寬為width,高位heigth大小的對(duì)話框。public void setResizable(boolean b)設(shè)置對(duì)話框是否可調(diào)整大小。b為true時(shí),對(duì)話框可調(diào)整大小。public void setDefaultCloseOperation(int operation)該方法用來設(shè)置單機(jī)窗體右上角的關(guān)閉圖標(biāo)后,程序會(huì)做出怎樣的處理。operation取DISPOSE_ON_CLOSE時(shí)/隱藏當(dāng)前窗口,并釋放窗體所占有的其他資源。public void setVisible(boolean b)設(shè)置框口是可見還是不可見。b取true是為可見。publ

48、ic Container getContentPane()方法可得到窗口的內(nèi)容面板容器。public void JTextArea.setSize(int width,int heigth)設(shè)置文本區(qū)的大小。public void JTextArea.setEditable(boolean b)設(shè)置文本區(qū)是否可以編輯。public void JTextArea.setLineWrap(boolean b)設(shè)置文本區(qū)中輸入的文本是否可以實(shí)現(xiàn)在右邊界自動(dòng)換行。public void JTextArea.setFont(Font f)設(shè)置文本區(qū)內(nèi)的字體。public void JTextArea.s

49、etForeground(Color c)設(shè)置文本區(qū)組件的前景色。public void addTab(String title,Icon icon,Component component,String tip)添加由 title 和/或 icon 表示的 component 和 tip,其中任意一個(gè)都可以為 nul參數(shù):title - 此選項(xiàng)卡中要顯示的標(biāo)題,icon - 此選項(xiàng)卡中要顯示的圖標(biāo),component - 單擊此選項(xiàng)卡時(shí)要顯示的組件,tip - 此選項(xiàng)卡要顯示的工具提示。public void pack()調(diào)整此窗口的大小,以適合其子組件的首選大小和布局。5.4 模塊三的詳細(xì)介

50、紹PKCard的作用是定義紙牌的屬性,包括名稱、位置等相關(guān)信息。并通過相關(guān)方法實(shí)現(xiàn)紙牌的移動(dòng)。5.4.1 主要類介紹JLable類負(fù)責(zé)創(chuàng)建標(biāo)簽對(duì)象。標(biāo)簽用于短文本字符串或圖像或二者的顯示區(qū)。Thread類負(fù)責(zé)創(chuàng)建線程對(duì)象。MouseListener接口、MouseMotionListener接口負(fù)責(zé)處理事件源所觸發(fā)的鼠標(biāo)事件,包括處理鼠標(biāo)按下、釋放、進(jìn)入、退出、單擊、連擊、拖動(dòng)、移動(dòng)所觸發(fā)鼠標(biāo)事件。Point類負(fù)責(zé)創(chuàng)建表示 (x,y) 坐標(biāo)空間中的位置的點(diǎn)對(duì)象,以整數(shù)精度指定。MouseEvent類負(fù)責(zé)創(chuàng)建鼠標(biāo)所發(fā)生的事件對(duì)象。Flash類負(fù)責(zé)創(chuàng)建線程對(duì)象,不斷的獲取下一張紙牌。PKCard類

51、是文件的主類,實(shí)現(xiàn)MouseListener接口的JLable的子類。負(fù)責(zé)創(chuàng)建紙牌對(duì)象。5.4.2 主要變量Point point變量表示紙牌的位置對(duì)象。Point initPoint表示紙牌的初始化位置對(duì)象。int value變量表示紙牌的內(nèi)容值。int type變量表示紙牌的類型。String name變量表示紙牌的名稱。Container pane變量表示標(biāo)簽內(nèi)主容器。boolean canMove 變量表示紙牌是否可以移動(dòng),值為true時(shí),可以移動(dòng)。boolean isFront變量表示紙牌是否正面顯示,值為true時(shí),則為正面顯示。PKCard previousCard變量表示上面一

52、張紙牌5.4.3 主要方法public void flashCard(PKCard card)方法啟動(dòng)Flash線程不停的獲取下一張紙牌直至完成。public void run()方法為紙牌的正面設(shè)置白色圖片。card.updateUI()方法將UI屬性重置為當(dāng)前外觀的值。public void mousePressed(MouseEvent mp)方法按下鼠標(biāo)時(shí)事件的處理方法。public void mouseReleased(MouseEvent mr)方法釋放鼠標(biāo)時(shí)事件處理的方法。public void setNextCardLocation(Point point)方法放置鼠標(biāo)時(shí)事件處

53、理方法。public int whichColumnAvailable(Point point)方法為判斷可用列。public void mouseDragged(MouseEvent argO)方法鼠標(biāo)拖動(dòng)紙牌時(shí)事件處理方法。public void moving(int x,int y)方法將紙牌移動(dòng)(x,y)個(gè)位置。pane.setComponentZOrder(this,1)方法將主件移動(dòng)到容器中指定的順序索引。public PKCard(String name,Spider spider)方法紙牌的構(gòu)造函數(shù)。public void turnFront()方法令紙牌顯示正面。public

54、 void turnRear()方法令紙牌顯示背面。public void moveto(Point point()方法將紙牌移動(dòng)到點(diǎn)pointpublic void setCanMove(boolean can)方法判斷紙牌是否能夠移動(dòng)。public boolean isCardFront()方法判斷紙牌是否正面顯示。public boolean isCardCanMove()方法判斷紙是否能夠移動(dòng)。public int getCardValue()方法獲得紙牌的內(nèi)容值。public int getCardType()方法獲得紙牌的類型。5.5 模塊四的詳細(xì)介紹Spider.java文件是蜘

55、蛛紙牌游戲的主類文件,其主要功能是生成蜘蛛紙牌游戲的框架,實(shí)現(xiàn)游戲中的方法,包括紙牌的隨機(jī)生成、位置的擺放等。5.5.1 主要的類 JFrame類及其子類負(fù)責(zé)創(chuàng)建的對(duì)象稱為窗體。JLable類負(fù)責(zé)創(chuàng)建標(biāo)簽對(duì)象。標(biāo)簽用于短文本字符串或圖像或二者的顯示區(qū)。Container類負(fù)責(zé)創(chuàng)建一個(gè)容器對(duì)象,此容器可以包含其它組件。PKCard類負(fù)責(zé)創(chuàng)建紙牌對(duì)象。Hashtable類實(shí)現(xiàn)一個(gè)哈希表,該哈希表將鍵映射到相應(yīng)的值。5.5.2 主要的變量public static final int EASY=1;代表“簡單”等級(jí)。public static finalint NATURAL=2 代表“普通”等級(jí)。

56、public static finalint HARD=3 代表“難”等級(jí)。private int grade=Spider.EASY設(shè)定初始等級(jí)為簡單等級(jí);private Container pane 變量為Container類創(chuàng)建的面板容器。private PKCard card變量為PKCard類創(chuàng)建的紙牌數(shù)組。private JLable clickLable1變量為JLable類創(chuàng)建的右下角發(fā)牌區(qū)的鼠標(biāo)點(diǎn)擊響應(yīng)區(qū)域。private JLable groudLable變量為JLable類創(chuàng)建的背景框數(shù)組。Hshtable table變量為Hashtable類創(chuàng)建的一個(gè)哈希表對(duì)象,用于存

57、儲(chǔ)鍵值數(shù)據(jù)對(duì)。private int c變量為紙牌的數(shù)量。private int n變量為紙牌的等級(jí)。private int a變量為紙牌所在的列號(hào)。private int finish變量為紙牌從小到大排列成功的次數(shù)。5.5.3 主要的方法public void setTittle(String s)設(shè)置一個(gè)標(biāo)題為s的窗體。public void setVisible(boolean b)設(shè)置框體是可見還是不可見。b取true是為可見。public void setSize(int width,int heigth)創(chuàng)建寬為width,高位heigth大小的窗體。public void se

58、tDefaultCloseOperation(int operation)該方法用來設(shè)置單機(jī)窗體右上角的關(guān)閉圖標(biāo)后,程序會(huì)做出怎樣的處理。operation取EXIT_ON_CLOSE時(shí)結(jié)束窗體所在的應(yīng)用程序。public void setMenuBar(MenuBar mb)將此窗體的菜單欄設(shè)置為指定的菜單欄。public void pane.setBackground(Color c)設(shè)置面板的背景顏色。public void pane.setLayout(布局對(duì)象)設(shè)置面板的布局。public Container getContentPane()方法可得到窗口的內(nèi)容面板容器。public

59、 void setBounds(int a,int b,int weidth, int heigth)設(shè)置出現(xiàn)在屏幕中的組件距離屏幕的左面a個(gè)像素,距屏幕上面b個(gè)像素,組件寬為weidth,高為heigth。public void newGame()方法開始新游戲。public int getC()方法返回紙牌的數(shù)量。public void setGrade(int grade)方法設(shè)置紙牌游戲的等級(jí)。public void initCards()方法進(jìn)行初始化紙牌public void randomCards()方法令紙牌隨機(jī)分配。public void setNA()方法設(shè)置還原紙牌游戲。

60、public void setCardsLocation()方法設(shè)置待展開紙牌級(jí)表面初始化紙牌的位置。public void showEnableOperator()方法進(jìn)行顯示是否有可以移動(dòng)的紙牌。public void deal()方法開始運(yùn)行游戲。public PKCard getPreviousCard(PKCard card)方法獲取當(dāng)前紙牌上面的那一張紙牌。public PKCard getNextCard(PKCard card)方法獲取當(dāng)前紙牌的下面的那一張紙牌。public Point getLastCardLocation(int n)方法獲取第n列紙牌最后一張紙牌的位置。

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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)論