数据结构课程设计迷宫问题) limengyu.docVIP

  • 3
  • 0
  • 约6.72万字
  • 约 19页
  • 2016-11-07 发布于贵州
  • 举报
数据结构课程设计迷宫问题) limengyu

课 程 设 计 报 告 课程名称 数据结构课程设计 课题名称 迷宫问题 专 业 计算机科学与技术 班 级 计科4班 学 号 2013026674 姓 名 李梦宇 指导教师    2012年 月 日 i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一个坐标的方向。 b.编写递归形式的算法,求得迷宫中所有可能的通路。 3)测试数据 迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 0 0 0 4)实现提示 计算机解迷宫通常用的是“穷举求解”方法,即从入口出发,顺着某一个方向进行探索,若能走通,则继续往前进;否则,沿着原路退回,换一个方向继续探索,直至出口位置,求得一条通路。假如所有可能的通路都探索到而未能到达出口,则设定的迷宫没有通路。 可以二维数组存储迷宫数据,通常设定入口点的下标为(1,1),出口点的下标为(m,n)。为处理方便起见,可在迷宫的四周加一圈障碍。对于迷宫中任一位置,均可约定有东、南、西、北四个方向可通。 2.设计要求: 课程设计报告规范 1)需求分析 a.程序的功能。 b.输入输出的要求。 2)概要设计 程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能。 课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。 3)详细设计 a.采用C语言定义相关的数据类型。 b.写出各模块的类C码算法。 c.画出各函数的调用关系图、主要函数的流程图。 4)调试分析以及设计体会 a.测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果。 b.程序调试中遇到的问题以及解决问题的方法。 c.课程设计过程经验教训、心得体会。 5)使用说明 用户使用手册:说明如何使用你编写的程序,详细列出每一步的操作步骤。 6)书写格式 见附带说明。 7)附录 a.参考书目 b.源程序清单(带注释) 目录 任务书………………………………………………………2 基本算法……………………………………………………7 需求分析……………………………………………………7 程序的功能…………………………………………………7 输入输出的要求……………………………………………7 程序算法分析………………………………………………8 概要设计……………………………………………………8 设计中非递归程序的模块结构图…………………………8 程序的数据结构和数据库结构分析………………………9 试探方向的设计……………………………………………10 达某点,以避免发生死循环……………………………11 详细设计……………………………………………………11 伪码设计……………………………………………………11 mgpath()流程图…………………………………………12 调试分析……………………………………………………13 总结…………………………………………………………14 八丶 附录(源代码清单)………………………………………17 一、基本算法 走迷宫的过程可以模拟为一个搜索的过程:每到一处,总让它按东、东南、南、西南、西、西北、北、东北8个方向顺序试探下一个位置;如果某方向可以通过,并且不曾到达,则前进一步,在新位置上继续进行搜索;如果8个方向都走不通或曾经到达过,则退回一步,在原来的位置上继续试探下一位置。 每前进或后退一步,都要进行判断:若前进到了出口处,则说明找到了一条通路;若退回到了入口处,则说明不存在通路。 用一个字符类型的二维数组表示迷宫,数组中每个元素取值“0”(表示通路)或“1”(表示墙壁)。迷宫的入口点在位置(1,1)处,出口点在位置(m,m)处。设计一个模拟走迷宫的算法,为其寻找一条从入口点到出口点的通路。 二维数组的第0行、第m+1行、第0列、第m+1列元素全置成“1”, 表示迷宫的边界;第1行第1列元素和第m行第m列元素置

文档评论(0)

1亿VIP精品文档

相关文档