资源描述:
《校园导航系统源代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#defineINFINITY10000#defineMAX_VERTEX_NUM40#defineMAX40#include#include#include#includetypedefstructArCell{intadj;/*路径长度*/}ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];typedefstruct/*图中顶点表示主要景点,存放景点的编号、名称、简介等信息,*/{char
2、name[30];intnum;charintroduction[100];/*简介*/}infotype;typedefstruct{infotypevexs[MAX_VERTEX_NUM];AdjMatrixarcs;intvexnum,arcnum;}MGraph;MGraphb;voidcmd(void);MGraphInitGraph(void);voidshow1();voidlist();voidMenu(void);voidShortestPath_DIJ(MGraph*G);voidSearch(
3、MGraph*G);intLocateVex(MGraph*G,char*v);/**********主函数************************/voidmain(void){system("color5f");/*修改控制台的颜色信息,改为白字蓝底的模式*/system("modecon:cols=140lines=130");/*设置批处理运行时窗口大小的*/cmd();}/********自定义函数***************//*cmd函数(根据目录选择要进行的项目)*/voidcmd(voi
4、d){chark;b=InitGraph();show1();Menu();while(1){scanf("%c",&k);switch(k){case'x':system("cls");show1();Menu();list();ShortestPath_DIJ(&b);printf("---------------------------------欢迎您的使用--------------------------------");printf("请您继续选择服务:");break;case'y':s
5、ystem("cls");Menu();list();Search(&b);printf("---------------------------------欢迎您的使用--------------------------------");printf("请您继续选择服务:");break;case'z':system("cls");printf("┏━━━━━━━━━━━━━━━━━━━━┓");printf("┃感谢使用┃");printf("┃安徽建筑术大学┃");printf("┃智能导
6、航系统┃");printf("┗━━━━━━━━━━━━━━━━━━━━┛");exit(0);default:printf("输入信息错误!请输入x或y或z.");break;}}}/*迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径,v0为起点*/voidShortestPath_DIJ(MGraph*G){intv,w,i,min,t=0,x,flag=1,v0,v1,have[100],k;intfinal[20],D[20],p[23][23];while(flag){printf("请
7、输入起始景点编号:");scanf("%d",&v0);if(v0<0
8、
9、v0>G->vexnum)printf("景点编号不存在!");printf("请输入终止景点编号:");scanf("%d",&v1);if(v1<0
10、
11、v1>G->vexnum)printf("景点编号不存在!");if(v0>=0&&v0vexnum&&v1>=0&&v1vexnum)flag=0;}for(v=0;vvexnum;++v){final[v]=0;D[v]=G->arcs[v0][v].a
12、dj;for(w=0;wvexnum;++w)p[v][w]=INFINITY;if(D[v]vexnum;++i){min=INFINITY;for(w=0;wvexnum;++w)if