- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
猴子吃桃课程设计
课 程 设 计
课程设计名称: 猴子吃桃问题
专 业 班 级 :
学 生 姓 名 :
学 号 :
指 导 教 师 :
课程设计时间:
计算机专业课程设计任务书
学生姓名专业班级学号题 目猴子吃桃问题课题性质其它课题来源自拟课题指导教师同组姓名主要内容
有一群猴子摘了一堆桃子,他们每天吃当前桃子的一半且多一个,到了第10
天就只余下1个桃子,用多种方法求出原来这群猴子共摘了多少个桃子。使用
链表数据结构实现猴子吃桃问题的求解;使用递归实现猴子吃桃问题的求解。
任务要求
1.研究应用递归算法
2.应用数据结构基础知识进行实际问题求解与分析;
3.编程实现算法
4.具有良好的界面,操作方便灵活、简洁高效。
5.按要求撰写课程设计报告和设计总结。
参考文献1.《C程序设计(第二版)》,谭浩强,北京,清华大学出版社,1999.
2.《Visual C++实用教程(第一版)》,张荣梅、梁晓林,冶金工业出版社,2004.
3.《C++实用教程(第一版)》,杨明军、董亚卓、汪黎,人民邮电出版社,2002.
4.《〈数据结构(C语言版)》,严蔚敏,吴伟民,清华大学出版社,1997。
审查意见指导教师签字:
教研室主任签字: 年 月 日 说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页
1 需求分析
int sum_fan(int n,int i) 子函数sum_fun,参数n和i接受主函数的参数 x和day
n = sum_fan((n+1)*2,--i); 每一次都用((n+1)*2)的值去调用子函数本身
sum = sum_fan(x,day); 调用子函数sum_fan,并把返回得结果赋给sum
“前期工作”:构想源代码中各个步骤,为编写源程序准备。
构思函数整体框架;
1.首先定义好main函数;
2.调用函数类型;
3.编写源程序;
“后期工作”:敲定程序后,检查程序是否健全。
1.上机输入源程序;
2.对源程序进行编译;
3.对源程序进行调试;
4.对源程序进行运行;
2 概要设计
首先,设第一天摘了x个桃子。
然后,列出算术表达式:((((x/2-1)/2-1)/2-1)/2-1...)=1,一共有9个除以2减一。
接着, 从第九天分析,第9天的桃子是(1+1)*2,第8天是((1+1)*2+1)*2,...一直到第一天。
我尝试着用递归来思考。可以发现每一天的桃子得数量都是用前一天桃子的数量加上1之后再乘以2。于是可以把式子换成(n+1)*2 ,然后可以把具体问题留给在子函数处理,用(n+1)*2的结果再去调用子函数本身。这样就可以实现递归的嵌套了,最后再用主函数去调用子函数。
3 运行环境(软、硬件环境)
Window NT/2003/XP
4 开发工具和编程语言
开发工具:VC++
编程语言:c/c++
5 详细设计
#includestdio.h
#includestdlib.h
#define NULL 0
typedef struct linknode
{
??????? int data;
??????? struct?? linknode *next;//链表指针
}node;
node *head; //头结点
int day;
void main()
{
int n;
pp:
do
{
printf(\t ************************************************\n);
printf(\t *********猴子吃桃问题的实现方法***************\n);
printf(\t ************************************************\n);
printf(\t???????????? 1 数组实现???\n);
printf(\t???????????? 2 递归实现???\n);
printf(\t???????????? 3 链表实现???\n);
printf(\t???????????? 4 退出程序???\n);
printf(\t ************************************************\n);
prin
文档评论(0)