ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:127.92KB ,
资源ID:3729681      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-3729681.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(迷宫问题 有源代码Word格式文档下载.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

迷宫问题 有源代码Word格式文档下载.docx

1、从键盘输入迷宫1表示墙0表示通路,并把01存入结构体m1中用flag表示通路初始化通路的标志域。(2)inread();/从文件读出迷宫事先已将迷宫存入文件中,从文件读出迷宫1表示墙0表示通路,并把01存入结构体m1中用flag表示通路初始化通路的标志域。(3)zoumigong();/走迷宫 根据m1判断该坐标四周如果为墙并且标志域为0则可走,将该坐标入栈,将其标志域更改为1,更新坐标,继续判断,知道更新坐标等于出口坐标.栈中存放就是通路的逆序坐标。(4)print1()/以坐标形式输出将栈中坐标出栈,存入数组中以坐标形式输出。(5)print2()/以矩阵形式输出将栈中坐标出栈,存入数组中

2、以矩阵形式输出。四详细设计1功能函数的调用关系图2各功能函数的数据流程图该坐标西边可有通路,该坐标入站,标志域赋1,更新坐标3重点设计及编码 typedef struct int mg200; int top;seqstack;typedef struct migong int m1;/存放墙 int flag;/标志域smaze2020;int empty(seqstack &s)/判栈空 if(s.top=-1) return 0; else return 1;void pop(seqstack &s,int &x1)/出栈 return ; x1=s.mgs.top; s.top-;vo

3、id push(seqstack &s,int y1,int x1)/入栈 if(s.top=20) s.top+; s.mgs.top=y1; s.mgs.top=x1;void zumigong(seqstack &stack,smaze &maze,int &m,int &n)/走迷宫 int i,j,cout; int x1,a,b,y1,x,y,x2,y2; printf(输入入口的横纵坐标,空格隔开n); scanf(%d %d,&x,&y);输入出口的横纵坐标,空格隔开nx2,&y2); for(i=0;i=m+1;i+) for(j=0;j=n+1;j+) if(mazeij.

4、m1=1) printf( else printf(n x1=x; y1=y; if(mazex1y1.m1=1)此路不通: return ; if(mazex2y2.m1=1)入口为墙。请重新输入n else while(x1!=x2|y1!=y2) if(mazex1y1+1.m1=0&mazex1y1+1.flag=0) cout=0; else if(mazex1+1y1.m1=0&mazex1+1y1.flag=0) cout=1; else if(mazex1-1y1.m1=0&mazex1-1y1.flag=0) cout=2; else if(mazex1y1-1.m1=0&m

5、azex1y1-1.flag=0) cout=3; else cout=4; switch(cout) case 0: a=x1; b=y1; mazex1y1.flag=1; y1=y1+1; push(stack,b,a);/列先入 break; case 1: x1=x1+1; case 2: x1=x1-1; case 3: y1=y1-1; case 4: if(empty(stack)!=0) pop(stack,x1); pop(stack,y1); break; printf(此路没有通路: return ; push(stack,y2,x2);五测试数据及运行结果1.正常测试

6、数据和运行结果1测试数据2,运行结果 1.坐标形式 2.矩阵形式3文件保存结果2. 异常测试数据及运行结果六调试情况,设计技巧及体会1改进方案 设置标志域使访问判断坐标更方便。2.体会 通过这段时间的课程设计,本人对计算机的应用,数据结构的作用以及C语言的使用都有了更深的了解。尤其是C语言的进步让我深刻的感受到任何所学的知识都需要实践,没有实践就无法真正理解这些知识以及掌握它们,使其成为自己的财富。在理论学习和上机实践的各个环节中,通过自主学习和请教老师,我收获了不少。当然也遇到不少的问题,也正是因为这些问题引发的思考给我带了收获。从当初不喜欢上机写程序到现在能主动写程序,从当初拿着程序不只如

7、何下手到现在知道如何分析问题,如何用专业知识解决实际问题的转变,我发现无论是专业知识还是动手能力,自己都有很大程度的提高。在这段时间里,我对for、while等的循环函数用法更加熟悉,逐渐形成了较好的编程习惯。在老师的指导帮助下,同学们课余时间的讨论中,这些问题都一一得到了解决。在程序的调试能力上,无形中得到了许多的提高。例如:头文件的使用,变量和数组的范围问题,定义变量时出现的问题等等。在实际的上机操作过程中,不仅是让我们了解数据结构的理论知识,更重要的是培养解决实际问题的能力,所以相信通过此次实习可以提高我们分析设计能力和编程能力,为后续课程的学习及实践打下良好的基础。在这次短短的课程实践

8、里,我们得到了李培老师的关心和帮助。她给了我们很多的信息,与我们一起探讨问题,询问我们遇到了哪些问题并耐心给予指导。当我们遇到技术上难以解决的问题时,她就会指导我们解决问题七参考文献数据结构C语言描述耿国华主编,高等教育社出版。#includestdlib.htypedef structvoid inista(seqstack &s) s.top=-1;x1)s,int y1,int x1)void inread(smaze &maze,int m,int n) char name20; int i,j; printf(输入存放迷宫的文件名n scanf(%s,name); FILE *fp=

9、fopen(name,rt if(fp=NULL) n打开文件%s失败n exit(1); for(i=1;m+1;i+) for(j=1;n+1; fscanf(fp,%d mazeij.m1); if(mazeij.m1=0) mazeij.flag=0; else mazeij.flag=1; fclose(fp); for(i=0; mazei0.m1=1; mazei0.flag=1;/加两堵列墙 mazein+1.m1=1; mazein+1.flag=1; for(j=0;j+) /加两堵行墙 maze0j.m1=1; mazem+1j.m1=1; maze0j.flag=1;

10、mazem+1j.flag=1;n)void print1(seqstack stack) int s120,s220,i=0,j=0,n=0; while(stack.top!=-1) n+; pop(stack,s1i); pop(stack,s2i); i+; j+; 以坐标形式输出迷宫路径n迷宫路径为: for(i=n-1;i=1;i-) ,s1i,s2i);%d %d,s10,s20);请输入要保存路径的文件名nwb fprintf(fp,迷宫路径:=0; fprintf(fp, 已成功保存于%s文件中void print2(seqstack & int s120,s220,i=0,

11、j=0,n1,n2; pop(stack,s2j); n1=s1i; n2=s2j; mazen1n2.flag=2;以形象的矩阵形式输出迷宫路径 表示走过的痕迹 表示迷宫路径n如下所示n if(mazeij.m1=0&mazeij.flag=0)mazeij.flag=1)mazeij.flag=2)void savefile(smaze maze,int &n) 输入迷宫:=m;=n; scanf(%d if(mazeij.m1=1)请输入保存的文件名:wt printf( fprintf(fp,mazeij.m1); fputc(n,fp);int print() int i; n 软件1班 付 添 nn 欢迎进入迷宫系统 nn 从键盘输入迷宫 nn 从文件读出迷宫 nn 走迷宫 nn 以坐标形式输出迷宫路径 nn 以形象的矩阵形式表示路径 nn 10退出走迷宫系统 nn 输入你要执行的功能序号 nnni); return i;int main() seqstack stack; inista(stack); int m,n,f; smaze maze; while(f!=10

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2