数据结构实验报告:迷宫问题.docx
存档资料成绩:武汉大学东湖分校计算机科学学院课程设计报告课程名称数据结构课程设题 目深度与广度优先搜索迷宫问题专业班级计算机应用班学 号学生姓名指导教师年 月 日找到路径:5、课程设计睇由于以前的知识学习的不算扎实,所以该课程设计对于我来说还是很有难度的。在编写程序的时候,时常要去看教科书,或者向同学请教。程序写好之后,花了 个 小时注释,惨剧的是运行之后,浮现了 多错误,只好又逐字逐句的检查,实在找不 出来就只能自己慢慢调试。就这样磕磕绊绊弄了天程序代码以及流程图才勉强完成。总的来说,这次设计报告很不顺利,归根结柢还是基础没学好。虽然结果不尽人 意,但是收获还是有的,这次设计报告,加强了自身对语句的组织与对程序的运用, 发现了自身许多不足之处。这次是一次教训,希翼好事多磨吧。鳄文献数据结构教程(第三版),清华大学出版社;面向对象与Java程序设计,清华大学出版社;C程序设计(第四版),清华大学出版社;C程序设计基础课程设计,浙江大学出版社。武汉大学东湖分校计算机科学学院课程设计任务书(由指导教师填写)课程名称:数据结构课程设计设计题目:深度与广度优先搜索:迷宫问题专 业:计算机应用班 级:(1)完成时间:2022114 指导教师:专业负责人:许先斌主要内容利用图的邻接矩阵存储方法和深度、广度优先遍历算法实现设计一个程序:()能自动或者手动生成一个X的矩阵,针对这个矩阵,程序判断是否能从起点 经过迷宫走到终点。()如果不能,请输出提示;如果能,请输出每一步所经过的结点坐标。基本耍求()完成程序所要实现的功能,得到正确的运行结果。()做好程序的功能测试,测试能走到和不能走到两种情况,程序均能得到正确结 果。()严格按照课程设计报告的步骤和内容要求撰写报告,做到有文字描述,有图表 说明。()严格按照课程设计报告的格式要求调整报告格式,包括字体、字体大小等。()要求上交源代码。参考资料数据结构(第 版)李春葆 清华大学出版社数据结构课程设计 何钦铭 浙江大学出版社武汉大学东湖分校计算机科学学院课程设计成绩评价表课程名称数据结构课程设计题目深度与广度优先搜索:迷宫问题学生姓名学 号指导教 师姓名职称助教序号评价项目指标满分评分1工作量、工作 态度和出勤 率按期圆满的完成为了规定的任务,难易程度和工作 量符 合教学要求,工作努力,遵守纪律,出勤率高 ,工作作风严谨,善于与他人合作。202课程设计质 量课程设计选题合理,计算过程简炼准确,分析问题思 路清晰,结构严谨,文理通顺,撰写规范,图表完备 正确。453创新工作中有创新意识,对前人工作有一些改进或者有 一定应用价值。54答辩能正确回答指导教师所提出的问题。30总分评语:指导教师:年月日【软件课程设计报告目录】h需求分析自动或者手动生成一个的矩阵,针对这个矩阵,程序判断是否能从起点经过迷宫走到终点。若能到达终点,输出路径上的各个结点 若不能到达 则输出失败标志要实现这个程序首先要考虑如何表示这个迷宫 在示例程序中使用二维数组来表示这个迷宫,其中)为迷宫的行、列数。用来表示迷宫,而不是使用来表示迷宫式防止当遍历到迷宫边界是可能跳出迷宫,而是用就可以吧迷宫的外面加一层“墙”即“ ”;找出路时,在每一点都有 中方向可以走:右下,右,下,右上,左下,上, 左,左上,在找出路时,最近的路线为对角线,所以设置方向的次序由左下 到右上的顺序可尽量减少查找的次数;方向如图:输入的形式和输入值的范围输入型形式分为两种:一种手动输入的矩阵,第二种为有程序自动生成随机数(函数);输入值的范围"”或者"”分别表示可以走的地方和墙输出形式:输出迷宫,以及程序的运行结果;结果包括有路径和无路径,有路径 时输出路径上的各点,并将路劲以箭头的方式在矩阵上指出;程序所能达到的功能判断输入的矩阵是否有路径由起点到终点,若有路径输出 具体路径,若无则输出失败标志;测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。输入 迷宫规模是范围不当 输出错误 且要求重新输入选择输入方式是错误时,输出选择错误,且要求重新输入;输入矩阵错误时,提示某点输入错误, 且要求重新输入;2艘设计类型的定义:行列 方向存储走过的位置水平方向增量垂直方向增量记录八个方向(右下,右,下,右上,左下,上,左,左上)八个方向迷宫记录数组上的元素是否别访问过定义找到出口时的行和列关系:下图为 ()函数的流程图栈不为空且未 找到路径.读取栈顶元素使其为当前位置PI个方向为全走过且未找到路当前位置挪移东到下一相邻位置走下一方向找到出路当前位置和出口位置入栈 下一位置不为出口位置*当前位置入栈当前位置为下一位置 可以走且没走 不3、御姗分别为:当前位置行、列号,下一位置行、列号,遍历方向标记初始位置初始位置行号初始位置列号定义初始位置遍历方向八个方向具体设置栈不为空且没找到路径栈顶元素出栈将出栈元素作为当前位置八个方向没走完且没找到出路下一位置行号下一位置列号下一位置为终点当前位置入栈;终点入栈;下一位置非墙且没走过标记“下一位置;”“当前位置”入栈;“当前位置”改为“下一位置”初始方向设为第一方向即(遍历下一方向即( )记录节点为输出路径上的第几个节点 输出:找到路径 路径坐标如下:计数输出该节点坐标;记录最后遍历方向的下一方向 具体路径为:初值栈中有该点坐标该点不在路径上,输出输出栈中存储的上一方向未找到路径4、使用娜、麟分析及绪果()使用说明:挨次按照文字提示输入,输入迷宫的方式:手动,自动随 机产生,手动输入“ ”或者” ”分别代表路和墙,输入完成,即可生成 结果;()测试结果与分析;错误矩阵输入数值不当2退2 I. 1误 ;0有 攵R1输 胃一 > 2输1,V N Un或或或的I1.4输入有误I测试结果您的选择是:n 了随机生成方阵:0 01011111 00 001 01101101 00 01 00111 011 0 00 1011 0110 11 0011 0()调试过程中遇到的问题是如何解决提以及对设计与实现的回顾讨论和 分析;()运行界面。没有找到路径:c:声动物人方阵,任 近机生成方阵,请退出程序,请按X或未找到路径”安丫或