首页 > 解决方案 > 我对如何在 C++ 上创建一个类感到困惑

问题描述

我如何创建一个类,一旦用户输入三条路线、3 个出发时间和 3 个到达时间,该类将根据他们想要离开的时间获取用户关于最佳路线的信息

我已经尝试过下面的代码,但我现在被卡住了。我知道,我可能必须做一些 if 语句。

#include <iostream>
#include <string>
class route {
private:
    std::string name_;
    int departure_time_;
    int arrival_time_;
public:
    void set_name(std::string name) {
        name_ = name;
    }
    void set_departure_time(int deparure_time) {
        departure_time_ = deparure_time;
    }
    void set_arrival_time(int arrival_time) {
        arrival_time_ = arrival_time;
    }
};
void route1 () {
    std::string name;
    int departure;
    int arrival;
    std::cout << "Route 1:\n";
    std::cout << "Please enter the name of the route: ";
    std::getline(std::cin, name);
    std::cout << "Please enter the departure time of the route: ";
    std::cin >> departure;
    std::cout << "Please enter the arrival time of the route: ";
    std::cin >> arrival;

}
void route2 () {
    std::string name;
    int departure;
    int arrival;
    std::cout << "Route 2:\n";
    std::cout << "Please enter the name of the route: ";
    std::getline(std::cin, name);
    std::cout << "Please enter the departure time of the route: ";
    std::cin >> departure;
    std::cout << "Please enter the arrival time of the route: ";
    std::cin >> arrival;

}
void route3() {
    std::string name;
    int departure;
    int arrival;
    std::cout << "Route 3:\n";
    std::cout << "Please enter the name of the route: ";
    std::getline(std::cin, name);
    std::cout << "Please enter the departure time of the route: ";
    std::cin >> departure;
    std::cout << "Please enter the arrival time of the route: ";
    std::cin >> arrival;

}
int main() {
    int time_leaving;
    std::cout << "Welcome to TuffyTravel!\n";
    route1();
    std::cin.ignore();
    route2();
    std::cin.ignore();
    route3();
    std::cout << "Please enter the time you wish to leave: ";
    std::cin >> time_leaving;
}

结果应该根据他们想要离开的时间给出最佳路线

标签: c++

解决方案


这可能是您正在寻找的一些代码:

#include <iostream>
#include <string>
#include <vector>

struct Route {
  std::string name;
  int departure_time;
  int arrival_time;
};

Route get_route (std::string prompt) {
  Route route;
  std::cout << prompt << std::endl;
  std::cout << "Please enter the name of the route: ";
  std::cin >> route.name;
  std::cout << "Please enter the departure time of the route: ";
  std::cin >> route.departure_time;
  std::cout << "Please enter the arrival time of the route: ";
  std::cin >> route.arrival_time;
  return route;
}

int main() {
  int time_leaving;
  std::cout << "Welcome to TuffyTravel!\n";
  Route route1 = get_route("Route 1");
  Route route2 = get_route("Route 2");
  Route route3 = get_route("Route 3");
  std::cout << "Please enter the time you wish to leave: ";
  std::cin >> time_leaving;

  std::vector<Route> routes_vec { route1, route2, route3 };

  // Now find the best route in routes_vec

  return 0;
}

routes_vec请注意,如果用户输入的不是出发或到达时间的数字,它不会找到最佳路线,也不会执行任何错误处理。


推荐阅读