Advertisement
Guest User

Funkcje zaprzyjaznione

a guest
Jul 9th, 2012
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.58 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. class Kraj;
  6. class Polska;
  7. class Niemcy;
  8. class Grecja;
  9. class NiepoprawneDane;
  10. ostream &operator << (ostream &stream, NiepoprawneDane nd);
  11.  
  12. class Kraj
  13. {
  14. private:
  15.     string nazwa;
  16. public:
  17.     friend class NiepoprawneDane;
  18.     //friend bool CzyMamyKryzys(Polska POL, Grecja GRE, Niemcy NIEM); //numero 1
  19.     Kraj(string nazwaInit);
  20.     Kraj();
  21.     string Nazwa();
  22.     ~Kraj();
  23. };
  24.  
  25. Kraj::Kraj(string nazwaInit)
  26. {nazwa = nazwaInit;}
  27. Kraj::~Kraj(){}
  28. string Kraj::Nazwa()
  29. {return nazwa;}
  30. Kraj::Kraj(){};
  31.  
  32.  
  33. class NiepoprawneDane
  34. {
  35. private:
  36.     float dane;
  37.     string nazwa;
  38. public:
  39.     friend ostream &operator << (ostream &stream, NiepoprawneDane nd);
  40.     NiepoprawneDane(float nDane, string nNazwa)
  41.     {
  42.         dane = nDane; nazwa = nNazwa;
  43.     }
  44.     NiepoprawneDane(){}
  45. };
  46.  
  47. ostream & operator << (ostream &stream, const NiepoprawneDane nd)
  48. {
  49.     stream << "Bledne dane: " << nd.nazwa << ", " << nd.dane << "\n";
  50.     return stream;
  51. }
  52.  
  53.  
  54. class Polska: public Kraj
  55. {
  56. private:
  57.     float poziomPKB;
  58. public:
  59.     friend bool CzyMamyKryzys(Polska POL, Grecja GRE, Niemcy NIEM);
  60.    
  61.     Polska(float nPoziomPKB) : Kraj("Polska")
  62.     {
  63.         if(nPoziomPKB > 1 || nPoziomPKB < 0)
  64.         {
  65.             NiepoprawneDane nd(nPoziomPKB, Nazwa());
  66.             cout << nd;
  67.         }
  68.         poziomPKB = nPoziomPKB;
  69.     }
  70. };
  71.  
  72. class Grecja: public Kraj
  73. {
  74. private:
  75.     float poziomBezrobocia;
  76. public:
  77.     friend bool CzyMamyKryzys(Polska POL, Grecja GRE, Niemcy NIEM);
  78.     Grecja(float nPoziomBezrobocia): Kraj("Grecja")
  79.     {
  80.         if(nPoziomBezrobocia > 1 || nPoziomBezrobocia < 0)
  81.         {
  82.             NiepoprawneDane nd(nPoziomBezrobocia, Nazwa());
  83.             cout << nd;
  84.         }
  85.         poziomBezrobocia = nPoziomBezrobocia;
  86.     }
  87. };
  88.  
  89. class Niemcy: public Kraj
  90. {
  91. private:
  92.     float poziomDeficytu;
  93. public:
  94.     friend bool CzyMamyKryzys(Polska POL, Grecja GRE, Niemcy NIEM);
  95.     Niemcy(float nPoziomDeficytu): Kraj("Niemcy")
  96.     {
  97.         if(nPoziomDeficytu < 0 || nPoziomDeficytu > 1)
  98.         {
  99.             NiepoprawneDane nd(nPoziomDeficytu, Nazwa());
  100.             cout << nd;
  101.         }
  102.         poziomDeficytu = nPoziomDeficytu;
  103.     }
  104. };
  105.  
  106.  
  107. bool CzyMamyKryzys(Polska POL, Grecja GRE, Niemcy NIEM)
  108. {
  109.     if(POL.poziomPKB < 0.3 && GRE.poziomBezrobocia > 0.2)
  110.         return true;
  111.     else if(POL.poziomPKB < 0.3 && NIEM.poziomDeficytu > 0.5)
  112.         return true;
  113.     else if(NIEM.poziomDeficytu > 0.5 && GRE.poziomBezrobocia > 0.2)
  114.         return true;
  115.     else
  116.         return false;
  117. }
  118.  
  119.  
  120. int main()
  121. {
  122.  
  123.     Polska POL(1.9f);
  124.     Grecja GRE(2.9f);
  125.     Niemcy NIEM(3.9f);
  126.    
  127.     if(CzyMamyKryzys(POL,GRE,NIEM))
  128.         cout << "Niestety, ale jest kryzys\n";
  129.     else
  130.         cout << "Nie ma kryzysu, jest gitara..\n";
  131.  
  132.  
  133.     cin.sync();
  134.     cin.get();
  135.     return 0;
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement