- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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语句控制跳出函数,判断在迷宫中是否有出路,如果有出路,则通过东,西,南,北的方
您可能关注的文档
- 4——厂拌热再生要点讲解.doc
- 2002.4.18职业病范围和职业病患者处理办法的规定要点讲解.doc
- Zeta电位仪测试简化过程要点讲解.doc
- 阿里巴巴操作全攻略要点讲解.doc
- 癌症病人的心理反应及护理要点讲解.doc
- 艾瑞克森催眠要点讲解.doc
- 艾滋病的流行情况及危害要点讲解.doc
- 艾滋病知识百问要点讲解.doc
- 爱爱医资源-临床输血和抗生素应用管理要点讲解.doc
- 爱威AVE76系列(2.0版)尿液有形成分仪标准化维护保养程序【SOP】要点讲解.doc
- 岸基供电系统 第4部分:工频电源.pdf
- 人教版八下英语Unit 5 What were you doing when the rainstorm came_测试卷.docx
- 热带作物品种区域试验技术规程 木薯.pdf
- 草原防火阻隔带建设技术规程.pdf
- 渔用气胀救生筏技术要求和试验方法-.pdf
- 浙江省杭州市2024-2025学年八年级下学期期中考试英语试卷(含答案).docx
- 重庆市渝北区六校联盟2024-2025学年九年级下学期期中教学大练兵语文试卷.docx
- 食品安全-花椒籽油 (2).pdf
- 2025年海博思创分析报告:储能集成“小巨人”,国内外业务进展可期.pdf
- 地理标志产品 宽城板栗.pdf
文档评论(0)