- 18
- 0
- 约1.25万字
- 约 21页
- 2018-04-12 发布于江西
- 举报
C语言课程设计----汉诺塔问题
沈阳航空航天大学
课 程 设 计 报 告
课程设计名称:C语言课程设计
课程设计题目:汉诺塔问题
目 录
第1章 概述 1
第2章 设计目的 2
第3章 问题分析 4
第4章 逻辑设计 5
第5章 流程图 4
第6章 程序代码 4
第7章 程序调试与测试 4
第8章 结果分析 4
参考文献 6
附 录(程序) 7
第1章 概述
数据结构是计算机学科非常重要的一门专业基础理论课程,要想编写针对非数值计算问题的高质量程序,就必须要熟练的掌握这门课程设计的知识。另外,他与计算机其他课程都有密切联系,具有独特的承上启下的重要位置。拥有《数据结构》这门课程的知识准备,对于学习计算机专业的其他课程,如操作系统、数据库管理系统、软件工程的都是有益的。
第2章 设计目的
《数据结构课程设计》课程设计是在教学实践基础上进行的一次大型实验,也是对该课程所学理论知识的深化与提高。因此,要求学生能综合应用所学的知识,设计与制作出具有较复杂的应用系统,并且在实验的基本技能方面进行一次全面的训练。
1.使学生能够较全面地巩固和应用课堂所学的基本理论和程序设计方法,能够较熟练的完成数据结构程序的设计与调试。
2.培养学生综合运用所学知识独立完成数据结构程序员课题的能力。
3.培养学生用于探索、严谨推理、实事求是、有错必改,用时间来检验理论,全方位考虑问题等科学技术人员应具有的素质。
4.提高学生对工作认真负责额、一丝不苟,对同学团结友爱,协作攻关的基本素质。
5.培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。
6.对学生掌握知识的深度。运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。
第3章 问题分析
任务:有三个柱子A, B, C. A柱子上叠放有n个盘子,每个盘子都比它下面的盘子要小一点,
可以从上到下用1, 2, ..., n编号。要求借助柱子B,把柱子A上的所有的盘子移动到柱子C上。
移动条件为:1、一次只能移一个盘子;
2、移动过程中大盘子不能放在小盘子上,只能小盘子放在大盘子上。首先容易证明,当盘子的个数为n时,移动的次数应等于2^n - 1。
首先把三根柱子按顺序排成品字型,把所有的圆盘按从大到小的顺序放在柱子A上。
根据圆盘的数量确定柱子的排放顺序:若n为偶数,按顺时针方向依次摆放 A B C;
若n为奇数,按顺时针方向依次摆放 A C B。
(1)按顺时针方向把圆盘1从现在的柱子移动到下一根柱子,即当n为偶数时,若圆盘1在柱子A,则把它移动到B;
若圆盘1在柱子B,则把它移动到C;若圆盘1在柱子C,则把它移动到A。
(2)接着,把另外两根柱子上可以移动的圆盘移动到新的柱子上。
即把非空柱子上的圆盘移动到空柱子上,当两根柱子都非空时,移动较小的圆盘
这一步没有明确规定移动哪个圆盘,你可能以为会有多种可能性,其实不然,可实施的行动是唯一的。
(3)反复进行(1)(2)操作,最后就能按规定完成汉诺塔的移动。
这是个递归问题。主函数很简单,不说了,关键是那个递归函数:这里有四个参数,第一个表示移动的盘子个数,这里可以通过键盘来输入。(全部移动64个盘子需要的时间很长,千万不要输入太大的数。)
x,y,z表示三根柱子。
注意参数中X,Y,Z的顺序,x表示原来的柱子,y表示在移动过程中中间过度的柱子,而z标志最后放置的柱子。下面的调用和这个次序有很大关系。
movedishes(int n,int x,int y,int z)
{
if(n==1)
这个最简单,如果只有一个盘子(n=1),那么只要从x柱子直接移动到z柱子就可以了。不需要中间以哦的那个其他的盘子。
如果要移动的盘子不止一个,那么就要采取一定的策略。这个策略就是先把上面的n-1个盘子移动到中间的柱子,也就是y,然后把最地下一个盘子移动到z柱子,然后再把中间柱子y上的盘子通过哦a柱子移动到z柱子上。
else
{
//把上面的n-1个盘子通过z柱子移动到y柱子上,这样才能把最后一个盘子移动到z柱子上。
//输出这次移动
//然后再把刚才移动出来放在y柱子上的n-1个盘子移动到z柱子上。
}
流程图
第6章 程序代码
#includestdio.h
int i=0; /*记录每一步为第几步*/
void movedishes(int n,int x,int y,int z)
{
if(n==1)
{
printf( %d. %c→%c ,i+1,x,z);/*输出步骤*/
i++;
if(i%7==
您可能关注的文档
- 2017版 毛概课件 第6章 社会主义本质和建设中国特色社会主义总任务.ppt
- 2017最新科技公司智慧农业解决方案.ppt
- 2017最新消防知识培训课件.ppt
- 2017精品文档行政机关公文写作与范例大全.ppt
- 2017版煤矿安全生产标准化通解_图文.ppt
- 2017联通营业厅开业庆典活动策划方案.pptx
- 2017银行保险理财沙龙客户答谢会课件鸿盈版.ppt
- 2017重症哮喘诊断与处理专家共识-.pptx
- 2017高血压健康教育讲座课件.ppt
- 2017鸡年年货节方案_图文.ppt
- 基于超低排放的高湿环境下拒水滤料抗糊袋性能研究.docx
- 血清FGF-23及ZAG水平与慢性阻塞性肺疾病急性加重合并营养不良的相关性及预测价值.docx
- 2025年中考数学一轮复习_'分工'专题深度解析与实战演练(广东地区).docx
- S农林科学院预算绩效管理问题研究.docx
- 平面向量深度解析_概念要点与坐标运算全攻略.docx
- 心理学文本英汉翻译中隐性信息的翻译——《女性的认知之道_自我、声音与心灵的发展》(第2、9章)的翻译实践报告.docx
- 青稞萌动茶和青稞熟化米的开发.docx
- 揭秘方差分析的奥秘_深度探索F检验原理,洞悉数据差异,解锁数据内在关系的神秘面纱——从基础到实践的全面解析.docx
- 探索五年级数学课堂_异分母分数加减法的独特教学策略与实际应用.docx
- 功能对等理论指导下法律科普类文本《法官的语言,判决的关键》(节选)翻译实践报告.docx
最近下载
- 地下车位租赁协议书通用版.docx VIP
- nsr621rf-d电容器保护测控装置技术使用说明书.pdf VIP
- 19G518-3_门式刚架轻型房屋_钢结构_有吊车_.docx VIP
- 2025公安大学警务硕士真题及答案.docx VIP
- 火电厂烟气脱硫工程调整试运及质量验收评定规程.PDF VIP
- 帝人芳纶应用介绍.doc VIP
- 《黄酒酿造工艺》课件.ppt VIP
- 深度解析(2026)《JBT 8521.2-2025编织吊索 安全性 第2部分:一般用途合成纤维圆形吊装带》:构筑新时代工业安全的核心支柱与前瞻指南.pptx VIP
- 2026房东直租房屋租赁合同.docx VIP
- V03英国深海控制器DSE5220模块操作說明書.pdf
原创力文档

文档评论(0)