Advertisement
196040

OOP labs 3 Fabrika

Apr 28th, 2020
678
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.39 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstring>
  3. using namespace std;
  4. class Rabotnik { // Креирајте класа Rabotnik која во себе содржи:
  5. private:
  6. char ime[30]; // ime (низа од максимум 30 знаци)
  7. char prezime[30]; // prezime (низа од максимум 30 знаци)
  8. int plata; //plata (целобројна вредност)
  9. public:
  10.     Rabotnik(){} // За оваа класа да се креираат default конструктор
  11.     Rabotnik(char * ime, char * prezime, int plata) { //и конструктор со аргументи.
  12.     strcpy(this->ime, ime);
  13.         strcpy(this->prezime, prezime);
  14.         this->plata=plata;
  15.     } //Да се имплементираат и следните методи:
  16.     int getplata() { //getPlata() која ја враќа платата на работникот
  17.     return plata;
  18.     }
  19.     void pecati() { //pecati() која ги печати името, презимето и платата.
  20.     cout<<ime<<" "<<prezime<<" "<<plata;
  21.     }
  22. };
  23.     class Fabrika { // Креирајте класа Fabrika во која има:
  24.     private:
  25.         Rabotnik rabotnik[100]; //rabotnik [100] (низа од вработени)
  26.         int brojVraboteni; // brojVraboteni (целобројна вредност)
  27.         public: //Во класата имплементирајте ги следните методи:
  28.         Fabrika(){}
  29.         Fabrika(Rabotnik rabotnik[], int brojVraboteni) {
  30.             this->brojVraboteni=brojVraboteni;
  31.             for(int i=0; i<brojVraboteni; i++) {
  32.             this->rabotnik[i]=rabotnik[i];
  33.             }
  34.         }
  35.         void pecatiVraboteni() {//pecatiVraboteni() ги печати сите вработени
  36.             cout<<"Site vraboteni: "<<endl;
  37.             for(int i=0; i<brojVraboteni; i++) {  
  38.                 rabotnik[i].pecati();
  39.                 cout<<endl; }
  40.         }
  41.         void pecatiSoPlata(int plata) {//  pecatiSoPlata(int plata) ги печати сите
  42.             cout<<"Site vraboteni so plata povisoka od "<<plata<<" :"<<endl;
  43.                 for(int i=0; i<brojVraboteni; i++) { // вработени со плата поголема или еднаква на дадената во
  44.             if (rabotnik[i].getplata() > plata || rabotnik[i].getplata() == plata) //аргументот (int plata).
  45.            rabotnik[i].pecati();
  46.                 cout<<endl;
  47.                 }
  48.         }
  49. };
  50. int main() { // Во главната функција се внесуваат податоци за n вработени.
  51.     int n;
  52.     char ime[30];
  53.     char prezime[30];
  54.     int plata;
  55.     int minimalna;
  56. cin>>n; // Притоа прво се внесува n,
  57.     Rabotnik r[100];
  58.     for(int i=0; i<n; i++) { // па податоците за сите n вработени.
  59.     cin>>ime>>prezime>>plata;
  60.        r[i] = Rabotnik(ime, prezime, plata);
  61.     }
  62.     Fabrika f(r, n);
  63.     cin>>minimalna; // Во последниот ред се чита минималната плата.
  64.     f.pecatiVraboteni(); // На излез да се прикажат прво сите вработени,
  65.     f.pecatiSoPlata(minimalna); // а потоа само оние со поголема плата од минималната.
  66.     //Треба да се корисатат методите pecatiVraboteni и pecatiSoPlata!
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement