校园导游系统试验汇报

上传人:豆*** 文档编号:133663740 上传时间:2022-08-10 格式:DOCX 页数:10 大小:19.18KB
返回 下载 相关 举报
校园导游系统试验汇报_第1页
第1页 / 共10页
校园导游系统试验汇报_第2页
第2页 / 共10页
校园导游系统试验汇报_第3页
第3页 / 共10页
点击查看更多>>
资源描述
校园导游系统试验汇报 篇一:校园导游试验汇报1校园导游试验汇报学号:202130457018姓名:熊博班级:09计科1班完成日期:2021-12-211、问题描述制作陶瓷学院的校园导游图,游客经过终端可问询:(1)从某一景点到另一景点的最短路径。(2)游客从公园进入,选择一条最好路线3,使游客能够不反复地游览各景点,最终回到出口(出口就在入口处旁边)2、要求(1)将导游图看作一张带权无向图,顶点表示公园的各个景点,边表示各景点之间的道路,边上的权值表示距离。为此图选择合适的数据结构。(2)把多种路径全部显示给游客,由游客自己选择游览路线。(3)画出景点分布图于屏幕上。3、实现提醒(1)第一实际是最短路径问题,假如有几条路径长度相同,可选择路径景点较少的路径提供给游客。(2)第二问可采取深度优先搜索,假如有多个路径可选择,则选择带权路径最小的路线提供给游客。2.概要设计:typedef struct ArCellint adj; /路径长度ArCell,AdjMatrixMAX_VERTEX_NUMMAX_VERTEX_NUM;typedef struct/图中顶点表示关键景点,存放景点的信息char name30;int num;int x;int y;char introduction500;/介绍infotype;typedef structinfotype vexsMAX_VERTEX_NUM;AdjMatrix arcs;int vexnum,arcnum;MGraph;MGraph b;void dij(MGraph * ); 计算出起点到其它各个顶点之间的最短路径void floyd(MGraph * ); 计算任意两个景点之间的最短路径void Search(MGraph *G); 查看景点信息void jdbrowser ; 查看关键景点布局图3.具体设计:main函数:void mainint k;system(color cf);system(mode con: cols=140 lines=130);b=InitGraph ;system(cls);printf(欢迎您进入景德镇陶瓷学院学校园导游咨询系统n);printf(ttn);Sleep(1000);dowhile(1)printf(n);printf( 关键景点列表 n);printf(n);printf( 操场 游泳馆 n);printf( 3教 体育馆 n)(转自:wWw.XiAocAoFanWeN.cOm 小 草 :);printf( 2教 1教 n);printf( 图书馆 2实验楼n);printf( 9试验楼 医院 n);printf( 东西办 9#宿舍楼 n);printf( 综合食堂 二三食堂 n);printf( 80广场大门n);printf( n);printf(ttn);printf(n);printf(1.查看关键景点布局图 n);printf(2.查看景点信息 n);printf(3.查看某一景点到其它景点的最短路径n);printf(4.查看任意两个景点之间的最短路径 n);printf(0.退出系统n);printf(n);printf(请输入您的选择选择,按回车键结束:);scanf(%d,&k);if(k5)printf(输入有误请重新输入,按回车键结束!n);scanf(%d,&k);else break;switch(k)case 1:jdbrowser ;system(cls);break;case 2:Search(&b);system(cls);break;case 3:dij(&b);system(cls);break;case 4:floyd(&b);system(cls);break;case 0:exit(0);while(1);图形初始化函数:MGraph InitGraphMGraph G;int i,j;G.vexnum=17;G.arcnum=19;for(i=0;iG-vexnum) printf(景点编号不存在!请重新输入景点编号:); scanf(%d,&v0);if(v0=0&v0vexnum) flag=0; for(v=0;vvexnum;v+) finalv=0;/初始化各顶点访问标志Dv=G-arcsv0v.adj;/v0 到各顶点 v 的权值赋值给dv for(w=0;wvexnum;w+) /初始化p数组,各顶点间的路径全部设置为空路径0 pvw=0;if(Dvvexnum;i+) /对其他g.vexnum-1个顶点w,依次求 v 到 w 的最短路径 min=INFINITY;for(w=0;wvexnum;w+)/在未被访问的顶点中,查找和 v0 最近的顶点v if(!finalw) if(Dwvexnum;w+)/修改v0 到其他各顶点w 的最短路径权值dwif(!finalw&(min+G-arcsvw.adjarcsvw.adj; /修改v0 到w 的权值dw for(x=0;xvexnum;x+) /全部v0 到v 的最短路径上的顶点x,全部是v0 到w 的最短路径上的顶点 pwx=pvx; pww=1; for(v=0;vvexnum;v+) /输出v0 到其它顶点v 的最短路径 if(v0!=v) printf(%s,G-vexsv0.name);/输出景点v0 的景点名for(w=0;wvexnum;w+) /对图中每个顶点w,试探w 是否是v0 到v 的最短路径上的顶点 if(pvw&w!=v0) /若w 是且w 不等于v0,则输出该景点 printf(-%s,G-vexsw.name);t+; if(tG-vexnum-1&v0!=v)printf( 总路线长%dmnn,Dv); 五测试数据及运行结果 1正常测试数据和运行结果1.浏览校园全部景点信息:2.查看景点信息:3.输出两个景点间的最短路径2异常测试数据及运行结果1.当输犯错误编号时程序没有反应,继续输入直到输入正确:2.当查询两景点编号相同时的最短路径时,结果以下:篇三:校园导游试验汇报简单校园导游系统的设计和实现本试验的目标是经过对“校园导游”程序的设计和实现来熟练掌握图形结构在实际问题中的应用。 一.问题描述当大家到一个陌生的地方去旅游时,可能找到一个导游为自己在游玩的过程中提供帮助。导游能够提供多个服务,如介绍参观景点的历史背景等相关信息,推荐到下一个景点的最好路径,解答旅游者所提出的有关旅游景点的相关查询等。对于刚刚来到校园的新生,对校园环境不熟悉的情况也是如此,通常全部是高年级的学生充当“校园导游”的角色。假如能够提供一个程序让新生或来访的客人自主地经过和机器的“对话”来取得相关信息的话,将会节约大量的人力和时间,而且所提供的信息应做到尽可能的正确、详尽。一个成功的校园导游程序能够替换现实生活中的这些“校园导游”,更方便大家查询校园相关的信息。此次试验需要开发一个简单的校园导游程序,程序的主体功效以下:显示校园平面图,方便用户直观地看到校园的全景示意图,并确定自己的位置。为用户提供对平面图中任意场所相关信息的查询。 为用户提供对平面图中任意场所的问路查询。 二.数据结构设计因为各个场所经过校园中的道路相连,各个场所和连接它们的道路组成了整个校园的地理环境,因此使用图这种数据结构对它们进行描述。以图中的顶点表示校园内各个场所,应包含场所、名称、代号、介绍等信息;以边表示连接各个场所的道路,应包含道路的代号、路径的长度等信息。顶点和边全部使用结构体定义,整个图的数据结构使用带权的邻接矩阵。以下: typedef structchar *name; int num; char *instr;Vertextype;/定义顶点结构类型 typedef struct int num; int length;Edgetype;/定义边结构类型 typedef struct Vertextype vexsMaxvernum;Edgetype edgesMaxvernumMaxvernum;int vnumber; int enumber;Graph; /以邻接矩阵存放的图的类型 三、功效函数设计 1、图中包含信息的初始化函数原型为void get(Graph &G)分别对图中的各个顶点(场所)的代号、名称、介绍进行赋值;然后对图中的各个边(道路)的长度及代号进行初始化。注意在对路径初始化之前,应首先将全部道路的长度置为最大值,以预防发生越界错误。比如:对“逸夫楼”的顶点信息进行初始化: G.vexs2.num=2;G.vexs2.name=new char(strlen(逸夫楼)+1); strcpy(G.vexs2.name,逸夫楼);n=&河北大学逸夫楼是硕士教学楼,是张逸夫捐献建造而成,建筑宏伟而磅礴,到处闪烁着智慧的光芒; G.vexs2.instr=n;对路径1进行初始化: G.edges01.length=200; G.edges01.num=1; 2、主函数3、求单源点到其它各个场所的最短路径的功效模块函数原型为void shortestpath(Graph G,int v0,int *p,int *D)本模块使用迪杰斯特拉(Dijkstra)算法,该算法的基础思想是:设置两个顶点的集合S和T(T=V-S),集合S中存放已找到最短路径的顶点,集合T中存放目前还未找到最短路径的顶点。初始状态时,集合S中只包含单源点v,然后不停从集合T中选择到顶点v的路径长度最短的顶点u加入到集合S中,集合S中每加入一个新的顶点u,全部要修改顶点V到集合T中剩下顶点的最短路径值,集合T中各个顶点的新的最短路径长度值为原来的最短路径长度值和顶点u的最短路径加上u到该顶点的路径长度中的较小值。此过程不停反复,直到集合T中的顶点全部全部加入到S中为止。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 幼儿教育


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!