版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課 程 設(shè) 計(jì) 報(bào) 告課程名稱 數(shù)據(jù)結(jié)構(gòu) 課題名稱 紙牌游戲 專 業(yè) 通信工程 班 級(jí) 1201 學(xué) 號(hào) 201203040133 姓 名 任擴(kuò)望 指導(dǎo)教師 張鏖烽 2014年 6 月 22 日湖南工程學(xué)院課 程 設(shè) 計(jì) 任 務(wù) 書課程名稱 數(shù)據(jù)結(jié)構(gòu) 課題名稱 紙牌游戲 專業(yè)班級(jí) 通信工程1201 學(xué)生姓名 任擴(kuò)望 學(xué) 號(hào) 201203040133 指導(dǎo)老師 張鏖烽 審 批 任務(wù)書下達(dá)日期 2014 年 6 月 16 日任 務(wù) 完成日期 2014 年 6 月 22 日目 錄一、需求分析3二、概要設(shè)計(jì)3三、詳細(xì)設(shè)計(jì)3四、調(diào)試分析7五、用戶使用說明7六、測(cè)試結(jié)果7七、總結(jié)8八、附錄8課題名稱 紙牌
2、游戲1. 需求分析1.1 運(yùn)行程序后,便會(huì)顯示出正面朝上的牌的編號(hào)。所以需要程序能夠儲(chǔ)存1.2 顯示出這52張牌中翻動(dòng)次數(shù)最多與最少的牌,以及翻動(dòng)的次數(shù)和是正面向上還是反面向上,需要程序能夠自動(dòng)計(jì)數(shù)自行比較并且輸出的功能。2概要設(shè)計(jì)2.1 編號(hào)為1-52張紙牌,則需要?jiǎng)?chuàng)建一個(gè)線性表,運(yùn)用malloc函數(shù)申請(qǐng)內(nèi)存空間,存儲(chǔ)紙牌編號(hào)信息。2.2 設(shè)計(jì)翻牌程序,存儲(chǔ)最后正面向上的牌的編號(hào),和翻動(dòng)次數(shù)最多的牌號(hào),和翻動(dòng)次數(shù)最少的牌號(hào),以及他們翻動(dòng)的次數(shù),和他們是正面向上還是反面向上。2.3 編寫主函數(shù),輸出全部紙牌編號(hào)與程序的運(yùn)行結(jié)果,讓用戶能夠看到直觀的求解結(jié)果。3. 詳細(xì)設(shè)計(jì)3.1創(chuàng)建線性表存儲(chǔ)所
3、有的紙牌編號(hào)typedef struct/定義線形表int data52;list;void build(list* &l)/建立線形表int i;l=(list*)malloc(sizeof(list);for(i=0;idatai=0;3.2 建立fanpai() 函數(shù)void fanpai(list* &l)int j,i;for(j=2;j=52;j+)for(i=1;i=52;i+)if(i*jdatai*j-1=1)l-datai*j-1=0;ki*j-1+;continue;if(i*jdatai*j-1=0)l-datai*j-1=1;ki*j-1+;continue;prin
4、tf(正面朝上的牌有:);for(j=0;jdataj=0)printf( %d ,j+1);3.3 建立zuiduo()函數(shù)void zuiduo(list* &l)int b=k0,j;for(j=0;j51;j+)if(bkj+1)b=kj+1;printf(n翻牌次數(shù)最多的是:n);for(j=0;jdataj=0)printf(%d,次數(shù)為%d.正面n,j+1,b);elseprintf(%d,次數(shù)為%d.反面n,j+1,b);3.4 建立zuishao()函數(shù)void zuishao(list* &l) int b=k1,j;for(j=1;jkj+1)b=kj+1;printf(
5、翻牌次數(shù)最少的是:n);for(j=0;jdataj=0)printf(%d,次數(shù)為%d.正面n,j+1,b);elseprintf(%d,次數(shù)為%d.反面n,j+1,b);3.5 定義main()主函數(shù)int main()list* a;build(a);int j=0;void change(list* &l); /翻牌void more(list* &l); /翻動(dòng)次數(shù)最多void less(list* &l); /翻動(dòng)次數(shù)最少change(a);printf(n);more(a);printf(n);less(a);printf(n);return 0; 4.調(diào)試分析剛開始使用鏈表來存
6、儲(chǔ)數(shù)據(jù),但是發(fā)現(xiàn)函數(shù)太過復(fù)雜而且有不可調(diào)節(jié)的錯(cuò)誤。后經(jīng)測(cè)試發(fā)現(xiàn)使用線性表能夠更好的存儲(chǔ)和調(diào)用數(shù)據(jù)。而且線性表更容易理解,而在使用過程中,數(shù)組的使用會(huì)導(dǎo)致結(jié)果的不同,如在子程序zuishao函數(shù)中,語句int b=k1,j;for(j=1;jkj+1)b=kj+1;修改數(shù)組的下標(biāo),能夠得到不同的數(shù)據(jù)5. 用戶使用說明5.1此程序可以在環(huán)境為 C + + Buildor6 或者 Microsoft VisualC + + 6 . 0 及其以上版本的地方直接運(yùn)行。5.2查看程序結(jié)果可直接運(yùn)行源程序或者運(yùn)行可執(zhí)行文件,可直接得到運(yùn)行結(jié)果。6. 測(cè)試結(jié)果6.1運(yùn)行源程序后直接得出的結(jié)果 6.2 測(cè)試結(jié)果
7、分析:結(jié)果完全符合要求,編譯中無錯(cuò)誤無警告7總結(jié)感覺這是一次極好的旅程,從開始的設(shè)計(jì)思路與程序的完成都十分順利。感謝老師提前把題目發(fā)出,讓我們有了思考的空間和充足的時(shí)間來修改程序。不得不說,每次的課程設(shè)計(jì)對(duì)自己來說都是巨大的挑戰(zhàn),對(duì)自己是否掌握了所學(xué)內(nèi)容做出了檢驗(yàn)。數(shù)據(jù)結(jié)構(gòu)這門課程相對(duì)于其他語言類課程來說,是我掌握的最多的一門了,然而當(dāng)進(jìn)行設(shè)計(jì)中需要c,c+這些語言的時(shí)候我卻感覺到了吃力,果然基礎(chǔ)還是太過薄弱,所以這也激起了我要重新學(xué)習(xí)這些語言的念頭,其實(shí),應(yīng)該是必須要重新復(fù)習(xí),加深了解這些課程了??傮w來說,這次課設(shè)是完美的完成了,而且在這次課設(shè)中我的感悟也頗多,希望自己能夠在這些體驗(yàn)與感悟中
8、汲取經(jīng)驗(yàn),用實(shí)驗(yàn)中收獲的教訓(xùn)來鞭策自己,讓自己在學(xué)習(xí)中能夠走得更踏實(shí),更遠(yuǎn)。8. 附錄紙牌游戲源代碼#include#includetypedef structint data52;list;void build(list* &l)int i;l=(list*)malloc(sizeof(list);for(i=0;idatai=0;int k52=0;void fanpai(list* &l)int j,i;for(j=2;j=52;j+)for(i=1;i=52;i+)if(i*jdatai*j-1=1)l-datai*j-1=0;ki*j-1+;continue;if(i*jdatai*
9、j-1=0)l-datai*j-1=1;ki*j-1+;continue;printf(正面朝上的牌有:);for(j=0;jdataj=0)printf( %d ,j+1);void zuiduo(list* &l)int b=k0,j;for(j=0;j51;j+)if(bkj+1)b=kj+1;printf(n翻牌次數(shù)最多的是:n);for(j=0;jdataj=0)printf(%d,次數(shù)為%d.正面n,j+1,b);elseprintf(%d,次數(shù)為%d.反面n,j+1,b);void zuishao(list* &l) int b=k1,j;for(j=1;jkj+1)b=kj+1;printf(翻牌次數(shù)最少的是:n);for(j=0;jdataj=0)printf(%d,次數(shù)為%d.正面n,j+1,b);elseprintf(%d,次數(shù)為%d.反面n,j+1,b);int main()list* a;build(a);int j=0;void fanpai(list* &l); void zuiduo(list* &l); void zuishao(list* &l); fanp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度在線借款合同電子簽名法律適用研究3篇
- 二零二五年度某IT服務(wù)公司與企業(yè)客戶就IT運(yùn)維服務(wù)合同2篇
- 二零二五年度加工承攬合同標(biāo)的加工要求和質(zhì)量標(biāo)準(zhǔn)3篇
- 二零二五年度城市廣場(chǎng)草坪承包與公共藝術(shù)合同3篇
- 二零二五年度基樁檢測(cè)與監(jiān)測(cè)系統(tǒng)合同3篇
- 2025年度安徽省勞動(dòng)合同解除與賠償合同范本3篇
- 二零二五年度新型房產(chǎn)租賃及轉(zhuǎn)售一體化服務(wù)合同2篇
- 豆包制作課程設(shè)計(jì)
- 二零二五年度供水企業(yè)安全生產(chǎn)培訓(xùn)合同3篇
- 路基路面沉井課程設(shè)計(jì)
- 2023年希望杯數(shù)學(xué)培訓(xùn)100題-六年級(jí)(含答案)
- 一年級(jí)科學(xué)人教版總結(jié)回顧2
- 個(gè)人住房貸款提前還款月供及節(jié)省利息EXCEL計(jì)算
- 第五單元《圓》教材解析-人教版數(shù)學(xué)六年級(jí)上冊(cè)
- 患者突發(fā)昏迷應(yīng)急預(yù)案演練腳本-
- 智能機(jī)器人技術(shù)導(dǎo)論P(yáng)PT完整全套教學(xué)課件
- 危險(xiǎn)性較大的分部分項(xiàng)工程清單 及安全管理措施
- 中職英語語文版(2023)基礎(chǔ)模塊1 Unit 1 The Joys of Vocational School 單元測(cè)試題(含答案)
- 最全-房屋市政工程安全生產(chǎn)標(biāo)準(zhǔn)化指導(dǎo)圖冊(cè)
- 聚合物的流變性詳解演示文稿
- 壓力彈簧力度計(jì)算器及計(jì)算公式
評(píng)論
0/150
提交評(píng)論