- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法与数据结课程设计java求解迷宫,回溯法,A算法
PAGE \* MERGEFORMAT 42
算法与数据结构
课程设计
课题:求解迷宫通路的图形界面演示程序
目录
1.题目及需求分析········································4
2.概要设计··············································4
3.详细设计·············································10
4.调试分析·············································39
5.课程设计总结·········································42
1.题目及需求分析
1.1题目
编制一个求解迷宫通路的图形界面演示程序。
1.2需求分析
输入一个任意大小的迷宫,任设起点、终点、障碍,用栈求出一条走出迷宫的路径,并显示在屏幕上;
根据用户界面提示,用键盘输入,Home键设置迷宫起点,End键设终点,上下左右箭头键移动,Enter键添加墙,Del键删除墙,完成后按F9键演示,演示完毕后可F5刷新题图,重新对地图的起点、终点、障碍进行设置,Esc键退出;
本程序要求至少得出一条成功的通路,也可求得全部路径。此外,也可尝试保存或载入测试文件(此功能不做强行要求)。
当未输入起点时,消息显示“Error: You must set the START.”;未输入终点时,显示“Error: You must set the END.”;找到路径时,屏幕显示足迹,并在消息框出现Path found,否则消去足迹,显示Path not found。
用户可以通过界面上提供的菜单选项,选择“帮助”查看操作说明。
(算法选优)用户可以通过界面上提供的菜单选项,选择“A*算法求最短路径”演示求解迷宫最短路径。
2.概要设计
根据需求分析的用户界面的设计要求,考虑到我们在Java课程中学习过GUI设计,对Java的GUI的比较熟悉,所以我们用Java语言来开发本项目。
在设计求解迷宫的程序时,要求编写8个Java源文件:Dialog.java、Maze.java、MazeGUI.java、Position.java、Rollback.java、stack.java、Astar.java和Aposition.java。
该程序除了上述6个Java源文件所给出的类以外,还需呀Java系统提供的一些重要的类,如java.awt包中的容器类、画图类、事件类及监听器接口、javax.swing包中的各种轻量组件类和java.lang包中线程???等。
2.1 UML类图
程序的所用到的一些重要的类以及之间的关联关系如图2-1所示。
图2-1 UML类图
2.2 Dialog.java(主类)
Dialog.java(主类)是JDialog类的一个子类。该类负责创建提示用户输入迷宫大小的对话框,通过用户输入的参数来确定所要创建的迷宫图形界面的窗口的大小。该类含有main方法,程序从该类开始执行。Begin类的成员变量有JTextField、JButton、JFrame。Begin类的主要成员和成员方法的作用将在后面的详细设计中阐述。
2.3 Maze.java
Maze类创建的对象是MazeGUI类和Rollback类最重要的成员之一,代表迷宫。该类负责接收在迷宫窗口所设置起点、终点、障碍的位置参数来绘制迷宫图像并存储迷宫结构的信息。该类的主要成员变量有3种类型的对象:Position、Image以及存放整型数的二维数组。Maze类的主要成员和成员方法的作用将在后面的详细设计中阐述。
2.4 MazeGUI.java
MazeGUI类是Frame类的一个子类,创建的对象是Rollback类最重要的成员之一。该类负责创建迷宫图形窗口界面,方便用户在界面上设置起点、终点、障碍等并展现求解迷宫的过程。该类的主要成员变量有4种类型的对象:Maze、Rollback、Position和Thread。该类还包含一个内部类SolveThread,该内部类实现了runnable接口。MazeGUI类的主要成员和成员方法的作用将在后面的详细设计中阐述。
2.5 Position.java(图形界面坐标的存储结构)
Position类创建的对象是Maze类、MazeGUI类和Rollback类最重要的成员之一。该类负责在Maze类、MazeGUI类和Rollback类之间传递消息,其对象存有当前位置的坐标信息。该类包含两个整型的成员变量x和y,记录当前位置在迷宫图形界面的横、纵坐标。Position类的主要成员和成员方法的作用将在后面的详细设计中阐述。
2.6
您可能关注的文档
- 答疑学生小堂搞定数列嘞.docx
- 答辩 数铣床及加工中心产品加工.ppt
- 答辩ppt宠物之宠物世界.ppt
- 答辩PPT无限传感器网络Leach路协议研究.pptx
- 答辩PPT无限感器网络Leach路由协议研究.ppt
- 答辩XXX市教育局学校师人事管理系统.ppt
- 答辩二维码生成与识别系的设计与实现解码器的设计与实现.ppt
- 答辩发动缸体抓取移栽机设计.ppt
- 答辩因果序列卷的矢量乘法算法程序设计.ppt
- 答辩汇传统“折纸”元素在现代家具中的表现.ppt
- 2025年成都市玩偶生产荧光涂鸦互动玩偶开发可行性研究报告.docx
- 2025年成都市海绵生产用于体育馆室外运动场地透水改造可行性研究报告.docx
- 2025年天津市体操鞋企业团建运动应用报告.docx
- 2025年上海市溶洞极限运动(速降)场地开发可行性研究报告.docx
- 2025年上海市涵洞工程施工技术应用可行性研究报告.docx
- 2025年上海市体育场馆设施扎带安全防护可行性研究报告.docx
- 2025年上海市牦牛育肥产业园区建设可行性研究报告.docx
- 2025年旅拍宠物陪伴拍摄项目可行性研究报告.docx
- 2025年上海市进口食品节庆主题快闪店可行性研究报告.docx
- 2025年上海市洗选厂尾矿综合利用产业化可行性研究报告.docx
文档评论(0)