1、I 课程设计课程设计 题 目: 汉诺塔演示程序设计 院 (系) : 年级专业: 姓 名: 学 号: 指导教师: II 本科学生课程设计任务书本科学生课程设计任务书 题题 目目 汉诺塔演示程序设计 1、课程设计的目的、课程设计的目的 通过完成一个完整项目,经历策划、设计、开发、测试、验收各阶段,达到: (1)巩固和实践计算机图形学课程中的理论和算法; (2)培养项目策划、架构设计、软件开发和科研设计的能力; (3)培养认真学习、积极探索的工作态度和良好的团队合作精神。 2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)、课程设计的内容和要求(包括原始数据、技术要求、工作要求等) 开发
2、工具:TC 或 Visual C+ 开发人数:1 人 实现内容: 设计开发一个汉诺塔算法演示程序 功能要求: (1)根据需求设计出图形显示界面 (2)根据汉诺塔算法原理实现大小不同的盘子移动的全过程演示。 3、主要参考文献、主要参考文献 1 潘云鹤,董金祥等著计算机图形学原理、方法及应用北京:高等教育出版 社,2003.12 2 孙家广等,计算机图形学(第三版) ,清华大学出版社,2004 3 陈元琰编著计算机图形学实用技术北京:科学出版社,2000 4 和青芳著计算机图形学原理及算法教程北京:清华大学出版社 5 陆润民.C 语言绘图教程.北京:清华大学出版社,1996 6 陈锦昌,赵明秀.C
3、 语言计算机绘图教程.广州:华南理工大学出版社,1998.9 7 杨昂岳.微机实用绘图方法与技巧.长沙:国防科技大学出版社,1995.12 8 刘路放.C 语言的窗口式图形界面设计自带汉字环境的应用软件编程.西安交 通大学出版社,1996 4、课程设计工作进度计划、课程设计工作进度计划 1、设计动员,布置任务,选题(1 天) 2、查阅资料,分析、讨论与设计(1 天) 3、编写程序,进行调试(4 天) 4、完成模块联调,进行测试(2 天) 5、成果验收,完成设计报告(2 天) 指导教师指导教师(签字) 日期日期 年 月 日 教研室意见:教研室意见: 年 月 日 学生学生(签字) : 接受任务时间
4、: 年 月 日 注:注:任务书由指导教师填写。 III 摘 要 汉诺塔(又称河内塔)问题是一个古典的数学问题,是一个用递归方法解题 的典型例子。问题是这样的:开天辟地的神勃拉玛在一个庙里留下了三根金刚石 的棒,第一根上面套着 64 个圆的金片,最大的一个在底下,其余一个比一个小, 依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定 可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上 面。 利用计算机图形学进行汉诺塔演示程序设计,是利用 C 语言绘图函数实现汉 诺塔的递归算法图形界面演示过程。通过 C 语言实现图形学的绘图,程序控制, 以及区域填充,并根据汉诺塔的算法原理实现大小不同的盘子移动的全过程演 示。 关键词 汉诺塔,变换矩阵,种子填充算法,递归调用 IV 目 录 摘摘 要要. III 1 1 需求分析需求分析 1 1.1