当前位置:文档之家› 递归经典问题—汉诺塔问题

递归经典问题—汉诺塔问题

哈尔滨工业大学(威海)软件学院
C++程序设计实验报告
姓名
院系
软件学院
学号
任课教师
指导教师
实验地点
实验时间
实验名称
初识对象
同组人

预习报告(对实验主要内容的认识)
得分
实验一:实现所给的类图,并在main函数中进行测试
实验二:递归经典问题—汉诺塔问题
古代有一个梵塔,塔内有1、2、3三个座,1座上有若干个盘子,盘子大小不等,大的在下,小的在上。有一个和尚想把这若干个盘子从1座移到3座,但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上。在移动过程中可以利用2座,要求打印移动的步骤和总的移动次数
程序运行框图
实验二:递归经典问题:汉诺塔问题
实现方法:想到了在C中学到的递归
主函数
要求输入汉诺塔的层数,然后根据n,调用Hanio()函数来进行计算所用步骤。
Void Hanio()函数
函数功能:用递归方法将n个圆盘借助c从a移到b
Void Move()函数
函数功能:打印出每一步的进行过程
程序测试运行:
实验内容(问题,思路,程序,结果)
得分
实验一:
主函数:
主要功能:调用printStudentInfo()函数和modifyStudentInfo()函数
Stude.h
列出了UML中的函数
Student.cpp
包括了各个函数的功能
包括处理学生信息的各个函数
返回各个信息的函数
打印学生信息的函数
修改学生信息的函数
当n=3时,经人工操作可验是需要进行7布
当n= 5时,需要15步
实验结论
得分
实验一结论:学会了如何应用C++中的类,同时也是自己第一个正式C++程序,发现自己还有很多地方有缺陷,还需要多加学习。
实验二结论:经过实验,学会了如何在C++中实现递归函数,同时巩固了如何利用递归函数解决一些实际问题。
教师评价
总分
实际得分
相关主题