MeehoweCK

Untitled

Apr 10th, 2021
720
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Zadanie 2.
  2. #include <iostream>
  3. #include <conio.h>
  4.  
  5. using namespace std;
  6.  
  7. class Pracownik
  8. {
  9.     string nazwisko;
  10.     double pensja;
  11.     double procent;
  12. public:
  13.     Pracownik(string, double, double);
  14.     void set_nazwisko(string);
  15.     void set_pensja(double);
  16.     void set_procent(double);
  17.     string get_nazwisko() const;
  18.     double get_pensja() const;
  19.     double get_procent() const;
  20.     double wyplata() const;
  21. };
  22.  
  23. Pracownik::Pracownik(string name, double kwota, double premia) : nazwisko(name), pensja(kwota), procent(premia) {}
  24.  
  25. void Pracownik::set_nazwisko(string name)
  26. {
  27.     nazwisko = name;
  28. }
  29.  
  30. void Pracownik::set_pensja(double kwota)
  31. {
  32.     pensja = kwota;
  33. }
  34.  
  35. void Pracownik::set_procent(double premia)
  36. {
  37.     procent = premia;
  38. }
  39.  
  40. string Pracownik::get_nazwisko() const
  41. {
  42.     return nazwisko;
  43. }
  44.  
  45. double Pracownik::get_pensja() const
  46. {
  47.     return pensja;
  48. }
  49.  
  50. double Pracownik::get_procent() const
  51. {
  52.     return procent;
  53. }
  54.  
  55. double Pracownik::wyplata() const
  56. {
  57.     return pensja + procent / 100 * pensja;
  58. }
  59.  
  60. int main()
  61. {
  62.     Pracownik* tablica[50];
  63.     for(unsigned i = 0; i < 50; ++i)
  64.         tablica[i] = nullptr;
  65.     unsigned ilu = 0;
  66.     bool flaga = true, flaga_nazw;
  67.     char komenda;
  68.     string nazwisko;
  69.     double pensja, procent;
  70.     while(flaga)
  71.     {
  72.         cout << "Co chcesz zrobic?\n";
  73.         cout << "\tA - nowy pracownik\n";
  74.         cout << "\tB - nowa wartosc pensji dla pracownika o podanym nazwisku\n";
  75.         cout << "\tC - nowa wartosc procentu premii dla pracownika o podanym nazwisku\n";
  76.         cout << "\tD - wyplata\n";
  77.         cout << "\tE - wyjdz z programu\n";
  78.  
  79.         do
  80.         {
  81.             komenda = _getch();
  82.             komenda = toupper(komenda);
  83.         } while(komenda < 'A' || komenda > 'E');
  84.  
  85.         switch(komenda)
  86.         {
  87.         case 'A':
  88.             cout << "Tworzenie nowego pracownika.\nPodaj nazwisko: ";
  89.             cin >> nazwisko;
  90.             cout << "Podaj pensje pracownika i procent premii: ";
  91.             cin >> pensja >> procent;
  92.             tablica[ilu] = new Pracownik(nazwisko, pensja, procent);
  93.             ++ilu;
  94.             break;
  95.         case 'B':
  96.             cout << "Podaj nazwisko pracownika, ktorego pensje chcesz zmienic: ";
  97.             cin >> nazwisko;
  98.             flaga_nazw = true;
  99.             for(unsigned i = 0; i < ilu; ++i)
  100.             {
  101.                 if(tablica[i]->get_nazwisko() == nazwisko)
  102.                 {
  103.                     cout << "Podaj nowa wartosc pensji: ";
  104.                     cin >> pensja;
  105.                     tablica[i]->set_pensja(pensja);
  106.                     flaga_nazw = false;
  107.                     break;
  108.                 }
  109.             }
  110.             if(flaga_nazw)
  111.                 cout << "Nie znaleziono takiego pracownika\n";
  112.             break;
  113.         case 'C':
  114.             cout << "Podaj nazwisko pracownika, ktorego premie chcesz zmienic: ";
  115.             cin >> nazwisko;
  116.             flaga_nazw = true;
  117.             for(unsigned i = 0; i < ilu; ++i)
  118.             {
  119.                 if(tablica[i]->get_nazwisko() == nazwisko)
  120.                 {
  121.                     cout << "Podaj nowy procent premii: ";
  122.                     cin >> procent;
  123.                     tablica[i]->set_procent(procent);
  124.                     flaga_nazw = false;
  125.                     break;
  126.                 }
  127.             }
  128.             if(flaga_nazw)
  129.                 cout << "Nie znaleziono takiego pracownika\n";
  130.             break;
  131.         case 'D':
  132.             pensja = 0;
  133.             for(unsigned i = 0; i < ilu; ++i)
  134.                 pensja += tablica[i]->wyplata();
  135.             cout << "Na wszystkie wyplaty nalezy przeznaczyc " << pensja << endl;
  136.             break;
  137.         case 'E':
  138.             cout << "Nastapi wyjscie z programu. Wcisnij dowolny przycisk...";
  139.             _getch();
  140.             flaga = false;
  141.         }
  142.     }
  143.  
  144.     for(unsigned i = 0; i < ilu; ++i)
  145.         delete tablica[i];
  146.     return 0;
  147. }
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×