- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C数据结构课程设计用栈求解迷宫问题
目录
摘要 2
第1节 课程设计题目 2
第2节 课程设计内容 2
2.1 需求分析 2
2.2 实验目的 3
2.3 实验要求 3
第3节 求解迷宫过程其原理 4
第4节 课程设计实验步骤 5
第5节 项目测试 6
5.1 测试过程出现的错误以及原因 6
5.2 测试数据截图 7
第6节 项目代码 9
第7节 课程设计实验小结 20
摘要
数据结构课程设计是学习数据结构课程的一个重要环节。能巩固和加深课堂教学内容,提高学生实际工作能力,培养科学作风,为学习后续课程和今后的系统开发奠定基础。通过课程设计,使学生熟练掌握数据结构课程中所学的理论知识,并实际应用,通过综合运用数据结构的基本知识来解决实际问题,加强学生分析和解决问题的能力。课程设计比教学实验更复杂一些,深度更广并更加接近实际应用。
通过课程设计的综合训练,培养我们学生实际分析问题、编程和动手能力,最终帮助我们学生系统把握课程的主要内容,更好地完成教学任务。
课程设计题目
题目:用栈求解迷宫问题
课程设计内容
需求分析
求解迷宫过程其原理
求解迷宫(xi,yi)到(xe,ye)路径的过程是:先将入口进栈(其初始方位设置为-1),在栈不空时循环:取栈顶方块(不退栈),若该方块是出口,则输出栈中所有方块即为路径。否则,找下一个可走的相邻方块,若不存在这样的方块,说明当前路径不可能走通,则回溯,也就是恢复当前方块为0后退栈。若存在这样的方块,则将其方位保存到栈顶元素中,并将这个可走的相邻方块进栈(其初始方位设置为-1)。
课程设计实验步骤
(1)新建一个windows应用项目“迷宫_栈”。
(2)设计本项目对应的窗体Form1,其设计界面如下图所示。窗体上首先显示的是一个默认的10*10迷宫图(每个方块用一个命令按钮表示,白色表示可走,蓝色表示不可走),其操作步骤如下:
①用户输入行数m和列数n(m、n取值在4~10之间,包含4和10),单击“设置行列确定”吗,命令按钮,迷宫根据用户输入变成一个m*n迷宫图。
②用户可以点击迷宫图中的方块命令按钮改变其颜色,定制完成后单击“设置迷宫确定”命令按钮。
③用户设置入口和出口方块位置。
④单击“找路径”命令按钮,如果存在迷宫路径,则在迷宫图中显示第一条迷宫路径,迷宫路径用浅黄色方块标记,“?”表示方块入口,“?”表示方块出口,迷宫路径上的方块箭头表示路径走向。
⑤如果要下一条迷宫路径,单击“找下一跳路径”命令按钮,如果存在下一条迷宫路径,则在迷宫图中显示该迷宫路径,如果照完了所有迷宫路径,则显示相应的提示信息。
项目测试
测试过程出现的错误以及原因
(1)调试过程中出现的错误有编译连接时的一些语法错误,也有由于算法存在问题而导致程序运行没有结果或者不是预期的结果。这里主要说一下自己由于算法而导致的错误:因为没有注意结点不能重复走,所以造成了死循环,程序没有结果。通过分析后把走过的结点变为不可走的结点,这样就避免了重复走到该结点。还有就是判断迷宫是否有通路的这个结果不能如预期的结果那样:有通路就输出所有的通路,没有就输出“未找到迷宫路径”。因为没有通路可走的时候栈是空的,但是输出所有的路径以后栈也是空的。当迷宫有通路的时候,在输出所有路径以后还是会输出“未找到迷宫路径”这句话。当迷宫没有通路的时候,输出“未找到迷宫路径”这句话。因为算法的思想是这样的,所以达不到预期的结果。解决的方法是如果迷宫有通路则输出所有的通路,如果迷宫没有通路,则没有结果输出。
(2)迷宫的求解一般采用的是“穷举求解”,利用栈的思想,先将入口位置进栈,判断方向,若其方向可通,则进栈,若不通,则出栈,如此循环下去。
测试数据截图
项目代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Maze2
{
public partial class Form1 : Form
{
const int M = 10;
const int N = 10;
const int MaxSize = 100;
struct Box //定义方块结构体类型
{
public int i; //当前方块的行号
public int j; //当前方块的列号
publi
您可能关注的文档
- 2011年5月8日-江苏省高速公路生态绿化施工标准化管理指南.doc
- 2011年中医综合中药学笔记.doc
- 2011年一级建造师《市政实务》超强小抄总结.doc
- 2011年全国初中数学竞赛试题及答案(练习检测试题卷).doc
- 2011年全国各地中考英语试题分类汇英语阅读理解.doc
- 2011年公路水运工程试验检测人员考试检测员考试习题及答案10.doc
- 2011年公路监理工程师考试《合同管理》(精华版).doc
- 2011年山东省建设工程工程量清单计价规则表格样式.doc
- 2011年教师招聘考试试题教育学心理学考试试题及答案.doc
- 2011年中考数学试题及答案解析贵州贵阳中考数学试卷试题试卷.doc
文档评论(0)