数据结构课程设计报告

发布 2022-10-05 03:17:28 阅读 9667

《数据结构与算法设计》

课程设计任务书。

数据结构与算法设计课程设计。

1.程序设计说明书。

设计题目】走迷宫。

问题描述】迷宫问题,就是在一个指定的迷宫中求出从入口到出口的路径。使用递归算法,使用栈作为辅助结构,使用队列作为辅助结构,并设计图形用户界面提供迷宫大小、入口及出口位置和初始状态等,演示走迷宫的过程和结果。达到界面美观,操作方便。

算法思想】(1)主程序模板设计;

(2)实现整个控制面板内组件的布局管理;

(3)实现走迷宫的算法;

(4)设置控制面板;

(5)使用线性结构;

6) 使用递归算法,使用栈和队列作为辅助结构。

存储结构设计】

(1) 顺序栈存储结构。

示意图如下。

入栈出栈。top

采用直接递归的方式,用栈迷宫实现路径的输出。

2)为寻求最短路径,采用广度优先搜索算法,使用队列实现路径存储。

模块流程图】

1)搜索算法流程图如下所示:

迷宫图算法流程图。

n 循环结束。

无解迷宫。y

n有解迷宫。

总体设计方案】

1 本程序主要使用的j**a awt和j**a swing包。

import

import

import

2 本程序包含三个模块:

(1) 主程序模块。

2)ui模块——实现整个控制面板内组件的布局管理;

3)walking模块——实现走迷宫的算法;

界面设计】进入演示程序后即显示图形用户界面。

用户手册】(1)本程序的运行环境为j**a

(2)进入演示程序后即显示图形用户界面:

(3)单击“开始”按钮即可开始走迷宫。

(4)单击“清空”按钮后可重新设置迷宫。

(5)点击“恢复”按钮可消除搜寻迷宫通路留下的痕迹,点击“开始”可重新搜寻迷宫通路。

(6)点击“重置”可复位,即显示出原先的迷宫。

(7)进度条可控制搜寻迷宫通路过程的速度。

2 程序调试。

在设计走迷宫算法的过程中,我主要是利用递归求解和入栈,出栈来解决的。从起点开始出发,每次都首先使自身节点右边的节点入栈,当遇到障碍物时,使下方节点入栈,又遇到障碍物时使左方节点入栈,再使上方节点入栈,依次类推。走过的节点也算作障碍物,直到找到一条通路。

再将通路节点一次出栈,并将字体颜色设置为红色。

经过调试分析,本程序能够完成需求分析的各项需求。

3 程序测试结果。

程序运行截图】

1)单击“开始”按钮即可开始走迷宫,迷宫运行后如图:

红色数字部分为其中一条通路。

2)单击“清空”按钮后可重新设置迷宫如图:

3)重新设置迷宫路线,点击“开始”按钮迷宫新路线如图:

红色数字部分为其中一条通路。

红色数字部分为其中一条通路。

程序性能评价】

“走迷宫”游戏的基本功能都已实现,用户可自己设定墙,达到改变迷宫路线的目的。本程序主要使用了j**a awt包和j**a swing包。在求解迷宫算法的设计中,有一条通路,路径唯一。

性能改进方向】

本程序只能输出一条最短路径,怎样能输出所有最短路径?将同一深度的节点全部遍历,如果后续还有同样长度的路径则输出该路径,如果没有则只有一条最短路径。

收获及体会】

从一个小小的迷宫问题,引出了许多知识。从迷宫基本的递归和栈的运用和理解,再到队列的运用,将很多知识点串联起来了,加深了理解。通过这次“走迷宫”游戏的设计让我明白了理论与实践相结合的重要性,只有理论知识是远远不够的,要想写好一个课程设计,必须有理论与实践结合。

在设计的过程中遇到各种问题,困难很大,通过请教别人和查阅课件,最终完成了报告。

4源程序**。

本程序主要使用j**a awt和j**a swing包。

import

import

import

1)主程序模块。

package migong;

import

import

* title: maze global class

public class main ,true, false, false, false, true, false, true, true, true, true,false, false, false, true, }true, false, true, false, true, false, false, false, false, true,true, false, true, true, }true, false, true, false, true, false, true, true, true, false,true, false, true, false, }true, true, true, false, false, false, true, false, true, false,true, false, true, true, }true, false, true, true, true, true, true, false, true, false,true, false, false, true, }true, false, true, true, true, true, true, false, true, false,true, false, true, true, }true, false, false, false, false, false, true, true, true, false,true, false, true, false, }true, false, true, true, true, false, false, false, false, false,true, false, true, true, }true, false, true, false, true, false, true, true, true, true,true, false, false, true, }true, false, true, false, true, false, true, false, false, false,false, false, true, true, }true, true, true, false, true, true, true, true, true, true,true, false, true, true, }

static jframe jframe;

static ui ui;

public static void main(string args) {

启动新线程,创建一个窗口。

runnable()

数据结构课程设计报告

东莞理工学院城市学院。题目 二叉排序树 专业 计算机科学与技术 本 年级 2010级计算机科学与技术专业 1 班。个人姓名 何振江。指导教师 张娟老师 时间 2010至2011第二学期第18周 地点 实验楼615机房 东莞理工学院城市学院计算机与信息科学系制。2011年 6月。实习报告的内容。一 问...

数据结构课程设计报告

设计一个校园导游程序,为来访的客人提供信息查询服务。1 设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图 无向网 以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。2 存放景点代号 名称 简介等信息供用户查询。3 为来访客人提供图中任意景点相关信息的查询。4 为来访客人提供...

数据结构课程设计报告

河北科技大学。课程设计报告。学生姓名学号。专业班级。课程名称数据结构。学年学期 2 012 2 013学年第 2 学期指导教师 黄春茹。2 0 13年 6 月。课程设计成绩评定表。一 数据结构课程设计目标。二 问题描述。三 需求分析。四 概要设计。五 详细设计。六 软件说明书 给出软件如何使用,使用...