Advertisement
MeehoweCK

Untitled

Apr 10th, 2021
887
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.94 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement