数据结构课程设计纸牌游戏Word文件下载.docx

上传人:b****1 文档编号:5907233 上传时间:2023-05-05 格式:DOCX 页数:17 大小:337.47KB
下载 相关 举报
数据结构课程设计纸牌游戏Word文件下载.docx_第1页
第1页 / 共17页
数据结构课程设计纸牌游戏Word文件下载.docx_第2页
第2页 / 共17页
数据结构课程设计纸牌游戏Word文件下载.docx_第3页
第3页 / 共17页
数据结构课程设计纸牌游戏Word文件下载.docx_第4页
第4页 / 共17页
数据结构课程设计纸牌游戏Word文件下载.docx_第5页
第5页 / 共17页
数据结构课程设计纸牌游戏Word文件下载.docx_第6页
第6页 / 共17页
数据结构课程设计纸牌游戏Word文件下载.docx_第7页
第7页 / 共17页
数据结构课程设计纸牌游戏Word文件下载.docx_第8页
第8页 / 共17页
数据结构课程设计纸牌游戏Word文件下载.docx_第9页
第9页 / 共17页
数据结构课程设计纸牌游戏Word文件下载.docx_第10页
第10页 / 共17页
数据结构课程设计纸牌游戏Word文件下载.docx_第11页
第11页 / 共17页
数据结构课程设计纸牌游戏Word文件下载.docx_第12页
第12页 / 共17页
数据结构课程设计纸牌游戏Word文件下载.docx_第13页
第13页 / 共17页
数据结构课程设计纸牌游戏Word文件下载.docx_第14页
第14页 / 共17页
数据结构课程设计纸牌游戏Word文件下载.docx_第15页
第15页 / 共17页
数据结构课程设计纸牌游戏Word文件下载.docx_第16页
第16页 / 共17页
数据结构课程设计纸牌游戏Word文件下载.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据结构课程设计纸牌游戏Word文件下载.docx

《数据结构课程设计纸牌游戏Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计纸牌游戏Word文件下载.docx(17页珍藏版)》请在冰点文库上搜索。

数据结构课程设计纸牌游戏Word文件下载.docx

(1)熟练使用C语言编写程序,解决实际问题;

(2)了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;

(3)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;

(4)提高综合运用所学的理论知识和方法独立分析和解决问题的能力;

2。

需求分析

编号为1—52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;

然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;

直到以52为基数的翻过,输出:

这时输出正面向上的牌有哪些?

3.纸牌游戏的设计

3.1概要设计

建立两个数组,一个存放52张牌的编号,另外一个存放相应编号的纸牌的翻牌记录:

data[52],flag[52]

定义一个全局变量作为正反面的判断条件:

Flag=—1

Y

N

3.2详细设计

//建立两个数组,一个存放52张牌的编号,另外一个存放相应编号的纸牌的翻牌记录。

inti,j,data[52],flag[52],choice,num;

charm,n;

for(i=1;

i〈=52;

i++)

data[i-1]=i;

//录入52张牌的编号.

flag[i—1]=0;

//将相应编号纸牌的翻牌数初始化为0。

}

for(i=2;

i++)//外循环,基数循环。

for(j=1;

j〈=52;

j++)//内循环,基数倍数条件判断.

if(j%i==0)

data[j—1]=data[j-1]*Flag;

//将翻转后的结果更新data中的数据。

flag[j—1]++;

//翻牌一次,即记入flag数组中.

case1:

{

printf(”---题目——-\n”);

printf("

**************************************************************\n”);

编号为1—52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,"

);

直到最后一张牌;

然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,”);

直到最后一张牌;

直到以52为基数的翻过,输出:

\n"

****************************************************************”);

\n”);

printf(”\n”);

printf(”是否回到主菜单?

(Y/N):

"

);

//在每个独立功能后添加了独立的判断语句,从而可以选择性的回到主菜单。

n=getchar();

n=getchar();

if(n==’Y’)break;

elseif(n=='

N’)

choice=0;

//0作为整个界面的循环结束条件,所以直接将choice=0,即可结束循环.

elseprintf("

**********(提示:

输入错误,默认为继续.)***********\n"

}break;

case2:

以下为翻牌记录:

\t--—-第1张牌翻过0次.-—--\t”);

printf(”\n"

for(i=1;

i<

52;

\t--—-第%d张牌翻过%d次.—-——\t"

,i+1,flag[i]);

if(i%2==0)

printf(”\n”);

\n”);

if(n=='

Y'

)break;

elseif(n==’N’)

elseprintf(”**********(提示:

输入错误,默认为继续。

)*************\n"

}break;

case3:

do{

\t请输入您想查询的纸牌编码:

scanf("

%d”,&num);

if(num<

1&&num〉52)//纸牌的序号为1—52,所以其他数值都为输入错误。

\t输入错误!

else

printf(”\t纸牌翻转记录如下:

printf(”\t纸牌翻转次数为%d\n”,flag[num-1]);

for(j=2;

j〈=52;

j++)//内循环,基数倍数条件判断。

if(num%j==0)

\t在以编号%d为基数时此纸牌有一次翻转。

\n”,j);

printf(”需要继续查询纸牌编码吗?

//独立的判断语句,作为do—while的结束条件,从而可循环的查询纸牌编码。

m=getchar();

m=getchar();

if(m!

='

Y’&&

m!

=’N’)

printf(”************(提示:

输入错误,默认为跳过。

)**********\n”);

}while(m=='

Y’);

(Y/N):

elseif(n==’N'

**************(提示:

)**********\n"

}break;

case4:

printf(”\t最后所有正面向上的牌有:

for(i=0;

i〈52;

if(data[i]>

0)//所有大于0的数即为正面向上的纸牌。

printf(”第%d张牌”,i+1);

是否回到主菜单?

”);

N'

elseprintf(”***************(提示:

输入错误,默认为继续.)**********\n”);

}break;

case0:

break;

default:

printf(”\t输入错误,请重新输入!

}while(choice!

=0);

//0作为整个循环的结束条件。

*******************程序结束,谢谢使用********************\n"

}

3.3调试分析:

选择1,显示题目

选择2,查看所有翻牌记录

选择3,查看指定纸牌记录,如18

选择4,显示最后结果

4.程序清单:

#include〈stdio.h〉

#include〈windows。

h〉

#defineFlag—1//定义一个全局变量作为正反面的判断条件。

voidmain()

inti,j,data[52],flag[52],choice,num;

//建立两个数组,一个存放52张牌的编号,另外一个存放相应编号的纸牌的翻牌记录.

charm,n;

data[i—1]=i;

//录入52张牌的编号。

for(i=2;

=52;

for(j=1;

if(j%i==0)

data[j-1]=data[j-1]*Flag;

flag[j—1]++;

//翻牌一次,即记入flag数组中。

do{

\t—-----—————-—----—-—-—---——---——---———-—---—————————-———---\n”);

\t-——-——----——------—————---——-——---——-——---———--—-————-----—\n"

printf(”\t—---—--—-欢迎进入纸牌游戏-—----——--—\n”);

\t-—--—-—-—1.查看题目-—-——————--\n"

printf(”\t-———---——2.查看所有纸牌的翻牌次数——-——--—--—\n"

printf(”\t-———————-3。

查看指定编号纸牌翻牌记录—--—-—--——-\n”);

\t-———-—-—-4.查看最终正面向上的纸牌编号-—--—-—-——-\n”);

\t—-———-———0.按0键结束—---------—\n”);

\t————-——--——-———-——-—————-——-—————-———---———--———————-——--—-\n"

printf(”\t-——--————----—--——————--—----—-—----———-—-—-——--—--——-——-—-\n"

printf(”请输入您的选择(数字0—4):

”);

//主界面

%d”,&choice);

switch(choice)//通过switch语句进行功能的选择

case1:

printf(”---题目—-—\n"

printf(”**************************************************************\n"

编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,"

printf(”直到最后一张牌;

然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,”);

printf(”****************************************************************”);

//在每个独立功能后添加了独立的判断语句,从而可以选择性的回到主菜单.

//0作为整个界面的循环结束条件,所以直接将choice=0,即可结束循环。

**********(提示:

输入错误,默认为继续.)***********\n"

case2:

printf(”以下为翻牌记录:

\t—-——第1张牌翻过0次。

——-—\t”);

52;

\t-—--第%d张牌翻过%d次。

—-—-\t"

,i+1,flag[i]);

choice=0;

**********(提示:

输入错误,默认为继续.)*************\n”);

}break;

printf(”\t请输入您想查询的纸牌编码:

scanf(”%d"

,&

num);

1&

&

num>

52)//纸牌的序号为1-52,所以其他数值都为输入错误。

printf(”\t输入错误!

\t纸牌翻转记录如下:

\t纸牌翻转次数为%d\n"

flag[num-1]);

for(j=2;

\t在以编号%d为基数时此纸牌有一次翻转。

\n”,j);

需要继续查询纸牌编码吗?

//独立的判断语句,作为do-while的结束条件,从而可循环的查询纸牌编码。

if(m!

Y’&

printf(”************(提示:

)**********\n"

}while(m==’Y’);

elseprintf(”**************(提示:

输入错误,默认为继续.)**********\n"

}break;

case4:

\t最后所有正面向上的牌有:

if(data[i]>

printf(”第%d张牌"

,i+1);

Y’)break;

elseprintf(”***************(提示:

输入错误,默认为继续。

)**********\n"

case0:

default:

\t输入错误,请重新输入!

}while(choice!

*******************程序结束,谢谢使用********************\n”);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 化学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2