数据结构课程设计java求解迷宫-回溯法-A算法.docx
《数据结构课程设计java求解迷宫-回溯法-A算法.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计java求解迷宫-回溯法-A算法.docx(41页珍藏版)》请在第一文库网上搜索。
1、算法与数据结构课程设计课题:求解迷宫通路的图形界面演示程序作者:吴昊QQ:328035823目录1 .题目及需求分析42 .概要设计43 .详细设计104 .调试分析395 .课程设计总结421 .题目及需求分析1.1 题目编制个求解迷宫通路的图形界面演示程序。12需求分析1 .输入一个任意大小的迷宫,任设起点、终点、障碍,用栈求出一条走出迷宫的路径,并显示在屏幕上;2 .根据用户界面提示,用键盘输入,HomC键设置迷宫起点,End键设终点,上下左右箭头键移动,Enter键添加墙,De1键删除墙,完成后按F9键演示,演示完毕后可F5刷新题图,重新对地图的起点、终点、障碍进行设置,ESC键退出;
2、3 .本程序要求至少得出一条成功的通路,也可求得全部路径。此外,也可尝试保存或载入测试文件(此功能不做强行要求)。4 .当未输入起点时,消息显示“Error:YoumustsettheSTART.,;未输入终点时,显示“Error:YoumustsettheEND.找到路径时,屏幕显示足迹,并在消息框出现Pathfound,否则消去足迹,显示Pathnotfoundo5 .用户可以通过界面上提供的菜单选项,选择“帮助”查看操作说明。6 .(算法选优)用户可以通过界面上提供的菜单选项,选择“A*算法求最短路径”演示求解迷宫最短路径。2.概要设计根据需求分析的用户界面的设计要求,考虑到我们在JaV
3、a课程中学习过GUI设计,对JaVa的GU1的比较熟悉,所以我们用JaVa语言来开发本项目。在设计求解迷宫的程序时,要求编写8个Java源文件:Dia1og.java、MaZe.java、MazeGUI.java、PoSition.javaRo11back.javastack.javastar.java和Aposition.java。该程序除了上述6个Java源文件所给出的类以外,还需呀Java系统提供的一些重要的类,如java.awt包中的容器类、画图类、事件类及监听器接口、javax.swing包中的各种轻量组件类和java.Iang包中线程类等。2.1UM1类图程序的所用到的一些重要的类
4、以及之间的关联关系如图2-1所示。CkBSSMaZeCa58/图2-1UM1类图2.2Dia1Og.java(主类)Dia1og.java(主类)是JDia1og类的一个子类。该类负责创建提示用户输入迷宫大小的对话框,通过用户输入的参数来确定所要创建的迷宫图形界面的窗口的大小。该类含有main方法,程序从该类开始执行。BCgin类的成员变量有JTeXtFieId、JButtonJFrameBegin类的主要成员和成员方法的作用将在后面的详细设计中阐述。2.3Maze,javaMaZe类创建的对象是MaZeGU1类和RonbaCk类最重要的成员之一,代表迷宫。该类负责接收在迷宫窗口所设置起点、终
5、点、障碍的位置参数来绘制迷宫图像并存储迷宫结构的信息。该类的主要成员变量有3种类型的对象:Position.Image以及存放整型数的二维数组。MaZe类的主要成员和成员方法的作用将在后面的详细设计中阐述。2.4MazeGU1javaMazeGUI类是Frame类的个子类,创建的对象是RoI1baCk类最重要的成员之一。该类负责创建迷宫图形窗口界面,方便用户在界面上设置起点、终点、障碍等并展现求解迷宫的过程。该类的主要成员变量有4种类型的对象:Maze、Ro11back、Position和Threado该类还包含一个内部类SO1VeThread,该内部类实现了nmnab1e接口。MaZeGUI
6、类的主要成员和成员方法的作用将在后面的详细设计中阐述。2.5Position,java(图形界面坐标的存储结构)Position类创建的对象是MaZe类、MazeGUI类和Ro11back类最重要的成员之一。该类负责在Maze类、MaZeGU1类和RonbaCk类之间传递消息,其对象存有当前位置的坐标信息。该类包含两个整型的成员变量X和y,记录当前位置在迷宫图形界面的横、纵坐标。POSition类的主要成员和成员方法的作用将在后面的详细设计中阐述。2. 6Stack.java(数据类型结构)为了体现算法与数据结构的课程特点,我们并没有用Java系统类库中java.Uti1.Stack类,而是编
7、写了一个通用的StaCk存储结构。Stack类创建的对象是Ro11back类的最重要的成员之一。该类负责保存在求解迷宫过程中所走过的路径信息。该类包含一个内部类Node,定义了栈中存储的节点元素的类型。另外还含有一个整型成员变量n和一个Node类型的成员变量top,分别记录栈中元素的个数以及栈顶元素的信息。而Node类定义的是栈中节点的类型,包含当前节点的信息info(Object类型)和以及栈中下一个元素的引用next(相当在C语言中的指针)。StaCk类的主要成员和成员方法的作用将在后面的详细设计中阐述。2.7RoIIbackjava(核心算法一回溯算法)Ro11back类创建的对象是是M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 java 求解 迷宫 回溯 算法