軟件課程設計報告_第1頁
軟件課程設計報告_第2頁
軟件課程設計報告_第3頁
軟件課程設計報告_第4頁
軟件課程設計報告_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、編號:( )字 號軟件課程設計報告班 級: 姓 名: 學 號: 指導老師: 年 月39軟件課程設計任務書專業(yè)年級: 學生姓名: 任務下達日期: 課程設計日期:目錄一、 面向過程設計題21.1 需求分析.41.2 概要設計.41.3 詳細設計與編碼.41.4 調試分析.41.5 用戶使用說明 .51.6 設計心得.5二、面向過程設計題42.1 需求分析.52.2 概要設計.52.3 詳細設計與編碼.52.4 調試分析.62.5 用戶使用說明 .62.6 設計心得.6三、面向對象設計題1-復數(shù)的加法以及對復數(shù)的輸出3.1 需求分析.73.2 概要設計.73.3 詳細設計與編碼.73.4 調試分析.

2、83.5 用戶使用說明 .83.6 設計心得.8四、面向過程設計題2-日期的輸出和比較等4.1 需求分析.84.2 概要設計.84.3 詳細設計與編碼.84.4 調試分析.114.5 用戶使用說明 .114.6 設計心得.11五、圖形界面1-mfc視頻步驟5.1 mfc視頻步驟12六、數(shù)據(jù)結構設計題4-統(tǒng)計選票(4.cpp)6.1 需求分析.236.2 概要設計.236.3 詳細設計與編碼.236.4 調試分析.286.5 用戶使用說明 286.6 設計心得.28七、數(shù)據(jù)結構設計題9-9:暗記撲克牌(9.cpp)7.1 需求分析287.2 概要設計.287.3 詳細設計與編碼.297.4 調試

3、分析.387.5 用戶使用說明 .387.6 設計心得.39八、課程設計總結 .39第一階段 面向過程程序設計一 面向過程設計題21.1 需求分析編程序,從鍵盤輸入正整數(shù)n,求出n與其反序數(shù)之和并輸出。利用循環(huán)語句求出n的反序數(shù)。1.2 概要設計利用do-while循環(huán)語句求出n的反序數(shù)。doa=c%10;m=m*10+a;c=c/10;while(c!=0);然后再求n與n的反序數(shù)的和。1.3 詳細設計與編碼#includeusing namespace std;int main()int n,a,m=0,c,b; / 定義所需變量 coutplease input a number tha

4、t more than zeron; / 輸入正整數(shù)nc=n;do a=c%10;m=m*10+a;c=c/10;while(c!=0); / 求出n的反序數(shù)b=n+m;coutn+m = bendl;return 0;1.4 調試分析do-while語句中結束條件要做對,否則程序運行錯誤。調試時若出現(xiàn)錯誤,雙擊錯誤,即指示出錯誤所在行,檢查錯誤,修改。1.5 用戶使用說明(1) 打開程序,輸入正整數(shù)n(2) 按回車鍵可得出結果1.6 設計心得本程序主要是求出n的反序數(shù),利用do-while循環(huán)語句可容易求出n的反序數(shù)。程序設計中要聯(lián)系所學知識,本題較簡單,因此可以用簡單的語句求出結果。二 面

5、向過程設計題42.1 需求分析編程序,輸入正整數(shù)m,它代表一個人民幣錢數(shù)(元數(shù))。求取這樣一個方案,使用最少張數(shù)的人民幣紙幣,湊成上述的錢數(shù)m,并輸出求取結果。2.2 概要設計給出不同的變量對應不同的金錢面額,根據(jù)輸入的正整數(shù)m,把m每個位置的數(shù)字分別求出,既得出所需的最少張數(shù)的人民幣。2.3 詳細設計與編碼#includeusing namespace std;int main() int output(int m); / 函數(shù)聲明int m; coutplease enter a number:m; / 輸入正整數(shù)mif(m=0) couterrorendl;else output(m);

6、 / 調用函數(shù)return 0;int output(int m) / 定義函數(shù) int hun,fif,twen,te,fiv,tw,on; / 定義變量 hun=m/100; fif=(m-hun*100)/50; twen=(m-hun*100-fif*50)/20; te=(m-hun*100-fif*50-twen*20)/10; fiv=(m-hun*100-fif*50-twen*20-te*10)/5; tw=(m-hun*100-fif*50-twen*20-te*10-fiv*5)/2; on=m-hun*100-fif*50-twen*20-te*10-fiv*5-tw*

7、2; couthun張100元 fif張50元 twen張20元 te張10元 fiv張5元tw張2元 on張1元 endl; return 0;2.4 調試分析不同的變量對應不同面額的紙幣,書寫代碼時注意不要混亂,以免引起程序錯誤。程序中“/”和“%”的代表的含義不要弄反。2.5 用戶使用說明(1) 打開程序,輸入正整數(shù)m(2) 按回車鍵可得出結果2.6 設計心得本程序主要是求出正整數(shù)m每個位置上的數(shù)字,通過調用函數(shù)和if語句可求出所需的人民幣張數(shù)。另外編寫程序時要仔細認真,盡量不出錯誤。第二階段 面向對象程序設計三、面向對象設計題1-復數(shù)的加法以及對復數(shù)的輸出3.1 需求分析自定義一個示意

8、性的復數(shù)類型complex,其中含有若干個成員函數(shù),使用該類可以完成復數(shù)的加法以及對復數(shù)的輸出。3.2概要設計定義一個類complex以及無參數(shù)構造函數(shù)和帶參數(shù)構造函數(shù),設計函數(shù)讓復數(shù)的實部和虛部分別相加,通過輸出函數(shù)輸出運算的值3.3詳細設計與編碼#includeusing namespace std;class complexpublic:complex()real=0;imag=0;/無參構造函數(shù)complex(double r, double i)real=r;imag=i; /2參構造函數(shù)complex addcom(complex &c2); /調用者對象與對象c2相加,返回com

9、plex類對象void outcom (); /輸出調用者對象的有關數(shù)據(jù)(各分量)private:double real; /復數(shù)實部double imag; /復數(shù)虛部;complex complex:addcom(complex &c2)complex c;c.real=real+c2.real;c.imag=imag+c2.imag;return c;void complex:outcom()cout(real,imagi)endl;int main()complex c1(3,4);complex c2(5,-10);complex c3;c3=c1.addcom(c2);coutc1

10、=;c1.outcom();coutc2=;c2.outcom();coutc1+c2=;c3.outcom();return 0;3.4調試分析輸入代碼后,進行調試,代碼中容易遺漏一些符號,特別是分號和花括號,容易出錯。代碼中會出新一些語法錯誤,改正后繼續(xù)調試,最終結果正確。3.5 用戶使用說明1運行程序,在代碼中已經對構造函數(shù)賦值。3.6 設計心得程序設計要耐心仔細,不怕出錯,及時修改程序四、面向過程設計題2日期的輸出和比較等4.1 需求分析自定義一個簡單的日期類datetype,它具有數(shù)據(jù)成員y、m、d,用來表示當前日期的年、月、日。而后設計該類欲實現(xiàn)(完成)的功能,進而設計出相應的類成

11、員函數(shù)。4.2 概要設計定義一個類,定義數(shù)組,數(shù)組成員為12個月的天數(shù),需要指出的是閏年的2月有29當日超過當月的天數(shù)的時候,月就加一,當月的數(shù)量超過12的時候,年就加一。再設計一個比較比較日期相等的函數(shù),如果日期相等就返回true,如果日期不相等就返回false.4.3 詳細設計與編碼#includeusing namespace std;class datetype /定義日期類private : int y,m,d; /定義數(shù)據(jù)成員分別表示日期的年,月,日public: datetype(int y0=1,int m0=1,int d0=1);/設置有默認參數(shù)的構造函數(shù) void inc

12、rementday(); /增加一天的函數(shù)的聲明 bool equal(datetype dt2); /比較是否相等的函數(shù)聲明 void printdate(); /輸出日期的函數(shù)聲明;datetype:datetype(int y0,int m0,int d0) /構造函數(shù)的實現(xiàn) y=y0;m=m0;d=d0;void datetype:incrementday() /增加一天的函數(shù)的實現(xiàn) int d1; if(m=2) if(y%4=0&y%100!=0)|(y%400=0) /判斷該年是否是閏年 d1=29; /閏年二月有29天 else d1=28; /非閏年二月28天 else sw

13、itch(m) /由于月份的不同每月的天數(shù)有可能不同 case 1 : case 3 : case 5 : case 7 : case 8 : case 10: case 12: d1=31;break; /大月31天 case 4 : case 6 : case 9 : case 11: d1=30;break; /小月30天 if (+d=d1) /增加一天,如果超過該月的天數(shù)就增加一個月 d=d-d1; m+; /增加一個月 if(m12) /如果月數(shù)大于12 就增加一年 m=m-12; y+; /增加一年 bool datetype:equal(datetype dt2) /比較是否相

14、等的函數(shù)實現(xiàn) if(y=dt2.y)&(m=dt2.m)&(d=dt2.d) return true; /如果年,月,日都相同就返回true return false ; / 否則就返回falsevoid datetype:printdate() /輸出日期的函數(shù)實現(xiàn) couty/m/dendl; /輸出“年/月/日”形式int main() datetype d1(2000,2,29),d2(2005,12,31),d3(2006,7,3),d4; /定義datetype類對象 d1.printdate(); d1.incrementday(); cout增加一天變?yōu)? ; d1.print

15、date(); d2.printdate(); d2.incrementday(); cout增加一天變?yōu)? ; d2.printdate(); d3.printdate(); d3.incrementday(); cout增加一天變?yōu)? ; d3.printdate(); d2.printdate(); cout與; d3.printdate(); if(d2.equal(d3) cout相等endl; else cout不相等endl;/ compare(d2,d3); /coutendl; d4=d3; d3.printdate(); cout與; d4.printdate(); if(

16、d3.equal(d4) cout相等endl; else cout不相等textout(200,200,hello,world!);/在窗口的(200,200)位置輸出文字 4 添加完成后編譯、運行,就出現(xiàn)了了如下界面:mfc視頻操作3添加菜單項的步驟在菜單編輯器中添加菜單資源,設置菜單屬性(包括菜單名和它的id標識)。使用類向導classwizard建立菜單消息和成員函數(shù)的映射。手工編輯成員函數(shù),加入需要的菜單消息處理代碼。1. 在菜單編輯器中添加菜單資源:打開操作2中建立的“hello”工程,選擇workspace的resourceview面板后,單擊hello resource前面的+

17、號展開,點擊menu文件夾,雙擊idr_hellotype打開菜單編輯器。做相應的插入、刪除、編輯處理。添加的“問候”與“畫圓”相關信息如下:2. 為“問候”與“畫圓”這兩個菜單項添加快捷鍵:在resourceview面板中單擊accelerator前的加號,展開快捷鍵資源夾后雙擊idr_mainframe打開快捷鍵編輯器。雙擊空白項,彈出快捷鍵屬性對話框,設置相關信息如下:3. 使用類向導classwizard建立菜單消息和成員函數(shù)的映射:在messages欄中雙擊command,彈出add member function對話框,框中給出缺省的成員函數(shù)名onhellohi,單擊ok接受。從c

18、lass name下拉列表中選擇chelloview類,在object ids中選擇id_hello_hi。選擇菜單viewclasswizard彈出mfc classwizard對話框。選擇message maps(管理消息和成員函數(shù)之間的映射關系,實現(xiàn)對成員函數(shù)添加、刪除、編輯操作)標簽。此時onhellohi成員函數(shù)就出現(xiàn)在member functions列表框中,后面是其映射的消息(如右所示)。member functions列表中雙擊onhellohi,返回到“資源編輯區(qū)”,并定位到onhellohi函數(shù)定義的開始位置。在onhellohi函數(shù)體中編寫語句。添加消息id_hello_

19、circle的處理函數(shù)同上?!靖健縪nhellohi函數(shù)中的語句afxmessagebox(hi,大家好!);/ afxmessagebox為消息框函數(shù),它用來彈出一個消息框【附】onhellocircle函數(shù)中的語句cclientdc dc(this);/創(chuàng)建客戶區(qū)dcdc.ellipse(0,0,100,100);/在客戶區(qū)dc的一個矩形區(qū)域內畫一個圓4. 添加右鍵快捷菜單:首先新建一個菜單資源,在主窗口菜單中選擇:insertresource。在彈出的對話框中選擇menu,單擊new按鈕,這就在resourceview面板的menu資源夾中插入了idr_menu1。在idr_menu1上

20、右擊,選擇最后一項properties,在properties對話框中將id:idr_menu1改為idr_hello。雙擊idr_hello打開菜單編輯器,編輯方法同步驟1。添加內容如下:之后啟動類向導classwizard,彈出adding a class對話框,選中select an existing class項,單擊ok。彈出select class對話框,選擇chelloview類,單擊select按鈕。返回mfc classwizard對話框,在object ids中選擇chelloview,在messages欄中雙擊wm_contextmenu,將其添加到member func

21、tions列表中,雙擊進行編輯?!靖健縪ncontextmenu函數(shù)中的語句cmenu mymenu;cpoint m_ptmsg=point;/鼠標單擊的位置screentoclient(&m_ptmsg);/轉化為客戶區(qū)坐標mymenu.loadmenu(idr_hello);/加載快捷菜單cmenu *ppopup=mymenu.getsubmenu(0);ppopup-trackpopupmenu(tpm_leftalign|tpm_rightbutton,point.x,point.y,this);/跟蹤并顯示快捷菜單/該段程序的作用是產生鼠標右鍵點擊空白處可彈出快捷菜單的功能接著給

22、“畫線”菜單項建立消息映射和添加函數(shù)代碼,方法同步驟2?!靖健縪nhelloline函數(shù)中的語句cclientdc dc(this);/創(chuàng)建客戶區(qū)dcdc.lineto(100,100);/從客戶區(qū)的左上角到(100,100)之間畫一條直線5完成之后編譯運行結果如下:可視化4:如何在狀態(tài)欄中顯示滾動文字具體操作分為八個步驟:創(chuàng)建應用程序框架添加字符串資源id_scroll_text給cmainframe類增加成員變量m_strscrolltext,用于設定帶顯示的字符串用classwizard給cmai frame類添加wm_timer和wm_destroy消息映射和處理函數(shù)在indicato

23、r數(shù)組中添加狀態(tài)欄新的指示器窗格id添加定時器消息處理函數(shù)代碼編譯運行添加撤銷定時器代碼在cmainframe類的oncreate函數(shù)中添加滾動文體的初始化的啟動定時器實現(xiàn)狀態(tài)欄的第一個窗格也和其他處窗格一樣具有立體邊框,并使窗格具有可伸展性step1. 創(chuàng)建應用程序框架1. 選擇菜單file new.在projects標簽中選mfc appwizard(exe),在project name 中輸入工程名:startscrltext.按ok鍵啟動mfc用程序2. 在mfc appwizard第一步中選擇“single document”,然后在下面各步中均接受默認設置,最后生成startscr

24、ltext.工程。 step2. 在indicator數(shù)組中添加狀態(tài)欄新的指示器窗格id1. 選擇工程工作區(qū)的fileview面板。2. 單擊加號展開文件列表,再單擊sorce file前的加號,展開startscrltext工程中的實現(xiàn)文件列表。3. 雙擊mainfrane.cpp.文件。4. 移動光標,找到indicator數(shù)組,在其中添加如下代碼step3添加字符串資源id_scroll_text1. 選擇工程工作取得resourceview面板。2. 展開該工程資源列表,單擊string table前加號,展開startscrltext工程的字符串資源列表。3. 雙擊string ta

25、ble,然后雙擊資源編輯器最后面的空白行,再打開的對話框的id編輯框中輸入:id_scroll_text.4. 在caption編輯框中輸入若干空格,空格長度即為所要現(xiàn)實的窗格的大小step4給cmainframe類增加成員變量m_strscrolltext,用于設定帶顯示的字符串1. 選擇classview面板并展開,然后再cmainframe類名稱中右擊鼠標,從彈出來的快捷菜單中選add member variable.2. 在變量類型編輯框中輸入cstring.3. 在變量名稱一欄中輸入m_strscrolltext4. 在access一欄中選擇publicstep5用classwiza

26、rd給cmai frame類添加wm_timer和wm_destroy消息映射和處理函數(shù)1. 按ctrl +w打開classwizard對話框,選擇message maps標簽2. 在class name 下拉列表中選cmainframe在object ids列表框中選cmainframe再到messag列表中選wm_destroy消息3. 單擊add fuction按鈕,則ondestroy函數(shù)出現(xiàn)在下面的成員函數(shù)列表中4. 再從message列表中雙擊wm_timer消息,添加相應的處理函數(shù):ontimer然后單擊edit code 按鈕step6. 添加定時器消息處理函數(shù)代碼1. 定位到

27、cmainframe類中的ontimer函數(shù),在其中添加如下代碼step7. 添加撤銷定時器代碼在該文件中找到ondestroy函數(shù),然后添加銷毀定時器代碼。step8在cmainframe類的oncreate函數(shù)中添加滾動文體的初始化的啟動定時器移動光標,在該文件中找到oncreat函數(shù)。然后在函數(shù)最后添加如下代碼:step9實現(xiàn)狀態(tài)欄的第一個窗格也和其他處窗格一樣具有立體邊框,并使窗格具有可伸展性step10編譯運行第四階段六、數(shù)據(jù)結構設計題46.1需求分析1、設計一個統(tǒng)計選票的算法,輸出每個候選人的得票結果2、假設采用單鏈表存放選票,候選人編號依次為1,2,3,n,且每張選票選且只選一人

28、3、以單鏈表存放選票,每個結點的data域存放該選票所選的候選人。用一個數(shù)組a統(tǒng)計得票結果。6.2概要設計用函數(shù)createlist ( )動態(tài)建立一個單鏈表,鏈表中每個節(jié)點的data域為空,返回頭節(jié)點。statistics( )函數(shù)統(tǒng)計各個后選人所得票數(shù)。在主函數(shù)中先輸入候選人數(shù)n,然后動態(tài)建立一維數(shù)組an來存放每個候選人所得票數(shù)(如ai表示第i+1號候選人所得票數(shù)),統(tǒng)計選票時調用statistics( )函數(shù),將整個單鏈表全部遍歷一遍,將各個候選人的得票個數(shù)計入到數(shù)組an中,最后輸出各個候選人的得票情況。6.3詳細設計與編碼流程圖開始輸入候選人人數(shù)動態(tài)建立一維數(shù)組an來存放每個候選人所得

29、票數(shù)輸入選票張數(shù)用createlist()函數(shù)動態(tài)建立一個單鏈表,并返回頭節(jié)點調用statistics( )函數(shù)進行票數(shù)統(tǒng)計,將各個候選人的得票個數(shù)計入到數(shù)組an中輸出各個候選人的得票情況結束程序代碼#include using namespace std; typedef struct nodeint data;struct node *next;lnode;int n;lnode *createlist() /構建單鏈表,每投一票插入一個節(jié)點,節(jié)點data域存放所選的候選人號碼lnode *l,*p,*t;int m,i;l=new lnode;l-next=null;l-data=nul

30、l; /頭結點data域中為空t=l; coutm; cout請投選票:endl;for(i=0;im;i+) p=new lnode; coutp-data; p-next=null; t-next=p; t=p; return l; /返回頭結點void statistics(lnode *l,int *a) /統(tǒng)計投票情況lnode *p;p=l-next;while(p!=null) ap-data-1+; /ai中存放第i+1號候選人的得票個數(shù) p=p-next;void main()int i;lnode *l;coutn; int *a=new intn; /動態(tài)建立數(shù)組,用來存

31、放候選人得票個數(shù)for(i=0;in;i+) ai=0;l=createlist(); /構建單鏈表,返回頭結點 statistics(l,a); /統(tǒng)計投票情況for(i=0;in;i+) /輸出得票結果cout第i+1個候選人的得票數(shù)為:aiendl; 運行結果6.4調試分析由于候選人數(shù)不確定,所以要根據(jù)輸入的候選人人數(shù)動態(tài)建立數(shù)組來存放得票情況。在動態(tài)建立單鏈表的過程中系統(tǒng)出現(xiàn)過內存分配錯誤的問題,所以在建立鏈表時要保證尾節(jié)點的指針域始終為空,另設一個指針始終指向插入的節(jié)點,為下一個節(jié)點的插入做準備。創(chuàng)建單鏈表的函數(shù)返回頭節(jié)點的地址,所以函數(shù)類型為指針類型。6.5用戶使用說明用戶進入界面

32、后,先輸入候選人數(shù),在輸入要投票數(shù),接著開始投票,每輸入一個號碼后按回車,最終得到投票結果。6.6設計心得本題是一道簡單的數(shù)據(jù)結構鏈表創(chuàng)建和遍歷問題。通過本題的練習和思考,行我了單鏈表和循環(huán)鏈表的創(chuàng)建以及創(chuàng)建鏈表時應該注意的問題,了解了鏈表在解決一些問題時的優(yōu)越性,尤其是在刪除或插入節(jié)點時(如約瑟夫問題)比線性表處理此類問題時的算法復雜度要簡單很多。二叉樹和圖,本質上都是鏈表,所以鏈表是數(shù)據(jù)結構的靈魂,也是重點和難點,重視鏈表的學習對學好數(shù)據(jù)結構起著劇組輕重的作用。七、數(shù)據(jù)結構設計題97.1需求分析1、從一副撲克牌(54張)中任意抽出27張(不重復),擺放在不同的三行上(每行9張),用戶“暗記

33、”某張紙牌,輸入所“暗記”的那張紙牌處于哪一行。2、之后計算機再兩次將紙牌重新擺放,并讓用戶再回答兩次相同的提問(那張紙牌在重新擺放后又處在哪一行上)。3將用戶所“暗記”的那張紙牌給挑出來,顯示到屏幕上。7.2概要設計定義一個結構體pk,pk中存放撲克牌的數(shù)碼和花色;成員函數(shù)有display( ),用來輸出撲克牌的布局;int_char1( )函數(shù)用來將隨機生成的整數(shù)轉化為撲克牌的數(shù)碼;int_char2 ( )函數(shù)用來將隨機生成的整數(shù)轉化為撲克牌的花色;move ( )函數(shù)用來重新擺放撲克牌,整數(shù)115對應的撲克牌數(shù)碼依此為 a 1 2 3 4 5 6 7 8 9 10 j q k x z,

34、整數(shù)14對應撲克牌花色依此為a b c d (紅桃、黑桃、梅花、方塊)。在主函數(shù)中定義結構體數(shù)組p27用來存放取出的27張牌的數(shù)碼和花色。先自動生成一張牌,之后每生成一張牌都要與前幾張生成的牌進行比較,如果相同均要重新生成,直至生成27張不同的撲克牌為止;然后分三行顯示這27張牌。之后調用move ( )函數(shù),用戶暗記一張牌并輸入改牌所在的行數(shù),然后計算機根據(jù)用戶輸入的行數(shù)決定重新洗牌的方式,洗完牌后將重新擺放的撲克牌布局顯示到屏幕上,用戶繼續(xù)輸入所記撲克牌的行數(shù),計算機第二次將牌重新擺放,輸出擺放的布局,用戶再次回答提問,最終計算機將用戶暗記的牌挑出來顯示到屏幕上。7.3詳細設計與編碼流程圖

35、開始自動生成27張不同的撲克牌,存放到結構體數(shù)組p27中分三行輸出撲克牌的擺放布局用戶暗記一張牌,并輸入該牌所在行數(shù)計算機重新洗牌,并分三行輸出撲克牌的擺放布局用戶輸入所記撲克牌的所在行數(shù)計算機重新洗牌,并分三行輸出撲克牌的擺放布局用戶輸入所記撲克牌的所在行數(shù)計算機輸出用戶暗記的那張牌結束程序代碼#include#includeusing namespace std;struct pkchar data; /撲克牌上的數(shù)碼char hs; /撲克牌的花色;void display(pk); /輸出撲克牌的擺放情況char int_char1(int); /將隨機生成的數(shù)字轉化為撲克牌上的數(shù)碼c

36、har int_char2(int); /將隨機生成的數(shù)字轉化為撲克牌上的花色void move(pk*); /重新擺放撲克牌void main()pk p27;for(;)p0.data=int_char1(rand()%15+1); /生成第 1 張撲克牌的數(shù)碼p0.hs=int_char2(rand()%4+1); /生成第 1 張撲克牌的花色 for(int i=1;i27;)pk g;g.data=int_char1(rand()%15+1); /生成第 i+1 張撲克牌的數(shù)碼g.hs=int_char2(rand()%4+1); /生成第 i+1 張撲克牌的花色bool prime

37、=true;for(int j=0;ji;j+) /將生成的撲克牌與前i張進行比較,出現(xiàn)相同的則重新生成撲克牌if(g.data=pj.data&g.hs=pj.hs)|g.data=x&pj.data=x|g.data=z&pj.data=z)prime=false;break;if(prime) pi.data=g.data;pi.hs=g.hs;i+;int l=1;int k;cout-endl;for( k=0;k27;k+)if(k=0|k=9|k=18)coutlinel ;l+;display(pk); /將撲克牌分行顯示在屏幕上if(k+1)%9=0)coutendl; mo

38、ve(p); char a;couta;while(a!=y&a!=n)couta;if(a=n)break;char int_char1(int i)char p;switch(i) / 將隨機生成的數(shù)字轉化為撲克牌上的數(shù)碼,大小王為x和z case 1:p=a;break;case 2:p=2;break;case 3:p=3;break;case 4:p=4;break;case 5:p=5;break;case 6:p=6;break;case 7:p=7;break;case 8:p=8;break;case 9:p=9;break;case 10:p=w;break;case 11

39、:p=j;break;case 12:p=q;break;case 13:p=k;break;case 14:p=x;break; case 15:p=z;break; return p;char int_char2(int i)char p;switch(i) /將隨機生成的數(shù)字轉化為撲克牌上的數(shù)碼case 1:p=a;break;case 2:p=b;break;case 3:p=c;break;case 4:p=d;break;return p;void display(pk h) /除了大小王,其余撲克牌均要輸出數(shù)碼和花色if(h.data=x)coutsetw(8)king2;else if(h.data=z)cout

溫馨提示

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

評論

0/150

提交評論