Advertisement
Guest User

Untitled

a guest
Jun 18th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.88 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <string>
  4. #include <vector>
  5.  
  6. using namespace std;
  7.  
  8. class Pracownik;
  9. class Firma;
  10.  
  11. class Konto_bankowe
  12. {
  13. private:
  14.     int numerKonta = 100;
  15. public:
  16.     double stanKonta;
  17.     Konto_bankowe(double stanKonta)
  18.     {
  19.         this->stanKonta = stanKonta;
  20.     }
  21.     //void sprawdzStanKonta()
  22.     //{
  23.     //  cout << "stan konta: " << stanKonta << endl;
  24.     //}
  25. };
  26.  
  27. class Pracownik
  28. {
  29. private:
  30.     string imie;
  31.     string nazwisko;
  32.     int id;
  33.     double zarobki;
  34. public:
  35.     Konto_bankowe *kontoPracownika = new Konto_bankowe(10);
  36.     double getZarobki()
  37.     {
  38.         return zarobki;
  39.     }
  40.     int getId()
  41.     {
  42.         return (int)id;
  43.     }
  44.  
  45.     Pracownik(string imie, string nazwisko, int id, double zarobki)
  46.     {
  47.         this->imie = imie;
  48.         this->nazwisko = nazwisko;
  49.         this->id = id;
  50.         this->zarobki = zarobki;
  51.     }
  52.     void getDane()
  53.     {
  54.         cout << imie << " " << nazwisko << " " << id << " " << zarobki << endl;
  55.     }
  56.     void sprawdzKonto()
  57.     {
  58.         cout << "Imie: " << imie << endl;
  59.         cout << "Nazwisko: " << nazwisko << endl;
  60.         cout << "stan konta pracownika: " << kontoPracownika->stanKonta << endl;
  61.     }
  62. };
  63.  
  64.  
  65.  
  66. class Firma
  67. {
  68. private:
  69.     string nazwa;
  70.     static Firma* instance;
  71. public:
  72.     Konto_bankowe *kontoFirmowe = new Konto_bankowe(100);
  73.     vector <Pracownik*> Pracownicy;
  74.  
  75.     static Firma* getInstance()
  76.     {
  77.         if (instance == NULL)
  78.             instance = new Firma();
  79.         return instance;
  80.     }
  81.  
  82.     void setNazwa(string nazwa)
  83.     {
  84.         this->nazwa = nazwa;
  85.     }
  86.     void getNazwa()
  87.     {
  88.         cout << nazwa << endl;
  89.     }
  90.     void dodajPracownika(string imie, string nazwisko, int id, double zarobki)
  91.     {
  92.         Pracownik* temp = new Pracownik(imie, nazwisko, id, zarobki);
  93.  
  94.         Pracownicy.push_back(temp);
  95.     }
  96.     void przelejWynagrodzenie(int id)
  97.     {
  98.         int index;
  99.         for (int i = 0; i < Pracownicy.size(); i++)
  100.         {
  101.             if (Pracownicy[i]->getId() == id)
  102.             {
  103.                 index = i;
  104.                 break;
  105.             }
  106.         }
  107.  
  108.         Pracownicy[index]->kontoPracownika->stanKonta += Pracownicy[index]->getZarobki();
  109.         kontoFirmowe->stanKonta -= Pracownicy[index]->getZarobki();
  110.     }
  111.     void sprawdzStanKonta()
  112.     {
  113.        
  114.         cout <<"Stan Konta firmowego: " <<  kontoFirmowe->stanKonta << endl;
  115.     }
  116.     void sprawdzStanKontaPracownika(int id)
  117.     {
  118.         int index;
  119.         for (int i = 0; i < Pracownicy.size(); i++)
  120.         {
  121.             if (Pracownicy[i]->getId() == id)
  122.             {
  123.                 index = i;
  124.                 break;
  125.             }
  126.         }
  127.         Pracownicy[index]->sprawdzKonto();
  128.  
  129.     }
  130.  
  131. };
  132.  
  133. Firma *Firma::instance = NULL;
  134.  
  135. int main()
  136. {
  137.     Firma *firma = Firma::getInstance();
  138.     Firma *firma2 = Firma::getInstance();
  139.     firma->dodajPracownika("Mikolaj", "Kobylarz", 0 , 10);
  140.     firma->przelejWynagrodzenie(0);
  141.  
  142.  
  143.     firma->sprawdzStanKontaPracownika(0);
  144.     firma->sprawdzStanKonta();
  145.  
  146.     firma->dodajPracownika("Artur", "Kanclerz", 3, 12);
  147.     firma->przelejWynagrodzenie(3);
  148.  
  149.  
  150.     firma->sprawdzStanKontaPracownika(3);
  151.     firma->sprawdzStanKonta();
  152.  
  153.     firma2->sprawdzStanKontaPracownika(3);
  154.     firma2->sprawdzStanKonta();
  155.  
  156.     system("PAUSE");
  157.  
  158. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement