




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
word文檔下載后可任意復(fù)制編輯課程設(shè)計報告課程名稱課題名稱專業(yè)數(shù)據(jù)結(jié)構(gòu)紙牌游戲通信工程word文檔下載后可任意復(fù)制編輯任務(wù)書下達日期2014年6月16日任務(wù)完成日期2014年6月22日
word文檔下載后可任意復(fù)制編輯目錄一、需求分析…………3二、概要設(shè)計…………3三、詳細設(shè)計…………3四、調(diào)試分析…………7五、用戶使用說明……………………7六、測試結(jié)果…………7七、總結(jié)………………8八、附錄………………8
word文檔下載后可任意復(fù)制編輯課題名稱紙牌游戲1.需求分析1.1運行程序后,便會顯示出正面朝上的牌的編號。所以需要程序能夠儲存1.2顯示出這52張牌中翻動次數(shù)最多與最少的牌,以及翻動的次數(shù)和是正面向上還是反面向上,需要程序能夠自動計數(shù)自行比較并且輸出的功能。2.概要設(shè)計2.1編號為1-52張紙牌,則需要創(chuàng)建一個線性表,運用malloc函數(shù)申請內(nèi)存空間,存儲紙牌編號信息。2.2設(shè)計翻牌程序,存儲最后正面向上的牌的編號,動次數(shù)最少的牌號,以及他們翻動的次數(shù),和他們是正面向上還是反面向上。2.3編寫主函數(shù),輸出全部紙牌編號與程序的運行結(jié)果,讓用戶能夠看到直觀的求解結(jié)果。和翻動次數(shù)最多的牌號,和翻3.詳細設(shè)計3.1創(chuàng)建線性表存儲所有的紙牌編號typedefstruct//定義線形表{intdata[52];}list;voidbuild(list*&l)//建立線形表{inti;l=(list*)malloc(sizeof(list));for(i=0;i<52;i++){
word文檔下載后可任意復(fù)制編輯l->data[i]=0;}3.2建立fanpai()函數(shù)voidfanpai(list*&l){intj,i;for(j=2;j<=52;j++){for(i=1;i<=52;i++){if((i*j<=52)&&(l->data[i*j-1]==1)){l->data[i*j-1]=0;k[i*j-1]++;continue;}if((i*j<=52)&&(l->data[i*j-1]==0)){l->data[i*j-1]=1;k[i*j-1]++;continue;}}}printf("正面朝上的牌有:");for(j=0;j<52;j++){if(l->data[j]==0)printf("%d",j+1);}
word文檔下載后可任意復(fù)制編輯3.3建立zuiduo()函數(shù)voidzuiduo(list*&l){intb=k[0],j;for(j=0;j<51;j++){if(b<k[j+1]){b=k[j+1];}}printf("\n翻牌次數(shù)最多的是:\n");for(j=0;j<52;j++){if(b==k[j]){if(l->data[j]==0)printf("%d,次數(shù)為%d.正面\n",j+1,b);elseprintf("%d,次數(shù)為%d.反面\n",j+1,b);}}}3.4建立zuishao()函數(shù)voidzuishao(list*&l){intb=k[1],j;for(j=1;j<52;j++){if(b>k[j+1]){b=k[j+1];
word文檔下載后可任意復(fù)制編輯}}printf("翻牌次數(shù)最少的是:\n");for(j=0;j<52;j++){if(b==k[j]){if(l->data[j]==0)printf("%d,次數(shù)為%d.正面\n",j+1,b);elseprintf("%d,次數(shù)為%d.反面\n",j+1,b);}}}3.5定義main()主函數(shù)intmain(){list*a;build(a);intj=0;voidchange(list*&l);voidmore(list*&l);voidless(list*&l);change(a);printf("\n");more(a);//翻牌//翻動次數(shù)最多//翻動次數(shù)最少printf("\n");less(a);printf("\n");return0;}
word文檔下載后可任意復(fù)制編輯4.調(diào)試分析剛開始使用鏈表來存儲數(shù)據(jù),但是發(fā)現(xiàn)函數(shù)太過復(fù)雜而且有不可調(diào)節(jié)的錯誤。后經(jīng)測試發(fā)現(xiàn)使用線性表能夠更好的存儲和調(diào)用數(shù)據(jù)。而且線性表更容易理解,而在使用過程中,數(shù)組的使用會導(dǎo)致結(jié)果的不同,intb=k[1],j;如在子程序zuishao函數(shù)中,語句for(j=1;j<52;j++){if(b>k[j+1]){b=k[j+1];}}修改數(shù)組的下標(biāo),能夠得到不同的數(shù)據(jù)5.用戶使用說明5.1此程序可以在環(huán)境為C++Buildor6或者MicrosoftVisualC++6.0及其以上版本的地方直接運行。5.2查看程序結(jié)果可直接運行源程序或者運行可執(zhí)行文件,可直接得到運行結(jié)果。6.測試結(jié)果6.1運行源程序后直接得出的結(jié)果
word文檔下載后可任意復(fù)制編輯word文檔下載后可任意復(fù)制編輯6.2測試結(jié)果分析:結(jié)果完全符合要求,編譯中無錯誤無警告7.總結(jié)感覺這是一次極好的旅程,從開始的設(shè)計思路與程序的完成都十分順利。感謝老師提前把題目發(fā)出,讓我們有了思考的空間和充足的時間來修改程序。不得不說,每次的課程設(shè)計對自己來說都是巨大的挑戰(zhàn),對自己是否掌握了所學(xué)內(nèi)容做出了檢驗。數(shù)據(jù)結(jié)構(gòu)這門課程相對于其他語言類課程來說,是我掌握的最多的一門了,然而當(dāng)進行設(shè)計中需要c,,c++這些語言的時候我卻感覺到了吃力,果然基礎(chǔ)還是太過薄弱,所以這也激起了我要重新學(xué)習(xí)這些語言的念頭,其實,應(yīng)該是必須要重新習(xí)復(fù),加深了解這些課程了??傮w來說,這次課設(shè)是完美的完成了,而且在這次課設(shè)中我的感悟也頗多,希望自己能夠在這些體驗與感中能夠走得更踏實,更遠。悟中汲取經(jīng)驗,用實驗中收獲的教訓(xùn)來鞭策自己,讓自己在學(xué)習(xí)8.附錄紙牌游戲源代碼#include<stdio.h>#include<malloc.h>typedefstruct{intdata[52];}list;voidbuild(list*&l){inti;
word文檔下載后可任意復(fù)制編輯l=(list*)malloc(sizeof(list));for(i=0;i<52;i++){l->data[i]=0;}}intk[52]={0};voidfanpai(list*&l){intj,i;for(j=2;j<=52;j++){for(i=1;i<=52;i++){if((i*j<=52)&&(l->data[i*j-1]==1)){l->data[i*j-1]=0;k[i*j-1]++;continue;}if((i*j<=52)&&(l->data[i*j-1]==0)){l->data[i*j-1]=1;k[i*j-1]++;continue;}}}
word文檔下載后可任意復(fù)制編輯printf("正面朝上的牌有:");for(j=0;j<52;j++){if(l->data[j]==0)printf("%d",j+1);}}voidzuiduo(list*&l){intb=k[0],j;for(j=0;j<51;j++){if(b<k[j+1]){b=k[j+1];}}printf("\n翻牌次數(shù)最多的是:\n");for(j=0;j<52;j++){if(b==k[j]){if(l->data[j]==0)printf("%d,次數(shù)為%d.正面\n",j+1,b);elseprintf("%d,次數(shù)為%d.反面\n",j+1,b);}}}voidzuishao(list*&l)
word文檔下載后可任意復(fù)制編輯{intb=k[1],j;for(j=1;j<52;j++){if(b>k[j+1]){b=k[j+1];}}printf("翻牌次數(shù)最少的是:\n");for(j=0;j<52;j++){if(b==k[j]){if(l->data[j]==0)printf("%d,次數(shù)為%d.正面\n",j+1,b);elseprintf("%d,次數(shù)為%d.反面\n",j+1,b);}}}intmain(){list*a;build(a);intj=0;voidfanpai(list*&l);voidzuiduo(list*&l);voidzuishao(list*&l);fanp
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同范本價稅分離
- 鄉(xiāng)村兒童之家合同范本
- 教育教學(xué)改革課題申報書
- 合作開洗車店合同范本
- 農(nóng)村購買門面合同范本
- 廠房建筑加固工程合同范本
- 書法育人課題申報書
- 廠房建設(shè)各類合同范本
- 中價出租合同范例
- 雙向投資合同范本
- 《研學(xué)旅行課程設(shè)計》課件-初識研學(xué)旅行發(fā)展歷程
- 傳染病手術(shù)的處理流程
- 新質(zhì)生產(chǎn)力:中國創(chuàng)新發(fā)展的著力點與內(nèi)在邏輯
- 《中醫(yī)常用護理技術(shù)基礎(chǔ)》課件-八綱辨證施護
- 心理健康與職業(yè)生涯(中等職業(yè))全套教學(xué)課件
- 市政園林安全生產(chǎn)培訓(xùn)課件
- 黑龍江農(nóng)業(yè)經(jīng)濟職業(yè)學(xué)院單招《語文》考試復(fù)習(xí)題庫(含答案)
- 基于BIM的軸流通風(fēng)機施工工藝優(yōu)化
- 2024年大學(xué)生自我意識教學(xué)案
- 女生青春期知識講座(六年級)課件
- 在醫(yī)院新員工入職儀式上的講話
評論
0/150
提交評論