数据结构课程设计之纸牌游戏.docx
《数据结构课程设计之纸牌游戏.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计之纸牌游戏.docx(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构课程设计之纸牌游戏 20222022年度第2 学期 一、需求分析 1.问题描述: 随机产生52个数按照某一规则计算正面牌数。编号为1-52牌,正面向上,从第2开始,以2为基数,是2的倍数的牌翻一次,直到最后一牌;然后,从第3开始,以3为基数,是3的倍数的牌翻一次,直到最后一牌;然后从第4开始,以4为基数,是4的倍数的牌翻一次,直到最后一牌;.再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过,输出:这时正面向上的牌有哪些。 2.基本功能: 选择纸牌是顺序排序还是随机排序随机,1为随机排序,其他数字为顺序排序,输入一个数使程序运行,随机产生52纸牌,运行之后输出正面向上的牌。之后
2、输入1重新运行,输入其他数字回车停止 3.输入输出: 1)输入一个数字选择是使用顺序放牌还是随机放牌,1为随机放牌,其他数字为顺序放牌,输入一个正整数种子值,程序运行,输出52纸牌的排列顺序,列出纸牌序列,输出正面向上的牌,进入选择语句,是否再玩一局,输入1,程序从新运行,输入其他,程序运行结束。 二、概要设计 1.设计思路: 当每个每次遇到是某个数的倍数的时候,都会相应的翻一次牌,这样,每牌翻得次数就个不一样,可能很多次,也可能只有一两次,结果就只是要输出在经过各个不同次数的反派后,正面向上的牌都有哪几个。 例如24,第一次他是2的倍数时要从背面翻到背面,当进行到3时,又要从背面返回来。如果
3、他在多次翻拍后,正面还向上了,那么他就是要输出的结果之一。 /操作函数 void operate(void) rcard rc; int i,j; rc=Random();/获得纸牌不同排序方式 /翻面游戏 for(j=2;j=NUM;j+) /j为基数,也是开始翻面的位置 for(i=j;i=NUM;i+)/i为纸牌位置 if(rc.ci-1.info%j=0) rc.ci-1.state=rc.ci-1.state?0:1; 2.基本算法: 算法的主要流程为: 选择所需纸牌是随机还是顺序建立代表52牌的链表链表可以选择顺序链表和随机链表输出这52牌调用翻牌算法按照规则进行翻牌输出翻牌算法之
4、后的结果选择是否从新开始。 3.数据结构设计: 实体:card 其中的特征为int info,int postion ,int state 实体:rcard 它中的元素就是card,包涵card中的特征。 函数名返回值类型 Main()void Select()void operate2 void operate2()void random()rcard shunxu()rcard h_bian()void l_bian()void information()viod 4.数据结构设计: 定义程序中用到的抽象数据类型; 抽象数据类型线性表的定义如下: ADT card 数据对象:D=a i|
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 纸牌 游戏
限制150内