Добавил:
AlexKon
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:ЯП5 / ЯП5
.cpp#include <iostream>
using namespace std;
class DivideException
{
public:
DivideException(string message) : message {message}{}
string getMessage()
{
return message;
}
private:
string message;
};
class Divide
{
public :
Divide(double delimoe, double delitel)
{
if (delitel == 0)
{
throw DivideException{ "Error! Делить на ноль нельзя!" };
}
else
{
chastnoe = delimoe / delitel;
}
this->delimoe = delimoe;
this->delitel = delitel;
}
void printing()
{
cout << "Делимое - " << delimoe << " Делитель - " << delitel<<endl;
cout << "Частное - " << chastnoe << endl;
}
private:
double delimoe;
double delitel;
double chastnoe;
};
double JustDivide(double delimoe, double delitel)
{
return delimoe / delitel;
}
double DivideMeyer()
{
double a, b, c;
int count = 1;
bool success = true;
bool Danser = false;
do
{
cout << "Введите делимое - " ;
cin >> a ;
cout << "\n";
cout << "Введите делитель - ";
cin >> b;
cout << endl;
try
{
if (b == 0)
{
throw exception ("Не дели на ноль!");
}
c = a / b;
cout << "Результат деления - " << c << endl;
success = true;
}
catch (exception message)
{
if (count == 3)
{
cout << "Попытки закончились " << endl;
exit(0);
}
if (count != 3)
{
cout << "У вас осталось " << 3-count << " попытки" << endl;
}
count++;
success = false;
cout << "Попытка номер " << count << " из 3х" << endl;
}
} while (success = true );
return c;
}
int main()
{
setlocale(LC_ALL, "Russian");
try
{
cout << "Данные на вход 100 и 2 " << endl;
Divide normal { 100 , 2 };
normal.printing();
cout << "Данные на вход 100 и 0 " << endl;
Divide unnormal{ 100 , 0 };
unnormal.printing();
}
catch (DivideException ex)
{
cout << ex.getMessage() << endl;
}
cout << "\n";
cout << "Мейер" << endl;
DivideMeyer();
}