【数据结构课程设计】c++实现校园导游程序及通信线路设计

本文介绍了一次数据结构课程设计,使用C++实现了一个校园导游程序,包括显示校园平面图、景点信息查询、最短路径查询以及通信线路设计。程序基于邻接表存储图,并以菜单形式交互,提供了部分景点信息和通信线路优化方案。
摘要由CSDN通过智能技术生成

【数据结构课程设计】c++实现校园导游程序及通信线路设计

校园导游程序及通信线路设计

问题描述:

设计校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
(1) 显示校园平面图(用cout显示即可)。
(2) 景点信息查询:为来访客人提供图中任意景点相关信息的查询。
(3) 任意2个景点的路径查询:为来访客人提供图中任意2个景点的问路查询,即查询任意两个景点之间的一条最短的简单路径及距离。
(4) 通信线路设计:以尽可能低的造价建造景点间的通信网络把这些景点联系在一起,每条通信线路的造价与景点间的距离成正比。给出铺设方案。
如何将编码转换成文字,或者不转换

基本要求:

1)关于显示校园平面图,示例如下:
在这里插入图片描述
2)图的存储采用邻接表;
3)程序做成菜单形式:
(路径查询->输入出发地与目的地->出最短路径)
4)给出部分景点的名称及简介(从中选取几个自己设计图,距离自定)
在这里插入图片描述

代码实现

主程序

#include<iostream>
#include<fstream>
using namespace std;
#define MaxEdgNum 100
#define MaxVerNum 100
#define Distance 50
#define Price 300
typedef string VertexTtpe;
typedef int EdgeType;
typedef struct node
{
   
	int adjvex;
	struct node* next;
	int info;
}EdgeNode;         //边结点
typedef struct vnode
{
   
	VertexTtpe vertex;
	EdgeNode* firstedge;
}VertexNode;       //顶点结点
typedef struct {
   
	VertexNode AdjList[MaxVerNum];
	int vnum, lnum;
}ALGraph;
typedef struct
{
   
	int v1;
	int v2;
	int cost;
}TreeEdgeType;           //最小生成树边结点
TreeEdgeType edges[MaxEdgNum], T[MaxVerNum];
//打印地图
void menu()
{
   
	cout << "1.景点信息查询" << endl;
	cout << "2.景点路径查询" << endl;
	cout << "3.通信线路铺设方案" << endl;
	cout << "0.退出系统" << endl;
}
void view()
{
   
	cout << "本地图的比例尺为1:5000                                              " << endl;
	cout << "                                      北校门                        " << endl;
	cout << "                                    /        \\                      " << endl;
	cout << "                                   /          \\                     " << endl;
	cout << "                          北图书馆               北运动场            " << endl;
	cout << "                        /         \\            /         \\         " << endl;
	cout << "                       /           \\          /           \\        " << endl;
	cout << "      大学生文化活动中心             奋  进  楼             大礼堂 " << endl;
	cout << "                       \\          /          \\                /    " << endl;
	cout << "                        \\        /            \\              |     " << endl;
	cout << "                          至诚楼             行政楼          |     " << endl;
	cout << "                                \\              |   \\         |     " << endl;
	cout << "                                 \\             |    \\       /      " << endl;
	cout << "                                 南运动场      |        南 图 书 馆 " << endl;
	cout << "                                         \\     |      /             " << endl;
	cout << "                                            南  校  门               " << endl;
}
//建邻接表
void CreateALGraph(ALGraph* G)
{
   
	int i, j, k, inf;
	EdgeNode* s;
	ifstream infile;       //从文件中导出哈夫曼树
	infile.open("data.dat");
	infile >> G->vnum >> G->lnum;
	for (i = 0; i < G->vnum; i++)
	{
   
		infile >> G->AdjList[i].vertex;
		G->AdjList[i].firstedge = NULL;
	}
	for (k =
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值