#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---------
数据结构课程设计报告
这是一份数据结构课程设计报告,主要内容是利用C++实现Dijkstra算法来解决校园内的最短路径问题。报告详细介绍了功能需求,包括顶点和边信息的输出、距离修改、最短路径计算等,并描述了邻接矩阵存储结构的图类设计,以及程序的模块结构和功能调用关系。
摘要由CSDN通过智能技术生成