软件技术基础-Read.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件技术基础-Read.doc

软件技术基础 课程设计实验报告 题目: 院系:信息科学与工程学院 班级:通信工程0407班 姓名: 学号: 指导老师:郭丽梅 2007年4月 日 目录 一.问题描述………………………………………………………………… 二.基本要求………………………………………………………………… 三.数据结构的设计…………………………………………………………… 四.软件模块结构图…………………………………………………………… 五.程序设计思想……………………………………………………………… 六.程序流程图………………………………………………………………… 七.源程序……………………………………………………………………… 八.调试分析…………………………………………………………………… 九.测试数据…………………………………………………………………… 十.用户使用手册……………………………………………………………… 十.心得体会…………………………………………………………………… 问题描述: 从迷宫的入口开始寻找一条到出口的路径。要求显示迷宫的布局,及找到的路径(最好显示寻找路径的过程)。走到某一步后,假定往下有四个方向的可能,即上、下、左、右四个方向。 二、基本要求: 要求能够显示迷宫的整体布局,而且可以从迷宫的入口开始寻找一条到出口的路径。在显示迷宫的布局之后,再次按任意键就可以显示找到最短的路径。其中迷宫有围墙的地方均用数字1来表示,所有空白的地方均用数字0来表示,在按下任意键之后显示的路径用数字5来表示,要求尽量做到清晰明了,可以简单的看出来路径。 三、数据结构的设计 1、本程序实现迷宫的探索过程. 以用户和计算机对话的方式,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令,然后程序就探索路径并输出路径。 2、本演示程序中,输入形式以“回车符”为结束标志,且允许出现重复字符。 3、利用二维指针实现迷宫位置的存储,并用栈存贮探索路径,每个结点含三个整形变量。输入的形式以回车结束。 4、本程序中,用户可以读去文件里的迷宫,也可自己重新输入迷宫,而且用户可以输入任意大小的迷宫,然后程序自动探索路径,并输出迷宫的路径 5、测试数据 1,1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,0,1,0,1 1,0,0,1,0,0,0,1,0,1 1,0,0,0,0,1,1,0,0,1 1,0,1,1,1,0,0,0,0,1 1,0,0,0,1,0,0,0,0,1 1,0,1,0,0,0,1,0,0,1 1,1,1,1,1,1,1,1,0,1 1,1,0,0,0,0,0,0,0,1 1,1,1,1,1,1,1,1,1,1 四、软件模块结构图: 五、程序设计思想: 1. 在一个迷宫中,中间的0位置都有四个可选择的方向,而在四个顶点只有两个方向,并且每个顶点的方向均有差别,每条边线上除顶点之外的每个位置只有三个方向,并且也都有差别。为了在求解迷宫问题的算法中避免判断边界条件和进行不同处理的麻烦,使每一个方格都能按四个方向移动,利用一个二维数组C[10][10]可在迷宫的周围镶上边框,在边框的方格里填上1作为墙壁。 当从迷宫中的一个位置(称它为当前位置)前进到下一个位置时,下一个位置相对于当前的位置的位移量(包括行位移量和列位移量)随着前进方向的不同而不同,东、南、西、北(即右、下、左、上)各方向的位移量依次为(-1,0),(0,1),(0,-1),(1,0)。 2.为了寻找从入口点到出口点的一条通路,首先从入口点出发,按照右、下、左、上各方向的次序试探前进,若向右可通行,同时没有被访问过,则向右前进一个方格;否则表明没有通向出口的路径,接着应向下方向试着前进,若向下可通行同时没有被访问过,应向下前进一步,否则依次向左和上试探。若试探完当前位置上的所有方向后都没有通路,则应退回一步,从到达该当前位置的下一个方向试探着前进,如到达该当前位置的方向为右,则下一个方向为下。因此每前进一步都要记录其上一步的坐标位置及前进到此步的方向,以便退回之用,这正好可用栈来解决,每前进一步时,都把当前位置和前进方向进栈,接着使向前一步的新位置成为当前位置,若从当前位置无法继续前进时,就做一步退栈操作,从上一次的下一个方向试探着前进。若当前位置是出口点时,则表明找到了一条从入口点到出口点的路径,应结束算法执行,此时路径上的每个方格均被记录在栈中。若做退栈操作时栈为空,则表明入口点也已经退栈并且其所有方向都已访问过,没有通向出口点的路径,此时应结束算法,打印出无通路信息“No access to go out”。 六.程序流程图:

文档评论(0)

wendang_12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档