Advertisement
Guest User

Clasa CheltuieliAmenajere

a guest
Nov 20th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.86 KB | None | 0 0
  1. class CheltuieliAmenajare
  2. {
  3.     float buget;
  4.     char* nume; // numele produsului achizitionat de tip 'Amenajare', ex: pat, candela,dulap...
  5.     float pret;
  6.     float numar;//numarul de persoane care au contribuit la achizitionarea obiectului amenajer.
  7.     float contributie[10];//cu cat a contribuit.
  8. public:
  9.     CheltuieliAmenajare()
  10.     {
  11.         this->buget = 0;
  12.         this->nume = NULL;
  13.         this->pret = 0;
  14.         this->numar = 0;
  15.         for (int i = 0;i < 10;i++)
  16.         {
  17.             this->contributie[i] =0;
  18.         }
  19.     }
  20.     CheltuieliAmenajare(float buget, char* nume, float pret, float numar, float contributie[10])
  21.     {
  22.         this->buget = buget;
  23.         this->nume = new char[strlen(nume) + 1];
  24.         strcpy(this->nume, nume);
  25.         this->pret = pret;
  26.         this->numar = numar;
  27.         for (int i = 0;i < numar;i++)
  28.         {
  29.             this->contributie[i] = contributie[i];
  30.         }
  31.     }
  32.     CheltuieliAmenajare(const CheltuieliAmenajare& a)
  33.     {
  34.         this->buget = a.buget;
  35.         this->nume = new char[strlen(a.nume) + 1];
  36.         strcpy(this->nume, a.nume);
  37.         this->pret = a.pret;
  38.         this->numar = a.numar;
  39.         for (int i = 0;i < a.numar;i++)
  40.         {
  41.             this->contributie[i] = a.contributie[i];
  42.         }
  43.     }
  44.  
  45.     float getbuget()
  46.     {
  47.         return this->buget;
  48.     }
  49.     void setbuget(float noulbuget)
  50.     {
  51.         if (noulbuget>0)
  52.         {
  53.             this->buget = noulbuget;
  54.         }
  55.         else
  56.         {
  57.             cout << " Introduceti o alta valoare pentru buget" << endl;
  58.         }
  59.     }
  60.     char* getnume()
  61.     {
  62.         return this->nume;
  63.     }
  64.     void setnume(char* noulnume)
  65.     {
  66.         if (this->nume)
  67.         {
  68.             delete[] this->nume;
  69.         }
  70.         this->nume = new char[strlen(noulnume) + 1];
  71.         strcpy(this->nume, noulnume);
  72.     }
  73.  
  74.     float getpret()
  75.     {
  76.         return this->pret;
  77.     }
  78.     void setpret(float noulpret)
  79.     {
  80.         if (noulpret > 0)
  81.         {
  82.             this->pret = noulpret;
  83.         }
  84.         else
  85.         {
  86.             cout << "Introduceti o valoare noua pentru pret" << endl;
  87.         }
  88.     }
  89.     int getnumar()
  90.     {
  91.         return this->numar;
  92.     }
  93.     void setnumar(int noulnumar)
  94.     {
  95.         if (noulnumar > 0)
  96.         {
  97.             this->numar = noulnumar;
  98.         }
  99.         else
  100.         {
  101.             cout << " Va rugam introduceti o valoare noua pentru numar";
  102.         }
  103.     }
  104.  
  105.     float getcontributie()
  106.     {
  107.         return *this->contributie;
  108.     }
  109.     void setcontributie(float contributienou[10])
  110.     {
  111.         for (int i = 0;i < this->numar;i++)
  112.         {
  113.             this->contributie[i] = contributienou[i];
  114.         }
  115.     }
  116.     void bugetramas()
  117.     {
  118.         float bugetramas;
  119.         bugetramas = this->buget - this->pret;
  120.         cout << " Bugetul ramas pentru obiectul curent este:" << bugetramas<<endl<<endl;
  121.     }
  122.  
  123.     CheltuieliAmenajare& operator = (const CheltuieliAmenajare& a)
  124.     {
  125.         this->buget = a.buget;
  126.         if (this->nume)
  127.         {
  128.             delete this->nume;
  129.         }
  130.         this->nume = new char[strlen(a.nume) + 1];
  131.         strcpy(this->nume, a.nume);
  132.         this->pret = a.pret;
  133.         this->numar = a.numar;
  134.         for (int i = 0;i < a.numar;i++)
  135.         {
  136.             this->contributie[i] = a.contributie[i];
  137.         }
  138.         return *this;
  139.     }
  140.  
  141.     CheltuieliAmenajare operator + (CheltuieliAmenajare& s)
  142.     {
  143.         CheltuieliAmenajare temp = *this;
  144.         temp.buget = temp.buget + s.buget;
  145.         return temp;
  146.     }
  147.  
  148.     CheltuieliAmenajare operator ++ ()
  149.     {
  150.         this->buget++;
  151.         return *this;
  152.     }
  153.     CheltuieliAmenajare operator ++ (int i)
  154.     {
  155.         CheltuieliAmenajare temp = *this;
  156.         this->buget++;
  157.         return temp;
  158.     }
  159.     explicit operator int()
  160.     {
  161.         return buget / pret;
  162.     }
  163.     void operator ! ()
  164.     {
  165.         this->buget = 0;
  166.     }
  167.     bool operator>(CheltuieliAmenajare p)
  168.     {
  169.         if (this->buget > p.buget)
  170.         {
  171.             return true;
  172.         }
  173.         else
  174.             return false;
  175.     }
  176.     bool operator==(CheltuieliAmenajare s)
  177.     {
  178.         if (this->buget == s.buget)
  179.         {
  180.             return true;
  181.         }
  182.         else
  183.         {
  184.             return false;
  185.         }
  186.     }
  187.  
  188.     friend ostream& operator << (ostream&, CheltuieliAmenajare);
  189.     friend istream& operator >> (istream&, CheltuieliAmenajare&);
  190.  
  191.     ~CheltuieliAmenajare()
  192.     {
  193.         if (this->nume)
  194.         {
  195.             delete[] this->nume;
  196.         }
  197.     }
  198.  
  199. };
  200. //float buget, char* nume, float pret,  float numar, float contributie[10]
  201. ostream& operator << (ostream& out, CheltuieliAmenajare a )
  202. {
  203.     out << endl;
  204.     out << " Bugetul este: " << a.buget << endl;
  205.     out << " Numele este: " << a.nume << endl;
  206.     out << " Pretul este: " << a.pret << endl;
  207.     out << " Numarul de persoane care au contribuit este: " << a.numar;
  208.     out << endl;
  209.     for (int i = 0;i < a.numar;i++)
  210.     {
  211.         out << " Persoana " << i << " a contribuit cu " << a.contributie[i]<<endl;
  212.     }
  213.     out << endl;
  214.     return out;
  215. }
  216. istream& operator >> (istream& in , CheltuieliAmenajare& a)
  217. {
  218.     cout << endl;
  219.     cout << " Introduceti bugetul: ";
  220.     in >> a.buget;
  221.     char buffer[100];
  222.     cout << " Introduceti numele: ";
  223.     in >> buffer;
  224.     if (strlen(buffer) > 0)
  225.     {
  226.         if (a.nume)
  227.         {
  228.             delete[] a.nume;
  229.         }
  230.         a.nume = new char[strlen(buffer) + 1];
  231.         strcpy(a.nume, buffer);
  232.     }
  233.     cout << endl;
  234.     cout << " Introduceti pretul: ";
  235.     in >> a.pret;
  236.     cout << endl;
  237.     cout << " Introduceti numarul persoanelor contribuabile: ";
  238.     in >> a.numar;
  239.     cout << endl;
  240.     for (int i = 0;i < a.numar;i++)
  241.     {
  242.         cout << " Persoana " << i << " a contribuit cu ";
  243.         in >> a.contributie[i];
  244.     }
  245.     return in;
  246. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement