Advertisement
Dimitrija

Laboratoriski 3 - 5 OOP

Mar 23rd, 2021
944
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.10 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. /*
  6. Креирајте класа Rabotnik која во себе содржи:
  7.  
  8. ime (низа од максимум 30 знаци)
  9. prezime (низа од максимум 30 знаци)
  10. plata (целобројна вредност)
  11. За оваа класа да се креираат default конструктор и конструктор со аргументи. Да се имплементираат и следните методи:
  12.  
  13. getPlata() која ја враќа платата на работникот
  14. pecati() која ги печати името, презимето и платата.
  15. Креирајте класа Fabrika во која има:
  16.  
  17. rabotnik [100] (низа од вработени)
  18. brojVraboteni (целобројна вредност)
  19. Во класата имплементирајте ги следните методи:
  20.  
  21. pecatiVraboteni() ги печати сите вработени
  22. pecatiSoPlata(int plata) ги печати сите вработени со плата поголема или еднаква на дадената во аргументот(int plata).
  23. Во главната функција се внесуваат податоци за n вработени. Притоа прво се внесува n, па податоците за сите n вработени. Во последниот ред се чита минималната плата.
  24.  
  25. На излез да се прикажат прво сите вработени, а потоа само оние со поголема плата од минималната. Треба да се корисатат методите pecatiVraboteni и pecatiSoPlata!
  26.  
  27. For example:
  28.  
  29. Input:
  30. 6
  31. Mile Palkovski 20000
  32. Kalina Saleska 9530
  33. Aco Noveski 66320
  34. Kalina Saleska 10720
  35. Ilinka Ilieska 30220
  36. Vesna Petkova 10500
  37. 23000
  38.  
  39. Result:
  40. Site vraboteni:
  41. Mile Palkovski 20000
  42. Kalina Saleska 9530
  43. Aco Noveski 66320
  44. Kalina Saleska 10720
  45. Ilinka Ilieska 30220
  46. Vesna Petkova 10500
  47. Vraboteni so plata povisoka od 23000 :
  48. Aco Noveski 66320
  49. Ilinka Ilieska 30220
  50. */
  51.  
  52. class Rabotnik{
  53. private:
  54.     enum Dolzina{imeDolz=30,prezimeDolz=30};
  55.     char ime[imeDolz+1];
  56.     char prezime[prezimeDolz+1];
  57.     int plata;
  58. public:
  59.     Rabotnik();
  60.     Rabotnik(char *ime,char *prezime,int plata);
  61.     int getPlata();
  62.     void pecati();
  63. };
  64. Rabotnik::Rabotnik(){}
  65. Rabotnik::Rabotnik (char *ime,char *prezime,int plataNaRab):plata(plataNaRab){
  66.     strncpy(this->ime,ime,imeDolz);
  67.     this->ime[imeDolz] = '\0';
  68.     strncpy(this->prezime,prezime,prezimeDolz);
  69.     this->prezime[prezimeDolz] = '\0';
  70. }
  71. int Rabotnik::getPlata(){
  72.     return plata;
  73. }
  74. void Rabotnik::pecati(){
  75.     cout<<ime<<" "<<prezime<<" "<<plata<<endl;
  76. }
  77.  
  78. class Fabrika{
  79. private:
  80.     enum Dolzina{MaxRabotnici = 100};
  81.     Rabotnik rabotnik[MaxRabotnici];
  82.     int brojVraboteni;
  83. public:
  84.     Fabrika();
  85.     Fabrika(Rabotnik *obj,int brojVrab);
  86.     void pecatiVraboteni();
  87.     void pecatiSoPlata(int plata);
  88. };
  89. Fabrika::Fabrika(){}
  90. Fabrika::Fabrika(Rabotnik *obj,int brojVrab):brojVraboteni(brojVrab){
  91.     for (int i=0;i<brojVraboteni;i++){
  92.         rabotnik[i] = *(obj+i);
  93.     }
  94. }
  95. void Fabrika::pecatiVraboteni(){
  96.     for (int i=0;i<brojVraboteni;i++){
  97.         rabotnik[i].pecati();
  98.     }
  99. }
  100. void Fabrika::pecatiSoPlata(int plata){
  101.     for (int i=0;i<brojVraboteni;i++){
  102.         if (rabotnik[i].getPlata() > plata){
  103.             rabotnik[i].pecati();
  104.         }
  105.     }
  106.  
  107. }
  108.  
  109.  
  110. int main()
  111. {
  112.     enum Dolzina{ImeDolz=30,PrezimeDolz=30,MaxRabotnici=100};
  113.     int n;
  114.     char ime[ImeDolz];
  115.     char prezime[PrezimeDolz];
  116.     int plata;
  117.     int minPlata;
  118.     Rabotnik rabotnik[MaxRabotnici];
  119.  
  120.     cin>>n;
  121.     for (int i=0;i<n;i++){
  122.         cin>>ime>>prezime>>plata;
  123.         Rabotnik vraboten(ime,prezime,plata);
  124.         rabotnik[i] = vraboten;
  125.     }
  126.     Fabrika fabrika(rabotnik,n);
  127.     cout<<"Site vraboteni:"<<endl;
  128.     fabrika.pecatiVraboteni();
  129.     cin>>minPlata;
  130.     cout<<"Vraboteni so plata povisoka od "<<minPlata<<" :"<<endl;
  131.     fabrika.pecatiSoPlata(minPlata);
  132.  
  133.     return 0;
  134. }
  135.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement