基于C++实现的公交线路多重图(图的数据结构与算法实现)

资源下载地址:https://download.csdn.net/download/sheziqiong/85995766
资源下载地址:https://download.csdn.net/download/sheziqiong/85995766

1. 实验目的

  1. 掌握图的定义和图的邻接表存储结构;
  2. 掌握图的创建方法;
  3. 掌握顶点和边的操作;
  4. 掌握图的基本算法并能实际应用;
  5. 掌握图的深度优先搜索算法以及实现方法;
  6. 使用C/C++语言和图实现“公交线路图”专题。

2. 实验环境

硬件:Intel Core i5 8300H CPU 2.30GHZ

软件:Windows 10 64bit操作系统,编译环境 Visual Studio 2019

3. 实验内容

程序为控制台程序,使用图数据结构和算法,开始运行时,输出菜单,供用户选择。具体实现的功能如下:

  • 创建公交线路图输入站点和公交线路数据,程序根据站点信息和线路信息创建公交线路图。

    • 站点信息集合(编号、名字)。
    • 公交线路信息集合(线路编号,线路两端站点编号,路段长度)。
  • 查询公交线路和站点信息

    为验证公交线路图是否创建成功,程序需实现查询公交线路和站点信息功能。

    • 查询公交线路:输入公交线路编号,系统通过公交线路编号查找到该线路途经的所有站点并输出。

    • 查询站点信息:输人站点编号,系统通过站点编号查找到所有经过该站点的公交线路并输出。

  • 查询两站点之间的路线,找到至多换乘1次的路线,并输出结果

    用户输人要查询的起点和终点,程序先判断两个站点之间是否有一条路径(即两个站点之间是否连通)。若两个站点之间有路线,则找到所有最多换乘1次的路线,然后依次输出,如图1-39所示。共找到N条路线,如图1-40所示

    • 提示共找到几条路线:从|起点站名|到|终点站名|共找到N条路线,如图1-40所示。

    • 循环依次输出每条路线,有路线编号和站点与公交信息。依次输出路线中经过的每一站,并在站点与站点之间输出两站之间所坐的公交车名,如图1-41所示。

    • 若两个站点之间没有可以找到的路线,则提示用户“两站点之间没有公交路线!”,如图1-42所示。若两个站点之间有路线,但是不满足最多换乘1.次的条件,则提示用户“没有满足条件的路线!”,如图1-43所示。

4. 实验程序

4.1 程序源代码

文件名:main.cpp

# include "dialog.h" 
int main()
{
    Dialog(R"(D:\Projects\AlgorithmLab\e4\test_data.txt)")
        .begin_dialog();
}

文件名:dialog.h

# ifndef _DIALOG_H_
# define _DIALOG_H_

# include "map.h"
/// 负责UI层的互动
class Dialog
{
    Map map;
    /// 查询公交线路
    void query_bus();
    /// 查询两点间的全部路径
    void query_path();
    /// 查询经过车站的公交线路
    void query_stop();
public:
    Dialog(const char* file_name);
    Dialog(const Map& map);
    void begin_dialog();
};

# endif // _DIALOG_H_

文件名:map_scanner.h

# ifndef _MAP_SCANNER_H_
# define _MAP_SCANNER_H_
# include 
# include "map.h"
/// 从文件流读取地图
class MapScanner
{
public:
    Map scan(std::istream& s);
}; 
# endif // _MAP_SCANNER_H_

5.程序运行结果截图

基于C++实现的公交线路多重图(图的数据结构与算法实现)_第1张图片

基于C++实现的公交线路多重图(图的数据结构与算法实现)_第2张图片

图3:显示某条公交路线

基于C++实现的公交线路多重图(图的数据结构与算法实现)_第3张图片

图4:显示两站之间的所有路线

基于C++实现的公交线路多重图(图的数据结构与算法实现)_第4张图片

图5:显示某站的路线

基于C++实现的公交线路多重图(图的数据结构与算法实现)_第5张图片

资源下载地址:https://download.csdn.net/download/sheziqiong/85995766
资源下载地址:https://download.csdn.net/download/sheziqiong/85995766

你可能感兴趣的:(c++,公交线路多重图,图的数据结构,图的算法实现,课程设计)