- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
桂林航天工业高等专科学校
课程设计
题目:纸牌游戏
系别:计算机系
专业:计算机应用技术
姓名:郭家兴
学号:200902120128
指导老师:杨华
2010-12-28
目录
课程设计目的~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第3页
课程设计目标~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第3页
需求分析~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第3页
程序实现思想~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第3页
设计说明~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第4页
源代码~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第6页
运行后的菜单展示~~~~~~~~~~~~~~~~~~~~~~~~~~~~第7页
调试分析~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第7页
课设总结~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~第8页
一.课程设计目的:
熟练掌握数据结构这门课程,掌握经性表、栈、队列、串、数组、广义表、树和二叉树以及图等基本类型的数据结构及其应用。
进一步熟悉抽象数据类型的定义和实现、如何利用数组的动态分酚实现顺序结构、继承的实现方式。
学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、想念结构及基相应的算法并初步掌握算法的时间分析和空间分析的技术。
基本掌握程序设计的基本思路和方法。
利用所学的基本知识和技能,解决简单的程序设计问题各算法描述
培养我们的数据抽象能力。
二.设计目标:
题目:纸牌游戏
任务:编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;...再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过,输出:这时正面向上的牌有哪些?
三.需求分析:
用函数node()按照题目要求的规则,用几个循环体来实现.
四.程序实现思想:
首先必须确定实现这个课程设计的主算法是使用链式存储结构还是栈又或是数组和广义表。
根据题目要求需要实现的功能有:
1、数据录入:输入各种数据;
此处即创建链表的过程,调用一个成员函数负值。在此处还有一个方法实现,即先输入数据,然后再调用构造实现。
2、数据统计:
存储方式的选择,是使用链式存储结构还是栈又或是数组和广义表;遵守先定义后调用的原则;数组定义时注意下标的起始值和上限;链表定义时注意结点中的项;准确运用结点。
3、数据输出:按要求的格式打印
调用do循环和for循环,通过遍历链表实现输出,用cout函数出。
查找,修改,删除:
这三个功能的核心是寻找成员,先遍历链表,然后寻找对应的ID号来找到结点,然后再对结点实行删除,修改操作。
五.设计说明:
题目2:纸牌游戏
一、概要设计
1.当每个号码每次遇到是某个数的倍数时,都会相应的翻一次,这样,每张牌会翻的次数就各不一样,可能很多次,也可能只有一两次,结果就只是要输出在经过各个不同次数的翻牌后,正面向上的牌都有哪几个。举例说明一下,比如24,第一次它是2的倍数时要从正面翻到背面,当进行到3时,就又要从背面翻回来,而到4时还要在翻,同理呢,到6.8.12…它都要来回的翻。如果它在多次的翻牌后,正面还向上了,那么它就是要输出的结果之一。
2.用#defineOPPOSITE(i)i=i?0:1这个宏将牌的状态标志求反,也即为翻牌操作。
将所有的牌建立一个数组,运用for的循环嵌套执行以下操作:把52张牌初始化成正面朝上、控制基数和翻牌次数,判断最终的纸牌朝向并打印出结果,具体实现算法参看详细设设一个一维数组card[52],并将所有变量赋初值为0,表示牌正面朝上2=j
设一个一维数组card[52],并将所有变量赋初值为0,表示牌正面朝上
2=j
j≤52
j=k
k≤52
k%j=0
翻牌,如果card[k-1]为0,则变为1;如果为1,则变为0
k++
输出card数组中正面朝上的牌的序号
结束
j++
3.根据算法思想,画流程图如下:
六.源代码:
#includestdio.h
#defineOBVERSE0//正面朝上
#defineADVERSE1//背面朝上
#defineOPPOSITE(i)i=i?0:1//这个宏是将牌
文档评论(0)