




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于Android操作系統(tǒng)的中國象棋手機游戲 Chinese Chess Application based on Android Mobile OS 指導(dǎo)老師: XXXXXXXXXXX 姓 名: XXXXXXXXXX 學(xué) 號: XXXXXXXXXX 學(xué) 院: 軟件學(xué)院 專 業(yè): 軟件工程 摘要 cnChess是運行在Android平臺上的一款支持雙人聯(lián)網(wǎng)對局、即時聊天、對 弈記錄的休閑棋牌類手機游戲。 系統(tǒng)釆用面向?qū)ο蟮木幊趟枷脒M行構(gòu)思與分析設(shè)計;使用UML構(gòu)建軟件模型; 使用MVC架構(gòu)模式實現(xiàn)系統(tǒng)的整體架構(gòu)及各模塊之間的接口設(shè)計;在系統(tǒng)的實踐 過程中還釆用了部分GoF的設(shè)計模式進行編碼與開
2、發(fā)。 本文詳細系統(tǒng)地闡述了在Android平臺上,應(yīng)用MVC分層架構(gòu)模式及面向?qū)?象的軟件開發(fā)思想對cnChess游戲系統(tǒng)的分析、設(shè)計及實現(xiàn)過程。在項LI的實踐 過程中,主要用到了以下技術(shù):手機布局主要使用了 XML設(shè)訃,程序及其子模塊 的生命周期管理用到了 Activity流程控制,數(shù)據(jù)儲存方面使用的是輕量級數(shù)據(jù)庫 SQLite、網(wǎng)絡(luò)通訊部分使用的是XMPP即時通訊協(xié)議進行數(shù)據(jù)的傳輸、對弈的畫面 更新使用的是手機的2D圖形編程。本論文的前半部分將簡要介紹系統(tǒng)相關(guān)的行業(yè) 信息及基礎(chǔ)的技術(shù)知識,后半部分將對本人在系統(tǒng)各模塊中所使用的關(guān)鍵技術(shù)的 實現(xiàn)進行了全面的介紹。 關(guān)鍵詞:聯(lián)網(wǎng)對弈;中國象棋;
3、手機游戲:Android平臺 ABSTRACT ABSTRACT CnChess is a Chinese Chess game that running on the Android platform.lt support many of the features such as playing games through the network, real-time chat, and play chess records of casual mobile games The CnChess game is object-oriented programming design and an
4、alysis of the idea of thinking; build software models using UML; use of MVC architecture patterns to achieve the overall system and the interface between the module designs; in practice the system also uses some of the GoFs design patterns to coding and development. This paper systematically expound
5、ed in the Android platform, the application of MVC pattern and hierarchical structure of object-oriented software development thoughts cnChess game system analysis, design and implementation process Practice in the course of the project, mainly used in the following technologies: cell phones primari
6、ly use XML layout design, process and life cycle management sub-module uses the Activity process control, data storage areas using a lightweight database SQLite, netwrok communication Some use the XMPP instant messaging protocol for data transmission, public debate of the frame using a mobile phone
7、2D graphics programming. The first part of this paper will briefly introduce the system based on relevant industry information and technical knowledge, the latter part of each module in the system; I will be in the key technology used in the realization of a comprehensive introduction Keywords: Netw
8、ork of games; Chinese chess; Mobile Games; Android platform II 第1章緒論1 1.1 IlLi1 1.2相關(guān)研究綜述1 1.2.1 Android手機操作系統(tǒng)的發(fā)展歷程1 1.2.2國內(nèi)外關(guān)于Android手機應(yīng)用程序的研究及開發(fā)現(xiàn)狀2 1.3研究目標(biāo)與內(nèi)容2 1.3.1研究目標(biāo)2 1.3.2研究主要內(nèi)容2 第2章Android程序設(shè)計相關(guān)技術(shù)概述4 2.1 XUL界面布局4 2.2 Android 勺 Activity 組件4 2.3 SQLite 數(shù)據(jù)庫5 2.4 XMPP 協(xié)議5 2.5 Android 2D 圖形編程5 2.
9、6 MVC模式簡介5 第3章系統(tǒng)的分析與實現(xiàn)7 3系統(tǒng)分析7 3.1.1系統(tǒng)功能分析7 3.1.2系統(tǒng)流程分析8 3.1.3系統(tǒng)數(shù)據(jù)流分析9 3.2系統(tǒng)數(shù)據(jù)庫設(shè)計9 3.2.1 系統(tǒng) E-R 圖9 3.2.2數(shù)據(jù)庫表設(shè)計10 3.3面向?qū)ο蟮南到y(tǒng)設(shè)計10 3.3.1系統(tǒng)文件組織結(jié)構(gòu)10 III 3.3.1用例的設(shè)計-11 3.3.2類的設(shè)計12 3.3.3系統(tǒng)交互模式的設(shè)計12 第4章模塊的實現(xiàn)15 4MVC分層結(jié)構(gòu)16 4.2總體控制模塊17 4.3數(shù)據(jù)存儲模塊18 4.4數(shù)據(jù)傳輸模塊20 4.5對局模塊22 4.6 XML界面布局模塊24 4.7系統(tǒng)中關(guān)鍵技術(shù)的應(yīng)用及實現(xiàn)24 4.7SQL
10、ite3 的應(yīng)用24 4.7.2 XML界而設(shè)計25 4.7.3 cnChess 的 2D 圖像編程25 4.7.4對弈過程中雙方棋盤上棋子的同步27 4.7.5 XMPP數(shù)據(jù)傳輸27 4.7.6走棋規(guī)則的判斷28 第5章結(jié)束語30 5后續(xù)硏究展望30 參考文獻31 致謝 錯誤!未定義書簽。 IV 第1章緒論 第1章緒論 1.1問題的提出 隨著3G移動網(wǎng)絡(luò)應(yīng)用的推廣,手機游戲的規(guī)模、復(fù)雜程度日益增強;其技 術(shù)手段、設(shè)訃思想、系統(tǒng)體系結(jié)構(gòu)都發(fā)生了深刻的變化。手機操作系統(tǒng)正朝著高 處理能力.多功能、智能化的方向發(fā)展。近年來,網(wǎng)絡(luò)文化市場發(fā)展很快,隨著 互聯(lián)網(wǎng)的迅速普及、寬帶的接入社區(qū)和家庭,我國網(wǎng)
11、絡(luò)游戲市場發(fā)展迅速并進入 了一個高速增長期,并已經(jīng)創(chuàng)造了較大的產(chǎn)值,帶動了相關(guān)產(chǎn)業(yè)的發(fā)展。 如今網(wǎng)絡(luò)上的提供免費中國象棋游戲,大多數(shù)是單機版的,界面單一,功能 單一。本系統(tǒng)將實現(xiàn)在網(wǎng)絡(luò)上對戰(zhàn)的中國象棋功能:還對在下棋界面美化,以及 下棋中可能出現(xiàn)的意外進行了處理。這樣中國象棋休閑游戲?qū)⒉辉谑且粋€功能單 一界面枯燥的游戲,而是一個較完善的休閑游戲。 在國內(nèi)外Android手機應(yīng)用開發(fā)如火如荼、日益盛行的大背景下,本人決定 開發(fā)一款界面友好、操作簡單,支持雙人聯(lián)網(wǎng)對局、數(shù)據(jù)記錄、智能規(guī)則判斷的 手機休閑游戲。 12相關(guān)研究綜述 近年來,國內(nèi)外的專家學(xué)者以及一線的開發(fā)人員從理論、方法、技術(shù)等不同 的
12、角度對Android手機操作系統(tǒng)進行了一定的研究。本小節(jié)將從Android手機操 作系統(tǒng)的發(fā)展歷程、研究現(xiàn)狀、程序開發(fā)設(shè)計簡介四個方面分析總結(jié)國內(nèi)外的相 關(guān)研究結(jié)果。 12.1 Android手機操作系統(tǒng)的發(fā)展歷程 Android是Google于2007年11月5日宣布的基于Linux平臺開源手機操作 系統(tǒng)名稱,該平臺山操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號稱是首個 為移動終端打造的真正開放和完整的移動軟件。 表1. 1 Android手機操作系統(tǒng)的發(fā)展階段 發(fā)展階段 階段特征 2007.11.5 Android平臺發(fā)布 2008.9.22 T-Mobile 2009年1季度 G1銷售1
13、00萬臺 2009.3 MWC華為發(fā)布Android手機,Moto,三星,LG計劃2009 年下半年推出Android手機 2009 獲得 0range, Vodafone, 02 Telefonica 支持 2009 進軍上網(wǎng)本 第1章緒論 1.2.2國內(nèi)外關(guān)于Android手機應(yīng)用程序的研究及開發(fā)現(xiàn)狀 Android是基于Linux內(nèi)核的軟件平臺和操作系統(tǒng),早期由Google開發(fā),后 山開放手機聯(lián)盟Open Handset Alliance)開發(fā)。它采用了軟件堆層(software stack, 乂名以軟件疊層)的架構(gòu),主要分為三部分。低層以Linux內(nèi)核工作為基礎(chǔ),只 提供基本功能;其他
14、的應(yīng)用軟件則山各公司自行開發(fā),以Java作為編寫程序的一 部分。另外,為了推廣此技術(shù),Google和其它兒十個手機公司建立了開放手機聯(lián) 盟。Android在未公開之前常被傳聞為Google電話或GPhone。大多傳聞?wù)J為 Google開發(fā)的是自己的手機電話產(chǎn)品,而不是一套軟件平臺。2010年1月,Google 開始發(fā)表自家品牌手機電話的Nexus One,訂前最好的是Android2.1 o 1-3研究目標(biāo)與內(nèi)容 1.3.1研究目標(biāo) 本項口主要研究的標(biāo)分為:程序設(shè)計思想實踐改進目標(biāo)、Android平臺手 機開發(fā)技術(shù)的研究口標(biāo)以及對XMPP網(wǎng)絡(luò)傳輸協(xié)議的使用與研究口標(biāo)。 (1)運用面向?qū)ο蟮木幊?/p>
15、思想及RUP統(tǒng)一過程,對cnChess中國象棋手機 游戲的系統(tǒng)結(jié)構(gòu)、過程、功能等要素進行可視化的描述,為Android程序設(shè)計的 可視化提供方法、技術(shù)上的支持,為系統(tǒng)的理論模型和軟件建模提供參照。 (2)本系統(tǒng)中使用了多種基于Android平臺的軟件開發(fā)技術(shù),根據(jù)要實現(xiàn)的 系統(tǒng)功能,系統(tǒng)需要使用到的技術(shù)及技術(shù)研究的目標(biāo)主要有: 手機游戲用戶界面的人性化、個性化界面布局,給用戶以良好的游戲體驗; 移動設(shè)備上的圖形編程,提供流暢靚麗的游戲過程界面; 使用文件、SQLite等數(shù)據(jù)存儲方式,提供游戲配置保存,游戲過程保存、游 戲過程回放、游戲結(jié)果記錄等功能,方便用戶查看; (3)使用XMPP即時通訊協(xié)
16、議傳輸數(shù)據(jù),提供即時聊天的以及在線探測的 功能,實現(xiàn)游戲的實時性。 1.3.2研究主要內(nèi)容 項目研究的內(nèi)容主要有以下四大塊: 笫一部分是手機游戲的界面設(shè)計和背景音效的設(shè)計。和PC上的游戲開發(fā)有 些許不同,手機游戲更加的注重用戶體驗,一個人性化的、時尚靚麗的游戲界面 和優(yōu)美個性化的音效設(shè)計是一個成功的手機游戲要達到的基本要求。 第二部分是手機之間的通信模塊設(shè)計。3G時代,手機通信受流量的限制很大, 所以必須盡可能的使用簡潔的通信協(xié)議,減少數(shù)據(jù)的流量,減少用戶的通訊資費; 再者,雙人對局這樣的在線游戲,必須體現(xiàn)其即時性,在一方因為電話打入或其 他原因?qū)е掠螒驋炱鸹虻艟€時,另一方能及時得知道對方的狀
17、態(tài),以便做出處理。 另外,為了增加游戲的互動性,項目提供了即時聊天的功能。 第三部分是對局智能程序的設(shè)計。在沒有朋友在線的情況下,可以和設(shè)計好 的Al (Artificial Intelligence)算法進行游戲人工智能程序設(shè)計是一項對算法要 第1章緒論 求很高的程序設(shè)訃,特別是在手機這種硬件資源緊缺的環(huán)境中,更是需要一個高 效的算法來提供強大的AI對局支持。 第四部分是邏輯控制模塊的設(shè)計。當(dāng)有緊急事件(如電話打入,電池沒電等) 發(fā)生時,需全局模塊對當(dāng)前的游戲狀態(tài)進行保存或退出等處理,并發(fā)送相關(guān)信息 給對局的伙伴;用戶通過觸摸屏進行走棋,棋子的走動規(guī)則山軟件進行智能規(guī)則 判斷;對局結(jié)束,軟件
18、將對對局的過程及結(jié)果使用與國際接軌的棋譜記錄格式 (PGN, FEN)進行記錄,在對局結(jié)束后,用戶可用軟件讀入PGN格式的對局過 程文件,進行戰(zhàn)局的回放。 軟件采用面向?qū)ο蟮木幊趟枷脒M行構(gòu)思設(shè)計,使用UML設(shè)計軟件的模型, 釆用了部分GoF的設(shè)計模式進行編碼與開發(fā)。 第2章Android程序設(shè)訃相關(guān)技術(shù)槪述 Android程序設(shè)計相關(guān)技術(shù)概述 Android作為一個移動設(shè)備的平臺,其軟件層次結(jié)構(gòu)包括了一個操作系統(tǒng) (OS),中間件(Middleware)和應(yīng)用程序(Application)o根據(jù)Android的軟件 框圖,其軟件層次結(jié)構(gòu)自下而上分為以下兒個層次: Applications Ho
19、me Conucu Phone Browser Application Framework Activity Manager Window Mmager Contes Providers View Syttem PacJaje Manager Telephony Minajer Resource Marager Locaoon Manager Nocdicaoon Manijer Surface Manager OpenGL|ES Libraries Mfda Framework Freelype SSL SQLite WebKit Android Runtime Core Libraries
20、 “叫斶血笳L Machine Linux Kernei Display Dnver Keypad Driver Camera Driver WiFi Driver Huh Memory Driver Aucfo Driven Binder (PC) Driver Power Management 圖2.1 Android系統(tǒng)架構(gòu) 2.1 XUL界面布局 XUL是一種基于XML的語言,因此需要對XML (特別是XML名稱空 間)很熟悉。XUL是英文“XML User Interface Language”的首字母縮寫。顧名 思義,它是一種應(yīng)用XML來描述使用者界面的標(biāo)示語言。 2.2 Andr
21、oid 的 Activity 組件 Activity, 一般代表手機屏幕的一屏,相當(dāng)于瀏覽器的一個頁面。在Activity 中添加view,實現(xiàn)應(yīng)用界面和用戶交互。一個應(yīng)用程序一般山多個Activity構(gòu)成, 這些Activity之間可互相跳轉(zhuǎn),可進行頁面間的數(shù)據(jù)傳遞。每個Activity都有自 己的生命周期。 第2章Android程序設(shè)訃相關(guān)技術(shù)槪述 2.3 SQLite數(shù)據(jù)庫 在Android平臺上,集成了一個嵌入式關(guān)系型數(shù)據(jù)庫一SQLiteo SQLite是支 持結(jié)構(gòu)化查詢的輕量級數(shù)據(jù)庫,能很好得適應(yīng)于移動設(shè)備的應(yīng)用。 Android提供了一個名為SQLiteDatabase的類,該類封
22、裝了一些操作數(shù)據(jù)庫 的API,使用該類可以完成對數(shù)據(jù)進行添加(Create)x查詢(Retrieve)、更新(Update) 和刪除(Delete)操作(這些操作簡稱為CRUD)o 2.4 XMPP 協(xié)議 1. 什么是XMPP XMPP (可擴展消息處理現(xiàn)場協(xié)議)的前身是Jabber, 一個開源形式組織產(chǎn) 生的網(wǎng)絡(luò)即時通信協(xié)議。具有即時信息傳輸以及在線現(xiàn)場探測的功能。 2. XMPP的基本網(wǎng)絡(luò)結(jié)構(gòu) XMPP中定義了三個角色,客戶端,服務(wù)器,網(wǎng)關(guān)。通信能夠在這三者的任 意兩個之間雙向發(fā)生。服務(wù)器同時承擔(dān)了客戶端信息記錄,連接管理和信息的路 山功能。網(wǎng)關(guān)承擔(dān)著與異構(gòu)即時通信系統(tǒng)的互聯(lián)互通,異構(gòu)系統(tǒng)
23、可以包括SMS(短 信),MSN, ICQ等。基本的網(wǎng)絡(luò)形式是單客戶端通過TCP/IP連接到單服務(wù)器, 然后在之上傳輸XMLo 3. XMPP通過TCP傳輸?shù)臄?shù)據(jù) XMPP傳輸?shù)募磿r通訊指令的邏輯與以往相仿,只是協(xié)議的形式變成了 XML 格式的純文本。XMPP的核心部分就是一個在網(wǎng)絡(luò)上分片斷發(fā)送XML的流協(xié)議, 這個流協(xié)議是XMPP的即時通訊指令的傳遞基礎(chǔ)。 2.5 Android 2D 形編程 1、Simple Graphics in View:就是直接使用Android已經(jīng)實現(xiàn)的一些畫圖操作, 比如說images, shapes, colors, pre-defined animation
24、等等。這種方式只能畫靜態(tài) 或者極為簡單的2D圖畫,對于實時性很強的動畫,高品質(zhì)的游戲都是沒法實現(xiàn) 的。2、Canvas:首先我們要明口這個Canvas是一個2D的概念,是在Skia中定 義的。也就是說在這個方式下還是說的畫2D圖形。 2.6 MVC模式簡介 整個系統(tǒng)釆用了 MVC模式進行設(shè)il oMVC模式是一種流行的軟件設(shè)計模式, 它把系統(tǒng)分為3個模塊:模型(Model)、視圖(View)和控制器(Controller)o 各個模塊的功能說明參見表2.1 第2章Android程序設(shè)訃相關(guān)技術(shù)槪述 表2. 1 MVC的三個模塊 MVC模塊 描述 模型 代表應(yīng)用程序狀態(tài)和業(yè)務(wù)邏輯 視圖 提供可交
25、互界而,向客戶顯示模型數(shù)據(jù) 控制器 響應(yīng)客戶的請求,根據(jù)客戶的請求來操縱模型,并把模型 的響應(yīng)結(jié)果經(jīng)由視圖展現(xiàn)給客戶 各個模塊之間的相互作用如圖2.2所示。釆用MVC模式有很多好處:一是 能將顯示、邏輯和數(shù)據(jù)分開,某一方面的改變不會影響另一方面;其次是可以在 不更改視圖顯示的情況下,更改控制器,以達到更改視圖與用戶交互的響應(yīng)模式 的目的。 圖2.2MVC模型圖 第3章系統(tǒng)的分析與實現(xiàn) 第3章系統(tǒng)的分析與實現(xiàn) 游戲?qū)τ脩艚缑娴囊筝^高,需達到人性化:美觀大方、便于操作,個性化: 游戲界面時尚靚麗、別具一格,最好能做到自定義皮膚之類的。本游戲是使用即 時通訊協(xié)議進行通信的,所以,實時的游戲效果、即
26、時聊天以及在線探測是必須 做到用戶體驗良好的。數(shù)據(jù)存儲方面,需存儲游戲的配置信息.對局的勝負信息、 對局的過程信息。 3.1系統(tǒng)分析 本系統(tǒng)的定位是:cnChess中國象棋手機游戲是運行在Android開源手機操作 系統(tǒng)平臺上的支持雙人聯(lián)網(wǎng)對戰(zhàn)的一款手機游戲。 山于對國際國內(nèi)3G移動應(yīng)用的前景看好,另外也對游戲開發(fā)有很大的興趣, 決定開發(fā)一款基于Android手機操作系統(tǒng)的中國象棋手機游戲。 結(jié)合當(dāng)前移動開發(fā)的形式,初步構(gòu)想之后,定下“基于Android手機操作系 統(tǒng)的中國象棋游戲應(yīng)用”應(yīng)該是這樣一款休閑游戲:以3G方式連入互聯(lián)網(wǎng);支 持雙人之間的游戲互動;支持即使聊天以及在線探測;支持游戲過
27、程記錄及回放; 支持人機對戰(zhàn);游戲界面布局人性化、個性化;支持緊急事件處理(如電話打入、 電池沒電等)。可能的話,進行WiFi編程,實現(xiàn)“局域網(wǎng)”對局。 3.1.1系統(tǒng)功能分析 本系統(tǒng)的基本功能主要有三大塊: 即時聊天:方便玩家的交流學(xué)習(xí); 象棋對弈:游戲的聯(lián)網(wǎng)互動以及即時性,是本程序與一般的象棋游戲的 不同; 戰(zhàn)績統(tǒng)計:用于統(tǒng)計玩家的對弈勝負情況。 詳細的系統(tǒng)功能分析圖如圖3-1所示。 第3章系統(tǒng)的分析與實現(xiàn) 中國象棋手機游戲, 關(guān) 于 5退出游腹 圖3-1 cnChess系統(tǒng)功能結(jié)構(gòu)圖 421開發(fā)商信懇孕 本系統(tǒng)的執(zhí)行流程較簡單,進入系統(tǒng)后有五個選項:聯(lián)網(wǎng)對局;XMPP設(shè)置; 查看勝負情況
28、;查看開發(fā)者信息及用戶幫助信息;退出游戲。在聯(lián)網(wǎng)對局前,XMPP 連接設(shè)置必須是已經(jīng)配置好的,否則無法連接jabber服務(wù)器,不能進入對局界面。 系統(tǒng)主要的輸入輸出及模塊間的調(diào)用情況用IPO圖表示如圖3-2: 圖3-2 cnChess IPO圖(輸入一處理一輸出圖) 3.1.2系統(tǒng)流程分析 系統(tǒng)流程分析是軟件丄程圖表(例如流程圖、判定表等)輔以必要的說明來 第3章系統(tǒng)的分析與實現(xiàn) 表示本程序的邏輯流程。本系統(tǒng)釆用XMPP協(xié)議進行網(wǎng)絡(luò)的連接、數(shù)據(jù)的交換。 站在用戶的角度來看,用戶之間的信息交流是端對端的;但是站在程序設(shè)計開發(fā) 者的角度來看,數(shù)據(jù)其實是要經(jīng)過jabber服務(wù)器的。 從設(shè)訃開發(fā)者的角
29、度描述系統(tǒng)的數(shù)據(jù)交互模式,如圖3-3o I棋僧 M): I . XMPPClicnl. Umpire. 散篤代 KU |Manascr 刈 切 員冊;Q化的請以來憚?wù)f検型 圖3-3系統(tǒng)交互模式圖 3.1.3系統(tǒng)數(shù)據(jù)流分析 cnChess手機游戲系統(tǒng)需要儲存的主要數(shù)據(jù)有XMPP網(wǎng)絡(luò)連接的配置信息以 及走棋的勝負信息。系統(tǒng)的數(shù)據(jù)流圖如圖34所示。 數(shù)據(jù)査詢 I 通知數(shù)據(jù)變化 模型(M): XMPPClient、Umpire4 Manager 類 般據(jù)客戶的請求來操縱模型 圖34系統(tǒng)數(shù)據(jù)流圖 3.2系統(tǒng)數(shù)據(jù)庫設(shè)計 3.2.1系統(tǒng)ER圖 系統(tǒng)使用SQLite輕量級數(shù)據(jù)庫進行數(shù)據(jù)的儲存和管理。用戶可根據(jù)
30、自己的需 第3章系統(tǒng)的分析與實現(xiàn) 要進行XMPP網(wǎng)絡(luò)連接的配置以及勝負情況的查看和清空。系統(tǒng)的E-R圖如圖 3-5所示。 圖3-5系統(tǒng)E-R圖 3.2.2數(shù)據(jù)庫表設(shè)計 本程序釆用輕量級數(shù)據(jù)庫SQLite存儲管理數(shù)據(jù),數(shù)據(jù)庫名稱為Datas.db。 Datas.db數(shù)據(jù)庫含有兩張表,兩張表的名稱以及字段屬性等定義如下: scoreTable (id,winning,falling,peace),對局得分表主要用來儲存對局的勝負信息; settingsTable (id.host,port,service,partnered,userIDjiserPWD),網(wǎng)絡(luò)連接配置表主 要用來儲存XMPP網(wǎng)絡(luò)
31、連接配置。 3.3面向?qū)ο蟮南到y(tǒng)設(shè)計 本系統(tǒng)使用面向?qū)ο蟮拈_發(fā)思想、UML建模方法、MVC三層架構(gòu)、GoF的 部分設(shè)計模式編碼設(shè)計開發(fā),便于后續(xù)的軟件擴展。下面將從系統(tǒng)文件組織結(jié)構(gòu), 系統(tǒng)用例圖,系統(tǒng)類圖以及系統(tǒng)三個角度對系統(tǒng)進行設(shè)計方面的說明。 3.3.1系統(tǒng)文件組織結(jié)構(gòu) 一個 Android 程序由 Android Library、src、Referenced Libraries res AndroidManifest.xml 組成。其中 Android Libraiy 為 Android 系統(tǒng)類庫,src 內(nèi)為程 丿了:員的代碼包,Reserenced Libraries為第三方開發(fā)包,
32、res為程序所要用到的資源 (如圖片,音視頻文檔,界面布局xml文檔等)存放的文件夾,AndroidManifest.xml 為程序的主配置聲明及版本說明文件。本系統(tǒng)的簡要文件組織結(jié)構(gòu)如圖3-6所示。 10 第3章系統(tǒng)的分析與實現(xiàn) W羅 crh 二、用戶選擇聊天菜單,startGame進行相應(yīng)的邏輯處理,啟動聊天對話 框;用戶輸入聊天信息,按下發(fā)送按鈕,消息發(fā)送到對方的服務(wù)器 帳號,與此同時,在用戶自己的聊天記錄單里面顯示; 三、用戶進行走動棋子或者悔棋等請求信息,startGame接收到按鍵事件 或者觸摸屏事件后,將相應(yīng)的信息轉(zhuǎn)交XMPPClient進行信息的發(fā) 送;XMPPClient還負
33、責(zé)客戶端監(jiān)聽,當(dāng)有對方有走棋等信息發(fā)送過 來時,XMPPClient將分辨是否為cnChess程序格式的信息并進行解 碼解包之后將信息轉(zhuǎn)交給startGame, startGame對轉(zhuǎn)交過來的信息 進行處理。 圖3-10 startGame用例的順序圖 14 第4章模塊的實現(xiàn) 第4章模塊的實現(xiàn) 需求分析階段回答了H標(biāo)軟件系統(tǒng)“要做什么”的問題,而軟件設(shè)計階段則 需要回答LI標(biāo)軟件系統(tǒng)“要怎么做”以實現(xiàn)用戶需求的問題:。 在cnChess手機游戲系統(tǒng)的軟件設(shè)計建模階段,主要是以需求分析階段的成 果(需求分析模型)作為輸入,進行系統(tǒng)的體系結(jié)構(gòu)設(shè)計、類的詳細設(shè)計和用例 實現(xiàn)設(shè)計。總體來說,cnChe
34、ss系統(tǒng)的軟件設(shè)計建模階段是對分析建模結(jié)果的進 一步精化和調(diào)整。 圖4lcnChcss的項目開發(fā)流程 項目要實現(xiàn)的模塊主要有四部分。 第一部分是手機游戲的界面設(shè)計和背景音效的設(shè)計。和PC上的游戲開發(fā)有 些許不同,手機游戲更加的注重用戶體驗,一個人性化的、時尚靚麗的游戲界面 和優(yōu)美個性化的音效設(shè)計是一個成功的手機游戲要達到的基本要求。 第二部分是手機之間的通信模塊設(shè)計。3G時代,手機通信受流量的限制很大, 所以必須盡可能的使用簡潔的通信協(xié)議,減少數(shù)據(jù)的流量,減少用戶的通訊資費; 再者,雙人對局這樣的在線游戲,必須體現(xiàn)其即時性,在一方因為電話打入或其 他原因?qū)е掠螒驋炱鸹虻艟€時,另一方能及時得知道
35、對方的狀態(tài),以便做出處理。 另外,為了增加游戲的互動性,項目提供了即時聊天的功能。 第三部分是對局智能程序的設(shè)計。在沒有朋友在線的情況下,可以和設(shè)計好 的Al (Artificial Intelligence)算法進行游戲。人工智能程序設(shè)計是一項對算法要 求很高的程序設(shè)計,特別是在手機這種硬件資源緊缺的環(huán)境中,更是需要一個高 效的算法來提供強大的AI對局支持。 第四部分是邏輯控制模塊的設(shè)計。當(dāng)有緊急事件(如電話打入,電池沒電等) 發(fā)生時,需全局模塊對當(dāng)前的游戲狀態(tài)進行保存或退出等處理,并發(fā)送相關(guān)信息 給對局的伙伴;用戶通過觸摸屏進行走棋,棋子的走動規(guī)則山軟件進行智能規(guī)則 判斷;對局結(jié)束,軟件將
36、對對局的過程及結(jié)果使用與國際接軌的棋譜記錄格式 15 第4章模塊的實現(xiàn) (PGN, FEN)進行記錄,在對局結(jié)束后,用戶可用軟件讀入PGN格式的對局過 程文件,進行戰(zhàn)局的回放。 軟件采用面向?qū)ο蟮木幊趟枷脒M行構(gòu)思設(shè)計,使用UML設(shè)計軟件的模型, 采用了部分GoF的設(shè)計模式進行編碼與開發(fā)。 4.1 MVC分層結(jié)構(gòu) 在cnChess系統(tǒng)的設(shè)計建模階段,是回答如何實現(xiàn)系統(tǒng)功能的問題,主要完 成軟件體系結(jié)構(gòu)設(shè)計和詳細設(shè)計兩個方面的工作。 軟件體系結(jié)構(gòu)設(shè)計是高級設(shè)計,主要包括以下步驟: (1)體系結(jié)構(gòu)的層次劃分。 (2)體系結(jié)構(gòu)的子系統(tǒng)劃分。 (3)建立三層體系結(jié)構(gòu)與類之間的映射關(guān)系。 詳細設(shè)計中首先要
37、詳細描述每一個類,包括類的屬性.操作.類之間的關(guān)系, 同時對系統(tǒng)用例進行設(shè)計。詳細設(shè)計包括如下內(nèi)容: (1)設(shè)計實體類的屬性和操作。 (2)設(shè)計邊界類的功能組成和操作。 (3)設(shè)計類之間的關(guān)系。 (4)構(gòu)造設(shè)計類圖模型。 (5)借助交互圖實現(xiàn)用例設(shè)計。 (6)數(shù)據(jù)模型的設(shè)計。 (7)實現(xiàn)模型的設(shè)計。 (8)設(shè)計建模的評審。 本系統(tǒng)使用MVC設(shè)計模式W進行體系的基礎(chǔ)架構(gòu),如圖4-2所示: 數(shù)據(jù)査詢 I 通知數(shù)據(jù)變化 模型(M): XMPPClient Umpire Manager 類 根據(jù)客戶的請求來操縱模型 圖4-2 cnChess的MVC三層架構(gòu) Android 應(yīng)用程序的一般架構(gòu)為:Vie
38、ws + Content Providers + Resource Manager + Notification Manager + Activity Manager ,你可以選擇其中的若干項作 16 第4章模塊的實現(xiàn) 為你應(yīng)用的架構(gòu)元素。 系統(tǒng)的項目文件組織結(jié)構(gòu)如圖43所示,其中: 源代碼包中的View類和Dialog類以及res資源文件夾中的所有XML文件, 充當(dāng)視圖的角色,負責(zé)手機界面的顯示和與用戶的交互;cnChess,startGame兩個 類充當(dāng)“ C ”的角色,重要控制程序界面的切換和信息的分發(fā); BoardView,Umpire,XMPPClient分別是棋盤類、裁判類、信息收
39、發(fā)類,充當(dāng)模型的 角色,分別負責(zé)棋盤模型的顯示與更新、裁判對象模型的建立、即時信息通信模 型的建立;DataManager,SettingsManager兩個類負責(zé)與SQLite數(shù)據(jù)庫的溝通, 分別負責(zé)戰(zhàn)績勝負次數(shù)、XMPP聯(lián)接設(shè)置的數(shù)據(jù)存取。 十住 cnChess Android Library E!品 android.jar - C: AhdSdkandroid-sdk-windows-1.11 審 edusoFt.jxnuunchess 國 田 playing E-0 AnswerDialog.java 由 jj Board View, java 由“Hl Chat Dialog, ja
40、va 囪 國 cnChefs.java 田company I nF oj 3) 表的創(chuàng)建與刪除、記錄的添刪修:數(shù)據(jù)的存取都是通過系統(tǒng)API接 口中的execSQL()函數(shù)來完成的,例如:當(dāng)需要刪除scoreTable這張 表,語句為db.execSQL(sql), db為所要操作的數(shù)據(jù)庫的句柄,sql為 所要執(zhí)行的語句。 Manager的這兩個類有些類似JavaBean,是為了保證數(shù)據(jù)的安全、完整、一 致,其他類必須通過數(shù)據(jù)庫Manager類才能與SQLite數(shù)據(jù)庫進行溝通,完成對數(shù) 據(jù)的操作。 實踐編程難點在類Umpire、Manager,由分析設(shè)計的結(jié)果生成各模塊的詳細 編碼單元以及各類的
41、模型。Umpire是裁判員類,主要用于判斷棋子走動是否規(guī)則、 對弈的勝負結(jié)果。系統(tǒng)源碼包中,帶Manager后綴的都是屬于數(shù)據(jù)管理相關(guān)類。 Manager 類主要調(diào)用系統(tǒng) API 如 android.database. * 或者 android.database.sqlite. * 進行數(shù)據(jù)的存取。如圖4-6所示,各類作用相關(guān)作用如下: 圖4-6查看戰(zhàn)績、連接設(shè)置以及走棋模塊的類圖 19 第4章模塊的實現(xiàn) 本程序釆用輕量級數(shù)據(jù)庫SQLite:33存儲管理數(shù)據(jù),數(shù)據(jù)庫名稱為Datas.db。 Datas.db數(shù)據(jù)庫含有兩張表,scoreTable表用來儲存對局的勝負信息, settingsTab
42、le用來儲存XMPP網(wǎng)絡(luò)連接配置。 表4-1 scoreTable存儲對局的勝負信息: 字段 含義 數(shù)據(jù)類型 是否為空 初始值 id 記錄的編號 Int 否 0 winning 獲勝次數(shù) Int 否 0 falling 失敗次數(shù) Int 否 0 peace 平局次數(shù) Int 否 0 表4-2 settingsTable存儲XMPP的連接設(shè)置: 字段 含義 數(shù)據(jù)類型 是否為空 初始值 id (PK) 記錄的編號 Int 否 0 host 服務(wù)器地址 String 否 Talk google com port 服務(wù)器端口 Int 否 5222 service Jabber服務(wù) 提供商 String
43、 否 Gmai1. com partnerID 對手gmail 帳號 String 否 examplegmai1. com userID 用戶gmail 帳號 String 否 example2gmai1 com userPWD 用戶密碼 String 是 123456 4.4數(shù)據(jù)傳輸模塊 數(shù)據(jù)傳輸模塊有兩個類,很多算法及技術(shù)難點都需要用到笫三方開發(fā)包 20 第4章模塊的實現(xiàn) smack.jar中的XMPP組件及其API完成,模塊說明如下: ConnectDialog用來連接或者斷開XMPP網(wǎng)絡(luò)連接,當(dāng)連接上服務(wù)器后,啟 動對局模塊,進行游戲; XMPPClite接受startGame模塊轉(zhuǎn)交
44、過來的數(shù)據(jù),在信息分類、格式化、加 密后,發(fā)送給網(wǎng)絡(luò)中的jabber服務(wù)器;同時,監(jiān)聽服務(wù)器發(fā)送過來的cnChess格 式化數(shù)據(jù),解密、解包分類后轉(zhuǎn)交給startGame模塊;另外,也監(jiān)聽對手的在線 狀態(tài)等信息,以便在發(fā)生突發(fā)情況時進行相應(yīng)的處理,從而真正的達到即時游戲 的效果。 系統(tǒng)在進行聯(lián)網(wǎng)對局前,必須對網(wǎng)絡(luò)連接進行有效的配置。游戲的網(wǎng)絡(luò)連接 配置UI界面以及各配置項的說明如圖4-7及表4-3所示,配置信息的數(shù)據(jù)存儲流 程圖如圖4-7所示。 D ttBSOio4iAM use the default setting. Hort/Port: Serzce: PartnerlD: userID
45、: example2gmaiLcom Pas/wrd: el 圖4-7 SettingsDialog對話框輸入項 游戲連接配置對話框各輸入項的詳細定義如表4-3所列。 表4-3 XMPP設(shè)置界面各項目詳細左義 標(biāo)識 名稱 數(shù)據(jù)類型 數(shù)據(jù)值有效 范圍 輸入媒體 安全保密條件 UserID 用戶Gmail 帳號 String *gmai1 com SettingsDia log SQLite限制訪問 Password 用戶密碼 String * SettingsDia log SQLite限制訪問、MD5 加密 PartnerlD 對方Gmail 帳號 String *gmai1 com Sett
46、ingsDia log SQLite限制訪問 21 第4章模塊的實現(xiàn) Host 提供IM服務(wù) 的主機 String talk google com SettingsDia log SQLite限制訪問 Port 提供IM服務(wù) 主機的端口號 Int 5222 SettingsDia log SQLite限制訪問 Service 所用的服務(wù) 類型 String gmai1 com SettingsDia log SQLite限制訪問 系統(tǒng)使用SQLite數(shù)據(jù)庫,若無游戲配置信息或者配置信息無效,系統(tǒng)將提示 進行正確的網(wǎng)絡(luò)連接配置,并對正確的配置進行存儲。配置信息的存儲數(shù)據(jù)流程 圖如圖4-8所示。
47、愉入數(shù)抵 XMPP設(shè)垃處理 存入數(shù)據(jù) 荻看數(shù)抵 讀取數(shù)據(jù) 圖4-8 XN1PP網(wǎng)絡(luò)連接設(shè)置數(shù)據(jù)流程圖 為保證用戶手機之間數(shù)據(jù)傳輸中各類數(shù)據(jù)的區(qū)分,系統(tǒng)在數(shù)據(jù)發(fā)送前需對各 類數(shù)據(jù)信息進行一定的格式化,待數(shù)據(jù)信息到達對方的手機后,系統(tǒng)再進行相應(yīng) 的解包。另外,為保證數(shù)據(jù)在網(wǎng)絡(luò)間傳輸?shù)陌踩裕谑謾C發(fā)送信息至互聯(lián)網(wǎng)這 一段使用了 smack.jar類庫中的加密函數(shù)。 未格式化聊天信息 用尸 顯示信息 XMPP客戶端: 聊天信息的發(fā)送 與接收處理 聊天對話框:聊 天信息的輸入與 顯示處理 解包后的聊天信息 圖4-9 Chat聊天模塊數(shù)據(jù)流程圖 4.5對局模塊 對局模塊是本系統(tǒng)設(shè)計編碼中較復(fù)雜,內(nèi)容比較
48、多的一個模塊。主要有以下 子模塊: 1) startGame:用來啟動對局、網(wǎng)絡(luò)連接以及對各局子模塊進行協(xié)調(diào); 2) Umpire:裁判類,定義走棋規(guī)則,用來控制走棋的順序以及對弈雙方的 22 第4章模塊的實現(xiàn) 同步,判定對局的勝負; 3) AnswerDialog:回話類,回答對方的對局請求等信息; 4) ChatDialog:對話聊天類,走棋的過程中,用來啟動對話框以和對方進行 即時聊天; 5) RestorePoint:用來記錄游戲過程中的一定走棋記錄,創(chuàng)建還原點,以方 便悔棋時,棋盤上棋子的回滾; 6) companylnfo:用來顯示開發(fā)商信息以及用戶幫助信息的UI類; 7) Err
49、orDialog:用來顯示游戲過程中出現(xiàn)的錯誤信息; 8) ExitGameDialog:用來結(jié)束游戲進程,包括游戲相關(guān)的各線程; 9) smack.jar:第三方開發(fā)包,提供XMPP服務(wù)接口,數(shù)據(jù)加密等功能。 對局模塊主要處理的是用戶之間對弈的過程同步、規(guī)則控制等信息。 用戶走棋,產(chǎn)生走棋信息,系統(tǒng)捕獲到按鍵事件或者觸摸屏事件后,會進行 數(shù)據(jù)的分類以及格式化,然后加密發(fā)送到對手的手機中。 在接收到對手發(fā)來的走棋信息時,系統(tǒng)則先通過smack.jar類庫進行解密,然 后解包,進行走棋信息的邏輯處理,最后通過界面顯示類呈現(xiàn)于用戶的手機屏幕。 圖410走棋模塊數(shù)據(jù)流程圖 對弈過程中,可打開聊天框與
50、對手進行即時聊天。聊天框如圖411所示。對 局的棋盤界面以及菜單的設(shè)置顯示如圖412所示。 HeBo.xca* Send QhflBa 10:41 AM (kafSC iidt chat dialog box YES I hi、Ercxrdiu i、uiriu XMKF* proluul You are chatting with sol onemo 圖4-11 chatDialog對話框輸入項 23 QQ8DO 3:45 AM Mdy with you friends :用妹伯!T:orwrcr for your START request 認(rèn)5 認(rèn)檢 退出 圖4-12 startGame對
51、弈界而 第4章模塊的實現(xiàn) 4.6 XML界面布局模塊 cnChess系統(tǒng)使用XML進行游戲界面的基礎(chǔ)布局,主要有以下布局界面, 各界面的布局內(nèi)容以及與各Java類的映射關(guān)系為: 1) answerdialogbox.xml:回復(fù)對話框的界面布局; 2) chatdialogbox.xml:聊天對話框的界面布局; 3) companyinfo.xml:顯示開發(fā)商信息以及用戶幫助文件; 4) errordialog.xml:錯誤信息提示框布局; 5) exitgame.xml:退出游戲提示框: 6) main.xml:游戲主界面布局; 7) settings.xml:游戲XMPP連接配置界面布局;
52、 8) staitgame.xml:游戲?qū)纸缑娌季郑?9) sure_connect.xml:確認(rèn)進行網(wǎng)絡(luò)連接對話框布局; 10) toconfirm.xml:確認(rèn)回復(fù)對方請求的對話框布局; 11) viewscore.xml:査看戰(zhàn)績界面布局。 圖4-13為res文件夾下layout (界面布局資源)的文件組織結(jié)構(gòu)。 arswerdialocbox.xml 溢res 由耳drawable 曰鉛hyout (?) chat_main.xml 血 chatdiabgbo:.xml 因 ccmparyinFo.xml 曲 erfordialog.)(ml “曲 exitgame.xrri IE)
53、 main.xml k-JRl multiJineJisLjtem.xml ;區(qū)I settings.xml i2) startgame.xml 力 sire_connect.xml : toconfirm.xrri 21 viewscore, xml (3 凸 values Cl AndroidManifest.xml 圖4-13 XML界而布局文件 4.7系統(tǒng)中關(guān)鍵技術(shù)的應(yīng)用及實現(xiàn) 4.7.1 SQLite3 的應(yīng)用 SQLite是集成在Android平臺上的嵌入式關(guān)系型數(shù)據(jù)庫。它是一個支持結(jié)構(gòu) 化存儲、查詢輕量級開源數(shù)據(jù)庫。SQLite3支持的數(shù)據(jù)類型有NULL、INTEGER. 24
54、第4章模塊的實現(xiàn) REAL(浮點數(shù)字)、TEXT(字符串文本)和BLOB(二進制對象)數(shù)據(jù)類型,雖然它支 持的類型雖然只有五種,但實際上sqlite3也接受varchar(n) char(n)、decimal(p,s) 等數(shù)據(jù)類型,只不過在運算或保存時會轉(zhuǎn)成對應(yīng)的五種數(shù)據(jù)類型。 在Android系統(tǒng),為我們提供了一個名為SQLiteOpenHelper的類,該類用于 對數(shù)據(jù)庫版本進行管理,該類是一個抽象類,必須繼承它才能使用。 為了實現(xiàn)對數(shù)據(jù)庫版本進行管理,SQLiteOpenHelper類有兩種重要的方法, 分別是 onCreate(SQLiteDatabasedb)和 onUpgrade(
55、SQLiteDatabase db, int oldVersion, int newVersion)o 在項LI的實現(xiàn)過程中:DataManager.java和SettingsManager.java兩個類都是 通過調(diào)用Android的SQLiteOpenHelper類對SQLite數(shù)據(jù)庫進行數(shù)據(jù)庫以及其中的 數(shù)據(jù)進行創(chuàng)建、修改和刪除。 4.7.2 XML界面設(shè)計 在本系統(tǒng)的軟件設(shè)計開發(fā)過程中,xml的布局是最先開始的。 Android的界面力,需要寫在res/layout的xml里面,一般情況下一個xml對 應(yīng)一個界面。做android的界面有點像寫html(連注釋代碼的方式都一樣),要先給
56、 android定框架,然后再在框架里面放控件,android提供了兒種框 架 ,AbsoluteLayout,LinearLayout,RelativeLzayout,TableLayout,FrameLayout.FrameLa yout:里面只可以有一個控件,并且不能設(shè)計這個控件的位置,控件會放到左上角 LinearLayout:里面可以放多個控件,但是一行只能放一個控件 TableLayout:這個要和TableRow配合使用,很像html里面的table AbsoluteLayout:里面可以放多個控件,并且可以自己定義控件的x,y的位置 RelativeLayout:里面可以放多個
57、控件,不過控件的位置都是相對位置(界面的 布局好像還可以直接引用一些view,如ScrollView等)框架的xml 如下: android:id=H+id/widget36H android:layout_width=HfiH_parentH android: layout匸 ”fill_parent” 上面代碼中以andioid:開頭,表示控件的屬性,fill_parent是系統(tǒng)自帶參數(shù), 表示最大的寬或高,還有一個wrap_content,表示剛好合適的寬或高。除了上面 的三個屬性外,還有一些其他的屬性,如android:background= “#FF0000FF”,設(shè) 置框架的背景色
58、,androidrientation= “ verticaln用來設(shè)置這個框架里面的走向?qū)傩浴?框架弄好,就可以在里面添加控件了,控件的基本寫法也和框架一樣,后面 用到的時候?qū)⒕唧w研究各個控件的細節(jié)。 4.7.3 cnChess的2D圖像編程 本系統(tǒng)的2D圖像編程主要用于對局模塊中棋盤、棋子、選擇框、提示信息 等圖像元素的更新。 SGL編程是本系統(tǒng)設(shè)計中的難點,在系統(tǒng)的開發(fā)過程中主要使用了 Android 系統(tǒng)類庫中的2D圖形庫接口,達到了預(yù)期的效果,實現(xiàn)了項目的H標(biāo)。 25 第4章模塊的實現(xiàn) 通過使用Android提供的2D畫圖API,程序員能一筆一劃或者使用Graphic 來畫所需要的東西
59、了,要畫什么要顯示什么都完全可控。這種方式根據(jù)環(huán)境還分 為兩種:一種就是使用普通View的canvas畫圖,還有一種就是使用專門的 Surface View的canvas來畫圖。兩種的主要是區(qū)別就是可以在Surf ace View中定義 一個專門的線程來完成畫圖工作,應(yīng)用程序不需要等待View的刷圖,提高性能。 前面一種適合處理量比較小,幀率比較小的動畫,比如說象棋游戲之類的;而后 一種主要用在游戲,高品質(zhì)動畫方面的畫圖。 本系統(tǒng)使用的是前一種圖像處理方式,系統(tǒng)棋盤棋子以及對局信息的繪制、 棋盤的顯示更新等圖像處理部分主要使用了系統(tǒng)API中的android.graphics.*類庫 進行處理。 在本項中,BoardView類主要是做棋盤模型的構(gòu)建、更行以及圖像方面的 處理工作。下面簡要介紹下在本項LI的開發(fā)中,是如何構(gòu)建棋盤模型以及如何實 現(xiàn)棋盤圖形的重繪。 1)模型構(gòu)建:棋盤的模型實際上是一個int109的二維數(shù)組,二維數(shù)組中 每一個數(shù)值代表棋盤上相應(yīng)十行九列交叉點上的棋子代碼。象棋一共32 個棋子,每個棋子的代碼從1至32不等,棋盤網(wǎng)格線上沒有棋子的交叉 點代碼為0。對弈模塊初次啟動或者對弈完一局后,將進行棋盤的數(shù)學(xué)模 型以及手機屏幕上棋盤、棋子的初始化,初始化后的棋盤數(shù)學(xué)模型如圖 4-14所示。 public void initChess() point = new int
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司聯(lián)歡慰問活動方案
- 公司組織油畫活動方案
- 公司月餅diy活動方案
- 公司組織踏青活動方案
- 公司蘇州兩日游活動方案
- 公司百日安全賽活動方案
- 公司網(wǎng)絡(luò)宣傳周活動方案
- 2025年戰(zhàn)略管理與籌資行業(yè)考研試題及答案
- 2025年植物學(xué)基礎(chǔ)知識及應(yīng)用考試卷及答案
- 拓展任務(wù)-火災(zāi)事故的基礎(chǔ)知識
- 智慧醫(yī)院建設(shè)項目實施方案
- 項目協(xié)作與溝通過程中的沖突管理試題及答案
- 2025年軌道車司機(中級)職業(yè)技能鑒定參考試題庫(含答案)
- 生物必修1教師用書
- 2024版壓力容器設(shè)計審核機考題庫-多選3-3
- 慢性阻塞性肺疾病急性加重期合并II型呼吸衰竭個案護理
- 路由與交換技術(shù)試題及答案
- (完整版)保安培訓(xùn)課件
- 2025屆上海市(春秋考)高考英語考綱詞匯對照表清單
- 《外匯交易基礎(chǔ)知識培訓(xùn)》詳解課件
- 汽油化學(xué)品安全技術(shù)說明書MSDS
評論
0/150
提交評論