Crazy

Возач

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