ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:95.62KB ,
资源ID:24268466      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24268466.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课程设计纸牌游戏.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、数据结构课程设计纸牌游戏数据结构课程设计报告题目:纸牌游戏采用的方法: 在程序中定义一个宏,用宏来表示翻牌操作。用一个for循环来控制基数,用另一个for循环来控制从第几张牌开始,然后判断第K张牌除以基数j后的余数是否为0,如为0就是能整除,最后翻牌。班 级: 计算机091班 * * * 指导教师: 董跃华、井福荣 成 绩:_ 信息工程学院 2011年 6 月 20日题目(摘要)问题描述:编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后从第4张开始,以4为基数,是4的倍数的牌

2、翻一次, 直到最后一张牌;.再依次5的倍数的牌翻一次,6的,7的,直到以52为基数的牌翻过,输出:这时正面向上的牌有哪些?1.引言: 通过本门课程的学习,我们应该能透彻地理解各种数据对象的特点,学会数据的组织方法和实现方法,并进一步培养良好的程序设计能力和解决实际问题的能力,而且该课程的研究方法对我们学生在学校和离校后的工作和学习,也有重要意义。数据结构是电子信息科学与技术专业的一门核心专业基础课程,在该专业的课程体系中起着承上启下的作用,学好了数据结构对于提高理论认知水平和实践能力有着极为重要的作用。学习数据结构的最终目的是为了获得求解问题问能力。对于现实世界中的问题,应该能从中抽象出一个适

3、当的数学模型,该数学模型在计算机内部的数据结构来表示,然后设计一个解此数学模型的算法,在进行编程调试,最后活的问题的解答。基于此原因,现在我们开设数据结构课程设计。针对数据结构课程的特点,着眼于培养我们的实践能力。2.需求分析: 可以定义一个宏,如果第k张牌除以基数j后的余数是否为0,如为0就是能整除,然后就利用定义的宏进行翻牌操作。设一个一维数组card52,并将所有变量赋初值为0,表示牌正面朝上。首先将52张牌初始化成正面朝上,然后用一个for循环来控制基数,用另一个for循环来控制从第几张牌开始。最后打印判断出来的正面朝上的牌。3.概要设计:1.当每个号码每次遇到是某个数的倍数时,都会相

4、应的翻一次,这样,每张牌会翻的次数就各不一样,可能很多次,也可能只有一两次,结果就只是要输出在经过各个不同次数的翻牌后,正面向上的牌都有哪几个。举例说明一下,比如24,第一次它是2的倍数时要从正面翻到背面,当进行到3时,就又要从背面翻回来,而到4时还要在翻,同理呢,到6.8.12它都要来回的翻。如果它在多次的翻牌后,正面还向上了,那么它就是要输出的结果之一。2用#define OPPOSITE(i) i = i?0:1这个宏将牌的状态标志求反,也即为翻牌操作。将所有的牌建立一个数组,运用for的循环嵌套执行以下操作:把52张牌初始化成正面朝上、控制基数和翻牌次数,判断最终的纸牌朝向并打印出结果

5、,具体实现算法参看详细设计。4.详细设计: N Y N Y N Y图2 - 15.测试结果:图2 - 26.调试分析:(1).这题的时间复杂度是O(52)。(2).语法错误相对来说要好调试一些的,但有两点需要特别指出:一是应该用规范化的格式输入源程序,推荐的格式是:函数体内、循环体内等都应该缩进一个TAB位,相应的块语句的两个大括号都应保持在同一列上,函数体之间、模块之间都应用空行隔开,这就解决了各种匹配的问题,更重要的是它极大的增强的程序的可读性。二是应该注意函数的实参与形参的传递问题,要尽量保持两者类型的匹配,(当不匹配又可通过编译时会发生数据类型的隐式转换,这样会产生很多不安全且又很难找

6、到的错误)当不需要改变形参时,只需传入变量,如果你想在函数体内改变函数的外部变量,则传入指针。(3).虽然本次程序的题目难度与其他问题相比不是很高,但仍有很多问题我们是很容易忽视的,其一:在理解题目的要求时,注意翻牌的次数可能有多次;其二:for循环的嵌套使用在书写时很容易漏掉大括弧。7.设计体会:做一个课程设计要注意很多方面,无论是格式,还是书写的内容和要表达的思想都得严格要求自己,所以做起来真的不算容易。本次课程设计涉及了很多知识,由于往日没有学得很扎实,对某些问题仍然比较疑惑,所以要进行充足的补习。期间,我翻阅了很多书籍,知识总是联系很紧密的,解决完这个问题又发现了新的问题,之后,为了解

7、决新问题又发现了更多的问题,就这样,我得等到一个一个把问题处理完。8.结束语:问题越多,明白的也就会越来越多,做一次课程设计就像从头到尾做了一次系统的复习,从基础到难点,从轮廓到每个知识点,数据结构的研究内容在我的脑海里就再也不像以前那么模糊了。设计程序来解决现在存在的问题,把理论知识付诸于实践,对于我们这些计算机专业的本科生来说,实际能力的培养至关重要,而这种实际能力的培养单靠课堂教学是远远不够的,必须从课堂走向实践,这也是我们学习的目的。做完设计,我已深刻体会到了学习这门课程的重要性与必要性了,同时,它留给我很多思考:学习是思考一个的过程,我们应该主动去想学习一门知识后怎么去运用,而不是一

8、味地被动地接受。数据结构及其算法在解决现实生活中的常见问题和书写软件设计方面上都有着重要的意义,我们应该好好掌握它的相关知识,在以后的学习过程中,更多的去学会如何运用知识。在此,我衷心感谢董跃华老师的指导!参考文献:1、 姜学军数据结构(C语言版).中国轻工出版社2、 严蔚敏数据结构(C语言版).清华大学出版社3、 徐孝凯数据结构实用教程(C/C+描述).清华大学出版社4、 陈慧南数据结构(使用C+语言描述).东南大学出版社附录:源程序:#include #define OPPOSITE(i) i = i?0:1int main() int card52,i; for(;) printf(n*

9、纸牌游戏功能菜单表*n); printf(* 1:按照游戏规则翻牌,并输出翻牌结果 *n); printf(* 2:退出 *n); printf(*纸牌游戏功能菜单表*n); printf(n请按1,2完成操作:); scanf(%d,&i);switch(i)case 1: for (int i = 0; i 52; i+) cardi = 0; /将52张牌初始化成正面朝上 for (int j=2; j=52; j+) /此层循环是控制基数的 for (int k = j; k = 52 ; k+)/此层循环是控制从第几张牌开始 if (k%j = 0)/判断第k张牌除以基数j后的余数是否为0,如为0就是能整除 OPPOSITE(cardk-1); printf(*n); printf(正面朝上的牌有:); for (int h = 0; h 52; h+)/开始打印 if (cardh = 0)/判断牌的状态是否为正面朝上 printf( %d, h+1); printf(n*n);break;case 2: printf(已退出!n);return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1