欢迎光临散文网 会员登陆 & 注册

基于C++实现旅行线路设计

2023-05-09 15:29 作者:玟玟的大宝贝  | 我要投稿

访问【WRITE-BUG数字空间】_[内附完整源码和文档]

系统根据风险评估,为旅客设计一条符合旅行策略的旅行线路并输出,系统能查询当前时刻旅客所处的地点和状态(停留城市/所在交通工具)。


1. 实验内容和实验环境描述

1.1 实验内容

城市之间有各种交通工具(汽车、火车和飞机)相连,有些城市之间无法直达,需要途径中转城市。某旅客于某一时刻向系统提出旅行要求。考虑在当前 COVID-19 疫情环境下,各个城市的风险程度不一样,分为低风险、中风险和高风险三种。系统根据风险评估,为该旅客设计一条符合旅行策略的旅行线路并输出;系统能查询当前时刻旅客所处的地点和状态(停留城市/所在交通工具)。

1.2 环境描述

  • Windows 10 环境 PC 机;

  • Microsoft Visual Studio 2019 集成化开发环境;

  • Qt Creator 4.11.1(Based on Qt 5.14.1) 集成化开发环境;

  • Qt 运行库(Qt 5.14.2 MinGW 32-bit)

2. 软件设计

2.1 数据结构

City 类(city.h):

class City : public QObject { public:    City(string name = "", int number = 0, double risk = 0);    string name; //城市名    int number; //城市序号    QPoint pos; //城市在地图上的位置    double risk; //城市风险值    void add_route(); //为该城市添加时刻表(未使用)    vector<class Transport*> everyday_table; //每日时刻表 signals: };

Tourist 类(tourist.h):

class Tourist { public:    Tourist(City* A = nullptr, City* B = nullptr, int limit = 0, int number = 0);    bool enabled; //是否启用    int number; //旅客序号    int status; //旅客状态    int stlimit; //最早出发时间    int limit; //最晚到达时间    void plan_route(int time); //为旅客规划路线    void update_status(int time); //更新旅客信息    City* start; //出发点    City* destination; //目的地    City* nowat; //当前位置    Route plan; //当前规划路径    double risk; //当前旅客所承受的风险值    void dfs(City* at, Route rut, int time); //当前所在位置 路线 当前时间 时间限制 signals: };

Transport 类(transport.h):

class Transport { public:    Transport(class City* A = nullptr, class City* B = nullptr, int st = 0, double risk = 0, int cost = 0);    int transportKind; //载具种类    class City* start; //首发站    class City* destination; //终点站    int start_time; //出发时间    double risk; //风险    int time_cost; //所需时间 signals: };

Route 类(route.h):

class Route { public:    Route();    vector<City*> via;    vector<int> mid_arrive_time;    vector<int> mid_again_time;    int transportKind;    double risk;    int start_time; //出发时间    int time_cost; //下一步到达的时间 signals: };


基于C++实现旅行线路设计的评论 (共 条)

分享到微博请遵守国家法律