已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
仲 愷 農(nóng) 業(yè) 工 程 學(xué) 院課 程 設(shè) 計(jì) 報(bào) 告課程名稱(chēng): 數(shù)據(jù)結(jié)構(gòu) 院(系): 計(jì)算機(jī)科學(xué)與工程專(zhuān) 業(yè):計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí): 計(jì)算機(jī)102班 學(xué) 號(hào): 201010214203 姓 名: 指導(dǎo)老師: 成筠 目 錄題目(一) 需求和規(guī)格說(shuō)明:?jiǎn)栴}描述,即題目要解決的問(wèn)題是什么(二) 算法設(shè)計(jì)(包括程序流程圖,如函數(shù)功能、入口及出口參數(shù)說(shuō)明,函數(shù)調(diào)用關(guān)系描述等)(三) 詳細(xì)設(shè)計(jì)(源程序清單,要包括足夠的注釋?zhuān)?四) 調(diào)試分析(包括調(diào)試數(shù)據(jù)與調(diào)試結(jié)果)(五) 課程設(shè)計(jì)總結(jié)(包括程序中遇到的問(wèn)題及解決方案,以及課程設(shè)計(jì)收獲)題目 斗地主游戲(簡(jiǎn)單版)(一) 需求和規(guī)格說(shuō)明:?jiǎn)栴}描述,即題目要解決的問(wèn)題是什么系統(tǒng)基本要求:具備基本的界面形式及操作功能具備基本的AI能力解決問(wèn)題:(1) 以MFC作為程序框架(2) 圖片以位圖的形式出現(xiàn),并進(jìn)行基本的界面操作(3) 以鏈表及廣義表等形式(C+封裝好的),進(jìn)行數(shù)據(jù)的操作(4) 設(shè)計(jì)了簡(jiǎn)單的AI函數(shù),用以對(duì)游戲的進(jìn)行,判斷等(二) 算法設(shè)計(jì)(包括程序流程圖,如函數(shù)功能、入口及出口參數(shù)說(shuō)明,函數(shù)調(diào)用關(guān)系描述等)整體框架CAboutDlg 類(lèi)CMainFranme 類(lèi)CApp 類(lèi)CDoc 類(lèi)CView 類(lèi) MFC單文檔程序的基本框架 作為整個(gè)程序的框架結(jié)構(gòu) 主要用到View類(lèi) Doc類(lèi)也用到一些注:此處只出現(xiàn)自定義函數(shù),且具體操作省略Doc類(lèi)中在構(gòu)造函數(shù)中對(duì)委位圖信息進(jìn)行了初次讀取View類(lèi)中 小功能函數(shù)Choose_Brand () 進(jìn)行數(shù)據(jù)的刪減,一般與continuation聯(lián)用continuation () 得到制定牌型的開(kāi)始號(hào)碼 聯(lián)用seek_max ()machine () 在對(duì)應(yīng)的牌組里面找出該下的牌是否連續(xù)OnDraw()OnButton1Clicked()split () 拆分關(guān)聯(lián)器,得到需要的部分用于order函數(shù)操作order () 判斷處理后的牌是否連續(xù)judge_game () 判斷點(diǎn)擊輸出的值是否正確,獲得當(dāng)前所下的牌型,用Brand_size存儲(chǔ) OnLButtonDown():響應(yīng)鼠標(biāo)左鍵點(diǎn)擊的消息,傳遞坐標(biāo) 傳遞坐標(biāo),用以判斷JudgeRect ()判斷出所點(diǎn)擊的地方是否為卡牌位圖 OnDraw():窗口重繪時(shí)調(diào)用,桌面表示都在這里實(shí)現(xiàn) 調(diào) 提供數(shù)據(jù),在桌面上表示提供數(shù)據(jù),在桌面上表示OnButton2Clicked ():響應(yīng)第二個(gè)按鈕點(diǎn)擊的消息,表示不出,同時(shí),對(duì)哪判斷哪方出牌(即兩個(gè)機(jī)器方),同時(shí)出牌OnButton1Clicked ():響應(yīng)第一個(gè)按鈕點(diǎn)擊的消息,表示是否出牌,同時(shí)判斷所出牌是否正確點(diǎn)擊第二個(gè)按鈕OnCreate():窗口創(chuàng)建時(shí)調(diào)用,在桌面上顯示兩個(gè)按鈕點(diǎn)擊第一個(gè)按鈕 (三) 詳細(xì)設(shè)計(jì)(源程序清單,要包括足夠的注釋?zhuān)┒返刂饔螒颍ê?jiǎn)單版)源程序(部分)如下:注:由于具體框架為程序自主產(chǎn)生,在這里不再出現(xiàn),只列出View類(lèi)函數(shù),程序中綠色程序代碼為實(shí)驗(yàn)中出錯(cuò)的部分或者驗(yàn)證部分/ 試驗(yàn)品View.cpp : C試驗(yàn)品View 類(lèi)的實(shí)現(xiàn)/#include stdafx.h#include 試驗(yàn)品.h#include 試驗(yàn)品Doc.h#include 試驗(yàn)品View.h#includealgorithm#includeCtime#includevector#ifdef _DEBUG#define new DEBUG_NEW#endif/ C試驗(yàn)品ViewIMPLEMENT_DYNCREATE(C試驗(yàn)品View, CView)BEGIN_MESSAGE_MAP(C試驗(yàn)品View, CView)/ 標(biāo)準(zhǔn)打印命令ON_COMMAND(ID_FILE_PRINT, &CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CView:OnFilePrintPreview)ON_WM_LBUTTONDOWN()ON_WM_CREATE()ON_BN_CLICKED(IDB_BUTTON1,OnButton1Clicked)ON_BN_CLICKED(IDB_BUTTON2,OnButton2Clicked)END_MESSAGE_MAP()/ C試驗(yàn)品View 構(gòu)造/析構(gòu)C試驗(yàn)品View:C試驗(yàn)品View(): m_point(0), width(0), height(0), x_machine(0), current_player(0)/ TODO: 在此處添加構(gòu)造代碼 for(int j=0;j20;j+)m_keyj=j+1;for(int i=3;i16;i+)for(int j=0;jGetWindowRect(rcWksMng);height=rcWksMng.bottom-rcWksMng.top;/得到當(dāng)前窗口大小,當(dāng)時(shí)為什么位圖大小無(wú)法改變width=rcWksMng.right-rcWksMng.left;CDC MemDC;MemDC.CreateCompatibleDC(NULL);MemDC.SelectObject(pDoc-m_Beijing);pDC-StretchBlt(0,0,width,height,&MemDC,0,0,pDoc-m_nWidth,pDoc-m_nHeight,SRCCOPY);/按照第一二參數(shù)為原點(diǎn)坐標(biāo),第三四為變化后的寬高,第四為文件句柄指針,后面是原來(lái)的 /在OnDraw中可以直接用pDC,但是在其他呢?MemDC.SelectObject(pDoc-m_Bitmap);int width0=width/25;int height0=height/25;pDC-SetStretchBltMode(COLORONCOLOR);/防止失色for(int i=0;iStretchBlt(width0,height-7*height0-i*height0,3*width0,3*height0,&MemDC,0,0,pDoc-m_nWidth,pDoc-m_nHeight,SRCCOPY); for(int i=0;iStretchBlt(width-4*width0,height-7*height0-i*height0,3*width0,3*height0,&MemDC,0,0,pDoc-m_nWidth,pDoc-m_nHeight,SRCCOPY); int t=0,i=0,j=0,k=0;std:vector B_m;/CBitmap 數(shù)組為什么無(wú)法相互賦值,而list,vector類(lèi)型的確需要指針呢for(std:vector:reverse_iterator riter=vec_game.rbegin();riter!=vec_game.rend();riter+)/游戲方牌組所對(duì)應(yīng)的CBitmap值if(*riterm)+j);t=*riter;int p=JudgeRect(m_point);if(p!=-1)/點(diǎn)擊桌面的牌牌時(shí),促使彈起for(i=0;iStretchBlt(2*width0+i*width0,height-3*height0,3*width0,3*height0,&MemDC,0,0,pDoc-m_nWidth,pDoc-m_nHeight,SRCCOPY);elsepDC-StretchBlt(2*width0+i*width0,height-4*height0,3*width0,3*height0,&MemDC,0,0,pDoc-m_nWidth,pDoc-m_nHeight,SRCCOPY);elsefor(i=0;iStretchBlt(2*width0+i*width0,height-3*height0,3*width0,3*height0,&MemDC,0,0,pDoc-m_nWidth,pDoc-m_nHeight,SRCCOPY); if(i!=B_m.size()-1) CRectr(2*width0+i*width0,height-3*height0,2*width0+(i+1)*width0,height-3*height0+pDoc-m_nHeight); recti=r; else CRectr(2*width0+i*width0,height-3*height0,2*width0+i*width0+pDoc-m_nWidth,height-3*height0+pDoc-m_nHeight); recti=r; for(i=0;i20;i+)m_npi=0;/表示出所出的牌到桌面上t=0,i=0,j=0,k=0;std:vector BB_m;/CBitmap 數(shù)組為什么無(wú)法相互賦值,而list,vector類(lèi)型的確需要指針呢for(std:vector:reverse_iterator riter=vec_chu.rbegin();riter!=vec_chu.rend();riter+)/游戲方所出得牌組所對(duì)應(yīng)的CBitmap值if(*riterm)+j);t=*riter;for(i=0;iStretchBlt(5*width0+i*width0,height-7*height0,3*width0,3*height0,&MemDC,0,0,pDoc-m_nWidth,pDoc-m_nHeight,SRCCOPY);if(x_machine!=0)/之所以把current_player=1或者后的操作寫(xiě)在外面,是因?yàn)?,?dāng)鼠標(biāo)點(diǎn)擊到飛按鈕區(qū)域時(shí)圖片依然存在std:multimap mp_machine,pm_machine,mmpp,ppmm;std:multimap:size_type st;std:multimap:iterator iter_machine;if(current_player=1)transition(mp_machine,pm_machine,vec1); vcc.clear();/需要消去原來(lái)的元素,避免元素疊加 machine(vec1,mp_machine,pm_machine);elsetransition(mp_machine,pm_machine,vec2); vcc.clear(); machine(vec2,mp_machine,pm_machine);transition(mmpp,ppmm,vcc);judge_game(mmpp,ppmm,vcc); x_machine=0; if(current_player=1)/當(dāng)一比二先下時(shí)的情況,包含接下來(lái)得二所要下的形式 std:vector B_m1;/CBitmap 數(shù)組為什么無(wú)法相互賦值,而list,vector類(lèi)型的確需要指針呢i=3; for(std:vector:reverse_iterator riter=vcc.rbegin();riter!=vcc.rend();riter+) /游戲方牌組所對(duì)應(yīng)的CBitmap值if(*riterm)+j); t=*riter; for(i=0;iStretchBlt(5*width0+i*width0,height-11*height0,3*width0,3*height0,&MemDC,0,0,pDoc-m_nWidth,pDoc-m_nHeight,SRCCOPY); /以下是,機(jī)器一后,判斷機(jī)器二是否有下,如果有則進(jìn)行處理,可以加入更多的只能 std:map c; c=Brand_size.begin()-first; int x=c.begin()-first; int y=c.begin()-second; int z=Brand_size.begin()-second; int xx=0; std:multimap mmm,ppp; transition(mmm,ppp,vec2); xx=continuation(mmm,z,y,x);/表示機(jī)器二是否有牌 if(xx=0) current_player=1;/當(dāng)二下次無(wú)法找到牌時(shí),就在桌面上保持一的存在 else current_player=2; if(xx!=0) if(x=1&vec2.size()3)|(x=2&vec2.size()5)|(x=1&z2)|(x=2&z4) std:multimap mp_machine,pm_machine,mmpp,ppmm; std:multimap:size_type st; std:multimap:iterator iter_machine; transition(mp_machine,pm_machine,vec2); vcc.clear(); machine(vec2,mp_machine,pm_machine);/功能是除去vec2中的元素到vcc中作為圖片載入的依據(jù) transition(mmpp,ppmm,vcc); judge_game(mmpp,ppmm,vcc);/改變Brand_size的數(shù)值,保持與當(dāng)時(shí)下牌方一致 if(current_player=2)/二下牌后的圖片顯示 std:vector B_m1;/CBitmap 數(shù)組為什么無(wú)法相互賦值,而list,vector類(lèi)型的確需要指針呢i=3;/因?yàn)闀r(shí)間緣故,且不知道怎么判斷花色,所以就直接的玩家下的牌就從前面順序在m中找出CBitmap而兩個(gè)機(jī)器就直接從后面算起,所以i=3; for(std:vector:reverse_iterator riter=vcc.rbegin();riter!=vcc.rend();riter+) /游戲方牌組所對(duì)應(yīng)的CBitmap值if(*riterm)+j); t=*riter; for(i=0;iStretchBlt(5*width0+i*width0,height-15*height0,3*width0,3*height0,&MemDC,0,0,pDoc-m_nWidth,pDoc-m_nHeight,SRCCOPY); current_player=2;/使得機(jī)器二能夠在桌面上保持顯示,直到二沒(méi)有牌下,也作為玩家不要時(shí),下牌者的判斷依據(jù)/ TODO: 在此處為本機(jī)數(shù)據(jù)添加繪制代碼/ C試驗(yàn)品View 打印BOOL C試驗(yàn)品View:OnPreparePrinting(CPrintInfo* pInfo)/ 默認(rèn)準(zhǔn)備return DoPreparePrinting(pInfo);void C試驗(yàn)品View:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: 添加額外的打印前進(jìn)行的初始化過(guò)程void C試驗(yàn)品View:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: 添加打印后進(jìn)行的清除過(guò)程/ C試驗(yàn)品View 診斷#ifdef _DEBUGvoid C試驗(yàn)品View:AssertValid() constCView:AssertValid();void C試驗(yàn)品View:Dump(CDumpContext& dc) constCView:Dump(dc);C試驗(yàn)品Doc* C試驗(yàn)品View:GetDocument() const / 非調(diào)試版本是內(nèi)聯(lián)的ASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(C試驗(yàn)品Doc);return (C試驗(yàn)品Doc*)m_pDocument;#endif /_DEBUG/ 判斷點(diǎn)是否在矩形里面,返回對(duì)應(yīng)矩形號(hào)int C試驗(yàn)品View:JudgeRect(CPoint point)if(point.xrect19.right|point.yrect0.bottom)for(int i=0;i20;i+)/需要這個(gè)否則點(diǎn)擊隨意后其他雖然彈入,但是當(dāng)點(diǎn)其他時(shí),還是會(huì)重新彈出,同時(shí),不進(jìn)行賦值的話,第一次點(diǎn)擊不會(huì)彈出因?yàn)榈谝淮螘r(shí),下面的if語(yǔ)句會(huì)直接先賦值,即點(diǎn)擊后還是按照原來(lái)的圖片形式m_npi=0;return -1;for(int i=0;irecti.left&point.xrecti.top&point.yrecti.bottom)if(m_npi)m_npi=0;elsem_npi=1;return i;return -1;int C試驗(yàn)品View:OnCreate(LPCREATESTRUCT lpCreateStruct)if (CView:OnCreate(lpCreateStruct) = -1)return -1;/ TODO: 在此添加您專(zhuān)用的創(chuàng)建代碼int w=width/25;int h=height/25;/m_Button1.Create(_T(出牌),WS_CHILD | BS_PUSHBUTTON | WS_BORDER,/vs2005本身問(wèn)題,需要把char 轉(zhuǎn)換為L(zhǎng)PCTSTR類(lèi)型m_Button1.Create(_T(出牌),WS_CHILD|BS_PUSHBUTTON|WS_VISIBLE|WS_BORDER,CRect(400,20,480,60),this,IDB_BUTTON1);m_Button2.Create(_T(不出),WS_CHILD | BS_PUSHBUTTON |WS_VISIBLE | WS_BORDER,CRect(500,20,580,60),this,IDB_BUTTON2);return 0;void C試驗(yàn)品View:OnButton1Clicked()int i,x1,y1,z1;int t=0;std:vector vec;/CString s;s.Formatstd:vector:reverse_iterator riter=vec_game.rbegin();std:map c1;if(current_player=1|current_player=2)c1=Brand_size.begin()-first; x1=c1.begin()-first; y1=c1.begin()-second; z1=Brand_size.begin()-second;std:multimap mp,pm;for(i=0;i20;i+)if(m_npi=1)vec.push_back(*(riter+i);t=1;if(t=0)MessageBox(_T(請(qǐng)選擇輸出的牌);elsestd:sort(vec.begin(),vec.end(); transition(mp,pm,vec); judge_game(mp,pm,vec);std:map c; c=Brand_size.begin()-first;int x=c.begin()-first;int y=c.begin()-second;int z=Brand_size.begin()-second;if(current_player=1|current_player=2)if(x1!=x)|(y1!=y)|(!(z1z)MessageBox(_T(請(qǐng)重新選擇輸出的牌);std:map t;t.insert(std:map:value_type(x1,y1);Brand_size.clear();Brand_size.insert(std:mapstd:map,int:value_type(t,z1);x=0;y=0;z=0;InvalidateRect(FALSE);if(x!=0&y!=0&z!=0)i=vec_game.size()-1;vec_chu.clear();for(std:vector:iterator iter=vec_game.begin();iter!=vec_game.end();i-)/減去游戲者所下的牌if(m_npi=1)vec_chu.push_back(*iter);iter=vec_game.erase(iter);elseiter+;std:multimap mmm,ppp,mmm1,ppp1; transition(mmm,ppp,vec1); x_machine=continuation(mmm,z,y,x);/表示機(jī)器一是否有牌if(x_machine=0)/如果一有下,則調(diào)用一下地情況transition(mmm1,ppp1,vec1); x_machine=continuation(mmm1,z,y,x);/表示機(jī)器二是否有牌if(x_machine=0)/否則,調(diào)用二下的情況,可以加入一些智能current_player=0;elsecurrent_player=2; elsecurrent_player=1;/表示機(jī)器出牌/x_machine=1;InvalidateRect(FALSE);/傳遞窗口重繪的消息該OnDraw()/CString str;/ str.Format(_T(%d,%d,%d,x,y,z);想用這個(gè)調(diào)式看結(jié)果但是誰(shuí)讓對(duì)了,但是輸出不對(duì),到底該怎么用呢/MessageBox(str);void C試驗(yàn)品View:OnButton2Clicked()std:vector:iterator ir;std:map t;int d,k;if(current_player=1)ir=vec1.begin();d=*ir;k=std:count(vec1.begin(),vec1.end(),d);if(k=1)vcc.clear();vcc.push_back(d);vec1.erase(ir);t.insert(std:map:value_type(k,1); Brand_size.clear(); Brand_size.insert(std:mapstd:map,int:value_type(t,d);if(k=2)vcc.clear();vcc.push_back(d);vcc.push_back(d);ir=vec1.erase(ir);vec1.erase(ir);t.insert(std:map:value_type(2,1); Brand_size.clear(); Brand_size.insert(std:mapstd:map,int:value_type(t,d);if(current_player=2)ir=vec2.begin();d=*ir;k=std:count(vec2.begin(),vec2.end(),d);if(k=1)vcc.clear();vcc.push_back(d);vec2.erase(ir,ir+1);t.insert(std:map:value_type(k,1); Brand_size.clear(); Brand_size.insert(std:mapstd:map,int:value_type(t,d);if(k=2)vcc.clear();vcc.push_back(d);vcc.push_back(d);ir=vec2.erase(ir,ir+2);/vec2.erase(ir);t.insert(std:map:value_type(2,1); Brand_size.clear(); Brand_size.insert(std:mapstd:map,int:value_type(t,d);/ 得到連續(xù)的牌號(hào)(與order的區(qū)別在于,order只是判斷所給的數(shù)據(jù)是不是符合,而這個(gè)函數(shù)則是找遍關(guān)聯(lián)器直到找到或者都找完為止)int C試驗(yàn)品View:continuation(std:multimap mmp, int d, int k, int wc)/得到連續(xù)的牌號(hào)(與order的區(qū)別在于,order只是判斷所給的數(shù)據(jù)是不是符合,而這個(gè)函數(shù)則是找遍關(guān)聯(lián)器直到找到或者都找完為止)int n=1,i;/n是用來(lái)記錄iter運(yùn)行到哪個(gè)數(shù),用在判斷剩下的數(shù)夠不夠再進(jìn)行一次循環(huán)判斷std:multimap:iterator iter=mmp.begin();std:multimap m;int j=0;int initial_number=0;for(i=0;ifirstd)break;n+;iter+;/當(dāng)iter-firstd時(shí),需要不斷地加iter找到最小的大于數(shù)if(i=mmp.size()/找不到跳出return 0;while(1)if(mmp.size()-n+1/*加一是因?yàn)槊看味际窃谏洗尾荒苓B續(xù)點(diǎn)開(kāi)始的,所以剩下的數(shù)必須加上原來(lái)的一個(gè)點(diǎn)*/)first;/作為開(kāi)始點(diǎn)/if(initial_number10)/當(dāng)開(kāi)始點(diǎn)大于時(shí)會(huì)出現(xiàn),但是(即對(duì)應(yīng)的)是不能出現(xiàn)的/return 0;m.clear();/每次都要把存儲(chǔ)判斷數(shù)組清零for(j=iter-first;jfirst+k;j+)m.insert(std:multimap:value_type(j,j);/組建判斷數(shù)組,iter無(wú)法加k,只能重載自加運(yùn)算符 int cnt=0;std:multimap:iterator it=m.begin(); while(/*(+iter)!=m.end()&*/mmp.find(it-first)/*得到對(duì)應(yīng)鍵*/!=mmp.end()/判斷數(shù)據(jù)是否連續(xù)/*得到iter+,每次都指向下一個(gè),必須在前面,因?yàn)閕t不符合時(shí),必須跳過(guò),但是iter必須是下一個(gè)*/iter+;/if(iter=m.end()/為什么無(wú)法這樣呢,無(wú)法用m.end()與之相等/break;if(wcmmp.find(it-first)-second)/有這個(gè)判斷,可以得到連續(xù)的雙或者三iter+;/本意是指向下一個(gè)(因?yàn)樵瓉?lái)有加,但是后來(lái)下面又減了,所以要加,n+;/指向下一個(gè)break;+cnt; +it;n+;/每次都指向下一個(gè) if(cnt=k)/記錄,是否連續(xù)的關(guān)鍵return initial_number;iter-;/加上這個(gè)是因?yàn)?,?dāng)出現(xiàn)不符合。find()時(shí),iter還是會(huì)加一,也就是在不連續(xù)點(diǎn)的下一個(gè)點(diǎn),所以需要返回到不連續(xù)點(diǎn)處return 0;/ /刪去下一次出牌方下的牌,與continuation()連用,分別是判斷(上面只是判斷連續(xù)的方面),取牌initial_number/*開(kāi)始的牌號(hào)*/,continuation_number/*連續(xù)量*/,suit_patterns/*是雙是單還是三,四的*/void C試驗(yàn)品View:Choose_Brand(std:vector & vc,std:vector & c,int initial_number/*開(kāi)始的牌號(hào)*/,int continuation_number/*連續(xù)量*/,int suit_patterns/*是雙是單還是三,四的*/)/刪去下一次出牌方下的牌,與continuation()連用,分別是判斷(上面只是判斷連續(xù)的方面),取牌int d=initial_number,i;for(i=0;icontinuation_number;i+)std:vector:iterator iter=std:find(vc.begin(),vc.end(),initial_number+);for(int j=0;jsuit_patterns;j+)c.push_back(*iter);iter=vc.erase(iter);/ 拆分關(guān)聯(lián)器,得到需要的部分用于操作,注意這里輸入的要是以牌數(shù)為鍵值的pm因?yàn)橹挥幸耘茢?shù)為鍵值的在后面才是牌數(shù)最多的牌號(hào)std:multimap C試驗(yàn)品View:split(std:multimap pmm, int k)std:multimap:iterator iter=pmm.begin();for(int i=0;ik;i+)iter+;/iter=iter+1; multimap的迭代器不能使用加減號(hào),只能自增自減/iter=iter+k-1;std:multimap m;dom.insert(std:multimap:value_type(iter-second,iter-first);/輸出時(shí)是按照牌號(hào)為鍵值的,所以需要倒過(guò)來(lái)iter+;while(iter!=pmm.end();return m;/ /判斷不重復(fù)后的牌組,是否連續(xù)int C試驗(yàn)品View:order(std:
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版勞務(wù)加工承包合同范本
- 2024年藝術(shù)品買(mǎi)賣(mài)合同賠償條例
- 2025年度新型城鎮(zhèn)化租賃住房建設(shè)合同4篇
- 2025年度智能家居項(xiàng)目瓷磚材料供應(yīng)合同4篇
- 2025年度體育場(chǎng)館搭棚施工及維護(hù)管理合同4篇
- 2024版鎳氫電池產(chǎn)品銷(xiāo)售合同
- 2025年度學(xué)校食堂及餐飲服務(wù)承包合同范本4篇
- 2025年度新能源汽車(chē)購(gòu)置合同示范文本4篇
- 2025年度特色農(nóng)家樂(lè)經(jīng)營(yíng)權(quán)轉(zhuǎn)讓合同范本3篇
- 2025年度智能窗簾控制系統(tǒng)研發(fā)與市場(chǎng)推廣合同4篇
- 特種設(shè)備行業(yè)團(tuán)隊(duì)建設(shè)工作方案
- 眼內(nèi)炎患者護(hù)理查房課件
- 肯德基經(jīng)營(yíng)策略分析報(bào)告總結(jié)
- 買(mǎi)賣(mài)合同簽訂和履行風(fēng)險(xiǎn)控制
- 中央空調(diào)現(xiàn)場(chǎng)施工技術(shù)總結(jié)(附圖)
- 水質(zhì)-濁度的測(cè)定原始記錄
- 數(shù)字美的智慧工業(yè)白皮書(shū)-2023.09
- -安規(guī)知識(shí)培訓(xùn)
- 2021-2022學(xué)年四川省成都市武侯區(qū)部編版四年級(jí)上冊(cè)期末考試語(yǔ)文試卷(解析版)
- 污水處理廠設(shè)備安裝施工方案
- 噪聲監(jiān)測(cè)記錄表
評(píng)論
0/150
提交評(píng)論