Advertisement
JStefan

[Laboratoriski] Fabrika

Mar 5th, 2017
521
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.14 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5.  
  6. class Rabotnik {
  7. private:
  8.     char ime[31];
  9.     char prezime[31];
  10.     int plata;
  11. public:
  12.     Rabotnik() {
  13.         strcpy(ime, " ");
  14.         strcpy(prezime, " ");
  15.         plata = 0;
  16.     }
  17.     Rabotnik(char* ime, char* prezime, int plata) {
  18.         strncpy(this->ime, ime, 29); this->ime[30] = 0;
  19.         strncpy(this->prezime, prezime, 29); this->prezime[30] = 0;
  20.         this->plata = plata;
  21.     }
  22.     Rabotnik(const Rabotnik& r) {
  23.         strcpy(ime, r.ime);
  24.         strcpy(prezime, r.prezime);
  25.         plata = r.plata;
  26.     }
  27.  
  28.     int getPlata() { return plata; }
  29.     void pecati() {
  30.         cout << ime << " " << prezime << " " << plata << endl;
  31.     }
  32.    
  33.     ~Rabotnik() {}
  34. };
  35.  
  36. class Fabrika {
  37. private:
  38.     Rabotnik *rabotnici;
  39.     int brojVraboteni;
  40. public:
  41.     Fabrika() {}
  42.     Fabrika(int brojVraboteni, Rabotnik r[]) {
  43.         this->brojVraboteni = brojVraboteni;
  44.         rabotnici = new Rabotnik[brojVraboteni];
  45.         for(int i = 0; i < brojVraboteni; ++i) {
  46.             rabotnici[i] = r[i];
  47.         }
  48.     }
  49.  
  50.     void pecatiVraboteni();
  51.     void pecatiSoPlata(int);
  52.    
  53.     ~Fabrika() {
  54.         delete [] rabotnici;
  55.     }
  56. };
  57.  
  58. void Fabrika::pecatiVraboteni() {
  59.     cout << "Site vraboteni:" << endl;
  60.     for(int i = 0; i < brojVraboteni; ++i) {
  61.         rabotnici[i].pecati();
  62.     }
  63. }
  64.  
  65. void Fabrika::pecatiSoPlata(int minPlata) {
  66.     cout << "Vraboteni so plata povisoka od " << minPlata << " :" << endl;
  67.     for(int i = 0; i < brojVraboteni; ++i) {
  68.         if(rabotnici[i].getPlata() >= minPlata)
  69.             rabotnici[i].pecati();
  70.     }
  71. }
  72.  
  73. int main()
  74. {
  75.     int n;
  76.     cin >> n;
  77.  
  78.     Rabotnik *rabotnici = new Rabotnik[n];
  79.  
  80.     char ime[30], prezime[30];
  81.     int plata;
  82.     for(int i = 0; i < n; ++i) {
  83.         cin >> ime >> prezime >> plata;
  84.         Rabotnik *r = new Rabotnik(ime, prezime, plata);
  85.         rabotnici[i] = *r;
  86.         delete r;
  87.     }
  88.  
  89.     int minPlata;
  90.     cin >> minPlata;
  91.  
  92.     Fabrika f(n, rabotnici);
  93.  
  94.     f.pecatiVraboteni();
  95.     f.pecatiSoPlata(minPlata);
  96.    
  97.     delete [] rabotnici;
  98.  
  99.     return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement