Advertisement
Guest User

Untitled

a guest
Jun 26th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.66 KB | None | 0 0
  1. #include <string>
  2. #include <iostream>
  3.  
  4. class Dzialanie {
  5.     public:
  6.         std::string nazwa;
  7.         Dzialanie(std::string nazwa) : nazwa(nazwa) {};
  8.         virtual double licz(const double a, const double b) const = 0;
  9. };
  10.  
  11. class Suma : public Dzialanie {
  12.     public:
  13.         Suma(std::string nazwa) : Dzialanie(nazwa) {};
  14.         double licz(const double a, const double b) const {
  15.             return a + b;
  16.         }
  17. };
  18.  
  19. class Roznica : public Dzialanie {
  20.     public:
  21.         Roznica(std::string nazwa) : Dzialanie(nazwa) {};
  22.         double licz(const double a, const double b) const {
  23.             return a - b;
  24.         }
  25. };
  26.  
  27. class Iloczyn : public Dzialanie {
  28.     public:
  29.         Iloczyn(std::string nazwa) : Dzialanie(nazwa) {};
  30.         double licz(const double a, const double b) const {
  31.             return a * b;
  32.         }
  33. };
  34.  
  35. class Iloraz : public Dzialanie {
  36.     public:
  37.         Iloraz(std::string nazwa) : Dzialanie(nazwa) {};
  38.         double licz(const double a, const double b) const {
  39.             return a / b;
  40.         }
  41. };
  42.  
  43. int main() {
  44.     Suma dodaj("dodaj");
  45.     Roznica odejmij("odejmij");
  46.     Iloczyn pomnoz("pomnoz");
  47.     Iloraz podziel("podziel");
  48.     Dzialanie* dzialania[4] = {&dodaj, &odejmij, &pomnoz, &podziel};
  49.  
  50.     std::cout << "Podaj dwie liczby:" << std::endl;
  51.     double a = 0.0, b = 0.0;
  52.     std::cin >> a >> b;
  53.  
  54.     std::cout << "Wybierz dzialanie:" << std::endl;
  55.     for(int i = 0; i < 4; i++) {
  56.         std::cout << i << ". " << dzialania[i]->nazwa << std::endl;
  57.     }
  58.     int dzialanie = 0;
  59.     std::cin >> dzialanie;
  60.  
  61.     std::cout << dzialania[dzialanie]->licz(a,b) << std::endl;
  62.     return 0;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement