校园导航系统源代码_第1页
校园导航系统源代码_第2页
校园导航系统源代码_第3页
校园导航系统源代码_第4页
校园导航系统源代码_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#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 introduction100;/*简介*/ infotype; typedef struct infotype vexsMAX_VERTEX_NUM; AdjMatrix arcs; int vexnum,arcnum; MGraph; MGraph b; void cmd(void); MGraph InitGraph(void); void show1();void list();void Menu(void); void ShortestPath_DIJ(MGraph * G); void Search(MGraph *G); int LocateVex(MGraph *G,char* v); /*主函数*/ void main(void) system(color 5f); /*修改控制台的颜色信息,改为白字蓝底的模式*/system(mode con: cols=140 lines=130); /*设置批处理运行时窗口大小的*/cmd(); /*自定义函数*/ /* cmd函数(根据目录选择要进行的项目)*/void cmd(void) char k; b=InitGraph(); show1();Menu(); while(1) scanf(n%c,&k); switch(k) case x:system(cls);show1(); Menu(); list(); ShortestPath_DIJ(&b); printf(-欢迎您的使用-n); printf(n请您继续选择服务:);break; casey:system(cls);Menu(); list();Search(&b);printf(-欢迎您的使用-n); printf(n请您继续选择服务:);break; case z: system(cls);printf( n); printf( 感谢使用 n); printf( 安徽建筑术大学 n); printf( 智能导航系统 n); printf( n); exit(0); default: printf(输入信息错误!n请输入x或y或z.n); break; /* 迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径,v0为起点 */void ShortestPath_DIJ(MGraph * G) int v,w,i,min,t=0,x,flag=1,v0,v1,have100,k; int final20, D20, p2323; while(flag) printf(请输入起始景点编号:n); scanf(%d,&v0); if(v0G-vexnum) printf(景点编号不存在!); printf(请输入终止景点编号:n); scanf(%d,&v1); if(v1G-vexnum) printf(景点编号不存在!); if(v0=0&v0vexnum&v1=0&v1vexnum) flag=0;for(v=0;vvexnum;+v)finalv=0;Dv=G-arcsv0v.adj;for(w=0;wvexnum;+w)pvw=INFINITY;if(DvINFINITY)pvv0=1;pvv=1;Dv0=0;finalv0=1;have0=v0;for(i=1;ivexnum;+i)min=INFINITY;for(w=0;wvexnum;+w)if(!finalw)if(Dwmin) v=w;min=Dw;finalv=1;havek=v;k+;for(w=0;wvexnum;+w)if(!finalw&(min+(G-arcsvw.adj)arcsvw.adj;for(x=0;xvexnum;x+)pwx=pvx;pww=1;for(i=0;ivexnum;i+)if(pv1havei=1) printf(-%s,G-);if(v1-v0)=1)printf(n路径长度:%dn,G-arcsv0v1);else printf(n路径长度:%dn,Dv1);/ShortestPath_DIJ end/*查找函数的建立 */void Search(MGraph *G) int k,flag=1; while(flag) printf(请输入要查询的景点编号:); scanf(%d,&k); if(kG-vexnum) printf(景点编号不存在!请重新输入景点编号:); scanf(%d,&k); if(k=0&kvexnum) flag=0; printf(n); printf(编号景点名称 简介 n); printf(%-4d%-16s%-58sn,G-vexsk.num,G-,G-roduction); printf(n); /Search endvoid show1() printf(tt 欢迎使用安徽建筑大学智能导航系统 n);printf(ttt安徽建筑大学南校区简略版平面图nn);printf(t 学校北门n);printf(t n);printf(t 北食堂宿舍楼1n);printf(t n);printf(t 宿舍楼2n);printf(t 九月桥 n);printf(t n);printf(t 主教楼 n);printf(t n);printf(t 日月广场 n);printf(t n); printf(t 图书馆 n);printf(t n);printf(t 还在建 n);printf(t n);printf(t 南食堂宿舍楼15n);printf(t n);printf(t n);printf(t 南苑超市 n); void list() printf(学校景点列表:n); printf(0:学校北门); printf(1:宿舍楼1 ); printf(2:宿舍楼2 ); printf(3:宿舍楼15 ); printf(4:九月桥n); printf(5:主教楼 ); printf(6:图书馆 ); printf(7:日月广场 ); printf(8:体育场n); printf(9:还在建); printf(10:南食堂 ); /*目录函数的构建*/void Menu() printf(n 安徽建筑大学南校区导游图n); printf( n); printf( x.选择出发点和目的地 n); printf( y.查看景点信息 n); printf( z.退出系统 n); printf( n); printf(请选择服务); /*MGraph函数(图的构建)*/MGraph InitGraph(void) MGraph G; int i,j; G.vexnum=17; /顶点是17个G.arcnum=25; /弧线有25个for(i=0;iG.vexnum;i+) G.vexsi.num=i; strcpy(G.,学校北门); strcpy(G.roduction,学校的正门,气势宏伟); strcpy(G.,宿舍楼1); strcpy(G.roduction,睡觉的地方); strcpy(G.,宿舍楼2); strcpy(G.roduction,睡觉的地方); strcpy(G.,宿舍楼15); strcpy(G.roduction,,); strcpy(G.,九月桥); strcpy(G.roduction,连接生活区和教学区的桥。); strcpy(G.,主教楼); strcpy(G.roduction,教学,开会); strcpy(G.,图书馆); strcpy(G.roduction,安静当学霸的地方); strcpy(G.,日月广场); strcpy(G.roduction,有漂亮喷泉的广场); strcpy(G.,体育场); strcpy(G.roduction,运动健身的地方); strcpy(G.,还在建); strcpy(G.roduction,学校新修的实验楼,灰常高大上); strcpy(G.,南食堂); strcpy(G.roduction,不好吃); for(i=0;iG.vexnum;i+) for(j=0;jG.vexnum;j+) G.arcsij.adj=INFINITY; G.arcs01.adj=50; G.arcs12.adj=15; G.arcs13.adj=40; G.arcs23.adj=30; G.arcs03.adj=90; G.arcs34.adj=30; G.arcs49.adj=1000; G.arcs45.adj=20; G.arcs56.adj=10; G.arcs67.adj=8; G.arcs68.adj=12; G.arcs78.adj=7; G.arcs09.adj=30; G.arcs910.adj=500; G.arcs1011.adj=25; G.arcs1112.adj=8; G.arcs1213.adj=5; G.arcs1314.adj=10; G.a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论