请虚构一张旅游景区地图,景区地图包括景点和道路:地图上用字母标注出一些点, 表示景点(比如,以点A、B、C、D等表示,其中的两个字母A和B分别表示景区的入口和出口) ;点与点之间的连线表示各景点之间的道路,连线的权重表示两景点间的距离。在程序里,选择适当的数据结构表达你设计的景区地图,请通过编程实现以下功能:1)用printf语 句打印出景区地图:要求用不同颜色表示景点和道路; 2)为游客提供地图中任意景点相关信息的查询:设计查询指令,用户可以输入这些指令查询每个景点的信息; 3)计算从某一景点到另一个景点的最短路径:用户输入两个景点的字母代号,程序可以在地图中使用不同于已使用的颜色表达出最短路径; 4)计算从入口A到出口B的最短路径; 5)游客甲从景区入口进入,请用程序帮他自动计算出一-条最佳游览路线(通过所有景点且距离最短),最后到达出口。 ( 提示:将景区地图看作一张带权无向图,顶点表示各个景点,边表示各景点之间的道路,边的权值表示两景点间距离。)
时间: 2023-02-06 14:12:36 浏览: 101
下面是一个使用邻接矩阵表示旅游景区地图的示例程序,它实现了上述功能:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 6 // 景区景点数量
#define INF 99999 // 表示两个景点不连通
// 颜色定义
#define RESET "\033[0m"
#define RED "\033[31m"
#define YELLOW "\033[33m"
#define BLUE "\033[34m"
// 存储景点信息的结构体
typedef struct {
char name[20]; // 景点名称
char info[100]; // 景点信息
} Point;
Point points[N] = {
{"入口A", "这是入口A"},
{"景点B", "这是景点B"},
{"景点C", "这是景点C"},
{"景点D", "这是景点D"},
{"景点E", "这是景点E"},
{"出口B", "这是出口B"}
};
// 邻接矩阵存储图
int graph[N][N] = {
{0, 10, INF, 30, 45, INF},
{10, 0, 50, INF, 35, INF},
{INF, 50, 0, 15, 30, INF},
{30, INF, 15, 0, 15, 20},
{45, 35, 30, 15, 0, 10},
{INF, INF, INF, 20, 10, 0}
};
// 初始化最短路径数组,用来存储从入口A到各景点的最短路径
int short_path[N];
// 初始化路径数组,用来存储从入口A到各景点的路径
int path[N];
// 初始化访问标记数组,用来标记景点是否被访问过
int visited[N];
// 打印
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![h](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)