программа в с++
1. Описать класс с именем MARSH, содержащую следующие поля:
• BEGST — название начального пункта маршрута;
• TERM — название конечного пункта маршрута;
• NUMER — номер маршрута.
2. Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив TRAFIC, состоящий из 3 элементов типа MARSH;
• вывод на экран информации о маршруте, номер которого введен с клавиатуры;
• если таких маршрутов нет, выдать на дисплей соответствующее сообщение.
Ответы на вопрос
Решение задачи на C++
Необходимо создать класс MARSH, который будет хранить информацию о маршрутах, а затем написать программу для ввода данных о трёх маршрутах и поиска маршрута по его номеру.
1. Код программы
#include
#include
using namespace std;class MARSH {
public:
string BEGST; // Начальный пункт маршрута
string TERM; // Конечный пункт маршрута
int NUMER; // Номер маршрута
};int main() {
const int N = 3;
MARSH TRAFIC[N];
// Ввод данных о маршрутах
cout << "Введите данные о 3 маршрутах:" << endl;
for (int i = 0; i < N; i++) {
cout << "\nМаршрут " << i + 1 << ":" << endl;
cout << "Начальный пункт: ";
getline(cin, TRAFIC[i].BEGST);
cout << "Конечный пункт: ";
getline(cin, TRAFIC[i].TERM);
cout << "Номер маршрута: ";
cin >> TRAFIC[i].NUMER;
cin.ignore(10000, '\n');
}
// Поиск маршрута по номеру
int number;
bool found = false;
cout << "\nВведите номер маршрута для поиска: ";
cin >> number;
for (int i = 0; i < N; i++) {
if (TRAFIC[i].NUMER == number) {
cout << "\nМаршрут найден!" << endl;
cout << "Начальный пункт: "
<< TRAFIC[i].BEGST << endl;
cout << "Конечный пункт: "
<< TRAFIC[i].TERM << endl;
cout << "Номер маршрута: "
<< TRAFIC[i].NUMER << endl;
found = true;
}
}
if (!found) {
cout << "\nМаршрут с номером "
<< number << " не найден." << endl;
}
return 0;
}
2. Объяснение программы
Создание класса MARSH
Класс содержит три поля:
BEGST— строка, в которой хранится название начального пункта маршрута.TERM— строка с названием конечного пункта маршрута.NUMER— целое число, обозначающее номер маршрута.
Ключевое слово public позволяет обращаться к полям класса непосредственно из функции main().
Создание массива TRAFIC
const int N = 3;
MARSH TRAFIC[N];Создаётся массив из трёх объектов класса MARSH. Каждый объект содержит информацию об одном маршруте.
Ввод данных
Используется цикл for, который выполняется три раза. На каждой итерации пользователь вводит начальный пункт, конечный пункт и номер маршрута.
Функция getline() позволяет вводить названия остановок, содержащие пробелы. Команда cin.ignore(10000, '\n') удаляет оставшийся после ввода номера символ перевода строки.
Поиск маршрута
Пользователь вводит номер маршрута, который необходимо найти.
Программа последовательно сравнивает введённый номер с полем NUMER каждого элемента массива TRAFIC.
Если номер совпадает, выводится информация о найденном маршруте, а переменной found присваивается значение true.
Если после проверки всех элементов переменная found осталась равной false, программа выводит сообщение, что маршрут не найден.
3. Пример работы программы
Пример ввода данных
Введите данные о 3 маршрутах:
Маршрут 1: Начальный пункт: Москва Конечный пункт: Тверь Номер маршрута: 101
Маршрут 2: Начальный пункт: Казань Конечный пункт: Самара Номер маршрута: 205
Маршрут 3: Начальный пункт: Сочи Конечный пункт: Краснодар Номер маршрута: 310
Введите номер маршрута для поиска: 205
Результат
Маршрут найден! Начальный пункт: Казань Конечный пункт: Самара Номер маршрута: 205
Если пользователь введёт номер 999, которого нет в массиве, программа выведет:
Маршрут с номером 999 не найден.4. Вывод
Программа полностью выполняет условия задачи:
Создан класс
MARSHс полямиBEGST,TERM,NUMER.Создан массив
TRAFIC, содержащий 3 объекта классаMARSH.Реализован ввод данных о маршрутах с клавиатуры.
Реализован поиск маршрута по введённому номеру.
При нахождении маршрута выводится информация о нём.
Если маршрут отсутствует, выводится соответствующее сообщение.
Особенность решения: программа выводит все маршруты с указанным номером, если одинаковые номера встречаются несколько раз. Это позволяет корректно обработать и такой случай.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

