Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.11 KB | None | 0 0
  1. //Header.h
  2.  
  3. #pragma once
  4. #include <iostream>
  5.  
  6. using namespace std;
  7.  
  8. class Currency
  9. {
  10. public:
  11.     virtual int virtualAdd();
  12.     virtual int virtualDiff();
  13.     int Rate = 0;
  14.     int transfered = 0;
  15. };
  16. class Euro: public Currency
  17. {
  18.     int amountEuro = 0;
  19. public:
  20.  
  21.     Euro ()
  22.     {
  23.         Rate = 74;
  24.     }
  25.     int virtualAdd() override;
  26.     int virtualDiff() override;
  27. };
  28.  
  29. class Dollar : public Currency
  30. {
  31.     int amountDollar=0;
  32. public:
  33.     Dollar()
  34.     {
  35.         Rate = 64;
  36.     }
  37.     int virtualAdd() override;
  38.     int virtualDiff() override;
  39. };
  40.  
  41. class Pound : public Currency
  42. {
  43.     int amountPound=0;
  44. public:
  45.     Pound()
  46.     {
  47.         Rate = 81;
  48.     }
  49.     int virtualAdd() override;
  50.     int virtualDiff() override;
  51. };
  52.  
  53. class Purse
  54. {
  55. public:
  56.     Currency* cur1 = new Euro;
  57.     Currency* cur2 = new Dollar;
  58.     Currency* cur3 = new Pound;
  59.     void addDollar()
  60.     {
  61.         cur2->virtualAdd();
  62.  
  63.     }
  64.     void difDollar()   
  65.     {
  66.         cur2->virtualDiff();
  67.     }
  68.    
  69.     void addEuro()
  70.     {
  71.         cur1->virtualAdd();
  72.     }
  73.     void difEuro()
  74.     {
  75.         cur1->virtualDiff();
  76.     }
  77.     void addPound()
  78.     {
  79.         cur3->virtualAdd();
  80.     }
  81.     void difPound()
  82.     {
  83.         cur3->virtualDiff();
  84.     }
  85.     ~Purse()
  86.     {
  87.         delete cur1;
  88.         delete cur2;
  89.         delete cur3;
  90.     }
  91. };
  92.  
  93. //Source.cpp
  94.  
  95. #include "Header.h"
  96. #include <iostream>
  97. using namespace std;
  98.  
  99. int Currency::virtualAdd()
  100.  {
  101.     return 0;
  102.  }
  103.  int Currency::virtualDiff()
  104.  {
  105.      return 0;
  106.  }
  107.  
  108. int Euro::virtualAdd()
  109. {
  110.     int addEuro;
  111.     cout << "Добавить количество Евро\n";
  112.     cin >> addEuro;
  113.     amountEuro = amountEuro + addEuro;
  114.     transfered = amountEuro * Rate;
  115.     cout << amountEuro<< " евро" << endl;
  116.     cout << transfered<< " рублей" << endl<<endl;
  117.     return amountEuro;
  118.    
  119. }
  120.  
  121. int Euro::virtualDiff()
  122. {
  123.     int difEuro;
  124.     if (amountEuro)
  125.     {
  126.         cout << "Введите количество евро, которое вы хотите убрать " << endl;
  127.         cin >> difEuro;
  128.         if (difEuro <= amountEuro)
  129.         {
  130.             amountEuro = amountEuro - difEuro;
  131.             transfered = amountEuro * Rate;
  132.             cout << amountEuro << " евро" << endl;
  133.             cout << transfered << " рублей" << endl << endl;
  134.             return amountEuro - difEuro;
  135.  
  136.         }
  137.         else
  138.         {
  139.             cout << "Ошибка" << endl << endl;
  140.             return amountEuro;
  141.         }
  142.     }
  143.     else
  144.     {
  145.         cout << "Количество евро равно 0" << endl << endl;
  146.         return amountEuro;
  147.     }
  148. }
  149.  
  150.  int Dollar::virtualAdd()
  151.  {
  152.      int addDollar;
  153.      cout << "Добавить количество Долларов\n";
  154.      cin >> addDollar;
  155.      amountDollar = amountDollar + addDollar;
  156.      transfered = amountDollar * Rate;
  157.      cout << amountDollar << " долларов" << endl;
  158.      cout << transfered << " рублей" << endl << endl;
  159.      return amountDollar;
  160.  }
  161.  int Dollar::virtualDiff()
  162.  {
  163.      int difDollar;
  164.  
  165.      if (amountDollar)
  166.      {
  167.          cout << "Введите количество долларов, которое вы хотите убрать " << endl;
  168.          cin >> difDollar;
  169.          if (difDollar <= amountDollar)
  170.          {
  171.              amountDollar = amountDollar - difDollar;
  172.              transfered = amountDollar * Rate;
  173.              cout << amountDollar << " долларов" << endl;
  174.              cout << transfered << " рублей" << endl << endl;
  175.              return amountDollar - difDollar;
  176.  
  177.          }
  178.          else
  179.          {
  180.              cout << "Ошибка" << endl << endl;
  181.              return amountDollar;
  182.          }
  183.      }
  184.      else
  185.      {
  186.          cout << "Количество долларов равно 0" << endl << endl;
  187.          return amountDollar;
  188.      }
  189.  }
  190.  
  191.  int Pound::virtualAdd()
  192.  {
  193.      int addPound;
  194.      cout << "Добавить количество фунтов\n";
  195.      cin >> addPound;
  196.      amountPound = amountPound + addPound;
  197.      transfered = amountPound * Rate;
  198.      cout << amountPound << " фунтов" << endl;
  199.      cout << transfered << " рублей" << endl << endl;
  200.      return amountPound;
  201.  }
  202.  
  203.  int Pound::virtualDiff()
  204.  {
  205.      int difPound;
  206.      if (amountPound)
  207.      {
  208.          cout << "Введите количество фунтов, которое вы хотите убрать " << endl;
  209.          cin >> difPound;
  210.          if (difPound <= amountPound)
  211.          {
  212.              amountPound = amountPound - difPound;
  213.              transfered = amountPound * Rate;
  214.              cout << amountPound << " фунтов" << endl;
  215.              cout << transfered << " рублей" << endl << endl;
  216.              return amountPound - difPound;
  217.  
  218.          }
  219.          else
  220.          {
  221.              cout << "Ошибка" << endl << endl;
  222.              return amountPound;
  223.          }
  224.      }
  225.      else
  226.      {
  227.          cout << "Количество фунтов равно 0" << endl << endl;
  228.          return amountPound;
  229.      }
  230.  }
  231.  
  232. //oop_lab2.cpp
  233.  
  234. //Создать класс Currency для работы с денежными суммами c методами
  235. //добавления и вычитания. На его основе реализовать классы Dollar,
  236. //Euro и Pound (фунт стерлингов). Предусмотреть перевод валютной суммы в рубли.
  237. //Дополнительный класс – Purse.
  238. #include "Header.h"
  239. #include <iostream>
  240. using namespace std;
  241.  
  242. int main()
  243. {
  244.     setlocale(0, "RUS");
  245.     Purse pr;
  246.     pr.addDollar();
  247.     pr.difDollar();
  248.     pr.addDollar();
  249.     pr.addEuro();
  250.     pr.difEuro();
  251.     pr.difEuro();
  252.     pr.addEuro();
  253.     pr.addPound();
  254.     pr.difPound();
  255.     return 0;
  256. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement