Advertisement
AnaGocevska

Untitled

May 15th, 2015
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.10 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5.  
  6. class Vozac
  7. {
  8. protected:
  9.     char ime[100];
  10.     int vozrast;
  11.     int brTrki;
  12.     bool daliVeteran;
  13.  
  14. public:
  15.     Vozac(char *ime="", int vozrast=0, int brTrki=0, bool daliVeteran=false)
  16.     {
  17.         strcpy(this->ime, ime);
  18.         this->vozrast=vozrast;
  19.         this->brTrki=brTrki;
  20.         this->daliVeteran=daliVeteran;
  21.     }
  22.  
  23.     virtual float zarabotuvacka()=0;
  24.     virtual float danok()=0;
  25.  
  26.     friend ostream &operator<<(ostream &out, Vozac &v)
  27.     {
  28.         out<<v.ime<<endl;
  29.         out<<v.vozrast<<endl;
  30.         out<<v.brTrki<<endl;
  31.         if(v.daliVeteran)
  32.         {
  33.             out<<"VETERAN"<<endl;
  34.         }
  35.         return out;
  36.     }
  37.  
  38.     bool operator==(Vozac &v)
  39.     {
  40.         return zarabotuvacka() == v.zarabotuvacka();
  41.     }
  42. };
  43.  
  44. class Avtomobilist:public Vozac
  45. {
  46. protected:
  47.     float cena;
  48. public:
  49.     Avtomobilist(char *ime="", int vozrast=0, int brTrki=0, bool daliVeteran=false, float cena=0):Vozac(ime, vozrast, brTrki, daliVeteran)
  50.     {
  51.         this->cena=cena;
  52.     }
  53.  
  54.     float zarabotuvacka()
  55.     {
  56.         return (cena/5);
  57.     }
  58.  
  59.     float danok()
  60.     {
  61.         if(brTrki>10)
  62.         {
  63.             return (15*zarabotuvacka())/100;
  64.         }
  65.         else
  66.         {
  67.             return (zarabotuvacka()*10)/100;
  68.         }
  69.     }
  70. };
  71.  
  72. class Motociklist:public Vozac
  73. {
  74. protected:
  75.     int mokjnost;
  76. public:
  77.     Motociklist(char *ime="", int vozrast=0, int brTrki=0, bool daliVeteran=false, int mokjnost=0):Vozac(ime, vozrast, brTrki, daliVeteran)
  78.     {
  79.         this->mokjnost=mokjnost;
  80.     }
  81.  
  82.     float zarabotuvacka()
  83.     {
  84.         return mokjnost*20;
  85.     }
  86.  
  87.     float danok()
  88.     {
  89.         if(daliVeteran)
  90.         {
  91.             return (zarabotuvacka()*25)/100;
  92.         }
  93.         else
  94.         {
  95.             return (zarabotuvacka()*20)/100;
  96.         }
  97.     }
  98. };
  99.  
  100. int soIstaZarabotuvachka(Vozac **v, int n, Vozac *voz)
  101. {
  102.     int counter=0;
  103.     for(int i=0; i<n; i++)
  104.     {
  105.         if(v[i]->zarabotuvacka() == voz->zarabotuvacka())
  106.         {
  107.             counter++;
  108.         }
  109.     }
  110.     return counter;
  111. }
  112. int main() {
  113.     int n, x;
  114.     cin >> n >> x;
  115.     Vozac **v = new Vozac*[n];
  116.     char ime[100];
  117.     int vozrast;
  118.     int trki;
  119.     bool vet;
  120.     for(int i = 0; i < n; ++i) {
  121.         cin >> ime >> vozrast >> trki >> vet;
  122.         if(i < x) {
  123.             float cena_avto;
  124.             cin >> cena_avto;
  125.             v[i] = new Avtomobilist(ime, vozrast, trki, vet, cena_avto);
  126.         } else {
  127.             int mokjnost;
  128.             cin >> mokjnost;
  129.             v[i] = new Motociklist(ime, vozrast, trki, vet, mokjnost);
  130.         }
  131.     }
  132.     cout << "=== DANOK ===" << endl;
  133.     for(int i = 0; i < n; ++i) {
  134.         cout << *v[i];
  135.         cout << v[i]->danok() << endl;
  136.     }
  137.     cin >> ime >> vozrast >> trki >> vet;
  138.     int mokjnost;
  139.     cin >> mokjnost;
  140.     Vozac *vx = new Motociklist(ime, vozrast, trki, vet, mokjnost);
  141.     cout << "=== VOZAC X ===" << endl;
  142.     cout << *vx;
  143.     cout << "=== SO ISTA ZARABOTUVACKA KAKO VOZAC X ===" << endl;
  144.     cout << soIstaZarabotuvachka(v, n, vx);
  145.     for(int i = 0; i < n; ++i) {
  146.         delete v[i];
  147.     }
  148.     delete [] v;
  149.     delete vx;
  150.     return 0;
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement