Advertisement
196040

OOP aud 4 Vraboten

Apr 27th, 2020
595
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.44 KB | None | 0 0
  1. #include<iostream>
  2.         #include<cstring>
  3.         using namespace std;
  4.         class Datum { //Да се напише класа Datum
  5.             //во која ќе се чуваат ден, месец и година (цели броеви).
  6.     private:
  7.             int den;
  8.             int mesec;
  9.             int godina;
  10.             public:
  11.                 Datum() {}
  12.             Datum(int den, int mesec, int godina) {
  13.                 this->den=den;
  14.                 this->mesec=mesec;
  15.                 this->godina=godina;
  16.             }
  17.             Datum (const Datum &d) {
  18.                   this->den=d.den;
  19.                 this->mesec=d.mesec;
  20.                 this->godina=d.godina;
  21.                             }
  22.             int getgodina() {
  23.             return godina;
  24.             }
  25.             int getmesec() {
  26.             return mesec;
  27.             }
  28.             int getden() {
  29.             return den;
  30.             }
  31.             ~Datum(){}
  32.     };
  33. class Vraboten { //Да се напише класа Vraboten во која се чува име на вработениот
  34.     //(не повеќе од 20 знаци), плата и датум на раѓање (објект од класата Datum).
  35. private:
  36.     char ime[20];
  37.     int plata;
  38.    Datum datum;
  39.     public:
  40.     Vraboten ()  {}
  41.     Vraboten (char *ime, int plata, Datum &datum) { //inace voa malce ne treba mislam ama neka stoe
  42.        strcpy(this->ime, ime);
  43.         this->plata = plata;
  44.         this->datum = datum;
  45.     }
  46.     Vraboten (const Vraboten &v) {
  47.     strcpy(this->ime, v.ime);
  48.         this->plata = v.plata;
  49.         this->datum = v.datum;
  50.     }
  51.     int getplata() {
  52.     return plata;
  53.     }
  54.     Datum getdatum() {
  55.     return datum;
  56.     }
  57.      void print () {// Печатењето на вработениот да биде реализирано со посебна функција
  58.          //print() во рамките на класата Vraboten.
  59.         cout<<"Ime: "<<ime<<" Plata: "<<plata<<endl<<"Datum na raganje: ";
  60.         cout<<datum.getden()<<"."<<datum.getmesec()<<"."<<datum.getgodina()<<endl;
  61.         }
  62. };
  63.     Vraboten najgolemaplata(Vraboten v[], int n) { //Да се напишат две функции кои како аргументи примаат
  64.         //низа од вработени и големина на низата.
  65.     //Едната функција го враќа вработениот со најголема плата,
  66.         int max=v[0].getplata();
  67.         int ind=0;
  68.         for(int i=0; i<n; i++) {
  69.             if (v[i].getplata() > max) {
  70.         max = v[i].getplata();
  71.         ind = i;
  72.         }
  73.         }  return v[ind];
  74.         }
  75.     int pomlad (Datum d1, Datum d2) {
  76.     if(d1.getgodina() > d2.getgodina())
  77.         return 1;
  78.         if(d1.getgodina() < d2.getgodina())
  79.             return 0;
  80.         if(d1.getgodina()==d2.getgodina()) {
  81.             if(d1.getmesec()>d2.getmesec())
  82.             return 1;
  83.             if(d1.getmesec()<d2.getmesec())
  84.                 return 0;
  85.             if(d1.getmesec()==d2.getmesec()) {
  86.                 if(d1.getden()>d2.getden())
  87.                     return 1;
  88.                 if(d1.getden()<d2.getden())
  89.                     return 0;
  90.             } } }
  91.     Vraboten najmladvraboten (Vraboten v[], int n) { // а другата функција го враќа најмладиот вработен во фирмата.
  92.     Datum najmal = v[0].getdatum();
  93.     int indeks = 0;
  94.         for(int i=0; i<n; i++) {
  95.             if(pomlad(v[i].getdatum(), najmal))
  96.             {
  97.                 najmal = v[i].getdatum();
  98.             indeks = i;
  99.             }
  100.         } return v[indeks];
  101.     }
  102.         int main() {
  103.             Datum d1(1, 1, 1980);
  104.             Datum d2(1, 2, 1983);
  105.             Datum d3(11, 12, 1984);
  106.     Vraboten v[3];
  107.             Vraboten v1("Marjan", 40000, d1);
  108.             Vraboten v2("Stefan", 30000, d2);
  109.             Vraboten v3("Marko", 20000, d3);
  110.             v[0] = v1;
  111.             v[1] = v2;
  112.             v[2] = v3;
  113.             cout << "Najmlad vraboten: " << endl; //Во главната програма потребно е да се испечатат
  114.             //на екран податоците за најмалдиот и најплатениот вработен.
  115.             najmladvraboten(v, 3).print();
  116.             cout << "Vraboten so najgolema plata: " << endl;
  117.             najgolemaplata(v, 3).print();
  118.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement