数据结构c语言课程设计报告数据结构c语言课程设计报告

数据结构

课程设计报告

设计题目:迷宫求解

专 业 机电一体化

班 级 08专接本

学 生

学 号 104910252011

指导教师 高在村

完成时间 2011. 5

目录

一.实验内容3

二.需求分析3

三.总体设计3

四.详细设计5

五.代码9

六.测试14

七. 总结16

参考文献17

一.实验内容

任务:可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出;

要求:界面友好,函数功能要划分好;总体设计应画一流程图;程序要加必要的注释;要提供程序设计方案;程序一定要经得起测试;宁可功能少一点,也要能运行起来,不能运行的程序是没有价值的。

二.需求分析

1.可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出;

要求:使用非递归算法。

2.用户可以根据自己的需求进行输入所需的迷宫,其中1表示迷宫的墙壁,0表示迷宫的通路,从而建立自己的迷宫;

3.用户还可以自己设计迷宫的入口坐标,当然也可以设计出口了;

4.程序执行的命令包括:

(1)构造栈Stack, T 描述迷宫中当前位置的结构类型, LinkNode链表结点三个类,其中Stack是Linknode的友元类.

(2)构造存取迷宫的二维指针GetMaze(int &m,int &n)

(3)恢复迷宫Restore(int **maze,int m,int n) (

4)在迷宫中寻找一条通路Mazepath(int **maze,int m,int n)

(5)输出所找到的通路PrintPath()

(6) 定义当前位置移动的4个方向move数组.

三.总体设计

㈠存储结构:

首先用二维指针存储迷宫数据,迷宫数据由用户输入。

一个以链表作存储结构的栈类型,然后编写一个求解迷宫的递归或非递归程序。求得的通路以三元组(i,j,d)形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向(东、南、西、北四个方向所用代表数字,自行定义)。

1.从入口出发,顺着某一个方向进行探索,若能走通,则继续往前进;否则沿着原路退回,换一个方向继续探索,直至出口位置,求得一条通路。假如所有可能的通路都探索到而未能到达出口,则所设定的迷宫没有通路。

迷宫的入口点的下标为(1,1),出口点的下标为(m,n)。为处理方便起见,可在迷宫的四周加一圈障碍。对于迷宫的任一位置,均可约定有东、南、西、北四个方向可通。经过的位置把0变为-1,带输出迷宫路径后在恢复迷宫院士为止

2. 本程序有三个模块:

⑴ 主程序模块

⑵ 三个类模块即其对象:实现栈链表抽象数据类型;

⑶ 迷宫二维指针单元模块:存储迷宫,,寻路径,输出迷宫,恢复迷宫。

(二)流程图

四.详细设计

(一).基本算法:

首先用二维指针存储迷宫数据,迷宫数据由用户输入。

一个以链表作存储结构的栈类型,然后编写一个求解迷宫的递归或非递归程序。求得的通路以三元组(i,j,d)形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向(东、南、西、北四个方向所用代表数字,自行定义)。

迷宫的过程可以模拟为一个搜索的过程:每到一处,总让它按东、南、西、北4个方向顺序试探下一个位置;如果某方向可以通过,并且不曾到达,则前进一步,在新位置上继续进行搜索;如果4方向都走不通或曾经到达过,则退回一步,在原来的位置上继续试探下一位置。

每前进或后退一步,都要进行判断:若前进到了出口处,则说明找到了一条通路;若退回到了入口处,则说明不存在通路。

用一个二维指针数组迷宫表示迷宫,数组中每个元素取值“0”(表示通路)或“1”(表示墙壁)。迷宫的入口点在位置(1,1)处,出口点在位置(m,n)处。设计一个模拟走迷宫的算法,为其寻找一条从入口点到出口点的通路。

二维数组的第0行、第m+1行、第0列、第m+1列元素全置成“1”, 表示迷宫的外墙;第1行第1列元素和第m行第m列元素置成“0”, 表示迷宫的入口和出口;其余元素值用GetMaze函数获取.

假设当前所在位置是(x,y)。沿某个方向前进一步,它可能到达的位置最多有4。

如果用二维数组move记录4方向上行下标增量和列下标增量,则沿第i个方向前进一步,可能到达的新位置坐标可利用move数组确定:

x=x+move[loop][0]

y=y+

数据结构c语言课程设计报告,数据结构c语言课程设计报告.doc相关推荐

  1. 数据结构c语言课程设计报告,(数据结构c语言课程设计报告.doc

    (数据结构c语言课程设计报告 数据结构 课程设计报告 设计题目:迷宫求解 专 业 机电一体化 班 级 08专接本 学 生 学 号 104910252011 指导教师 高在村 完成时间 2011. 5 ...

  2. c语言数据结构课程设计电梯,数据结构课程设计报告(模拟电梯).doc

    数据结构课程设计报告(模拟电梯) 山东理工大学计算机学院 课 程 设 计 (数据结构) 班 级姓 名学 号 指导教师 二〇一二年一月十日 课程设计任务书及成绩评定 课题名称电 梯 模 拟 Ⅰ.题目的目 ...

  3. 数据结构c语言程序设计报告,数据结构与算法课程设计报告模版.doc

    数据结构与算法课程设计报告模版.doc 数据结构与算法课程设计报告题 目本科生导师制问题与家族关系查询系统院 (系) 信息科学与工程 专业班级 计算机应用技术1301班 学生姓名 顾 泉 学 号 20 ...

  4. 24速算c语言实训报告ppt,C语言速算24数据结构课程设计.doc

    C语言速算24数据结构课程设计.doc 课程设计论文题 目 名 称 速算 24 课 程 名 称 数据结构课程设计 学 生 姓 名 王浩明 学 号 0941301253 系 .专 业 信息工程系.信息类 ...

  5. 地大c语言课程设计题目,中国地质大学数据结构课设-全国铁路运输网最佳经由问题课程设计报告精选.doc...

    中国地质大学数据结构课设-全国铁路运输网最佳经由问题课程设计报告精选 数据结构 上机实习报告 实验题目:全国铁路运输网最佳经由问题 班级: 姓名: 学号: 完成日期:2017年4月25日 目录 课程设 ...

  6. 速算C语言程序设计,C语言速算24数据结构课程设计最终版(备份存档)

    <C语言速算24数据结构课程设计.doc>由会员分享,可免费在线阅读全文,更多与<C语言速算24数据结构课程设计(最终版)>相关文档资源请在帮帮文库(www.woc88.com ...

  7. 数据结构课程设计—同学录管理系统(c语言)

    数据结构课程设计-同学录管理系统(c语言) 文章目录 前言 一.需求分析 二.总体设计 三.代码实现 四.代码说明 前言 计算机相关专业在学习数据结构这门课程时会有课程设计,我被分配到的是同学录管理系 ...

  8. 数据结构课程设计之银行活期存储系统(设计报告)

     目录      3 第一章  开发环境和开发工具    4 1.1C/C语言简介......................................................... ...

  9. 数据结构c语言版课设,数据结构课程设计c语言版

    代码片段和文件信息 #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define NULL 0 #define INFEASI ...

  10. 《操作系统》课程设计报告——用JAVA语言模仿实现“吃水果”问题

    引言 操作系统是计算机的核心总控软件,是计算机系统的指挥和管理中心,是计算机系统的灵魂.进程管理与文件系统是操作系统都是操作系统的五大重要功能之一.通过模拟操作系统的实现,加深学生对计算机操作系统内核 ...

最新文章

  1. Go语言程序结构分析初探
  2. MATLAB判断矩阵相等
  3. System类入门学习
  4. Linux下的tty和pts:PTS之间标准输入输出的交互
  5. 上传Text文档并转换为PDF(解决乱码)
  6. 换股也是一种解套方法
  7. 配置spring boot 内置tomcat的accessLog日志
  8. android pcm数据格式,android 实时PCM数据编码成AAC
  9. 【KE特效仿制】假面骑士 EX-AID NCOP+无彩限的怪灵世界 NCOP
  10. 运动控制卡应用开发教程之C#
  11. Java面向对象编程,绘制思维导图(全面详细整理)
  12. javascript中文乱码问题分析及解决方案
  13. Linux命令大全(常用的命令解析)
  14. CuteFTP Pro 8.3.4 最新破解绿色版
  15. 眼睛又干又痒,到底是干眼症还是结膜炎?
  16. 关于ECharts中调整容器与图表的位置关系
  17. Nacos本地进行了远程配置而远程未配置相关信息而导致应用报内存泄漏问题的异常
  18. 低通滤波器计算截止评率_科普文|一文了解电阻-电容(RC)低通滤波器
  19. 一次性将多个网址收藏到谷歌书签的文件夹中
  20. 商品浏览时的css,jquery仿京东商品放大浏览页面

热门文章

  1. WPF 加载GIF图片
  2. Java面经总结(2020/10.20~11.20)
  3. 【推荐算法】协同过滤推荐算法综述 传统推荐算法综述
  4. 安川机器人如何注释化指令_安川机器人 命令介绍-内部版
  5. 计算机中缺失freeimage.dll,修复freeimage.dll
  6. 把“友商”装进芯里威联通运行黑群晖最新DSM系统
  7. 微信红包发送关键代码
  8. 20220418 如何下载网页pdf(没有下载按钮的情况,不是打印网页)
  9. 织梦dedecms怎么让图片自适应屏幕大小
  10. 初中七年级上计算机试题答案,初中信息技术考试试题(含答案).docx