Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчет кдз программирование.docx
Скачиваний:
0
Добавлен:
11.02.2026
Размер:
158.59 Кб
Скачать

Обработка исключений.

Тест

Задание №1

Напишите класс Fraction, конструктор которого принимает числитель и знаменатель. Если пользователь передал в качестве знаменателя 0, то выбрасывайте исключение типа std::runtime_error (которое находится в заголовочном файле stdexcept). В функции main () попросите пользователя ввести два целых числа. Если числа, которые ввел пользователь, корректные, то выводите создаваемый объект класса Fraction. Если же числа недопустимые, то вы должны обрабатывать исключение типа std::exception и сообщить пользователю, что он ввел некорректные данные.

Текст программы:

#include <iostream>

#include "stdexcept"

using namespace std;

class Fraction {

private:

int numerator;

int denominator;

public:

Fraction(int n, int d) {

if (d == 0)

throw runtime_error("Denominator can't be zero");

numerator = n;

denominator = d;

}

void printF() { cout << "Numerator: " << numerator << "; Denominator: " << denominator; }

};

void createFraction(int nr, int dr) {

try { Fraction a(nr, dr); a.printF(); }

catch (const runtime_error& e) { cout << "Runtime error: " << e.what(); }

catch (const exception&) { cout << "Error"; }

}

int main() {

cout << "Enter the numerator and denominator." << endl;

int up, down;

cin >> up >> down;

createFraction(up, down);

cout << endl;

}

Результат работы программы: