




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 紙牌游戲姓名:xxx 學(xué)號(hào):xxxx院系:計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 專業(yè):計(jì)科 年級(jí):大三 指導(dǎo)老師:xxxx 目 錄 1.課程設(shè)計(jì)的目的x2.需求分析x3.課程設(shè)計(jì)報(bào)告內(nèi)容x 3.1.概要設(shè)計(jì)x 3.2.詳細(xì)設(shè)計(jì)x 3.3.調(diào)試分析x 3.4.用戶手冊(cè)x 3.5.測(cè)試結(jié)果x 3.6.程序清單x 4.小結(jié)x 5.參考文獻(xiàn)x1.課程設(shè)計(jì)的目的(1) 熟練使用 C 語(yǔ)言編寫程序,解決實(shí)際問(wèn)題;(2) 了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計(jì)方法,具備初步的獨(dú)立分析和設(shè)計(jì)能力;(3) 初步掌握軟件開發(fā)過(guò)程的問(wèn)題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測(cè)試等基本方法和技能;(4) 提高綜合運(yùn)用所學(xué)的理論知識(shí)和
2、方法獨(dú)立分析和解決問(wèn)題的能力;2.需求分析編號(hào)為1-52張牌,正面向上,從第2張開始,以2為基數(shù),是2的倍數(shù)的牌翻一次,直到最后一張牌;然后,從第3張開始,以3為基數(shù),是3的倍數(shù)的牌翻一次,直到最后一張牌;直到以52為基數(shù)的翻過(guò),輸出:這時(shí)輸出正面向上的牌有哪些?3. 紙牌游戲的設(shè)計(jì)3.1概要設(shè)計(jì)建立兩個(gè)數(shù)組,一個(gè)存放52張牌的編號(hào),另外一個(gè)存放相應(yīng)編號(hào)的紙牌的翻牌記錄:data52,flag52定義一個(gè)全局變量作為正反面的判斷條件:Flag= -1Case3:輸出記錄Case2:所有牌翻牌記錄Case1:輸出題目查看翻牌的最后結(jié)果查看指定紙牌翻牌記錄查看所有牌的翻牌記錄查看題目歡迎來(lái)到紙牌游
3、戲Case4:顯示最后結(jié)果 開始一維數(shù)組data52,flag52;并將flag初始化為0表示正面朝上YYY N N Nj<=52輸出正面朝上的卡牌翻牌。如果flagj-1為0則變?yōu)?,否則變?yōu)? j+ i+ 結(jié)束j%i=0 j=ii<=52 i=23.2詳細(xì)設(shè)計(jì)/建立兩個(gè)數(shù)組,一個(gè)存放52張牌的編號(hào),另外一個(gè)存放相應(yīng)編號(hào)的紙牌的翻牌記錄。int i,j,data52,flag52,choice,num;char m,n;for(i=1;i<=52;i+)datai-1=i;/錄入52張牌的編號(hào)。flagi-1=0;/將相應(yīng)編號(hào)紙牌的翻牌數(shù)初始化為0。for(i=2;i<
4、;=52;i+)/外循環(huán),基數(shù)循環(huán)。for(j=1;j<=52;j+)/內(nèi)循環(huán),基數(shù)倍數(shù)條件判斷。if(j%i=0)dataj-1=dataj-1*Flag;/將翻轉(zhuǎn)后的結(jié)果更新data中的數(shù)據(jù)。 flagj-1+;/翻牌一次,即記入flag數(shù)組中。case 1:printf("-題目-n");printf("*n");printf("編號(hào)為1-52張牌,正面向上,從第2張開始,以2為基數(shù),是2的倍數(shù)的牌翻一次,");printf("直到最后一張牌;然后,從第3張開始,以3為基數(shù),是3的倍數(shù)的牌翻一次,");
5、printf("直到最后一張牌;直到以52為基數(shù)的翻過(guò),輸出:這時(shí)輸出正面向上的牌有哪些?n");printf("*");printf("n");printf("n");printf("是否回到主菜單?(Y/N):");/在每個(gè)獨(dú)立功能后添加了獨(dú)立的判斷語(yǔ)句,從而可以選擇性的回到主菜單。n=getchar();n=getchar();if(n='Y')break;else if(n='N')choice=0;/0作為整個(gè)界面的循環(huán)結(jié)束條件,所以直接將choice=
6、0,即可結(jié)束循環(huán)。else printf("*(提示:輸入錯(cuò)誤,默認(rèn)為繼續(xù)。)*n"); break;case 2:printf("以下為翻牌記錄:n");printf("t-第1張牌翻過(guò)0次。-t");printf("n");printf("n");for(i=1;i<52;i+)printf("t-第%d張牌翻過(guò)%d次。-t",i+1,flagi);if(i%2=0)printf("n");printf("n");printf
7、("是否回到主菜單?(Y/N):");n=getchar();n=getchar();if(n='Y')break;else if(n='N')choice=0;else printf("*(提示:輸入錯(cuò)誤,默認(rèn)為繼續(xù)。)* *n"); break;case 3:doprintf("t請(qǐng)輸入您想查詢的紙牌編碼:");scanf("%d",&num);if(num<1&&num>52)/紙牌的序號(hào)為1-52,所以其他數(shù)值都為輸入錯(cuò)誤。printf(&
8、quot;t輸入錯(cuò)誤!n");elseprintf("t紙牌翻轉(zhuǎn)記錄如下:n");printf("t紙牌翻轉(zhuǎn)次數(shù)為%dn",flagnum-1);for(j=2;j<=52;j+)/內(nèi)循環(huán),基數(shù)倍數(shù)條件判斷。if(num%j=0)printf("t在以編號(hào)%d為基數(shù)時(shí)此紙牌有一次翻轉(zhuǎn)。n",j); printf("需要繼續(xù)查詢紙牌編碼嗎?(Y/N):");/獨(dú)立的判斷語(yǔ)句,作為do-while的結(jié)束條件,從而可循環(huán)的查詢紙牌編碼。m=getchar();m=getchar();if(m!='
9、Y'&&m!='N')printf("*(提示:輸入錯(cuò)誤,默認(rèn)為跳過(guò)。)* *n");while(m='Y');printf("是否回到主菜單?(Y/N):");n=getchar();n=getchar();if(n='Y')break;else if(n='N')choice=0;else printf("*(提示:輸入錯(cuò)誤,默認(rèn)為繼續(xù)。)* *n");break;case 4:printf("t最后所有正面向上的牌有:n"
10、);for(i=0;i<52;i+)if(datai>0)/所有大于0的數(shù)即為正面向上的紙牌。printf(" 第%d張牌 ",i+1);printf("n");printf("是否回到主菜單?(Y/N):");n=getchar();n=getchar();if(n='Y')break;else if(n='N')choice=0;else printf("*(提示:輸入錯(cuò)誤,默認(rèn)為繼續(xù)。)* *n");break;case 0:break;default:printf
11、("t輸入錯(cuò)誤,請(qǐng)重新輸入!n");while(choice!=0);/0作為整個(gè)循環(huán)的結(jié)束條件。printf("*程序結(jié)束,謝謝使用*n"); 3.3調(diào)試分析:選擇1,顯示題目選擇2,查看所有翻牌記錄選擇3,查看指定紙牌記錄,如18選擇4,顯示最后結(jié)果4. 程序清單:#include<stdio.h>#include<windows.h>#define Flag -1/定義一個(gè)全局變量作為正反面的判斷條件。void main()int i,j,data52,flag52,choice,num;/建立兩個(gè)數(shù)組,一個(gè)存放52張牌的編
12、號(hào),另外一個(gè)存放相應(yīng)編號(hào)的紙牌的翻牌記錄。char m,n;for(i=1;i<=52;i+)datai-1=i;/錄入52張牌的編號(hào)。flagi-1=0;/將相應(yīng)編號(hào)紙牌的翻牌數(shù)初始化為0。for(i=2;i<=52;i+)/外循環(huán),基數(shù)循環(huán)。for(j=1;j<=52;j+)/內(nèi)循環(huán),基數(shù)倍數(shù)條件判斷。if(j%i=0)dataj-1=dataj-1*Flag;/將翻轉(zhuǎn)后的結(jié)果更新data中的數(shù)據(jù)。 flagj-1+;/翻牌一次,即記入flag數(shù)組中。doprintf("t-n");printf("t-n");printf(&quo
13、t;t- 歡迎進(jìn)入紙牌游戲 -n"); printf("t- 1.查看題目 -n");printf("t- 2.查看所有紙牌的翻牌次數(shù) -n");printf("t- 3.查看指定編號(hào)紙牌翻牌記錄 -n"); printf("t- 4.查看最終正面向上的紙牌編號(hào) -n"); printf("t- 0.按0鍵結(jié)束 -n"); printf("t-n");printf("t-n");printf("請(qǐng)輸入您的選擇(數(shù)字0-4):"
14、);/主界面scanf("%d",&choice);switch(choice)/通過(guò)switch語(yǔ)句進(jìn)行功能的選擇case 1:printf("-題目-n");printf("*n");printf("編號(hào)為1-52張牌,正面向上,從第2張開始,以2為基數(shù),是2的倍數(shù)的牌翻一次,");printf("直到最后一張牌;然后,從第3張開始,以3為基數(shù),是3的倍數(shù)的牌翻一次,");printf("直到最后一張牌;直到以52為基數(shù)的翻過(guò),輸出:這時(shí)輸出正面向上的牌有哪些?n"
15、;);printf("*");printf("n");printf("n");printf("是否回到主菜單?(Y/N):");/在每個(gè)獨(dú)立功能后添加了獨(dú)立的判斷語(yǔ)句,從而可以選擇性的回到主菜單。n=getchar();n=getchar();if(n='Y')break;else if(n='N')choice=0;/0作為整個(gè)界面的循環(huán)結(jié)束條件,所以直接將choice=0,即可結(jié)束循環(huán)。else printf("*(提示:輸入錯(cuò)誤,默認(rèn)為繼續(xù)。)*n"); b
16、reak;case 2:printf("以下為翻牌記錄:n");printf("t-第1張牌翻過(guò)0次。-t");printf("n");printf("n");for(i=1;i<52;i+)printf("t-第%d張牌翻過(guò)%d次。-t",i+1,flagi);if(i%2=0)printf("n");printf("n");printf("是否回到主菜單?(Y/N):");n=getchar();n=getchar();if(
17、n='Y')break;else if(n='N')choice=0;else printf("*(提示:輸入錯(cuò)誤,默認(rèn)為繼續(xù)。)* *n"); break;case 3:doprintf("t請(qǐng)輸入您想查詢的紙牌編碼:");scanf("%d",&num);if(num<1&&num>52)/紙牌的序號(hào)為1-52,所以其他數(shù)值都為輸入錯(cuò)誤。printf("t輸入錯(cuò)誤!n");elseprintf("t紙牌翻轉(zhuǎn)記錄如下:n");
18、printf("t紙牌翻轉(zhuǎn)次數(shù)為%dn",flagnum-1);for(j=2;j<=52;j+)/內(nèi)循環(huán),基數(shù)倍數(shù)條件判斷。if(num%j=0)printf("t在以編號(hào)%d為基數(shù)時(shí)此紙牌有一次翻轉(zhuǎn)。n",j); printf("需要繼續(xù)查詢紙牌編碼嗎?(Y/N):");/獨(dú)立的判斷語(yǔ)句,作為do-while的結(jié)束條件,從而可循環(huán)的查詢紙牌編碼。m=getchar();m=getchar();if(m!='Y'&&m!='N')printf("*(提示:輸入錯(cuò)誤,默認(rèn)為跳過(guò)。)* *n");while(m='Y
溫馨提示
- 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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- HY/T 0437-2024海洋生物資源碳增匯計(jì)量和監(jiān)測(cè)技術(shù)規(guī)范大型藻類(筏式養(yǎng)殖)
- 乳飲料生產(chǎn)過(guò)程溫度濕度控制對(duì)品質(zhì)影響研究考核試卷
- 初等教育中創(chuàng)新創(chuàng)業(yè)教育的評(píng)價(jià)體系考核試卷
- 慢性病康復(fù)護(hù)理技術(shù)考核試卷
- 化學(xué)礦安全文化建設(shè)評(píng)估考核試卷
- 信息系統(tǒng)的生產(chǎn)過(guò)程與質(zhì)量控制管理考核試卷
- 患者安全使用指南考核試卷
- 獸醫(yī)病毒學(xué)在動(dòng)物疾病監(jiān)測(cè)與預(yù)警系統(tǒng)中的作用考核試卷
- 志愿者服務(wù)績(jī)效評(píng)估模型構(gòu)建考核試卷
- 品牌傳播中的視覺設(shè)計(jì)與消費(fèi)者認(rèn)知研究考核試卷
- 安保工作考核表
- 2024年新人教版七年級(jí)道德與法治上冊(cè)全冊(cè)教學(xué)課件
- 電子政務(wù)概論-形考任務(wù)5(在線測(cè)試權(quán)重20%)-國(guó)開-參考資料
- 古代小說(shuō)戲曲專題-形考任務(wù)2-國(guó)開-參考資料
- 2023-2024學(xué)年曲靖市七年級(jí)語(yǔ)文下學(xué)期期末考試卷(附答案解析)
- 2024-2030年中國(guó)低溫超導(dǎo)材料行業(yè)市場(chǎng)深度調(diào)研及發(fā)展前景與投資戰(zhàn)略研究報(bào)告
- HG∕T 3642-2016 水處理劑 丙烯酸-2-甲基-2-丙烯酰胺基丙磺酸類共聚物
- 居間分流合同范本2024年
- SMT外觀維修作業(yè)指導(dǎo)書
- 《合同法》綜合練習(xí)題及答案
- 山西省孝義市2022-2023學(xué)年七年級(jí)下學(xué)期語(yǔ)文期末試卷(含答案)
評(píng)論
0/150
提交評(píng)論