Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <string>
- #include <windows.h>
- using namespace std;
- class Money {
- int rub10 = 0; // 10 рублей
- int rub50 = 0; // 50 рублей
- int rub100 = 0; // 100 рублей
- int rub500 = 0; // 500 рублей
- int rub1000 = 0; // 1000 рублей
- int rub5000 = 0; // 5000 рублей
- int kop10 = 0; // 10 копеек
- int kop50 = 0; // 50 копеек
- public:
- Money() // конструктор
- {
- rub10 = 0;
- rub50 = 0;
- rub100 = 0;
- rub500 = 0;
- rub1000 = 0;
- rub5000 = 0;
- kop10 = 0;
- kop50 = 0;
- }
- Money(int r10, int r50, int r100, int r500, int r1000, int r5000, int k10, int k50) // конструктор
- {
- if ((rub10 >= 0) || (rub50 >= 0) || (rub100 >= 0) || (rub500 >= 0) || (rub1000 >= 0) || (rub5000 >= 0) || (kop10 >= 0) || (kop50 >= 0))
- {
- rub10 = r10;
- rub50 = r50;
- rub100 = r100;
- rub500 = r500;
- rub1000 = r1000;
- rub5000 = r5000;
- kop10 = k10;
- kop50 = k50;
- }
- }
- void set_rub10(int r10)
- {
- rub10 = r10;
- }
- void set_rub50(int r50)
- {
- rub50 = r50;
- }
- void set_rub100(int r100)
- {
- rub100 = r100;
- }
- void set_rub500(int r500)
- {
- rub500 = r500;
- }
- void set_rub1000(int r1000)
- {
- rub1000 = r1000;
- }
- void set_rub5000(int r5000)
- {
- rub5000 = r5000;
- }
- void set_kop10(int k10)
- {
- kop10 = k10;
- }
- void set_kop50(int k50)
- {
- kop50 = k50;
- }
- int get_rub10()
- {
- return rub10;
- }
- int get_rub50()
- {
- return rub50;
- }
- int get_rub100()
- {
- return rub100;
- }
- int get_rub500()
- {
- return rub500;
- }
- int get_rub1000()
- {
- return rub1000;
- }
- int get_rub5000()
- {
- return rub5000;
- }
- int get_kop10()
- {
- return kop10;
- }
- int get_kop50()
- {
- return kop50;
- }
- double TotalSumm()
- {
- return (rub10 * 10 + rub50 * 50 + rub100 * 100 + rub500 * 500 + rub1000 * 1000 + rub5000 * 5000 + kop10 * 10 / 100.0 + kop50 * 50 / 100.0);
- }
- void read();
- Money add(Money&);
- Money sub(Money&);
- double div(Money&);
- double div_sum_on_fraction(double ch);
- double multiplication_on_fraction(double ch);
- bool comparison(Money&, Money&);
- };
- Money read()
- {
- int r10 = 0, r50 = 0, r100 = 0, r500 = 0, r1000 = 0, r5000 = 0, k10 = 0, k50 = 0;
- cout << "РУБЛИ" << endl;
- cout << "Введите количество купюр номиналом 10 рублей: "; cin >> r10;
- cout << "Введите количество купюр номиналом 50 рублей: "; cin >> r50;
- cout << "Введите количество купбр номиналом 100 рублей: "; cin >> r100;
- cout << "Введите количество купюр номиналом 500 рублей: "; cin >> r500;
- cout << "Введите количество купюр номиналом 1000 рублей: "; cin >> r1000;
- cout << "Введите количество купюр номиналом 5000 рублей: "; cin >> r5000;
- cout << "КОПЕЙКИ" << endl;
- cout << "Введите количесвто копеек номиналом 10: "; cin >> k10;
- cout << "Введите количество копеек номиналом 50: "; cin >> k50;
- return Money(r10, r50, r100, r500, r1000, r5000, k10, k50);
- }
- void read(int r10, int r50, int r100, int r500, int r1000, int r5000, int k10, int k50)
- {
- cout << "РУБЛИ" << endl;
- cout << "Введите количество купюр номиналом 10 рублей: "; cin >> r10;
- cout << "Введите количество купюр номиналом 50 рублей: "; cin >> r50;
- cout << "Введите количество купбр номиналом 100 рублей: "; cin >> r100;
- cout << "Введите количество купюр номиналом 500 рублей: "; cin >> r500;
- cout << "Введите количество купюр номиналом 1000 рублей: "; cin >> r1000;
- cout << "Введите количество купюр номиналом 5000 рублей: "; cin >> r5000;
- cout << "КОПЕЙКИ" << endl;
- cout << "Введите количесвто копеек номиналом 10: "; cin >> k10;
- cout << "Введите количество копеек номиналом 50: "; cin >> k50;
- }
- Money Money::add(Money& b)
- {
- return Money(kop10 + b.kop10, kop50 + b.kop50, rub10 + b.rub10, rub50 + b.rub50, rub100 + b.rub100, rub500 + b.rub500, rub1000 + b.rub1000, rub5000 + b.rub5000);
- }
- Money Money::sub(Money& b)
- {
- if (b.kop10 > kop10 || b.kop50 > kop50 || b.rub10 > rub10 || b.rub50 > rub50 || b.rub100 > rub100
- || b.rub500 > rub500 || b.rub1000 > rub1000 || b.rub5000 > rub5000)
- throw exception("Низя вычитац, патамучта слишком много деняк");
- return Money(kop10 - b.kop10, kop50 - b.kop50, rub10 - b.rub10, rub50 - b.rub50, rub100 - b.rub100, rub500 - b.rub500, rub1000 - b.rub1000, rub5000 - b.rub5000);
- }
- double Money::div(Money& b)
- {
- return TotalSumm() / static_cast<double>(b.TotalSumm());
- }
- double Money::div_sum_on_fraction(double ch)
- {
- return TotalSumm() / ch;
- }
- double Money::multiplication_on_fraction(double ch)
- {
- return TotalSumm() * ch;
- }
- bool Money::comparison(Money& a, Money& b)
- {
- if (a.TotalSumm() > b.TotalSumm())
- cout << "A > B" << endl;
- else if (a.TotalSumm() < b.TotalSumm())
- cout << "A < B" << endl;
- else if (a.TotalSumm() == b.TotalSumm())
- cout << "A = B" << endl;
- else return 0;
- }
- //__________________________________________________________________________
- int main()
- {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- Money sht;
- Money a, b;
- cout << "ВВОДИТЕ СВОИ ДАННЫЕ: " << endl;
- cout << "Ввод суммы A: " << endl;
- a = read();
- cout << endl << "A total = " << a.TotalSumm() << endl;
- cout << endl;
- cout << "Ввод cуммы B: " << endl;
- b = read();
- cout << endl << "B total = " << b.TotalSumm() << endl;
- cout << endl;
- int choice;
- do {
- cout << "Выберите номер действия\n";
- cout << "1. Сложение сумм\n";
- cout << "2. Вычитание сумм\n";
- cout << "3. Деление сумм\n";
- cout << "4. Деление суммы на дробное число\n";
- cout << "5. Умножение суммы на дробное числ\n";
- cout << "6. Сравнение сумм\n";
- cout << "0. Выйти\n";
- cin >> choice;
- switch (choice) {
- case 1:
- {
- Money c = a.add(b);
- cout << "A + B = " << c.TotalSumm() << endl;
- break;
- }
- case 2:
- {
- Money d = a.sub(b);
- cout << "A - B = " << d.TotalSumm() << endl;
- break;
- }
- case 3:
- {
- double e = a.div(b);
- cout << "A / B = " << e << endl;
- break;
- }
- case 4:
- {
- double chislo;
- cout << "введите дробное число\n";
- cin >> chislo;
- a.div_sum_on_fraction(chislo);
- b.div_sum_on_fraction(chislo);
- cout << "A / число = " << a.TotalSumm() << endl;
- cout << "B / число = " << b.TotalSumm() << endl;
- break;
- }
- case 5:
- {
- double chislo;
- cout << "введите дробное число\n";
- cin >> chislo;
- a.multiplication_on_fraction(chislo);
- b.multiplication_on_fraction(chislo);
- cout << "A * число = " << a.TotalSumm() << endl;
- cout << "B * число = " << b.TotalSumm() << endl;
- break;
- }
- case 6:
- {
- cout << "Сравнение : ";
- cout << sht.comparison(a, b) << endl;
- break;
- }
- default:
- {
- cout << "Программа завершена\n";
- break;
- }
- }
- } while (choice);
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement