迷宫课程设计报告

迷宫课程设计报告

ID:9937196

大小:471.00 KB

页数:17页

时间:2018-05-16

迷宫课程设计报告_第1页
迷宫课程设计报告_第2页
迷宫课程设计报告_第3页
迷宫课程设计报告_第4页
迷宫课程设计报告_第5页
资源描述:

《迷宫课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、西安郵電大學数据结构课程设计报告题目:迷宫问题院系名称:计算机学院专业名称:软件工程班级:1101学生姓名:武妍娜学号(8位):指导教师:李培设计起止时间:2012年12月3日~2012年12月14日一.设计目的1.熟悉C语言程序的编辑、编译链接和运行的过程,能够熟练地编辑、编译及调试程序。2.掌握文件和文件指针的概念以及文件的定义方法,学会熟练使用文件打开、关闭、读、写等基本操作。3.熟练掌握结构体、链表、指针的使用,及函数间的调用。4.能够熟练运用所学栈的相关知识及操作,顺利完成题目的要求。二.设计内容迷宫是实验心理学中一个古典问题。用计算机解迷宫路径的程序,就是仿照人走迷宫。计算机解

2、迷宫时,通常用的是"穷举求解"的方法,即从入口出发,顺某一方向向前探索,若能走通,则继续往前走;否则沿原路退回,换一个方向再继续探索,直至所有可能的通路都探索到为止。1.功能与数据需求迷宫求解问题描述:以一个M×N的矩阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。1.1题目要求的功能(1)基本要求:首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以二元组(i,j)的形式输出,其中:(i,j)指迷宫中对应的坐标。(2)测试数据:左上角(1,1)为入口,右下角(9,8)为出口。左

3、上角(1,1)为入口,右上角(1,8)为出口。(3)如下图所示:1.2扩展功能(1)编写非递归形式的算法,求得迷宫中所有可能的通路;(2)以方阵形式输出迷宫及其通路2.界面需求(1)在菜单中选择要执行的操作(2)输出方阵迷宫(3)用户自己输入迷宫起始位置(4)输出所走的迷宫路径(5)输出方阵路径,并保存到文件中3.开发环境与运行需求MicrosoftVisualC++6.0Ubuntu三.概要设计主模块1.功能模块图;本程序包含三个模块(1)主程序模块:voidmain(){文件模块栈模块迷宫模块初始化;do{接受命令;处理命令;}while(命令!=“退出”);}(2)栈模块——实现栈抽

4、象数据类型(3)迷宫模块——实现迷宫抽象数据类型2.各个模块详细的功能描述。(1)菜单:从菜单中选择要执行的操作(2)文件模块:实现文件的各项基本操作a)打开文件b)关闭文件c)从文件读信息d)向文件中写入内容(3)栈模块:实现栈的各项基本操作a)初始化栈b)入栈c)出栈d)取栈顶元素(4)迷宫模块:求解迷宫问题a)显示迷宫b)获取迷宫路径c)判断当前路径是否走过d)获得下一个可走的位置e)获得东面,南面,西面,北面相邻的位置四.详细设计1.功能函数的调用关系图打开源文件输出迷宫路径判断当前路径是否走过显示迷宫主函数入栈出栈获得迷宫路径初始化栈菜单获得下一个可走的位置显示迷宫路线保存迷宫路

5、线取栈顶元素开始2.各功能函数的数据流程图MStackElemstart,cur;p2=head;(1)获得迷宫路径函数cur=start;dowhile(cur.x!=chukou[0]

6、

7、cur.y!=chukou[1])当前位置是否走过Push(&realPath,cur)Push(&path,cur);cur=GetNext(cur);cur=GetNext(cur);是否elseifcur.val==-1Push(&realPath,cur)Push(&path,cur);return1;ifcur.x==chukou[0]&&cur.y==chukou[1]Pop(&realP

8、ath);cur=GetTop(&realPath)开始(2)获得下一个可通行的位置GetEast(cur).val==''&&UnPass(path,GetEast(cur))GetWest(cur).val==''&&UnPass(path,GetWest(cur))MStackElemnext;next.x=next.y=next.val=-1;ifelseifGetNorth(cur).val==''&&UnPass(path,GetNorth(cur))GetSouth(cur).val==''&&UnPass(path,GetSouth(cur))elseifelseifnex

9、t=GetSouth(cur);next=North(cur);next=GetEast(cur);next=GetEast(cur);3.重点设计及编码获得迷宫路径的函数:intGetMazePath(){MStackElemstart,cur;start.x=rukou[0];start.y=rukou[1];start.val=Maze[rukou[0]][rukou[1]];cur=start;do{if(UnP

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。