c#数据结构课程设计-用栈求解迷宫问题

c#数据结构课程设计-用栈求解迷宫问题

ID:8315266

大小:259.00 KB

页数:22页

时间:2018-03-18

c#数据结构课程设计-用栈求解迷宫问题_第1页
c#数据结构课程设计-用栈求解迷宫问题_第2页
c#数据结构课程设计-用栈求解迷宫问题_第3页
c#数据结构课程设计-用栈求解迷宫问题_第4页
c#数据结构课程设计-用栈求解迷宫问题_第5页
资源描述:

《c#数据结构课程设计-用栈求解迷宫问题》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、嘉兴学院课程设计《数据结构C#》课程设计题目用栈求解迷宫问题班级组长姓名学号组员姓名学号组员姓名学号组员姓名学号指导教师编写日期22嘉兴学院课程设计目录摘要2第1节课程设计题目2第2节课程设计内容22.1需求分析22.2实验目的32.3实验要求3第3节求解迷宫过程其原理4第4节课程设计实验步骤5第5节项目测试65.1测试过程出现的错误以及原因65.2测试数据截图7第6节项目代码9第7节课程设计实验小结2022嘉兴学院课程设计摘要数据结构课程设计是学习数据结构课程的一个重要环节。能巩固和加深课堂教学内容,提高学生实际工作能力,培养科学作风,为学习后续课

2、程和今后的系统开发奠定基础。通过课程设计,使学生熟练掌握数据结构课程中所学的理论知识,并实际应用,通过综合运用数据结构的基本知识来解决实际问题,加强学生分析和解决问题的能力。课程设计比教学实验更复杂一些,深度更广并更加接近实际应用。通过课程设计的综合训练,培养我们学生实际分析问题、编程和动手能力,最终帮助我们学生系统把握课程的主要内容,更好地完成教学任务。第1节课程设计题目题目:用栈求解迷宫问题第2节课程设计内容2.1需求分析迷宫问题通常是用“穷举求解”方法解决,即从入口出发,顺着某一个方向进行探索,若能走通,则继续往前走;否则沿着原路退回,换一个方

3、向继续探索,直至出口位置,求得一通路。假如所有可能的通路都探索到而未能到达出口,则所设定的迷宫没有通路。栈是一个后进先出的结构,可以用来保存从入口到当前位置的路径。定义迷宫类型来存储迷宫数据,通常设定入口点的下标为(1,1),出口点的下标为(n,n)。为处理方便起见,在迷宫的四周加一圈障碍22嘉兴学院课程设计1.1实验目的(1)了解回溯法在求解迷宫问题中的应用。(2)进一步了解栈的应用1.2实验要求设计一个项目求解迷宫问题的所有路径。要求如下:(1)迷宫最外围一圈都是不可走的(2)从一个方块出发一步只能走其相邻的上、下、左、右4个方块中的一个可走方块

4、。(3)根据用户要求设置一个M*N的迷宫(M、N<=10)以及迷宫的入口和出口。(4)提供“找路径”命令按钮,通过单击显示第一条迷宫路径。(5)提供“找下一条路径”命令按钮,单击它一次显示一下条迷宫路径,直到所有的迷宫路径显示完毕。(6)如下图所示是用户设置一个8*8的迷宫,入口为(1,1),出口为(5,5),单击“找回路”命令按钮显示第一条迷宫路径,当单击“找下一条路径”命令按钮显示第二条迷宫路径,如此操作直到显示出所有的迷宫路径。22嘉兴学院课程设计第1节求解迷宫过程其原理求解迷宫(xi,yi)到(xe,ye)路径的过程是:先将入口进栈(其初始方

5、位设置为-1),在栈不空时循环:取栈顶方块(不退栈),若该方块是出口,则输出栈中所有方块即为路径。否则,找下一个可走的相邻方块,若不存在这样的方块,说明当前路径不可能走通,则回溯,也就是恢复当前方块为0后退栈。若存在这样的方块,则将其方位保存到栈顶元素中,并将这个可走的相邻方块进栈(其初始方位设置为-1)。22嘉兴学院课程设计第1节课程设计实验步骤(1)新建一个windows应用项目“迷宫_栈”。(2)设计本项目对应的窗体Form1,其设计界面如下图所示。窗体上首先显示的是一个默认的10*10迷宫图(每个方块用一个命令按钮表示,白色表示可走,蓝色表示

6、不可走),其操作步骤如下:①用户输入行数m和列数n(m、n取值在4~10之间,包含4和10),单击“设置行列确定”吗,命令按钮,迷宫根据用户输入变成一个m*n迷宫图。②用户可以点击迷宫图中的方块命令按钮改变其颜色,定制完成后单击“设置迷宫确定”命令按钮。③用户设置入口和出口方块位置。④单击“找路径”命令按钮,如果存在迷宫路径,则在迷宫图中显示第一条迷宫路径,迷宫路径用浅黄色方块标记,“☻”表示方块入口,“☺”表示方块出口,迷宫路径上的方块箭头表示路径走向。⑤如果要下一条迷宫路径,单击“找下一跳路径”命令按钮,如果存在下一条迷宫路径,则在迷宫图中显示该

7、迷宫路径,如果照完了所有迷宫路径,则显示相应的提示信息。22嘉兴学院课程设计第1节项目测试1.1测试过程出现的错误以及原因(1)调试过程中出现的错误有编译连接时的一些语法错误,也有由于算法存在问题而导致程序运行没有结果或者不是预期的结果。这里主要说一下自己由于算法而导致的错误:因为没有注意结点不能重复走,所以造成了死循环,程序没有结果。通过分析后把走过的结点变为不可走的结点,这样就避免了重复走到该结点。还有就是判断迷宫是否有通路的这个结果不能如预期的结果那样:有通路就输出所有的通路,没有就输出“未找到迷宫路径”22嘉兴学院课程设计。因为没有通路可走的

8、时候栈是空的,但是输出所有的路径以后栈也是空的。当迷宫有通路的时候,在输出所有路径以后还是会输出“未找到迷宫

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。