Facebook
From Kinga, 6 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 560
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6.  
  7. class Pracownik{
  8.  
  9. protected:
  10.     static int licznik;
  11.     int id;
  12.     string imie;
  13.     string nazwisko;
  14.  
  15. public:
  16.     double stawka = 20;
  17.     void wpisz_dane();
  18.     void wys_wynik();
  19.  
  20.     Pracownik()
  21.     {
  22.         id;
  23.         imie;
  24.         nazwisko;
  25.         licznik ++;
  26.         cout<<"konstruktor domyslny, bezparametrowy"<<endl;
  27.     }
  28.  
  29.     Pracownik(const Pracownik &P)
  30.     {
  31.         imie = P.imie;
  32.         nazwisko = P.nazwisko;
  33.         cout<<"konstruktor kopiujacy"<<endl;
  34.     }
  35.  
  36.     Pracownik(string im, string nz)
  37.     {
  38.         imie = im;
  39.         nazwisko = nz;
  40.         cout<<"konstruktor z parametrami"<<endl;
  41.     }
  42.  
  43.     virtual ~Pracownik()
  44.     {
  45.         licznik--;
  46.         cout<<"destruktor - licznik: "<<licznik<<endl;
  47.     }
  48. };
  49.  
  50. int Pracownik::licznik = 0;         //definicja i zainicjowanie zmiennej statycznej licznik
  51.  
  52. void Pracownik::wpisz_dane()
  53. {
  54.     cout<<"Imie: ";
  55.     cin>>imie;
  56.     cout<<"Nazwisko: ";
  57.     cin>>nazwisko;
  58.     cout<<"ID: ";
  59.     cin>>id;
  60. }
  61.  
  62. void Pracownik::wys_wynik()
  63. {
  64.     cout<<imie<<" "<<nazwisko<<" Nr ID: "<<id<<endl;
  65.     cout<<"| Stawka: "<<stawka<<" | Licznik: "<<licznik<<endl;
  66. }
  67.  
  68.  
  69.  
  70. class Kierownik : public Pracownik
  71. {
  72. public:
  73.     double stawkaK()
  74.     {
  75.         int st;
  76.         st = stawka*5;
  77.         return(st);
  78.     }
  79. };
  80.  
  81. class Informatyk : public Pracownik
  82. {
  83. public:
  84.     double stawkaK()
  85.     {
  86.         int st;
  87.         st = stawka*3.5;
  88.         return(st);
  89.     }
  90. };
  91.  
  92.  
  93.  
  94.  
  95.  
  96. int main()
  97. {
  98.     cout<<"__Pracownicy"<<endl;
  99.     Pracownik P1;       //pracownik domyślny
  100.     Pracownik P2("Jan", "Kowalski");        //konstruktor sparametryzowany *2a
  101.     Pracownik P3;
  102.     P3.wpisz_dane();            //użytkownik podaje sparametryzowanego &2b
  103.     P1.wys_wynik();
  104.     P3.wys_wynik();
  105.     P2.wys_wynik();
  106.     cout<<"__Informatycy"<<endl;
  107.     Informatyk I1;
  108.     Informatyk I2(I1);
  109.     I1.wys_wynik();
  110.     cout<<"informatyk 1 ^"<<endl;
  111.     I2.wys_wynik();
  112.     cout<<"Informatyk 2 ^"<<endl;
  113.     cout<<"__Kierownik"<<endl;
  114.     Kierownik K1;
  115.     K1.wpisz_dane();
  116.     K1.wys_wynik();
  117.  
  118.     //vector<Pracownik> zespol = {K1, I1, P1};          //to ma byc tablica
  119.  
  120. }
  121.