Добавил:
Рад, если кому-то помог Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
01.11.2025
Размер:
1.46 Кб
Скачать
#include <iostream>
#include <stdexcept>
#include <random>
#include <locale>
using namespace std;

class WaterFinished : public exception {
public:
    const char* what() const noexcept override {
        return "Закончилась вода";
    }
};

class DoorOpened : public exception {
public:
    const char* what() const noexcept override {
        return "Дверь открыта";
    }
};

class WrongObjectInside : public exception {
public:
    const char* what() const noexcept override {
        return "Неподходящий объект внутри";
    }
};

class WashingMachine {
    random_device rd;
    mt19937 gen;
    uniform_int_distribution<> dis;
    
public:
    WashingMachine() : gen(rd()), dis(0, 3) {}
    
    void wash() {
        int result = dis(gen);
        
        switch(result) {
            case 0:
                throw WaterFinished();
            case 1:
                throw DoorOpened();
            case 2:
                throw WrongObjectInside();
            case 3:
                cout << "Стирка завершена успешно!" << endl;
                break;
        }
    }
};

int main() {
    setlocale(LC_ALL, "ru_RU.UTF-8");
    
    WashingMachine machine;
    
    try {
        machine.wash();
    } catch(exception& ex) {
        cerr << "Исключение: " << ex.what() << endl;
    }
    
    return 0;
}
Соседние файлы в папке Лаба7