c++ - 我对如何在 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;
}
结果应该根据他们想要离开的时间给出最佳路线
解决方案
这可能是您正在寻找的一些代码:
#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
请注意,如果用户输入的不是出发或到达时间的数字,它不会找到最佳路线,也不会执行任何错误处理。