数据结构校园导游程序设计合集.docx
《数据结构校园导游程序设计合集.docx》由会员分享,可在线阅读,更多相关《数据结构校园导游程序设计合集.docx(50页珍藏版)》请在三一办公上搜索。
1、数据结构校园导游程序设计合集校园导游程序(c+) 问题描述: 用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。 基本要求: 1、查询各景点的相关信息。 2、查询图中任意两个景点间的最短路径。 3、查询图中任意两个景点间的所有路径。 4、增加、删除、更新有关景点和道路的信息。 /*校园导游程序*/*问题描述 用无向网表示学校的校园景点平面图,图中顶点表示主要景点, 存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景
2、点介绍、游览路径等问题。 游客通过终端可询问: 从某一景点到另一景点的最短路径。 游客从公园进入,选取一条最佳路线。 使游客可以不重复地浏览各景点,最后回到出口。 基本要求 将导游图看作一张带权无向图,顶点表示公园的各个景点,边表示各景点之间的道路, 边上的权值表示距离为此图选择适当的数据结构。 把各种路径都显示给游客,由游客自己选择浏览路线。 画出景点分布图于屏幕上。 实现提示 构造一个无向图G并用邻接矩阵来存储。 利用迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径用二维数组pi来记录, 最短路径长度就用一维数组di存放;i的范围:020。 一维数组have是用来记录最短路径出现顶点的顺
3、序。 根据起点和终点输出最短路径和路径长度。 */ #define INFINITY 10000 /*无穷大*/ #define MAX_VERTEX_NUM 40 #define MAX 40 #include #include #include #include typedef struct ArCell int adj; /路径长度 ArCell,AdjMatrixMAX_VERTEX_NUMMAX_VERTEX_NUM; typedef struct /图中顶点表示主要景点,存放景点的编号、名称、简介等信息, char name30; int num; char introductio
4、n100;/简介 infotype; typedef struct infotype vexsMAX_VERTEX_NUM; AdjMatrix arcs; int vexnum,arcnum; MGraph; MGraph b; void cmd(void); MGraph InitGraph(void); void Menu(void); void Browser(MGraph *G); void ShortestPath_DIJ(MGraph * G); void Floyd(MGraph *G); void Search(MGraph *G); int LocateVex(MGraph
5、 *G,char* v); MGraph * CreatUDN(MGraph *G); void print(MGraph *G); /*/ void main(void) system(color 1f); system(mode con: cols=140 lines=130); cmd; /*/ void cmd(void) int i; b=InitGraph; Menu; scanf(%d,&i); while(i!=5) switch(i) case 1:system(cls);Browser(&b);Menu;break; case 2:system(cls);ShortestP
6、ath_DIJ(&b);Menu;break; case 3:system(cls);Floyd(&b);Menu;break; case 4:system(cls);Search(&b);Menu;break; case 5:exit(1);break; default:break; scanf(%d,&i); MGraph InitGraph(void) MGraph G; int i,j; G.vexnum=10; G.arcnum=14; for(i=0;iG.vexnum;i+) G.vexsi.num=i; strcpy(G.vexs0.name,综合食堂); strcpy(G.v
7、exs0.introduction,新建标准化食堂); strcpy(G.vexs1.name,东西办公楼); strcpy(G.vexs1.introduction,全体教师办公场所,楼高12层,各种设施齐全); strcpy(G.vexs2.name,5号学生宿舍楼); strcpy(G.vexs2.introduction,计算机系男生宿舍楼,苏式建筑); strcpy(G.vexs3.name,医院); strcpy(G.vexs3.introduction,校医院,设施不是很齐全,只能看小病,收费较贵); strcpy(G.vexs4.name,图书馆); strcpy(G.vexs
8、4.introduction,藏书60万册,设施良好,2楼为电子阅览室,环境幽雅); strcpy(G.vexs5.name,足球场); strcpy(G.vexs5.introduction,现代化塑胶跑道,人造草坪,适宜锻炼身体的场所); strcpy(G.vexs6.name,沁园); strcpy(G.vexs6.introduction,绿树成荫,适宜休息和读书); strcpy(G.vexs7.name,主教学楼); strcpy(G.vexs7.introduction,学院最大的教学楼,共5层,环形建筑,适宜学习); strcpy(G.vexs8.name,西教学楼); str
9、cpy(G.vexs8.introduction,学院第二大教学楼,环境较差); strcpy(G.vexs9.name,多媒体楼); strcpy(G.vexs9.introduction,多媒体教学场所,设施先进,环境良好); for(i=0;iG.vexnum;i+) for(j=0;jG.vexnum;j+) G.arcsij.adj=INFINITY; G.arcs01.adj=100; G.arcs02.adj=200; G.arcs06.adj=400; G.arcs17.adj=300; G.arcs23.adj=120; G.arcs36.adj=220; G.arcs34.
10、adj=100; G.arcs45.adj=300; G.arcs49.adj=250; G.arcs59.adj=350; G.arcs67.adj=60; G.arcs69.adj=200; G.arcs78.adj=50; G.arcs89.adj=20; for(i=0;iG.vexnum;i+) for(j=0;jG.vexnum;j+) G.arcsji.adj=G.arcsij.adj; return G; /InitGraph end void Menu printf(n printf( n); printf( n); printf( n); printf( n); print
11、f( n); printf( n); printf( n); printf(Option-:); void Browser(MGraph *G) 石家庄铁道学院导游图n); 1.浏览校园全景 2.查看所有游览路线 3.选择出发点和目的地 4.查看景点信息 5.退出系统 int v; printf(n); printf(编号景点名称 简介 n); for(v=0;vvexnum;v+) printf(%-4d%-16s%-56sn,G-vexsv.num,G-vexsv.name,G-vexsv.introduction); printf(n); / 迪杰斯特拉算法来计算出起点到各个顶点之间的最
12、短路径,v0为起点 void ShortestPath_DIJ(MGraph * G) int v,w,i,min,t=0,x,flag=1,v0; int final20, D20, p2020; while(flag) printf(请输入一个起始景点编号:); scanf(%d,&v0); if(v0G-vexnum) printf(景点编号不存在!请重新输入景点编号:); scanf(%d,&v0); if(v0=0&v0vexnum) flag=0; for(v=0;vvexnum;v+) finalv=0; Dv=G-arcsv0v.adj; for(w=0;wvexnum;w+)
13、 pvw=0; if(DvINFINITY) pvv0=1;pvv=1; Dv0=0;finalv0=1; for(i=1;ivexnum;i+) min=INFINITY; for(w=0;wvexnum;w+) if(!finalw) if(Dwmin)v=w;min=Dw; finalv=1; for(w=0;wvexnum;w+) if(!finalw&(min+G-arcsvw.adjarcsvw.adj; for(x=0;xvexnum;x+) pwx=pvx; pww=1; for(v=0;vvexnum;v+) if(v0!=v) printf(%s,G-vexsv0.name
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 校园 导游 程序设计

链接地址:https://www.31ppt.com/p-3560260.html