Hannoi塔(汉诺塔)--Java课程设计报告

合集下载

hannoi塔java课程设计

hannoi塔java课程设计

hannoi塔java课程设计一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。

知识目标要求学生掌握Hannoi塔问题的算法原理及其Java实现;技能目标要求学生能够运用Java编程解决简单的算法问题;情感态度价值观目标培养学生的逻辑思维能力、问题解决能力和团队合作精神。

通过本课程的学习,学生将了解Hannoi塔问题的背景及其算法实现,能够运用Java编程解决相关问题。

同时,培养学生独立思考、创新解决问题的能力,提高他们对计算机科学的兴趣和热情。

二、教学内容教学内容主要包括Hannoi塔问题的算法原理、Java编程基础及其在解决Hannoi塔问题中的应用。

1.Hannoi塔问题的算法原理:介绍Hannoi塔问题的定义、解决方法及其数学原理。

2.Java编程基础:讲解Java编程的基本语法、数据结构、控制语句和函数。

3.Hannoi塔问题的Java实现:引导学生运用Java编程实现Hannoi塔问题的解决方案,并进行调试和优化。

三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法,以激发学生的学习兴趣和主动性。

1.讲授法:教师讲解Hannoi塔问题的算法原理、Java编程基础及相关知识。

2.讨论法:学生分组讨论Hannoi塔问题的解决方案,培养团队合作精神和独立思考能力。

3.案例分析法:分析典型的Hannoi塔问题案例,引导学生运用Java编程解决问题。

4.实验法:学生动手实践,编写Java程序实现Hannoi塔问题的解决方案。

四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备。

1.教材:选用权威、实用的Java编程教材,为学生提供系统的学习资料。

2.参考书:提供相关的算法书籍,帮助学生深入了解Hannoi塔问题的算法原理。

3.多媒体资料:制作课件、教学视频等,丰富教学手段,提高学生的学习兴趣。

4.实验设备:提供计算机、网络等实验设备,保障学生实践教学活动的顺利进行。

汉诺塔游戏课程设计

汉诺塔游戏课程设计

汉诺塔游戏课程设计一、课程目标知识目标:1. 学生能理解汉诺塔游戏的起源、规则及数学原理。

2. 学生能掌握递归算法的基本概念及其在汉诺塔游戏中的应用。

3. 学生能运用数学归纳法推导汉诺塔游戏的步数与盘子数之间的关系。

技能目标:1. 学生能够运用所学知识,独立设计并解决汉诺塔游戏的不同层次问题。

2. 学生能够通过小组合作,提高问题解决能力和团队协作能力。

3. 学生能够运用信息技术工具,进行汉诺塔游戏模拟和数据分析。

情感态度价值观目标:1. 学生对数学产生兴趣,认识到数学与游戏的紧密联系,提高学习数学的积极性。

2. 学生在游戏中培养逻辑思维能力和创新精神,增强自信心和自主探究意识。

3. 学生通过合作与交流,培养团队精神,学会尊重他人,形成积极向上的人生态度。

课程性质:本课程以汉诺塔游戏为载体,结合数学知识和算法,培养学生的逻辑思维能力、问题解决能力和团队协作能力。

学生特点:五年级学生具有一定的数学基础和逻辑思维能力,对游戏具有浓厚兴趣,但可能对递归算法等抽象概念理解有限。

教学要求:结合学生特点,教师需采用生动有趣的教学方法,引导学生主动探究,注重培养学生的实践操作能力和团队协作精神。

通过本课程的学习,使学生将所学知识应用于实际情境,提高学生的综合素养。

二、教学内容1. 汉诺塔游戏背景介绍:包括汉诺塔的起源、发展及其在数学游戏中的地位。

相关教材章节:数学游戏与趣味数学2. 汉诺塔游戏规则及数学原理:讲解汉诺塔的游戏规则,引导学生发现汉诺塔移动盘子过程中的数学原理。

相关教材章节:组合数学基本概念3. 递归算法及其在汉诺塔游戏中的应用:介绍递归算法的概念,通过实例演示递归算法在汉诺塔游戏中的运用。

相关教材章节:算法与程序设计4. 汉诺塔游戏步数与盘子数之间的关系:运用数学归纳法,推导汉诺塔游戏中盘子数与步数之间的关系。

相关教材章节:数学归纳法5. 汉诺塔游戏实践操作:组织学生进行汉诺塔游戏实践,培养学生动手操作能力和问题解决能力。

汉诺塔课程设计报告

汉诺塔课程设计报告

汉诺塔游戏学院:理学院班级:信科102班组长:李万东组员1:袁雪娇组员2:张瑜设计期限2012 年3月1开始至2012年6月20 结束课程设计题目:汉诺塔游戏课程设计目的:《JA V A程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。

实践教学环节是必不可少的一个重要环节。

本课程的程序设计专题实际是计算机相关专业学生学习完《JA V A程序设计》课程后,进行的一次全面的综合训练,JA V A程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

随着社会的进步,我们用来娱乐的游戏世界也越来越丰富,越来越复杂。

本程序的汉诺塔游戏不但包括了游戏最基本的功能,而且还能培养用户的逻辑思维能力,同时也给玩家提供了一定的娱乐空间。

本游戏还包括一个自动演示搬移汉诺塔的功能,此功能能够帮助初次接触此游戏的用户了解此游戏的玩法。

课程设计理论:本程序要求实现用图形界面,画出3个杆和若干个大小不一的矩形盘子,形成3个塔,分别为A塔,B塔,C塔,同时盘子数目可以人工设定。

用户可以用鼠标选中盘子,然后通过拖动鼠标来移动该盘子、释放鼠标来放置该盘子。

用户在移动盘子的过程中,可以随时单击汉诺塔菜单栏的菜单中提供的按钮,重新开始游戏,并且可以通过单击汉诺塔菜单栏的菜单提供的按钮,让程序自动完成把A塔上的盘子全部移动到C塔上,实现自动演示。

汉诺塔算法属于递归算法,该算法过程为:假定要把n个盘子按题目规定由A杆借助B杆移动到C杆。

第一步:先把上面的n-1个盘子借助C杆放到B杆。

第二步:把第n个盘子从A杆直接移到C杆。

第三步:把B杆上的n-1个盘子借助A杆移到B杆。

概要设计:1.课程设计内容:有三个表示塔的对象,分别命名为A、B和C。

A塔上有若干个盘子,盘子的大小不等,并按着大小顺序依次摆放在A塔上,大盘在下,小盘在上。

Java课程设计报告汉诺塔

Java课程设计报告汉诺塔

东华理工大学Java课程设计报告题目:汉诺塔所在院系:理学院学生:漆俊、朱学曼、颜瑶专业:信息与计算科学班级:1223201-2指导老师:黄国辉2014年 12月29日目录一.概述1.题目概述2.题目分析二.课程设计1.课程设计目的2.课程设计容3.课程设计环境4.课程设计要求三.系统需求分析1.系统目标2.主体功能3.开发环境四.系统概要设计1.系统功能模块划分2.流程图3.自定义类说明五.系统详细设计六.测试1.测试方案2.测试结果七.小结八.参考文献九.程序代码一.概述1.题目概述:Hannoi塔:设计GUI界面的Hannoi塔,用户可以通过拖动鼠标移动各个塔上的盘子,程序也可以自动演示盘子的移动过程。

设计要求1.有三个表示塔的对象,分别命名为A、B和C。

A塔上有若干个盘子,盘子的大小不等,并按着大小顺序依次摆放在A塔上,大盘在下,小盘在上。

用户可以用鼠标拖动盘子,把A 塔上的盘子全部移动到另外两个塔中的任何一个塔上。

要求每次只能移动一个盘子,在任何时候不允许大盘压在小盘的上面。

2.用户也可以选择让程序自动演示。

选择自动演示后,程序将以动画形式演示把A塔上的盘子全部移到C塔的过程,并将移动过程以文本形式显示在一个文本区中。

2.题目分析:(1)在窗口中画出初始时塔和碟子的状态。

(2)可以以自动或手动两种方式搬移碟子。

(3)自动搬移可以通过定时器或多线程的方法,每一次移动的时间间隔可以自定,以人眼观察比较舒服为宜,每一次的移动过程如能实现动画最好。

(4)定义塔的描述类和碟子的描述类。

(5)在程序中,碟子的数目及每次移动的时间间隔可以通过对话框设置(也应该有默认值)。

(6)支持暂停功和继续的功能(在自动搬移过程中可以暂停,并继续)。

(7)暂停后,可以将当前的状态保存(碟子和塔的组合关系)。

(8)可以从7中保存的文件中读出某个状态,并继续移动。

二.课程设计1.课程设计目的《JAVA程序设计》是计算机相关专业的选修专业基础课程,其实践性、应用性很强。

java课程设计汉诺塔

java课程设计汉诺塔

java课程设计汉诺塔一、课程目标知识目标:1. 学生能理解汉诺塔游戏的规则,掌握其数学原理。

2. 学生能运用Java语言实现汉诺塔游戏的算法。

3. 学生了解递归算法的概念,并能够运用递归方法解决汉诺塔问题。

技能目标:1. 学生通过编写代码,培养逻辑思维能力和问题解决能力。

2. 学生掌握Java中的数组、函数定义和递归调用的应用。

3. 学生能够在实际编程过程中,调试和优化代码,提高程序性能。

情感态度价值观目标:1. 学生培养对计算机编程的兴趣,激发学习Java的热情。

2. 学生在团队协作中,学会沟通和分享,培养合作精神。

3. 学生在解决问题的过程中,锻炼耐心和毅力,形成良好的学习习惯。

课程性质:本课程为实践性较强的Java编程课程,通过汉诺塔项目的设计与实现,使学生掌握基本的编程方法和技巧。

学生特点:学生已经具备一定的Java基础,熟悉基本语法和编程环境,但可能对递归算法和复杂逻辑处理尚不熟练。

教学要求:结合学生特点,课程目标分解为具体学习成果,教学过程中注重引导学生动手实践,培养编程兴趣和实际操作能力。

同时,注重团队合作,提高学生的沟通与协作能力。

通过课后评估,确保学生达到课程目标。

二、教学内容1. 汉诺塔游戏规则及数学原理介绍(教材第X章)- 游戏起源与基本规则- 汉诺塔问题的数学描述- 最优解与递归关系2. Java编程基础回顾(教材第X章)- 数据类型与变量- 循环结构(for、while)- 选择结构(if、switch)- 数组的使用3. 递归算法与汉诺塔实现(教材第X章)- 递归概念与递归三要素- 汉诺塔递归算法设计- Java中递归函数的编写与调用4. 汉诺塔程序编写与调试(教材第X章)- 编程规范与注释- 代码编写与测试- 调试技巧与性能优化5. 团队协作与项目展示(教材第X章)- 团队分工与协作- 项目总结与展示- 评价与反馈教学内容安排与进度:第1课时:汉诺塔游戏规则及数学原理介绍第2课时:Java编程基础回顾第3课时:递归算法与汉诺塔实现第4课时:汉诺塔程序编写与调试第5课时:团队协作与项目展示三、教学方法1. 讲授法(教材第X章)- 对于汉诺塔游戏规则、数学原理以及递归算法等理论知识,采用讲授法进行教学。

Java课程设计报告--Hannoi塔

Java课程设计报告--Hannoi塔

课程设计报告课程名称 Java程序设计课题名称 Hannoi塔专业计算机科学与技术班级学号姓名指导教师李远辉2013 年 6月 27日湖南工程学院课程设计任务书课程名称 Java程序设计课题 Hannoi塔专业班级学生姓名学号指导老师李远辉审批李远辉任务书下达日期 2013 年 6 月20 日任务完成日期2013 年 6 月 27 日目录1.设计要求 (1)1.1 界面要求 (1)1.2 功能要求 (1)2.总体设计 (2)2.1 总体概述 (2)2.2 主要类功能设计 (3)3.详细设计 (5)3.1 HannoiWindow类 (5)3.2 Tower类 (5)3.3 HandleMouse类 (6)3.4 AutoMoveDisc类 (7)3.5 TimeCount类 (8)4.调试与结果分析 (9)4.1 初级游戏 (9)4.2 游戏界面属性设置 (10)4.3 游戏外观设置 (10)4.4 自动移动演示 (10)5.设计总结与心得体会 (12)附录 (13)1 参考书 (13)2 源代码 (13)1 设计要求1.1 界面要求用户界面为GUI界面,其分为菜单栏以及游戏区两个部分。

游戏区中分布有三座Hannoi塔,其名字分别为A、B、C。

初始状态下A座有三个大小不等的盘子,其按照从大到小的顺序依次摆放在A座上。

1.2 功能要求1.2.1 游戏规则用户用鼠标选中盘子,然后通过拖动鼠标来移动盘子、释放鼠标来放置该盘子。

其中主要的规则就是:(1)移动盘子时,盘子上方必须无盘子(2)放置盘子时,其位置必须在塔点处,而且盘子必须比下方盘子小(3)游戏结束的条件是:所有的盘子均从A座移到B或C座1.2.2 游戏设置功能用户可以通过游戏-》选项来设置游戏的一些基本的属性,如是否播放音乐、难度、盘子大小等等1.2.3 游戏帮助功能用户可以通过菜单栏中的帮助能过初步了解游戏的相关信息,以及如何操作。

其中必须实现游戏的自动完成功能以指导用户如何操作。

java课程设计方案Hannoi汉诺塔游戏

java课程设计方案Hannoi汉诺塔游戏

HUBEINORMALUNIVERSITYJava程序设计Hannoi塔游戏论文题目Hannoi塔游戏学生指导教师所在院系专业名称完成时间摘要《JAVA语言实用教程》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。

实践教案环节是必不可少的一个重要环节。

本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA语言实用教程》课程后,进行的一次全面的综合训练,JAVA语言实用教程的设计目的是加深对理论教案内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

目录一、课程设计任务及要求31、课程设计任务32、设计要求3二、需求分析41、系统需求分析42、系统概述53、系统运行环境6三、设计思路6概要设计7四、详细设计7package Hannoi。

7HannoiWindow类7AutoMoveDisc类15Disc类21HandleMouse类22Tower类27TowerPoint 类31五、运行调试与分析讨论33六、设计体会与小结361.设计体会362.小结36参考文献37致谢37一、课程设计任务及要求1、课程设计任务设计GUI界面的Hannoi塔游戏,用户可以通过拖动鼠标移动各个塔上的盘子,程序也可以自动演示盘子的移动过程。

2、设计要求(1)有三个表示塔的对象,分别命名为A、B和C。

A塔上有若干个盘子,盘子的大小不等,并按着大小顺序依次摆放在A 塔上,大盘在下,小盘在上。

用户可以用鼠标拖动盘子,把A 塔上的盘子全部移动到另外两个塔中的任何一个塔上。

要求每次只能移动一个盘子,在任何时候不允许大盘压在小盘的上面。

(2)用户也可以选择让程序自动演示。

选择自动演示后,程序将以动画形式演示把A塔上的盘子全部移到C塔的过程,并将移动过程以文本形式显示在一个文本区中。

(3)可以由用户自己设置盘子数量和盘子大小。

java课课程设计汉诺塔

java课课程设计汉诺塔

java课课程设计汉诺塔一、教学目标本节课的教学目标是使学生掌握汉诺塔问题的解法及其在Java中的应用。

知识目标要求学生了解汉诺塔问题的定义、解法及其与递归算法的关联;技能目标要求学生能够运用Java编写汉诺塔问题的解决方案;情感态度价值观目标则是培养学生的逻辑思维能力、问题解决能力和团队合作精神。

二、教学内容本节课的教学内容主要包括三个部分:汉诺塔问题的定义与解法、汉诺塔问题的Java实现、以及汉诺塔问题在实际应用中的案例分析。

1.汉诺塔问题的定义与解法:介绍汉诺塔问题的背景、定义及其解法,包括递归解法和迭代解法。

2.汉诺塔问题的Java实现:讲解如何利用Java实现汉诺塔问题的递归解法和迭代解法,并分析两种解法的优缺点。

3.汉诺塔问题在实际应用中的案例分析:通过分析实际应用案例,使学生了解汉诺塔问题在现实生活中的应用,提高学生解决实际问题的能力。

三、教学方法为了达到本节课的教学目标,我们将采用以下教学方法:1.讲授法:用于讲解汉诺塔问题的定义、解法及其与递归算法的关联。

2.案例分析法:通过分析实际应用案例,使学生了解汉诺塔问题在现实生活中的应用。

3.实验法:让学生动手编写汉诺塔问题的Java解决方案,提高学生的实际操作能力。

4.小组讨论法:引导学生分组讨论汉诺塔问题的解法,培养学生的团队合作精神。

四、教学资源为了支持本节课的教学内容和方法,我们将准备以下教学资源:1.教材:提供汉诺塔问题的定义、解法及其Java实现的理论知识。

2.多媒体资料:通过图片、视频等形式,生动形象地展示汉诺塔问题及其解法。

3.实验设备:提供计算机等设备,让学生动手编写汉诺塔问题的Java解决方案。

4.网络资源:为学生提供相关的在线案例和教程,帮助学生更好地理解和应用汉诺塔问题。

五、教学评估本节课的教学评估将采取多元化评价方式,全面客观地评价学生的学习成果。

评估方式包括:1.平时表现:通过观察学生在课堂上的参与度、提问回答、小组讨论等环节的表现,评估学生的学习态度和理解能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java课程设计报告题目汉诺塔
所在院系软件学院
学生姓名邓小文专业土木+软件工程班级08-1班学号14号
2010年7 月17 日
一、总体设计
1.本系统的主要功能
(1)本软件是汉诺塔游戏;
(2)可以实现计时功能;
(3)游戏结束时记录排名;
(4)在玩游戏的同时还可以欣赏歌曲;
(5)不知如何玩时可以实现自动演示;
2.系统包含的类及类之间的关系
为了实现本软件的各项功能,对要在本软件中需要用到的源文件进行总体设计。

本系统共包括12个java源文件。

1.各个类之间的关系如图1所示。

图1-1各个类之间的关系
2.java源文件及其功能,如表所示。

表1java源文件及其功能
二、详细设计
为了实现总体设计中的各个类之间的接口连接,使玩家能够顺畅的
使用本软件进行游戏,考虑用详细设计来给玩家一一介绍。

以下是对本软件的详细设计:
1.主类Tower
(1)该类用到的主要成员变量见表5
表5类Tower主要成员变量
(2)方法见表6
表6类Tower主要方法
(3)源代码见文件Tower.java
2.类HannoiTower
(1)该类用到的主要成员变量见表7
(2)方法见表8
表8类HannoiTower主要方法
(3)源代码见文件HannoiTower.java
3.类TowerPoint
(1)该类用到的主要成员变量见表9
(2)方法见表10
(3)源代码见文件TowerPoint.java
4.类Disk
(1)该类用到的主要成员变量见表11
(2)方法见表12
表12类Disk主要方法
(3)源代码见文件Disk.java
5.类Time
(1)该类用到的主要成员变量见表13
表13类Time主要成员变量
(2)方法见表14
(3)源代码见文件Time.java
6.类Music
(1)该类用到的主要成员变量见表15
表15类Music主要成员变量
(2)方法见表16
表16类Music主要方法
(3)源代码见文件Music.java
7.类People
(1)该类用到的主要成员变量见表17
表17类People主要成员变量
(2)方法见表18
(3)源代码见文件People.java
8.类Record
(1)该类用到的主要成员变量见表19
表19类Record主要成员变量
(2)方法见表20
表20类Record主要方法
(3)源代码见文件Record.java
9.类ShowRecord
(1)该类用到的主要成员变量见表21
(2)方法见表22
(3)源代码见文件ShowRecord.java
10.类Help
(1)该类用到的主要成员变量见表25
表25类Help主要成员变量
(2)方法见表26
表26类Help主要方法
三、运行效果
1、将10个java文件打包保存到同一个文件夹中,并且分
别编译生成相应的字节码文件。

然后用java解释器如下运行主类:源代码java Tower
1 系统主界面
效果如图3-1所示:
图2-1 启动画面
此时游戏是隐藏着的,点击菜单栏的“开始游戏”->“开始”开始Hannoi Tower游戏。

2、hannoita录入界面
点击“开始游戏”->“开始”之后进入游戏状态,同时下边的计时器开始计时。

在这个界面下可以看到,盘子是以按钮形式存在的,有一个信息条,显示时间条和一个菜单条。

玩家可以点击游戏开始玩游戏,可以看软件自动演示,可以查看英雄榜的情况;如果嫌游戏单调,还可以听听软件自带的歌曲;如果不知道怎么玩游戏,可以点击帮助查看游戏规则。

效果如图3-2所示:
图2-2 游戏界面及个功能菜单
点击盘子时,所选的盘子会变成蓝色
3、在“开始游戏”菜单下可以选择游戏的级别,选择“级别”->“初级”是5个盘子,选择“级别”->高级是6个盘子。

默认是初级,5个盘子。

效果如图3-3所示:
图2-3选择游戏的级别
4、玩家点击“开始游戏”->“自动演示”,它将自动搬运盘子,同时信息条同步显示搬运信息。

效果如图2-4所示:
图2-4自动演示
5当玩家把所有的盘子都搬到c塔时,玩家成功过关软件会自动停
止计时,并且弹出记录榜对话框,玩家输入姓名,软件记录下玩家的姓名和游戏所用时间。

效果如图2-5所示:
图2-5记录榜
6、玩家点击菜单栏“排行榜”->“初级榜”弹出初级排行榜对话框,再点击“显示”,显示出初级排行榜,点击“清除”清除排行榜记录。

效果如图2-6所示:
图2-6初级排行榜
高级排行榜同理,点击“排行榜”->“高级榜”显示高级排行榜。

7、点击“设置”->“背景音乐”,玩家可以选择自己喜欢的歌曲,然后点播放进行欣赏;如果玩家喜欢听某一首歌,可以点击循环按钮,反复收听同一首歌曲;也可以点击停止按钮暂停播放。

效果如图4所示:
图2-7 播放器
8、点击“设置”->“背景色”可以改变背景染色,有白、绿、黄三种颜色可供选择。

效果如图2-8所示:
图2-8改变背景色
9、如果玩家不会玩汉诺塔这款游戏,可以点击帮助中的帮助主题查看游戏规则。

如果向了解关于制作的信息,就点击关于Hannoi Tower。

效果如图2-9和图2-10所示:
图2-9规则
图2-10 关于Hannoi Tower。

相关文档
最新文档