- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程设计报告 计算机与信息学院课题名称: 迷宫问题的求解及演示姓 名: 计算机与信息学院 学 号: 专 业: 班 级: 指导教师: 第 1 页 共 17 页 数据结构课程设计任务书 针对本课程设计,完成以下课程设计任务书: 熟悉系统实现工具和上机环境。 根据课程设计任务,查阅相关资料。 针对所选课题完成以下工作: )需求分析 )概要设计 )详细设计 )编写源程序 )静态走查程序和上机调试程序 书写上述文档和撰写课程设计报告 第 2 页 共 17 页 目 录 第一部分 课程设计任务书 1 第二部分 课程设计报告 2 第一章 课程设计内容和要求 4 2.1 问题描述 4 2.2 需求分析 4 第二章 课程设计总体方案及分析 4 3.1 概要设计 7 3.2 详细设计 7 3.3 调试分析 10 3.4 测试结果 10 第三章 设计总结 13 课程设计总结 13 参考文献 附录( 源代码) 14 第 3 页 共 17 页 第二部分 课程设计报告 第一章 课程设计内容和要求 问题描述 : 迷宫以 16*16 的矩阵存储在数据文件中(迷宫中的障碍物要占到一定比例) ,编写非递归的程序,求出一条从入口到出口的路径并显示之(结果若能用 C的绘图函数显示更好) 需求分析 : 要求设计程序输出如下: 建立一个大小为 m×n的任意迷宫 (迷宫数据可由用户输入或由程序自动生成) ,并在屏幕上显示出来; 找出一条通路的二元组( i,j )数据序列,( i,j )表示通路上某一点的坐标。 用一种标志(如数字 8)在迷宫中标出该条通路; 在屏幕上输出迷宫和通路; 上述功能可用菜单选择。 迷宫的建立: 迷宫中存在通路和障碍,为了方便迷宫的创建,可用 0 表示通路,用 1 表示障碍, 这样迷宫就可以用 0、1 矩阵来描述, 迷宫的存储: 迷宫是一个矩形区域, 可以使用二维数组表示迷宫, 这样迷宫的每一个位置都可以用其行列号来唯一指定, 但是二维数组不能动态定义其大小, 我们可以考虑先定义一个较大的二维数组 maze[M+2][N+2], 然后用它的前 m行 n 列来存放元素,即可得到一个 m× n 的二维数组,这样 (0,0) 表示迷宫入口位置, (m-1,n-1) 表示迷宫出口位置。 第 4 页 共 17 页 注:其中 M,N 分别表示迷宫最大行、列数,本程序 M、N 的缺省值为 39、39,当然, 用户也可根据需要,调整其大小。 迷宫路径的有哪些信誉好的足球投注网站: 首先从迷宫的入口开始,如果该位置就是迷宫出口,则已经找到了一条路径,有哪些信誉好的足球投注网站工作结束。否则有哪些信誉好的足球投注网站其上、下、左、右位置是否是障碍,若不是障碍,就移动到该位置,然后再从该位置开始有哪些信誉好的足球投注网站通往出口的路径;若是障碍就选择另一个相邻的位置,并从它开始 有哪些信誉好的足球投注网站路径。为防止有哪些信誉好的足球投注网站重复出现,则将已有哪些信誉好的足球投注网站过的位置标记为 2,同时保留有哪些信誉好的足球投注网站痕迹,在考虑进入下一个位置有哪些信誉好的足球投注网站之前,将当前位置保存在一个队列中,如果所有相邻的非障碍位 置均被有哪些信誉好的足球投注网站过,且未找到通往出口的路径,则表明不存在从入口到出口的路径。这实现的是广度优先遍历的算法,如果找到路径,则为最短路径。 以矩阵 0 0 1 0 1 为例,来示范一下 1 0 0 1 0 1 0 0 0 1 0 0 1 0 0 首先,将位置 (0,0)( 序号 0) 放入队列中,其前节点为空,从它开始有哪些信誉好的足球投注网站,其标记变为 2,由于其只有一个非障碍位置,所以接下来移动到 (0,1)( 序号 1) ,其前节点序号为0,标记变为 2,然后从(0,1) 移动到 (1,1)( 序号 2) ,放入队列中, 其前节点序号为 1,(1,1) 存在(1 ,2)( 序号 3) 、(2 ,1)( 序号 4) 两个可移动位置,其前节点序号均为 2. 对于每一个非障碍位置,它的相邻非障碍节点均入队列,且它们的前节点序号均为该位置的序号,所 以如果存在路径,则从出口处节点的位置,逆序就可以找到其从出口到入口的通路。如下表所示: 0 1 2 3 4 5 6 7 8 9 10 (0,0) (0,0) (0,1) (1,1) (1,2) (2,1) (2,2) (1,3) (2,3) (0,3) (3,3) (3,4) -1 0 1 2 2 3 4 5 6 7 9 由此可以看出,得到最短路径: (3,4)(3,3)(2,3)(2,2)(1,2)(1,1)(0,1)(0,0) 有哪些信誉好的足球投注网站算法流程图如下所示: 第 5 页 共 17 页 第二章 课程设计总体方案及分析 概要设计 第 6 页 共 17 页 ①构建一个二维数组 maze[M+2][N+2] 用于存储迷宫矩阵 ②自动或手动生成迷宫,即为二维数组 maze[M+2][N+2] 赋值 ③构建一个队列用于存储迷宫路径 ④建立迷宫节点 struct point
文档评论(0)