#include<stdio.h>
#include<iostream.h>
#include<stdlib.h>
#include<conio.h>
#include<malloc.h>
#include<string.h>
#define MAX 10000
#define MAXLEN 8
#define ADJTYPE int
typedef struct //图中顶点表示点,存放点名称
{
char name[30];
int num;
}
VEXTYPE;
typedef struct
{
VEXTYPE vexs[MAXLEN]; //顶点的信息
ADJTYPE arcs[MAXLEN][MAXLEN]; //邻接矩阵
int vexnum,arcnum ; //顶点数和边数
}
MGraph;
MGraph b;
MGraph InitGraph() //建立无向网的邻接矩阵结构
{
int i, j;
MGraph G;
G.vexnum =8; //存放顶点数
G.arcnum =13; //存放边点数
for(i=0;i<G.vexnum;i++)
G.vexs[i].num=i; //学校主要建筑物
strcpy(G.vexs[0].name,"主教学楼");
strcpy(G.vexs[1].name,"商业中心");
strcpy(G.vexs[2].name,"图书馆");
strcpy(G.vexs[3].name,"中心广场"); +
strcpy(G.vexs[4].name,"科技楼");
strcpy(G.vexs[5].name,"校医院");
strcpy(G.vexs[6].name,"第三食堂");
strcpy(G.vexs[7].name,"小剧院");
for(i=0;i<G.vexnum;i++)
for(j=0;j<G.vexnum;j++) //邻接点之间的距离
G.arcs[i][j]=MAX;
G.arcs[0][1]=130;
G.arcs[0][2]=80;
G.arcs[0][3]=100;
G.arcs[0][6]=400;
G.arcs[1][2]=100;
G.arcs[2][3]=50;
G.arcs[2][4]=100;
G.arcs[3][6]=150;
G.arcs[3][4]=70;
G.arcs[4][5]=300;
G.arcs[4][6]=250;
G.arcs[5][6]=400;
G.arcs[6][7]=300;
for(i=0;i<G.vexnum;i++)
for(j=0;j<G.vexnum;j++)
G.arcs[j][i]=G.arcs[i][j];
return G;
}
void Menu() //输出菜单,控制台界面
{
cout<<"---------------------------------------------------------"<<endl;
cout<<"@@@@@@@@@@@@@欢迎进入广东海洋大学平面导航系统@@@@@@@@@@@@"<<endl;
cout<<"---------------------------------------------------------"<<endl;
cout<<" "<<endl;
cout<<"**请选择服务项目: "<<endl;
cout<<" 1---------输出点的信息 "<<endl;
cout<<" 2---------输出边的信息 "<<endl;
cout<<" 3---------修改相关信息 "<<endl;
cout<<" 4---------求出最短路径 "<<endl;
cout<<" 5---------查看平面简图 "<<endl;
cout<<" 0---------退出 "<<endl;
cout<<" "<<endl;
cout<<"---------------------------------------------------------"<<endl;
}
void PutOutVex(MGraph *G) //菜单1:输出每个顶点的信息
{
int v;
for(v=0;v<G->vexnum;v++)
cout<<