校园导游咨询--单源点最短路径的求解

数据结构课设—校园导游咨询

一.需求分析

  • 任务分析
    设计一个校园的导游图,为来访的客人进行景点信息的查询服务。包括对所有景点基本信息的查询,从一个景点到其他任意景点的最短路径的查询,还可以对景点按照评分进行排序输出。

  • 功能分析
    1.用图的数据结构对校园导游图的构建。
    2.用顺序查找对景点进行按照景点名进行信息查询。
    3.用折半查找对景点按照景点编号进行信息查询。
    4.用快速排序的方法对景点按照评分排序输出。
    5.用迪杰斯特拉算法进行从一个景点到另一个景点的最短路径查询。

  • 数据输入
    1.景点总数,景点路径总数;
    2.所有景点名,景点代号,景点评分,景点推荐语;
    3.路径两端的景点名的代号,进行创建图;
    注:实际上,由于景点名和景点路径过多,所以直接从文件中读取已定义的数据。
    文件内容为:
    在这里插入图片描述

  • 功能模块图:
    在这里插入图片描述

  • 抽象数据类型描述



ADT MGraph{

数据对象:

         具有相同特性的数据元素的集合,顶点集。

数据关系

           R={VR}

            VR={<v,w>|表示从顶点v到顶点w存在路径}

基本操作

Create_MGraph(MGraph &G);//创建图

       初始条件:G为空

       操作结果:创建完整的图

Output_MGraph(MGraph &G);//输出图

	初始条件:G为已创建好的图

       操作结果:输出图中顶点和边的信息

Dijkstra(MGraph G, int v0,int path[][MAX], int D[]);//求最短路径

       初始条件:G不为空

       操作结果:求出单源点到其他点的最短径路
       
  Find_Short_Path(MGraph G);//查询最短路径 

	初始条件:G不为空

       操作结果:输出单源点到查询点的最短路径

 Find_Short_AllPath(MGraphG);//查询所有的最短路径 

	初始条件:G不为空

       操作结果:输出单源点到其他点的最短路径 
       
 Find_scenery(MGraph G);//按照景色名称查询信息

	初始条件:G不为空

       操作结果:输出查询的景点信息
      
 Find_num(MGraph G);//按照编号查询相关信息 

	初始条件:G不为空

       操作结果:输出查询的景点信息
       
 Output_Score(MGraph&G);//按照评分排序

	初始条件:G不为空

       操作结果:输出按评分排序的景点

Fast_Partition(MGraph &G,int low,int high);//返回快排的最终位置

	初始条件:G不为空

       操作结果:返回每次快排的最终位置

Fast_Sort(MGraph &G,int low,int high);//用快排对景色按照评分排序

	初始条件:G不为空

       操作结果:对快排序列排序 

}


代码实现:

#include<iostream>
#include<fstream>
#include<istream>
#include<windows.h>
#include<string>
#include<iomanip>
#define MAX 15
#define INF 1000
using namespace std;
struct Node {
 string name;//景点名称
 int num;//代号
 i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值