网站大量收购独家精品文档,联系QQ:2885784924

程序设计实验要点讲解.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
兰州商学院陇桥学院 工学系课程设计报告 设 计 题 目:迷宫与栈问题 系 别:工 学 系 专 业 (方 向): 年 级、 班: 学 生 姓 名: 学 生 学 号: 指 导 教 师: 目录 一、系统开发的背景 1 二、系统分析与设计 1 (一)系统的分析 1 (二)系统的具体分析设计 2 三、系统的功能要求 2 (一)系统模块结构设计 3 四、系统的设计与实现 4 (一)在栈中实现迷宫的具体操作 4 (二)栈的生成 6 (三)整个系统的生成流程图……………………………………………………………….8 五、系统测试 9 (一)测试迷宫与栈问题可通的程序设计…………..……………………………………….…….9 (二)测试迷宫与栈问题不可通的程序设计…………………………………………..…..10 六、 总结………………………………………………………………………………………………...10 七、附件(代码、部分图表) 11 迷宫与栈问题 一、系统开发的背景 迷宫与栈问题的课程设计相当于是一个小游戏的开发,它来源于多年以来,迷宫问题一直是令人感兴趣的题目。实验心理学家训练老鼠在迷宫中寻找食物。许多神秘主义小说家也曾经把英国乡村花园迷宫作为谋杀现场。于是,老鼠过迷宫问题就此产生,这是一个很有趣的计算机问题,主要利用 “栈”是老鼠通过尝试的办法从入口穿过迷宫走到出口。迷宫只有两个门,一个叫做入口,另一个叫做出口。把一只老鼠从一个无顶盖的大盒子的入口处赶进迷宫。迷宫中设置很多隔壁,对前进方向形成了多处障碍,在迷宫的唯一出口处放置了一块奶酪,吸引老鼠在迷宫中寻找通路以到达出口。求解迷宫问题,即找出从入口到出口的路径。而数据结构则是数据的组织形式,可以用来表示特定的对象数据,在计算机中对数据的一种存储和组织形式,因此选用栈思想实现迷宫游戏的基本操作,也是我开发迷宫小游戏的基本背景。 系统分析与设计 系统分析: 迷宫问题通常是用“穷举求解”方法解决,即从入口出发,顺着某个方向进行搜索,若能走通,则继续往前走;否则沿着原路退回,换一个方向继续探索,直至出口位置,求得一条通路。假如所有可能的通路都探索到而未能到达出口,则所设定的迷宫没有通路。栈是一个后进先出的结构,可以用来保存从入口到当前位置的路径。定义迷宫类型来存储迷宫数据,通常设定入口点的下标,出口点的下标,为处理方便起见,在迷宫的周围加一圈障碍,对于迷宫任何一个位置均约定为东、西、南、北四个方向可同。 系统具体设计 在某个点上,按照一定的顺序(在本程序中顺序为上、右、下、左)对周围的墙、路进行判断(在本程序中分别用1、0)代替,若周围某个位置为0,则移动到该点上,再进行下一次判断;若周围的位置都为1(即没有通路),则一步步原路返回并判断有无其他通路,然后再次进行相同的判断,直到走到终点为止,或者确认没有任何通路后终止程序。 要实现上述算法,需要用到栈的思想。栈里面压的是走过的路径,若遇到死路,则将该位置(在栈的顶层)弹出,再进行下一次判断;若遇到通路,则将该位置压栈并进行下一次判断。如此反复循环,直到程序结束。此时,若迷宫有通路,则栈中存储的是迷宫通路坐标的倒序排列,再把所有坐标顺序打印后,即可得到正确的迷宫通路。 系统功能要求 首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非归程序。求得的通路以三元组(i,j,d)的形式输出。其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。如,对于下列数据的迷宫,输出一条通路为:(1,1,1),(1,2,2),(2,2,2),(3,2,3),(3,1,2),…。 编写递归形式的算法,求得迷宫中所有可能的通路。 以方阵形式输出迷宫及其通路。 (一)系统模块结构设计 通过对系统功能的分析,迷宫与栈问题的功能如图1所示。 图1: 迷宫实现的主函数功能图 通过上图的功能分析,把整个系统划分为2个模块: 通过栈后进先出的结构,实现栈判断,首先判断栈是否为空,如果不为空,则实现栈中基本的入栈,出栈的实现。顺序栈是用一组地址连续的 内存单元依次保存栈中的运算规则,在链式存储中链表首部head指针所指向元素为栈顶元素,栈表尾部指向地址为NULL为栈底。 借助函数的嵌套与使用,由while语句对整体进行控制,return语句控制跳出函数,判断在迷宫中是否有出路,如果有出路,则通过东,西,南,北的方

文档评论(0)

我是兰花草 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档