实训报告 实训题目:迷宫问题 学 院:计算机科学与信息学院 专 业:计算机科学与技术专业 班 级: 学 号: 学生姓名: 指导教师: 2012年 6 月 29 日 一、实训目的及要求 数据结构是计算机课程的一门重要的基础课,它 的教学要求大致有三个重要方面:其一就是让学生学会分析研究计算机加工的数据对象的特性,以便为数据选择适 当的物理结构和逻辑结构;其二,根据结构,选择 适当的算法,并初步掌握算法的时间分析和空间分析;其三,学习复杂的程序设计。本综合实训利用Visual Studio 2008 集成编程环境为实践工具,通过上机实践培养学生分析具体问题、解决实际问题的能力,训练和培养学生的数据抽象能力和程序设计的能力。 数据结构是一门实践性较强的课程,以养学生的数据抽象能力和程序设计的能力为目的。在实训时应注重培养学生的实际操作能力。本综合实训安排了 20 学时的实验课时,完成4 次上机作业。具体要求如下: 1. 学习和理解每个实训题目的基本理论和方法; 2. 掌握每个实验的实现步骤和关键技术; 3. 准备好实验所需要的资源和文档; 4. 上机实现程序,得到通过调试的正确程序。 5. 根据每个实验的不同要求,完成实验报告的word文档。 二、实训环境 Window s XP Visual Studio 2010 三、实训内容 迷宫求解: (1) 迷宫的提供: A、可由运行过程中,用户自己输入迷宫 B、在文件或者程序中存储多个迷宫结构,运行时随机抽取 C、在文件或者程序中存储多个迷宫结构,运行时可以随机抽取。用户也可以选择添加迷宫,增加文件或者程序中的迷宫库。 (2) 设计算法完成迷宫问题的求解; 图形显示迷宫的过程,并将最后结果输出。 一旦发现没有出口,程序显示无出口 四、算法描述及实训步骤 本项目要实现两个主要功能:迷宫设计和求解 附加一些其他功能 搜索算法流程图如下所示: 五、总结及心得体会 这个课题主要体现了栈和队列的应用,要对队列有很好的理解,入队出队的应用,还有就是对节点的存储,这样才能实现下一步 六、实训结果 七、源代码: #include"stdlib.h" #include"stdio.h" #define N 39 #define M 39 int X; int maze[N+2][M+2]; struct point{ int row,col,predecessor; }queue[512]; int head=0,tail=0; void shoudong_maze(int m,int n){ int i,j; printf("\n\n"); printf("请按行输入迷宫,0表示通路,1表示障碍:\n\n"); for(i=0...