




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构课程设计报告 题 目 纸 牌 游 戏 学生姓名 薛 丹 学 号 08120132 专业班级 计算机0801班 指导老师 方 霞 设计日期 2009年12月27日 指导老师评阅意见:评阅成绩: 签名:一、问题定义1.课题目的:做一个纸牌游戏的程序,最后输出正面朝上的结果有哪些牌。2.课题意义:通过课程设计,使自己熟练掌握数据结构课程中所学的理论知识,并实际应用,通综合运用数据结构的基本知识来解决实际问题,加强了分析和解决问题的能力。3.课题要求:编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一
2、次,直到最后一张牌;然后从第4张开始,以4为基数,是4的倍数的牌翻一次, 直到最后一张牌;.再依次5的倍数的牌翻一次,6的,7的 直到 以52为基数的 翻过,输出:这时正面向上的牌有哪些?二、可行性分析 1.分析:观察题目可以看出本题需要一个子函数,我们将它定义为zhipaiplay(). (1)在开始玩游戏前,我们首先看到题目中显示“52张牌”,这让我首先想到了用数组来表示,定义该数组为painumber,将number定义为全局常量.所有的纸牌都是正面向上,因为纸牌有两面,正面和反面,我们可以用0和1来表示,因此,将painumber的初值定义为0;,number定义为全局常量53; (2
3、)游戏过程中,首先,要从第2张开始翻牌,直到第52张,所以总共进行了51轮翻牌,故此时要用一个循环语句for(i=2;i<number;i+),用此循环语句来表示进行的轮数;其次,第一轮中,要以2为基数,对每张牌有条件的进行翻牌,所以要用到一个双重循环语句for(j=i;j<number;j+);再次,在第二次的循环中我们需要一个判断语句,来判断该牌是否为i的倍数,是i的倍数的翻牌(是正面0的翻为1,是反面1的翻为0),不是i的倍数的不翻牌,直到最后一张牌; (3)玩完游戏之后,对52张牌进行浏览,将正面向上即为0的输出,故此时既需要循环语句,又需要判断语句,循环牌的张数for(k
4、=0;k<number-1;k+),判断是否为正面向上即为0;在子函数外的主程序中,我们需要定义变量i , j , k 并赋予它们初值,并调用子函数输出每一轮的翻牌结果和最后结果。2.如图1-1流程图所示开始i=2 i+if(i<number)ber)for(j=i;j<number;j+) if(j%i=0)否 if(paij=0) paij=1;else paij=0; 真 cout<<"第"<<i-1<<"轮翻牌后的结果为:"<<endl;for(k=0;k<number-1;
5、k+)cout<<paik<<" " 图1-1 纸牌游戏总控模块图cout<<"#"<<endl;cout<<"经过51轮翻牌后正面向上的有:"<<endl;k=0if(k<number) 假 真 真 if (paik=0) 真 真cout<<"第"<<k+1<<"张牌"<<" " 结束三、程序设计#include <iostream> u
6、sing namespace std;const int number=53;/定义为全局常量int painumber=0;/0代表正面朝上,将正面朝上定义为初值void zhipaiplay(int i,int j,int k)for(i=2;i<number;i+)/进行的轮次for(j=i;j<number;j+)/纸牌张数if(j%i=0)if (paij=0)paij=1;else paij=0;/从第二张开始到最后一张是i的倍数的翻牌cout<<"第"<<i-1<<"轮翻牌后的结果为:"<
7、;<endl; for(k=0;k<number-1;k+)cout<<paik<<" " /输出每一轮的52张牌cout<<endl; cout<<"#"<<endl;cout<<"经过51轮翻牌后正面向上的有:"<<endl; for(k=0;k<number-1;k+)if (paik=0)cout<<"第"<<k+1<<"张牌"<<&quo
8、t; "/最终输出正面朝上的有哪些牌int main()int i,j,k;i=j=k=0; zhipaiplay(i,j,k); return 0;四、调试过程及其解决方法 1int number=53出现错误,因为数组pai的下标必须是常量,不能是变量,故将此改为const int number=53;五、运行验证结果通过一个双重环将51轮种每一轮所有指派的情况输出,0代表正面朝上,1代表反面朝上,例如,第一轮以2为基数,是2的倍数的翻牌,经过第一轮后的结果为:0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 ,即为正 反 正 反 正 反 正 反 正 反 正 反 正 反 正 反 正 反 正 反 正 反 正 反 正 反 正 反 正 反 正 反 正 反 正 反 正 反 正 反 正 反 正 反 正 反 正 反 正 反 正 反 正 反 ;以此类推,第2轮以3为基数,是3的倍数的翻牌。游戏经过51轮后,最终输出进过51轮正面朝上即为0的有哪几张牌。六、附录或参考资料1.由机械工业出版社出版,由苏任华等人编著的数据结构课程设计。2.由高等教育出版社出版,由谭浩强、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健康中国战略下的智慧医院设计与建设
- 企业类赠与合同范例
- 付协调费合同范例
- 橙青色扁平风牙齿健康模板
- 书采编合同范例
- 会议宣传合同范例
- 温州市普通高中2025届高三第三次适应性考试英语试题及答案
- 区块链技术在供应链管理中的未来发展预测
- 医技升级新篇章-基于大数据的医疗培训与模拟应用研究
- 会议设备维护合同范例
- DGJ 08-70-2021 建筑物、构筑物拆除技术标准
- 班级管理(第3版)教学课件汇总全套电子教案(完整版)
- 行车验收表公司和安装单位
- 防食物中毒和预防的主题班会
- 社区居民家庭教育指导需求调查问卷
- 防灾减灾知识问答试题
- 《发育生物学》课件第八章 胚轴的特化与体轴的建立
- 《中医护理学》第三章课件
- 哈工大环境工程毕业设计
- 儿科感染性疾病试题
- 板房区临建设施技术标
评论
0/150
提交评论