C++課程設(shè)計(jì)論文--五子棋_第1頁(yè)
C++課程設(shè)計(jì)論文--五子棋_第2頁(yè)
C++課程設(shè)計(jì)論文--五子棋_第3頁(yè)
C++課程設(shè)計(jì)論文--五子棋_第4頁(yè)
C++課程設(shè)計(jì)論文--五子棋_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、遼寧工學(xué)院C+吾言程序設(shè)計(jì)課程設(shè)計(jì)(論文)題目: 五子棋游戲院(系):專業(yè)班級(jí):學(xué) 號(hào):學(xué)生姓名:指導(dǎo)教師:教師職稱:副教授起止時(shí)間:2007.12.17 2007.12.28課程設(shè)計(jì)(論文)任務(wù)及評(píng)語院(系):軟件學(xué)院教研室:軟件教研室學(xué)號(hào)學(xué)生姓名專業(yè)班級(jí)課程設(shè)計(jì) (論文) 題目五子棋游戲課程設(shè)計(jì)1論文>任務(wù)1 .針對(duì)設(shè)計(jì)題目,提出解決的辦法和思路。設(shè)計(jì)數(shù)據(jù)字典,描繪數(shù) 據(jù)流圖、UMLH,運(yùn)用向向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法編制 C+S用程序。2 .根據(jù)需求,設(shè)計(jì)系統(tǒng)功能模塊,并設(shè)計(jì)相應(yīng)的類和界面。3 .根據(jù)基本思路,確定輸入和輸出,設(shè)計(jì)程序的算法。4 .確定用到的類的描述和定義,并設(shè)

2、計(jì)測(cè)試程序來對(duì)類進(jìn)行測(cè)試。5 .在計(jì)算機(jī)上編譯程序,檢驗(yàn)程序的可運(yùn)行性。6 .規(guī)范完整地撰寫出課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)注重C+!論知識(shí)的理解與實(shí)際的動(dòng)手編程能力,要求學(xué)生設(shè)計(jì) 具有繼承與派生以及多態(tài)性的類,理解 C+勺這些核心的概念,并且要求畫 出UMLH,然后在VC+(DEV C+沖設(shè)計(jì)界面,并調(diào)用設(shè)計(jì)的類。這樣幫助 學(xué)生掌握如何設(shè)一個(gè)小型的軟件產(chǎn)品,提高學(xué)生的設(shè)計(jì)能力。指導(dǎo)教師評(píng)語及成績(jī)成績(jī): 指導(dǎo)教師簽字: 年 月日第1章課程設(shè)計(jì)目的與要求 11.1 課程設(shè)計(jì)目的 11.2 課程設(shè)計(jì)的實(shí)驗(yàn)環(huán)境 11.3 課程設(shè)計(jì)的預(yù)備知識(shí) 11.4 課程設(shè)計(jì)要求 1第2章課程設(shè)計(jì)內(nèi)容 22.1 C+語言程序

3、設(shè)計(jì) 22.1.1 功能分析 22.1.2 算法設(shè)計(jì)及程序設(shè)計(jì)中技術(shù)重點(diǎn) 32.1.3 1. 3 評(píng)分標(biāo)準(zhǔn)的算法 32.2 程序框圖及流程圖或UM類圖 52.3 程序源代碼 7第3章課程設(shè)計(jì)總結(jié) 11參考文獻(xiàn) 12第 1章 課程設(shè)計(jì)目的與要求1.1 課程設(shè)計(jì)目的將理論教學(xué)中涉及到的知識(shí)點(diǎn)貫穿起來,對(duì)不同的數(shù)據(jù)類型、程序控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)作一比較和總結(jié),結(jié)合設(shè)計(jì)題目進(jìn)行綜合性應(yīng)用,對(duì)所學(xué)知識(shí)達(dá)到融會(huì)貫通的程度。通過課程設(shè)計(jì),學(xué)生在下述各方面的能力應(yīng)該得到鍛煉:(1)進(jìn)一步鞏固、加深學(xué)生所學(xué)專業(yè)課程C+郵言教程的基本理論知識(shí),理論聯(lián)系實(shí)際,進(jìn)一步培養(yǎng)學(xué)生綜合分析問題,解決問題的能力。( 2) 全面

4、考核學(xué)生所掌握的基本理論知識(shí)及其實(shí)際業(yè)務(wù)能力,從而達(dá)到提高學(xué)生素質(zhì)的最終目的。(3)利用所學(xué)知識(shí),開發(fā)小型應(yīng)用系統(tǒng),掌握運(yùn)用C+郵言編寫調(diào)試應(yīng)用系統(tǒng)程序, 訓(xùn)練獨(dú)立開發(fā)應(yīng)用系統(tǒng),進(jìn)行數(shù)據(jù)處理的綜合能力。( 4)對(duì)于給定的設(shè)計(jì)題目,如何進(jìn)行分析,理清思路,并給出相應(yīng)的數(shù)學(xué)模型。( 5)掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的方法。(6)熟練掌握C+郵言的基本語法,靈活運(yùn)用各種數(shù)據(jù)類型。( 7)進(jìn)一步掌握在集成環(huán)境下如何調(diào)試程序(單步調(diào)試,設(shè)置斷點(diǎn)、觀察表達(dá)式,分塊調(diào)試)和修改程序。1.2 課程設(shè)計(jì)的實(shí)驗(yàn)環(huán)境硬件要求能運(yùn)行 Windows操作系統(tǒng)的微機(jī)系統(tǒng)。C+郵言應(yīng)用程序開發(fā)軟件使用: VC+系統(tǒng),或其他C+郵言

5、應(yīng)用程序開發(fā)軟件。1.3 課程設(shè)計(jì)的預(yù)備知識(shí)熟悉C+叫言程序設(shè)計(jì)白基本知識(shí)及VC+編輯器的使用方法。1.4 課程設(shè)計(jì)要求1. 運(yùn)用面向?qū)ο蟪绦蛟O(shè)計(jì)思想與方法,分析設(shè)計(jì)題目,構(gòu)造數(shù)據(jù)模型,描繪數(shù)據(jù)流圖、UMLJS,編寫程序代碼。2. 積極上機(jī)調(diào)試源程序,增強(qiáng)編程技巧與調(diào)程能力。3. 認(rèn)真書寫課程設(shè)計(jì)預(yù)習(xí)報(bào)告, 課程設(shè)計(jì)說明書。4. 遵守課程設(shè)計(jì)要求和機(jī)房管理制度,服從指導(dǎo)教師的安排,確保課程設(shè)計(jì)的順利完成課程設(shè)計(jì)內(nèi)容第 2章課程設(shè)計(jì)內(nèi)容2.1 C+語言程序設(shè)計(jì)五子棋不僅能增強(qiáng)思維能力,提高智力,而且富含哲理,有助于修身養(yǎng)性。五子棋既有現(xiàn)代休閑的明顯特征“短、平、快”,又有古典哲學(xué)的高深學(xué)問“陰陽

6、易理”;它既有簡(jiǎn)單易學(xué)的特性,為人民群眾所喜聞樂見,又有深?yuàn)W的技巧和高水平的國(guó)際性比賽;它的棋文化源淵流長(zhǎng),具有東方的神秘和西方的直觀;既有“場(chǎng)”的概念,亦有“點(diǎn)”的連接。它是中西文化的交流點(diǎn),是古今哲理的結(jié)晶。本程序就是一款簡(jiǎn)單的五子棋小游戲,方便在大家休閑的時(shí)候進(jìn)行消遣。2.1.1 功能分析 五子棋游戲的規(guī)則(一)棋盤,棋子1 .棋盤為十五路,正中一點(diǎn)為“天元”,周圍四點(diǎn)為小星。2 .棋子分黑白兩色,黑子1 1 3枚,白子1 1 2枚,共2 2 5枚。(二)比賽規(guī)則1 .黑先白后,從天元開始落子。然后執(zhí)白棋的一方在黑棋周圍的交叉點(diǎn)上落子,白第 二著棋應(yīng)布在自己河界的一側(cè)。此后,執(zhí)黑方在以天

7、元為中心的2 5個(gè)交叉點(diǎn)的范 圍內(nèi)布盤面的第三著棋。2 .最先在橫向,豎向,斜向形成連續(xù)的相同色五個(gè)棋子的一方為勝。3 .黑棋禁手判負(fù),白棋無禁手。黑棋禁手包括“三三”,“四四”,“長(zhǎng)連”。黑方只能 “四三”勝。所謂禁手,是指黑方一子落下同時(shí)形成兩個(gè)或兩個(gè)以上的活三,沖四及長(zhǎng)連禁手。長(zhǎng)連禁手是指黑方形成六個(gè)或六個(gè)以上的連續(xù)棋子。4 .雙方均不能形成五連為和棋。5 .對(duì)局中拔子,中途退場(chǎng)均判為負(fù)。6 .五連與禁手同時(shí)形成,先五為勝。因黑方已形成五連,故禁手失效,黑方勝。7 .黑方禁手形成時(shí),白方應(yīng)立即指出禁手點(diǎn),黑方即負(fù)。若白方繼續(xù)應(yīng)子,則黑方禁 手不成立。8 .高段位職業(yè)比賽的特殊規(guī)定:”三手

8、可交換”:黑下完第2手,執(zhí)白者可提出交換。即執(zhí)白方變?yōu)閳?zhí)黑方。 “五手兩打法”:執(zhí)黑下第五手時(shí),必須下兩手棋,執(zhí)白者從這兩手棋中任選一步。本程序中涉及到的類的說明:網(wǎng)絡(luò)控制部分:CServerSocket 、 CClientSocket 和 CMessg。CServerSocket 類是一個(gè)專門用來監(jiān)聽客戶端連接的Socket 類, 它繼承于CSocket,相應(yīng) OnAccept 消息。在ServerSocket.cpp 中,其中成員函數(shù)Init 負(fù)責(zé)初始化ServerSocket,而OnAccept函數(shù)負(fù)責(zé)接收客戶端連接。CClientSocket 類是一個(gè)專門用做會(huì)話的類,它負(fù)責(zé)數(shù)據(jù)的發(fā)送

9、和接收。它繼承自CSocket,負(fù)責(zé)響應(yīng)OnReceive和OnClose消息。另外,作為 CSocket類的繼承類,理所當(dāng)然的采用了用行化的方式來處理網(wǎng)絡(luò)數(shù)據(jù)。網(wǎng)絡(luò)數(shù)據(jù)是由CMessg的對(duì)象構(gòu)成的。另外,在CClientSocket 類中還定義了幾個(gè)靜態(tài)函數(shù),它們用來得到本機(jī)的名字和本機(jī)的 IP 地址。CMess酸是一個(gè)數(shù)據(jù)類,它繼承于CObject。在這個(gè)程序中,讓CMess談發(fā)揮串行 化數(shù)據(jù)的作用。規(guī)則方面類:Match類每一種游戲都有一定的規(guī)則,Match 類正是五子棋的規(guī)則處理類。在Match 類中保存 著 一 個(gè) 當(dāng) 前 的 棋 盤 , 它 是 一 個(gè) 二 維 的 數(shù) 組 int

10、chessboardLWLW 。 如 果 chessboardxy 為 0, 則表示 ( X,Y) 的位置上沒有棋子;如果 chessboardxy 為 1,表示該位子有黑子;如果chessboardxy 為 2,則表示該位子上有白子。試圖方面類FiveChessView 類:FiveChessView 是程序的主視圖類。它負(fù)責(zé)在主窗體中繪制棋盤和棋子,顯示聊天的內(nèi)容,負(fù)責(zé)對(duì)鼠標(biāo)消息進(jìn)行處理等。2.1.2 算法設(shè)計(jì)及程序設(shè)計(jì)中技術(shù)重點(diǎn)棋類游戲中人工智能設(shè)計(jì)的工作量和算法的復(fù)雜度是成正比,優(yōu)秀的算法需要盡可 能避免額外的計(jì)算時(shí)間開銷并有效的使用內(nèi)存資源。事實(shí)上,五子棋游戲水平的高低主 要在于能夠

11、計(jì)算后步路數(shù)的多少,也就是常說的算了幾步。如果電腦具有這種能力,就 不會(huì)掉入玩家設(shè)下的陷阱,這也是初學(xué)者常犯的錯(cuò)誤,目光短淺,只看到眼前一步。所 以,棋類算法設(shè)計(jì)的任務(wù)就是既擁有高水平的算法,又能擁有最快的計(jì)算速度。從電腦的“思考”角度來看問題,如何讓電腦知道該落子在哪一點(diǎn)呢,在這方面,電腦要做得和人一樣,判斷棋盤上每一點(diǎn)的重要度,比如沖四比沖三強(qiáng),沖三比沖二強(qiáng),遇 到四三如果是對(duì)方的,堵死,如果是自己的,優(yōu)先落子。遇到雙三,如果是黑棋,黑方 輸,如果是白棋,優(yōu)先等級(jí)僅次于四三。五子棋的行走算法采用了博弈樹的方法,它需要應(yīng)用剪枝和最大最小樹原理進(jìn)行搜 索,從而發(fā)現(xiàn)最好的下子位置。2. 1. 3

12、 評(píng)分標(biāo)準(zhǔn)的算法算法需要設(shè)計(jì)一個(gè)簡(jiǎn)單的規(guī)則來表示當(dāng)前棋面的分?jǐn)?shù),基本的規(guī)則如下:1 判斷是否能成5,如果是機(jī)器方面的話給予N1 分,如果是人的話給予-N1 分;2 .判斷是否能成活4或者是雙死4或者是死4活3,如果是機(jī)器方的話給予 N2分, 如果是人的話給予-N2 分。3 .判斷是否以成雙活3,如果是機(jī)器方的話給予 N3分,如果是人的話給予-N3分;4 .判斷是否成死3活3,如果是機(jī)器方的話給予 N4分,如果是人的話給予-N4分;5 .判斷是否成死4,如果是機(jī)器方的話給予 N5分,如果是人的話給予-N5分;6 .判斷是否成單活3,如果是機(jī)器方的話給予N6分,如果是人的話給予-N6分;7 .判斷

13、是否成雙活2,如果是機(jī)器方的話給予N7分,如果是人的話給予-N7分;8 .判斷是否成死3,如果是機(jī)器方的話給予 N8分,如果是人的話給予-N8分;9 .判斷是否成雙活2,如果是機(jī)器方的話給予N9分,如果是人的話給予-N9分;10 .判斷是否成活2,如果是機(jī)器方的話給予 N10分,如果是人的話給予-N10分;11 .判斷是否成死2,如果是機(jī)器方的話給予 N11分,如果是人的話給予-N11分;通常N1=N2>N3>N4>N5>N6>N7>N8>N9>N10。 >N11有了具體分?jǐn)?shù)的定義,就可以順利地給當(dāng)前的對(duì)局雙方打分。在實(shí)際運(yùn)行的時(shí)候,用戶可

14、以調(diào)整規(guī)則和具體的評(píng)分標(biāo)準(zhǔn)。判斷勝負(fù):勝負(fù)是要根據(jù)當(dāng)前最后一個(gè)落子的情況來判定的。實(shí)際上算法需要從8 個(gè)方向判斷,用戶可以調(diào)整規(guī)矩和具體的評(píng)分標(biāo)準(zhǔn)。搜索算法實(shí)現(xiàn)描述下面的核心算法中的變量currentBoardSituation 表示當(dāng)前機(jī)器最新的盤面情況,CountList 表示第一層子節(jié)點(diǎn)可以選擇的較好的盤面的集合。核心算法如下:Void MainDealFunction()value=-MAXINT;calSeveralGoodplace(currentBoardSituation,countList);該函數(shù)實(shí)根據(jù)當(dāng)前的盤面情況來比較得到比較好的可以考慮的幾個(gè)盤面的情況,可以根據(jù)實(shí)際的

15、得分情況選取分?jǐn)?shù)比較高的幾個(gè)盤面,也就是說在第一層節(jié)點(diǎn)選擇的時(shí)候采用貪婪算法,直接找出相對(duì)分?jǐn)?shù)比較高的幾個(gè)點(diǎn)形成第一層節(jié)點(diǎn),目的是為了提高搜索速度和防止堆棧溢出。pos=CountList.GetHeadPosition();CScoreTable* pBoard;For(i=0;i<CountList.Getcount();i+); pBoard=CountList.GetNext(pos);pBoard->value=Search(pBoard,min,value,0);value=Select (Value,pBoard->value,max);for(i=0;i<

16、;CountList.GetNext();i+)pBoard=CountList.GETnext(pos);if ( value=pBoard->value) currentBoardSituation=pBoard;playerMode=min;Break;實(shí)際上核心的算法是一個(gè)剪枝過程,搜索過程中相關(guān)的4 個(gè)參數(shù)為:當(dāng)前棋局情況、當(dāng)前的下子方、父節(jié)點(diǎn)的值oldValue 和當(dāng)前的搜索深度depth。Double Search(CScoreTable& board,int mode,double oldvalue,int depth) CList<op,op> m_

17、DeepList;If (depth<MAX_DEPTH && goal (board)=0) if(mode=max)Value=-MAXINT;Else value=MAXINTGetSeveralGoodPlace(m_DeepList);For(i=0;i<m_Deeplist.GetCount();i+ if (mode=max&&value<oldvalue)|(mode=min&&value>oldvalue)=TRUE) Value=select(value,search(successorBoard,mi

18、n,value,depth+1),max);Else value=select(value,search(successorboard.max,value,depth+1) return value; else if (goal(board)<>0)Return goal (board);Else return evlation(board);2.2 程序框圖及流程圖或UM送圖就攻擊和防守都做出判斷,而將可能走子后的盤面交由番局函數(shù)做出評(píng)估,評(píng)估后 的最佳走法傳回給系統(tǒng)。對(duì)防守來說,防守的走子或是是否要防守都得考慮進(jìn)去,當(dāng)對(duì) 方有活3產(chǎn)生時(shí),因?yàn)橛袃蓚€(gè)方法可以阻擋,且自身一直是以死

19、 4的攻擊是,說不定不 用對(duì)對(duì)方的活3做防守,因此我們也要對(duì)防守的走子步驟做番局評(píng)估,如下圖。用來管理人機(jī)對(duì)弈/網(wǎng)絡(luò)對(duì)弈兩種游戲模式,類名為 CGameCGam魚一個(gè)抽象類, 經(jīng)由它派生出一人游戲類COneGamW網(wǎng)絡(luò)游戲類CTwoGam&口下圖。軟件的總體架構(gòu)圖,如下圖網(wǎng)絡(luò)對(duì)弈流程圖,如下圖:UMLfe圖(CMessgCMessg_M_strText:int _M_turn:int _m_x:int _m_y:int+Init () : void2.3 程序源代碼#include "stdafx.h"#include "FiveChess.h"

20、#include "MainFrm.h"#include "FiveChessDoc.h"#include "FiveChessView.h"#include "afxsock.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE口 = _FILE_;#endifCFiveChessAppBEGIN_MESSAGE_MAP(CFiveChessApp, CWinApp)AFX_MSG_MAP(CFiveChessApp)

21、ON_COMMAND(ID_APP_ABOUAppAbout)NOTE -the ClassWizard will add and remove mapping macros here.DO NOT EDIT what you see in these blocks of generated code!AFX_MSG_MAPStandard file based document commandsON_COMMAND(ID_FILE_NEW, CWinApp:OnFileNew)ON_COMMAND(ID_FILE_OPEN, CWinApp:OnFileOpen)/ Standard pri

22、nt setup commandON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp:OnFilePrintSetup)END_MESSAGE_MAP()/ CFiveChessApp constructionCFiveChessApp:CFiveChessApp()/ TODO:add construction code here,/ Place all significant initialization inInitInstance/ The one and only CFiveChessApp objectCFiveChessApp theApp;/ CFiv

23、eChessApp initializationBOOL CFiveChessApp:InitInstance()AfxEnableControlContainer();/ Standard initialization/ If you are not using these features and wish to reduce the size/ of your final executable, you should remove from the following/ the specific initialization routines you do not need.#ifdef

24、 _AFXDLLEnable3dControls();/ Call this when using MFC in a shared DLL#elseEnable3dControlsStatic();/Call this when linking to MFC statically#endif/ Change the registry key under which our settings are stored./ TODO: You should modify this string to be something appropriate/ such as the name of your

25、company or organization.SetRegistryKey(_T("Local AppWizard-Generated Applications");LoadStdProfileSettings(); / Load standard INI file options (including MRU)/ Register the application's document templates. Document templates/ serve as the connection between documents, frame windows an

26、d views.CSingleDocTemplate* pDocTemplate;pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS(CFiveChessDoc),RUNTIME_CLASS(CMainFrame), / main SDI frame windowRUNTIME_CLASS(CFiveChessView);AddDocTemplate(pDocTemplate);/ Parse command line for standard shell commands, DDE, file openCComm

27、andLineInfo cmdInfo;ParseCommandLine(cmdInfo);/ Dispatch commands specified on the command lineif (!ProcessShellCommand(cmdInfo)return FALSE;/ The one and only window has been initialized, so show and update it.m_pMainWnd->ShowWindow(SW_SHOW);m_pMainWnd->UpdateWindow();return TRUE ; / CAboutDl

28、g dialog used for App Aboutclass CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD =IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX);/ DDX/DDV support/AFX_VIR

29、TUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)/ No message handlers/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAP

30、BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/ No message handlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ App command to run the dialogvoid CFiveChessApp:OnAppAbout()CAboutDlg aboutDlg;aboutDlg.DoModal();/ CFiveChessApp message handlers第 3章 課程設(shè)計(jì)總結(jié)第一 , 網(wǎng)絡(luò)五子棋的難點(diǎn)在于棋盤的描繪, 和判斷勝負(fù)的算法.第二 , 網(wǎng)絡(luò)游戲要求比較高的就是畫面與游戲的可玩性, 由于五子棋有著悠久的歷史, 深得大家的喜愛, 因此成功的突破點(diǎn)就在于

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論