Вопрос или проблема
В C++ Как я могу использовать/улучшить свою строку и структуру else/if, чтобы получить желаемый результат. Учитывая, что у меня есть расстояния до каждого места, в зависимости от скорости пользователя, вывод должен звучать как “слишком быстро”, “слишком медленно”, “в самый раз”. Определяется по интервалу времени безопасной поездки (также известному).
МОЙ КОД
#include <iostream>
#include <cmath>
#include <string>
using namespace std;
int main()
{
double d = 0.0, t, v, v1;
double JFK = 24.60, Bayridge = 8.70, Jerseycity = 11.30;
string Destination;
cout << "Введите пункт назначения" << endl;
getline(cin, Destination);
if (Destination == "JFK") {
cout << "Расстояние составляет 24.6 миль" << endl;
cout << "Введите скорость" << endl;
cin >> v;
v1 = v * 0.0372822715;
t = JFK / v1;
if (t >= 33.00) {
cout << "Слишком медленно" << endl;
}
}
cout << "";
return 0;
}
Ответ или решение
Чтобы создать программу на C++, которая будет оценивать скорость пользователя в зависимости от введенной дистанции и выводить соответствующее сообщение ("слишком быстро", "слишком медленно" или "все в порядке"), вам необходимо учесть время, необходимое для безопасной поездки до каждой из заданных локаций. Я поможет вам усовершенствовать вашу программу с добавлением полноценного функционала. Вот доработанный код:
#include <iostream>
#include <cmath>
#include <string>
using namespace std;
int main() {
double t, v, v_adjusted;
const double JFK_distance = 24.60;
const double Bayridge_distance = 8.70;
const double Jerseycity_distance = 11.30;
string Destination;
cout << "Введите пункт назначения (JFK, Bayridge, Jerseycity): ";
getline(cin, Destination);
if (Destination == "JFK") {
cout << "Расстояние до JFK: 24.6 миль." << endl;
} else if (Destination == "Bayridge") {
cout << "Расстояние до Bayridge: 8.7 миль." << endl;
} else if (Destination == "Jerseycity") {
cout << "Расстояние до Jerseycity: 11.3 миль." << endl;
} else {
cout << "Неизвестное направление." << endl;
return 0;
}
cout << "Введите скорость (миль/час): ";
cin >> v;
// Переводим скорость в метры в секунду для расчетов (по необходимости)
v_adjusted = v;
// Время в часах для каждой локации
if (Destination == "JFK") {
t = JFK_distance / v_adjusted;
} else if (Destination == "Bayridge") {
t = Bayridge_distance / v_adjusted;
} else if (Destination == "Jerseycity") {
t = Jerseycity_distance / v_adjusted;
}
// Оценка времени
if (t < 0.5) { // слишком быстро (менее 30 минут)
cout << "Скорость: слишком быстро." << endl;
} else if (t >= 0.5 && t <= 1) { // в порядке (от 30 минут до 1 часа)
cout << "Скорость: все в порядке." << endl;
} else { // слишком медленно (более 1 часа)
cout << "Скорость: слишком медленно." << endl;
}
return 0;
}
Объяснение кода:
- Объявление переменных: Я создал переменные для хранения времени, скорости и скорректированной скорости (если требуется).
- Константы расстояний: Я использую константы для хранения расстояний до разных мест.
- Пользовательский ввод: Программа запрашивает у пользователя пункт назначения и соответствующую скорость.
- Расчет времени: В зависимости от выбора пункта назначения программа вычисляет время поездки.
- Оценка скорости: В зависимости от полученного времени программа выводит сообщение о скорости: "слишком быстро", "все в порядке", или "слишком медленно".
Дополнения:
- Данный код позволяет обработать только три пункта назначения. Чтобы расширить функционал, вы можете добавить дополнительные места или использовать структуры данных, такие как
map
, для хранения расстояний. - В качестве практического дополнения вы можете обработать отрицательные или нулевые значения скорости, чтобы избежать ошибок в расчетах.
Программа готова к использованию и поможет пользователю правильно выбрать безопасную скорость передвижения!