Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Header.h
- #pragma once
- #include <iostream>
- using namespace std;
- class Currency
- {
- public:
- virtual int virtualAdd();
- virtual int virtualDiff();
- int Rate = 0;
- int transfered = 0;
- };
- class Euro: public Currency
- {
- int amountEuro = 0;
- public:
- Euro ()
- {
- Rate = 74;
- }
- int virtualAdd() override;
- int virtualDiff() override;
- };
- class Dollar : public Currency
- {
- int amountDollar=0;
- public:
- Dollar()
- {
- Rate = 64;
- }
- int virtualAdd() override;
- int virtualDiff() override;
- };
- class Pound : public Currency
- {
- int amountPound=0;
- public:
- Pound()
- {
- Rate = 81;
- }
- int virtualAdd() override;
- int virtualDiff() override;
- };
- class Purse
- {
- public:
- Currency* cur1 = new Euro;
- Currency* cur2 = new Dollar;
- Currency* cur3 = new Pound;
- void addDollar()
- {
- cur2->virtualAdd();
- }
- void difDollar()
- {
- cur2->virtualDiff();
- }
- void addEuro()
- {
- cur1->virtualAdd();
- }
- void difEuro()
- {
- cur1->virtualDiff();
- }
- void addPound()
- {
- cur3->virtualAdd();
- }
- void difPound()
- {
- cur3->virtualDiff();
- }
- ~Purse()
- {
- delete cur1;
- delete cur2;
- delete cur3;
- }
- };
- //Source.cpp
- #include "Header.h"
- #include <iostream>
- using namespace std;
- int Currency::virtualAdd()
- {
- return 0;
- }
- int Currency::virtualDiff()
- {
- return 0;
- }
- int Euro::virtualAdd()
- {
- int addEuro;
- cout << "Добавить количество Евро\n";
- cin >> addEuro;
- amountEuro = amountEuro + addEuro;
- transfered = amountEuro * Rate;
- cout << amountEuro<< " евро" << endl;
- cout << transfered<< " рублей" << endl<<endl;
- return amountEuro;
- }
- int Euro::virtualDiff()
- {
- int difEuro;
- if (amountEuro)
- {
- cout << "Введите количество евро, которое вы хотите убрать " << endl;
- cin >> difEuro;
- if (difEuro <= amountEuro)
- {
- amountEuro = amountEuro - difEuro;
- transfered = amountEuro * Rate;
- cout << amountEuro << " евро" << endl;
- cout << transfered << " рублей" << endl << endl;
- return amountEuro - difEuro;
- }
- else
- {
- cout << "Ошибка" << endl << endl;
- return amountEuro;
- }
- }
- else
- {
- cout << "Количество евро равно 0" << endl << endl;
- return amountEuro;
- }
- }
- int Dollar::virtualAdd()
- {
- int addDollar;
- cout << "Добавить количество Долларов\n";
- cin >> addDollar;
- amountDollar = amountDollar + addDollar;
- transfered = amountDollar * Rate;
- cout << amountDollar << " долларов" << endl;
- cout << transfered << " рублей" << endl << endl;
- return amountDollar;
- }
- int Dollar::virtualDiff()
- {
- int difDollar;
- if (amountDollar)
- {
- cout << "Введите количество долларов, которое вы хотите убрать " << endl;
- cin >> difDollar;
- if (difDollar <= amountDollar)
- {
- amountDollar = amountDollar - difDollar;
- transfered = amountDollar * Rate;
- cout << amountDollar << " долларов" << endl;
- cout << transfered << " рублей" << endl << endl;
- return amountDollar - difDollar;
- }
- else
- {
- cout << "Ошибка" << endl << endl;
- return amountDollar;
- }
- }
- else
- {
- cout << "Количество долларов равно 0" << endl << endl;
- return amountDollar;
- }
- }
- int Pound::virtualAdd()
- {
- int addPound;
- cout << "Добавить количество фунтов\n";
- cin >> addPound;
- amountPound = amountPound + addPound;
- transfered = amountPound * Rate;
- cout << amountPound << " фунтов" << endl;
- cout << transfered << " рублей" << endl << endl;
- return amountPound;
- }
- int Pound::virtualDiff()
- {
- int difPound;
- if (amountPound)
- {
- cout << "Введите количество фунтов, которое вы хотите убрать " << endl;
- cin >> difPound;
- if (difPound <= amountPound)
- {
- amountPound = amountPound - difPound;
- transfered = amountPound * Rate;
- cout << amountPound << " фунтов" << endl;
- cout << transfered << " рублей" << endl << endl;
- return amountPound - difPound;
- }
- else
- {
- cout << "Ошибка" << endl << endl;
- return amountPound;
- }
- }
- else
- {
- cout << "Количество фунтов равно 0" << endl << endl;
- return amountPound;
- }
- }
- //oop_lab2.cpp
- //Создать класс Currency для работы с денежными суммами c методами
- //добавления и вычитания. На его основе реализовать классы Dollar,
- //Euro и Pound (фунт стерлингов). Предусмотреть перевод валютной суммы в рубли.
- //Дополнительный класс – Purse.
- #include "Header.h"
- #include <iostream>
- using namespace std;
- int main()
- {
- setlocale(0, "RUS");
- Purse pr;
- pr.addDollar();
- pr.difDollar();
- pr.addDollar();
- pr.addEuro();
- pr.difEuro();
- pr.difEuro();
- pr.addEuro();
- pr.addPound();
- pr.difPound();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement