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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

猴子选大王课程设计报告.docx

1、猴子选大王 课程设计报告目录一、需求分析 21、问题描述: 22、基本要求: 23、需求分析: 2二、概要设计 3三、详细设计 41、循环队列 42、循环链表 53、伪代码 64、具体函数分析及变量分析 7四、调试分析和测试结果 7五、总结 10六、参考文献 11七、附录 12一、需求分析1、问题描述:一堆猴子都有编号,编号是1,2,3 .m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。2、基本要求:输入数据:输入m,n。 m,n 为整数,nnext = q-next;delete q;3

2、、伪代码讨论了上述问题之后,那么接下来就是要来模拟这个过程了。以伪代码的形式进行这个操作:第一步,进行1-n的报数(在这个过程中如果遇到已经出局的猴子,就跳过)。第二步,对第n只猴子进行删除操作(删除或者标记)。第三步,找到下一只将要报数的猴子。第四步,如果只剩下一只猴子就执行第五步操作,不是就跳到第一步继续执行。第五步,输出所求猴子大王的序号。4、具体函数分析及变量分析:main() 主程序,包括输入输出和主要函数的调用。Link_solve() 用链表解决这个问题的方法,具体实现看附录。Array_solve() 用数组解决这个问题的方法,具体实现看附录。m:总猴子数n:报数循环的nans

3、1:用链表得到的答案ans2:用数组得到的答案其他函数中变量在附录中均有介绍。四、调试分析和测试结果对上述程序进行多次数据测试,其结果分别为:当猴子总数为5,每次数2个的方法:当猴子总数是6,每次数4个的方法:当猴子总数为20,每次数7只方法:当猴子总数为11,每次数3只方法:通过对上述数据手工的模拟及测试,发现结果均符合实际过程。五、总结短短一周的课程设计时间很快就过去了,而我所选的“猴子选大王”设计题目也接近尾声。这期间,有对自己学过的知识的一个回顾,也有新的知识的补充。当有自己不懂时就翻阅资料,寻求解答;当有疑问的时候,有成员之间的讨论,老师的指导。经过磕磕碰碰总算完了任务。这是我们一个

4、星期以来的努力成果,同时是这学期学数据结构的总结,是对自己能力的考验。在课程设计的过程当中,是对平时学习的检测,但在真正设计起程序来,很多困难还是意想不到的,这也告诉我,书上的知识是远远不够的,要想学到更多的知识,需要在实践过程中不断的摸索,在摸索中不断提升自己。一周课程设计的时间是过去了,但是,对数据结构的学习似乎才是开始,以后要学习的还很多很多,前面要走的路还很远很远。而我也要整装待发,在摸索中前进,在前进中不断摸索,让自己的路走得更远更长!六、参考文献1、严蔚敏、吴伟民、米宁 . 数据结构题集(C语言版) . 清华大学出版社2、赵逢禹、罗道昆、路玲、杜光耀 . 数据结构与C语言高级程序设

5、计 . 北京航空航天大学出版社3、严蔚敏、吴伟民 . 数据结构(C语言版) . 清华大学出版社.2010年4、谭浩强 .C语言程序设计(第2版). 清华大学出版社.2008年5、梁旭、谷晓琳、黄明.C语言课程设计(第2版).电子工业出版社.2009年6、XX文库 7、XX文库 七、附录详细代码: #includeusing namespace std;int m,n,ans1,ans2;bool *flag;struct Node int num; /存储所在的序号 struct Node *next; /指向下一个节点;/循环链表处理这个问题int Link_solve() Node* he

6、ad=new Node,*p,*q; /head为 头节点,p,q为临时变量。 head-num=1; int i; p=head; for(i=2;inum=i; p-next=q; p=q; p-next=head; /形成环 q=p=head; /开始报数 int t=1;/统计循环报数的次数 while(tm-1) for(i=2;inext; /找到了出局的猴子,并输出。 cout第 t+ 次选到的猴子是: num 号。next=p-next; /删除掉出局的猴子 delete p; /清除空间 p=q-next; coutnum; /返回最后剩下的那只猴子序号 /循环数组处理这个问

7、题 int Array_solve() int i,p=0; int t=1;/统计循环报数的次数 while(tm-1) for(i=1;in;i+) p=(p+1)%m; /形成循环数数 /当碰到已经出局的,跳过 while(flagp) p=(p+1)%m; flagp=1; cout第 t+ 次选到的猴子是: p+1 号。endl; /当碰到已经出局的,跳过,找到下一只没出局的猴子 while(flagp) p=(p+1)%m; /获取剩下的最后的一只猴子序号 while(flagp) p=(p+1)%n; coutendl; return p+1;int main() coutm; /输入猴子数 coutn; /输入循环报数的方式 flag=new boolm; /标记猴子是否出局,出局的是1,没出局的是0 memset(flag,0,sizeof(bool)*m); /初始化猴子全部未出局 cout链表处理:endl; ans1=Link_solve(); /链表处理得到答案 cout按照 m 个猴子,每次数 n 个的方法,大王的猴子是 ans1 号。endl; cout数组处理:endl; ans2=Array_solve(); /数组处理得到答案 cout按照 m 个猴子,每次数 n 个的方法,大王的猴子是 ans2 号。endl; return 0;

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

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