Добавил:
vvrstcnho
Рад, если кому-то помог
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы С++ (для ИВТ) / Готовые лабы С++ / Лаба7 / Laba 7 (10.1)
.cpp#include <iostream>
#include <stdexcept>
#include <random>
#include <locale>
using namespace std;
class WrongWay : public exception {
public:
const char* what() const noexcept override {
return "Не переведена стрелка";
}
};
class PowerFailure : public exception {
public:
const char* what() const noexcept override {
return "Сбой электричества";
}
};
class Elephants : public exception {
public:
const char* what() const noexcept override {
return "Слоны переходят дорогу";
}
};
class Stop : public exception {
public:
const char* what() const noexcept override {
return "Нажат стоп-кран";
}
};
class Train {
random_device rd;
mt19937 gen;
uniform_int_distribution<> dis;
public:
Train() : gen(rd()), dis(0, 4) {}
void go() {
int result = dis(gen);
switch(result) {
case 0:
throw WrongWay();
case 1:
throw PowerFailure();
case 2:
throw Elephants();
case 3:
throw Stop();
case 4:
cout << "Поезд успешно доехал до станции!" << endl;
break;
}
}
};
int main() {
setlocale(LC_ALL, "ru_RU.UTF-8");
Train train1;
try {
train1.go();
} catch(exception& ex) {
cerr << "Остановка поезда: " << ex.what() << endl;
}
return 0;
}
Соседние файлы в папке Лаба7
