纸牌游戏课程设计_第1页
纸牌游戏课程设计_第2页
纸牌游戏课程设计_第3页
纸牌游戏课程设计_第4页
纸牌游戏课程设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课 程 设 计 报 告课程名称 数据结构 课题名称 纸牌游戏 专 业 通信工程 班 级 1201 学 号 201203040133 姓 名 任扩望 指导教师 张鏖烽 2014年 6 月 22 日湖南工程学院课 程 设 计 任 务 书课程名称 数据结构 课题名称 纸牌游戏 专业班级 通信工程1201 学生姓名 任扩望 学 号 201203040133 指导老师 张鏖烽 审 批 任务书下达日期 2014 年 6 月 16 日任 务 完成日期 2014 年 6 月 22 日目 录一、需求分析3二、概要设计3三、详细设计3四、调试分析7五、用户使用说明7六、测试结果7七、总结8八、附录8课题名称 纸牌

2、游戏1. 需求分析1.1 运行程序后,便会显示出正面朝上的牌的编号。所以需要程序能够储存1.2 显示出这52张牌中翻动次数最多与最少的牌,以及翻动的次数和是正面向上还是反面向上,需要程序能够自动计数自行比较并且输出的功能。2概要设计2.1 编号为1-52张纸牌,则需要创建一个线性表,运用malloc函数申请内存空间,存储纸牌编号信息。2.2 设计翻牌程序,存储最后正面向上的牌的编号,和翻动次数最多的牌号,和翻动次数最少的牌号,以及他们翻动的次数,和他们是正面向上还是反面向上。2.3 编写主函数,输出全部纸牌编号与程序的运行结果,让用户能够看到直观的求解结果。3. 详细设计3.1创建线性表存储所

3、有的纸牌编号typedef struct/定义线形表int data52;list;void build(list* &l)/建立线形表int i;l=(list*)malloc(sizeof(list);for(i=0;idatai=0;3.2 建立fanpai() 函数void fanpai(list* &l)int j,i;for(j=2;j=52;j+)for(i=1;i=52;i+)if(i*jdatai*j-1=1)l-datai*j-1=0;ki*j-1+;continue;if(i*jdatai*j-1=0)l-datai*j-1=1;ki*j-1+;continue;prin

4、tf(正面朝上的牌有:);for(j=0;jdataj=0)printf( %d ,j+1);3.3 建立zuiduo()函数void zuiduo(list* &l)int b=k0,j;for(j=0;j51;j+)if(bkj+1)b=kj+1;printf(n翻牌次数最多的是:n);for(j=0;jdataj=0)printf(%d,次数为%d.正面n,j+1,b);elseprintf(%d,次数为%d.反面n,j+1,b);3.4 建立zuishao()函数void zuishao(list* &l) int b=k1,j;for(j=1;jkj+1)b=kj+1;printf(

5、翻牌次数最少的是:n);for(j=0;jdataj=0)printf(%d,次数为%d.正面n,j+1,b);elseprintf(%d,次数为%d.反面n,j+1,b);3.5 定义main()主函数int main()list* a;build(a);int j=0;void change(list* &l); /翻牌void more(list* &l); /翻动次数最多void less(list* &l); /翻动次数最少change(a);printf(n);more(a);printf(n);less(a);printf(n);return 0; 4.调试分析刚开始使用链表来存

6、储数据,但是发现函数太过复杂而且有不可调节的错误。后经测试发现使用线性表能够更好的存储和调用数据。而且线性表更容易理解,而在使用过程中,数组的使用会导致结果的不同,如在子程序zuishao函数中,语句int b=k1,j;for(j=1;jkj+1)b=kj+1;修改数组的下标,能够得到不同的数据5. 用户使用说明5.1此程序可以在环境为 C + + Buildor6 或者 Microsoft VisualC + + 6 . 0 及其以上版本的地方直接运行。5.2查看程序结果可直接运行源程序或者运行可执行文件,可直接得到运行结果。6. 测试结果6.1运行源程序后直接得出的结果 6.2 测试结果

7、分析:结果完全符合要求,编译中无错误无警告7总结感觉这是一次极好的旅程,从开始的设计思路与程序的完成都十分顺利。感谢老师提前把题目发出,让我们有了思考的空间和充足的时间来修改程序。不得不说,每次的课程设计对自己来说都是巨大的挑战,对自己是否掌握了所学内容做出了检验。数据结构这门课程相对于其他语言类课程来说,是我掌握的最多的一门了,然而当进行设计中需要c,c+这些语言的时候我却感觉到了吃力,果然基础还是太过薄弱,所以这也激起了我要重新学习这些语言的念头,其实,应该是必须要重新复习,加深了解这些课程了。总体来说,这次课设是完美的完成了,而且在这次课设中我的感悟也颇多,希望自己能够在这些体验与感悟中

8、汲取经验,用实验中收获的教训来鞭策自己,让自己在学习中能够走得更踏实,更远。8. 附录纸牌游戏源代码#include#includetypedef structint data52;list;void build(list* &l)int i;l=(list*)malloc(sizeof(list);for(i=0;idatai=0;int k52=0;void fanpai(list* &l)int j,i;for(j=2;j=52;j+)for(i=1;i=52;i+)if(i*jdatai*j-1=1)l-datai*j-1=0;ki*j-1+;continue;if(i*jdatai*

9、j-1=0)l-datai*j-1=1;ki*j-1+;continue;printf(正面朝上的牌有:);for(j=0;jdataj=0)printf( %d ,j+1);void zuiduo(list* &l)int b=k0,j;for(j=0;j51;j+)if(bkj+1)b=kj+1;printf(n翻牌次数最多的是:n);for(j=0;jdataj=0)printf(%d,次数为%d.正面n,j+1,b);elseprintf(%d,次数为%d.反面n,j+1,b);void zuishao(list* &l) int b=k1,j;for(j=1;jkj+1)b=kj+1;printf(翻牌次数最少的是:n);for(j=0;jdataj=0)printf(%d,次数为%d.正面n,j+1,b);elseprintf(%d,次数为%d.反面n,j+1,b);int main()list* a;build(a);int j=0;void fanpai(list* &l); void zuiduo(list* &l); void zuishao(list* &l); fanp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论