课 程 设 计 报 告
课程设计名称:C语言课程设计
课程设计题目:汉诺塔问题求解演示
院 (系):计算机学院
专 业:计算机科学与技术
班 级:
学 号:
姓 名:
指导教师:
完成时间:2010年3月18日
1
沈阳航空航天大学课程设计报告
目 录
第1章 需求分析3
1.1 课程设计的题目及要求3
1.2 总体分析3
第2章 系统设计4
2.1 主要函数和函数功能描述4
2.2 功能模块图4
第3章 详细设计5
3.1主函数流程图5
3.2各功能模块具体流程图6
第4章 调试分析10
4.1.调试初期10
4.2.调试中期10
4.3.调试后期10
参考文献11
附 录12
2
沈阳航空航天大学课程设计报告 第1章 需求分析
第1章 需求分析
1.1 课程设计的题目及要求
题目:汉诺塔问题求解演示
内容:
在屏幕上绘出三根针,其中一根针上放着N个从大到小的盘子。要求将这些
盘子从这根针经过一个过渡的针移到另外一根针上,移动的过程中大盘子不能压
在小盘子上面,且一次只能移动一个盘子。要求形象直观地演示盘子移动的方案
和过程。
要求:
1)独立完成系统的设计,编码和调试。
2)系统利用C语言实现。
3)安照课程设计规范书写课程设计报告。
4)熟练掌握基本的调试方法,并将程序调试通过
1.2总体分析
本题目需要使用C语言绘制图形,所以需要turbo C,需要绘图函数,而汉
诺塔的函数属于经典的函数,在书本上都学习过,所以这个题目的难点在于需要
绘制汉诺塔图形。攻克这一点其他的问题都迎刃而解。但是我个人以前也没有学
过一些关于turboC 方面的知识。所以我将重点放在了对#include
下的一系列绘图函数的研究与应用,对屏幕上的图像坐标分析是一个难点。其中
用到了graphics.h头文件中的bar,outtextxy,setfillstyle,closegraph 函数。进行
了画图(利用bar 函数进行画框的操作),填充颜色 (利用setfillstyle 函数填充白
色和黑色,以分辨图形与图形背景),在特定位置输出特定字符等操作 (利用
outtextxy 函数)。
3
沈阳航空航天大学课程设计报告 第2 章 系统设计
第2章 系统设计
2.1 主要函数和函数功能描述
1):递归函数:void hanoi(char x,char y,char z,int n,struct H
num[3]); ,根据递归的方法,实现汉诺塔的运行;
2):用来进行移动的函数:void move(char x,char y,struct H num[3]);
3):初始化函数:void kaishi ()
4):图形关闭:void close()
5):系统主函数:main ()
2.2 功能模块图
汉诺塔演示程序
递归模块 图形模块
Hanoi 函数 Move 函数 kaishi 函数 填色函数 画图函数