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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

6、點java語言是一種簡單的、面向對象的、分布式的、健壯的、安全的、與平臺無關的、多線程、高性能的、動態(tài)程序設計語言。1.java語言簡單易學的: java語言的語法與C語言和C+語言很接近,使得多數(shù)程序員很容易學習和使用java。另一方面,java丟棄了C+中很少使用的,很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強制類型轉換。特別地。java語言不使用指針,并提供了自動的廢料收集,使得程序員不必為內存管理而擔憂。2.平臺無關性:平臺無關性是指Java能運行于不同的平臺。Java引進虛擬機 原理,并運行于虛擬機,實現(xiàn)不同平臺的Java接口之間。使用Java編寫的程序能在世界范圍

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

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

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

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

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

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

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

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

15、統(tǒng)分析方法??尚行苑治鰬哂蓄A見性、公正性、可靠性、科學性的特點。3.1 概述 HYPERLINK /view/117853.htm可行性研究主要內容是要求以全面、系統(tǒng)的分析為主要方法,經(jīng)濟效益為核心,圍繞影響項目的各種因素,運用大量的數(shù)據(jù)資料論證擬建項目是否可行。對整個HYPERLINK /view/117853.htm可行性研究提出綜合分析評價,指出優(yōu)缺點和建議。為了結論的需要,往往還需要加上一些附件,如試驗數(shù)據(jù)、論證材料、計算圖表、附圖等,以增強可行性報告的說服力?;YPERLINK /view/1885765.htm項目可行性研究軟件(RSGL-KX2.0),以化工行業(yè)可行性研究報

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

39、的包javax.swing中的類??梢杂胕mport引用這些類。JMenuBar類是JComponent類的子類負責創(chuàng)建菜單條的。即JMenuBar類的一個實例就是一個菜單條。JMenu類是JComponent類的子類負責創(chuàng)建菜單組的。即JMenu類的一個實例化就是一個菜單。 JMenuItem類是JMenu類的父類負責創(chuàng)建菜單項。即JMenuItem類的一個實例化就是一個菜單項。 JRadioButtonMenuItem類負責一個單選按鈕菜單項的實現(xiàn)。JRadioButtonMenuItem 是屬于一組菜單項中的一個菜單項,該組中只能選擇一個項。 ButtonGroup 類用于為一組按鈕創(chuàng)建

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

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

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

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

44、ed(MenuEvent e)選擇某個菜單時調用。 void menuDeselected(MenuEvent e)取消選擇某個菜單時調用。 void menuCanceled(MenuEvent e)取消菜單時調用。5.3 模塊二的詳細介紹PKCard的功能是定義紙牌的屬性,包括名稱,位置等相關信息。并通過相關方法實現(xiàn)了紙牌的移動等。5.3.1 主要的類JDialog類是創(chuàng)建對話框窗口的主要類??梢允褂么祟悇?chuàng)建自定義的對話框,或者調用 JOptionPane 中的多個類方法來創(chuàng)建各種標準對話框。Jpanel類是一個面板類負責創(chuàng)建一個面板容器,再向這個面板添加組件,然后將面板添加到底層容器中。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論