(数据结构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数组确定:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. numpy.zeros详解
  2. 算法每日学打卡:java语言基础题目打卡(19-21)
  3. 【AI初识境】什么是深度学习成功的开始?参数初始化
  4. 计算机学院寝室文明风景线活动,小猿关注 | 营造良好学风 打造和谐宿舍 ——计算机学院开展学风主题教育暨文明宿舍评选活动...
  5. 一个整数转换成字符串(C/C++自己写的算法)
  6. vue垂直布局_vue实现长图垂直居上 vue实现短图垂直居中
  7. C++预处理指令#define,#if,#endif等
  8. 对dedecms、php168,phpcms、VeryCMS、DiyPage五款开源整站系统的简单评点(
  9. python 深度 视差 计算_python-窗口代价计算视差
  10. 3条原则,16个小点,帮你写出一个优秀的对外接口!
  11. [漏洞检测]Proxpy Web Scan设计与实现(未完待续)
  12. r语言 图形一览_R语言实战(第2版):第三章 图形初阶(01)
  13. 利用SCCM2012中的导入计算机功能来实现定制化的操作系统部署
  14. python classmethod 与 staticmethod
  15. WCF入门(七)——异常处理1
  16. redis数据类型之String
  17. php7.2 函数安装,讲解PHP7.2源码安装
  18. 数学分析教程 第十二章学习感受
  19. 用java怎么做中国象棋的小游戏_java开发中国象棋小游戏
  20. Android dex修复工具,Android的dex热修复的实现基本原理

热门文章

  1. Java Shadowing 影子变量 影子声明
  2. 转:影视娱乐站推广的几个方法
  3. C语言键盘方向键的读入
  4. 基于微信校园跑腿小程序系统设计与实现 开题报告
  5. 【中危】Sweet32: TLS 64位分组密码生日攻击(CVE-2016-2183)
  6. 海信、索尼“圈层化”、美的、小天鹅奔向“拼多多”,家电品牌谋新路
  7. nodejs+vue网上鲜花店 vscode鲜花销售商城网站mysql
  8. JavaScipt基础(持续更新)
  9. 粉丝经济大爆发居然真的来了
  10. 第三方平台创建小程序步骤