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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构课程设计实践报告Word文档下载推荐.docx

1、3.2.2创建翻牌函数 63.2.3输出结果函数 7 3.3主函数 71需求分析1.1课题设计目的纸牌游戏是一种休闲娱乐方式,通过与数据结构课程的联系,设计一段完整的程序,开发一种新的游戏玩法,使学生在掌握数据结构的同时,懂得怎样去开发,去实际应用所学到的知识。1.2课程设计任务:编号为1-52 张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后从第4张开始,以4 为基数,是4的倍数的牌翻一次, 直到最后一张牌;.再依次5的倍数的牌翻一次,6 的,7的直到以52为基数的翻过,输出:这时正面向

2、上的牌有哪些?2概要设计2.1 设计思路编号为1的牌没有进行翻牌,所以仍然是正面向上,当从第二个编号开始的每张牌每次遇到是其倍数时,都会相应的翻一次,比如24,第一次它是2的倍数时要从正面翻到背面,当进行到3时,就又要从背面翻回来,而到4时还要在翻,以此类推,到6.8.12它都要来回的翻。如果它在多次的翻牌后,正面还向上了,那么它就是要输出的结果之一。2.2设计流程2.2.1主要步骤1)定义单链表结点结构2)创建与 52 张牌分别对应的含 52 个结点的链表;3)调用翻牌算法按照其中判断规则创建翻牌函数;4)输出在执行翻牌算法之后的结果,即通过for 循环的嵌套,输出所有正面向上的牌,达到课程

3、设计目的。2.2.2流程图3详细设计3.1定义单链表结点 typedef struct node int data; /牌的编号 int count; /记录翻牌的次数 struct node *next; /指向下一个结点的指针LinkList;/该单链表为LinkList类型3.2 主要函数功能 3.2.1:创建链表函数创建带有头结点的单链表 LinkList *creat (int k)/创建链表函数一开始定义LinkList类型的三个指针变量:LinkList *head,*p,*q;然后定义并初始化记录结点个数的变量i:int i=0;定义完这些变量后,继而首先申请头结点空间:hea

4、d=(LinkList *)malloc(sizeof(LinkList);指针p指向头结点head:p=head;然后利用指针q再申请结点空间:q=(LinkList *)malloc(sizeof(LinkList);将结点链接成链表的具体操作如下:while(idata=i+1; /给每个结点的data赋值count=0; /给每个结点的count赋值 p-next=q; /q链接到p之后 p=q; /将q作为新的p q=q-next; /q指针后移 q=(LinkList *)malloc(sizeof(LinkList);/申请结点空间 i+; next=NULL; /将最后一个结点

5、的next域赋为空 return(head);/返回头结点3.2.2创建翻牌函数:翻牌函数:LinkList *overcard(LinkList *head,int k)说明:形参分别指的是头指针和结点个数。定义一个LinkList类型指针p:LinkList *p因为翻牌时从第二张(也就是2)开始,可以使用for循环:for(int i=2;i /p指向首元素结点while(p!=NULL)if(p-data)%i=0) /若牌的编号能被基数i整除,则使p-count+count+; p=p- /p指针后移return(head);3.2.3:输出结果函数输出正面朝上的牌的函数 void

6、result(LinkList *head)定义一个LinkList类型指针q:LinkList *q;q=head- /q指向首元素结点printf(正面向上的牌编号为:);while(q!if(q-count)%2=0) /若翻页的次数为偶数则正面朝上,输出%4d,q-data);q=q-/q指针后移n3.3主函数:void main() char ch;/定义一个名字为ch变量为char类型int k=52; /共有52张牌nnttt数据结构课程设计n printf(nttt题目:纸牌游戏nnttt专业:计算机科学与技术n printf(nttt班级:计算机3111nnttt姓名:卞玲玲

7、nnttt学号:*n*nLinkList *head,*p;执行此程序(Y),不执行此程序(N)n scanf(%c,&ch);/格式控制符while(1)if(ch=Y)head=creat(k); p=overcard(head,k); result(p);/输出正面向上的牌编号else if(ch=N退出程序!break;scanf(/格式化输入函数 4调试与操作说明进入主界面后,用户可以根据窗口提示得到想要的结果。即输入Y则运行该程序,得到所有正面朝上的牌的编号,输入N则不运行该程序,退出运行窗口。程序开始运行,进入界面,如下图所示。如果用户想要执行程序,选择Y,进入下一界面,如下图所

8、示。如果用户不想要执行程序,选择N,进入界面,如下图所示。总 结纸牌游戏是传统的中国智力游戏,它所要求的程序需要按一个完整的步骤去进行。当然首先必须弄懂要开发的是什么样的纸牌游戏,它的目的是什么,在弄懂之后要构思用什么样的方法去解决问题,我通过在网上查找资料,并且问同学和老师我一些不懂的问题。然后画出程序的流程图,并依照图来设计出解决问题的各种算法随后编程序。最后将写好的程序进行调试和运行,直到满足题目的要求为止。在这次课程设计中,我遇到了一系列的问题,能明显感觉到自己学习的知识还远远不够。但是,为了完成这次程序设计并能很好的展示,我不断加深对数据结构要注意事项的理解,学习和掌握此门功课,掌握

9、了面向对象程序设计方法。在这个过程中也会在为了解决问题的时候发现新的问题,这样激发了自己主动学习的斗志,从而更好的理解所学到的知识点,用对地方。通过这次课程设计的综合训练,不仅让我体会到了学习数据结构的重要性,而且培养了我们实际分析问题和动手编程的能力,从而更深层次的掌握了该门课程的主要内容。感谢学校和老师给予我们这次机会,学无止境,我会继续努力,在学习的这条路上不断攀登,更多的去学会如何运用所学的知识,相信我会做的更好!致 谢 非常感谢学校为我们计算机专业的学生提供了为期两周的课程设计,让我们认识到计算机独有的魅力,也很感谢寇海州老师和龚乐君老师对我的细心指导,以及同学们对我的帮助和支持。参

10、考文献1严蔚敏,吴伟民. 数据结构(C语言版),清华大学出版社,20072王昆仑. 数据结构与算法M .北京:中国铁道出版社,20073刘振鹏 张晓莉 郝杰. 数据结构.北京:中国铁道出版社.20054谭浩强. C语言程序设计题解与上机指导(第三版)M .北京:清华大学出版社5潘新民,王燕芳. 微型计算机控制技术M, 第2版. 北京: 电子工业出版社, 2003.4:305-350附 录源程序代码:#include/定义输入/输出函数malloc.h/动态内存分配typedef struct node/定义单链表结点结构LinkList *creat(int k) /创建链表函数 LinkLi

11、st *head,*p,*q;/定义LinkList类型的三个指针变量 int i=0;/定义并初始化记录结点个数的变量 head=(LinkList *)malloc(sizeof(LinkList);/申请头结点空间 p=head; /指针p指向头结点 /申请结点空间 while(i return(head);LinkList *overcard(LinkList *head,int k) /翻牌函数 LinkList *p;/定义一个LinkList类型指针p for(int i=2; p=head- while(p! if(p-void result(LinkList *head) /输出结果函数 LinkList *q;/定义一个LinkList类型指针q q=head- while(q! if(q-count)%2=0) /若翻过的次数为偶数则正面朝上,输出/定义int类型 int k=52; LinkList *head,*p; while(1) if(ch= head=creat(k); else if(ch= printf( break; scanf(

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

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