1 / 21
文档名称:

数据结构课程设计 纸牌游戏.docx

格式:docx   大小:319KB   页数:21页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构课程设计 纸牌游戏.docx

上传人:森林书屋 2022/12/7 文件大小:319 KB

下载得到文件列表

数据结构课程设计 纸牌游戏.docx

文档介绍

文档介绍:该【数据结构课程设计 纸牌游戏 】是由【森林书屋】上传分享,文档一共【21】页,该文档可以免费在线阅读,需要了解更多关于【数据结构课程设计 纸牌游戏 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。.. .. ..
《数据结构》课程设计
————纸牌游戏
. .
.. .. ..
姓名:xxx 学号:xxxx
院系:计算机科学与技术学院 专业:计科
年级:大三 指导老师:xxxx
目 录
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯x
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯x
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯x
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯x
. ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯x
. .
.. .. ..
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯x
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯x
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯x
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯x
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯x
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯x

熟练使用C语言编写程序,解决实际问题;
了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;
(3)
初步掌握软件开发过程的问题分析
、系统设计、程序编码、测试等基本方法和技能;
(4)
提高综合运用所学的理论知识和方法独立分析和解决问题的能力
;

编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次 ,直到
最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次 ,直到最后一张
牌;直到以52为基数的翻过,输出:这时输出正面向上的牌有哪些 ?

. .
.. .. ..

建立两个数组 ,一个存放 52张牌的编号 ,另外一个存放相应编号的纸牌的翻牌记录
data[52],flag[52]
定义一个全局变量作为正反面的判断条件 :Flag=-1
欢迎来到纸
牌游戏
查看题目
查看所有牌
查看指定纸
的翻牌记录
牌翻牌记录
Case1:输出
Case2:所有
Case3:输出
题目
牌翻牌记录
记录

:
查看翻牌的最后结果
Case4:显示最后结果
. .
.. .. ..
开始
i=2
一维数组 data[52],flag[52];并将
flag初始化为 0表示正面朝上
N
i<=52
Y
j=i
N
j<=52 i++
Y
N
j%i==0
Y
翻牌。如果flag[j-1]为0则
变为1,否则变为 0
. .
j++
.. .. ..
. .
.. .. ..

//建立两个数组 ,一个存放 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<=52;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");
printf("编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一
次,");
printf("直到最后一张牌 ;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次 ,");
printf("直到最后一张牌 ;直到以52为基数的翻过,输出:这时输出正面向上的牌有哪些 ?
\n");
printf("****************************************************************");
printf("\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:{
printf("以下为翻牌记录 :\n");
printf("\t---- 第1张牌翻过 0次。----\t");
printf("\n");
printf("\n");
for(i=1;i<52;i++)
{
printf("\t---- 第%d张牌翻过%d次。----\t",i+1,flag[i]);
if(i%2==0)
printf("\n");
}
printf("\n");
printf("是否回到主菜单 ?(Y/N):");
n=getchar();
n=getchar();
if(n=='Y')break;
elseif(n=='N')
choice=0;
. .
.. .. ..
elseprintf("**********( 提示:输入错误,默认为继续。)*************\n");}break;
case3:{
do{
printf("\t 请输入您想查询的纸牌编码 :");
scanf("%d",&num);
if(num<1&&num>52)// 纸牌的序号为 1-52,所以其他数值都为输入错误 。
printf("\t 输入错误!\n");
else
{
printf("\t 纸牌翻转记录如下 :\n");
printf("\t 纸牌翻转次数为 %d\n",flag[num-1]);
for(j=2;j<=52;j++)// 内循环,基数倍数条件判断 。
{
if(num%j==0)
{
printf("\t 在以编号%d为基数时此纸牌有一次翻转 。\n",j);}
}
}
printf("需要继续查询纸牌编码吗 ?(Y/N):");//独立的判断语句 ,作为do-while 的结束条
件,从而可循环的查询纸牌编码 。
m=getchar();
m=getchar();
. .