Advertisement
1cutcut1

Untitled

May 11th, 2023
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.75 KB | None | 0 0
  1.   Za virtual
  2.   Vozac(){}
  3.     Vozac(char *ime,int vozrast,int brTrki,bool daliVeteran)
  4.     {
  5.         strcpy(this->ime,ime);
  6.         this->vozrast = vozrast;
  7.         this->brTrki = brTrki;
  8.         this->daliVeteran = daliVeteran;
  9.     }
  10.     virtual float zarabotuvacka() =0;//pure virtual method, makes abstract class
  11.    
  12.     virtual float danok() = 0;//pure virtual method
  13. .
  14. .
  15. .
  16.     virtual ~Vozac(){}
  17. ---------------------------------------------------------------------------------------------------------------------------------------
  18. //primer za override
  19.  
  20. //1.za vnatre vo f-cija
  21.      //@Override
  22.     float danok()
  23.     {
  24.         if(brTrki>10)
  25.         {
  26.             return zarabotuvacka() * 15/100;
  27.         }
  28.         else
  29.         {
  30.             return zarabotuvacka() * 10 /100;
  31.         }
  32.     }
  33. //2.za nadvor od f-cija
  34.     //@Override
  35.     float getTotalPrice()
  36.     {
  37.         float osnovna = Vozilo::getTotalPrice();
  38.        
  39.         if(tip==GRATSKI)
  40.             return osnovna;
  41.         else
  42.             return osnovna + 10*osnovna/100;
  43.     }
  44. ---------------------------------------------------------------------------------------------------------------------------------------
  45. //nasleduvanje
  46.  
  47. class Avtobus : public Vozilo
  48. {
  49. private:
  50.     int brPatnici;
  51.     int brGradovi;
  52. public:
  53.     Avtobus () : Vozilo(){}
  54.    
  55.     Avtobus(char *marka, char *model,int cena,float potrosuvacka,int brPatnici, int brGradovi) : Vozilo(marka, model, cena, potrosuvacka)
  56.     {
  57.         this->brPatnici = brPatnici;
  58.         this->brGradovi = brGradovi;
  59.     }
  60. ------------------------------------------------------------------------------------------------------------------------------------
  61. //vidovi copy konstrukotri vo nasleduvanje
  62.  
  63.    Avtobus(const Vozilo &v,int brVrati, tipAvtomobil tip) : Vozilo(v)//constructor with arguments
  64.     {
  65.         this->brPatnici = brPatnici;
  66.         this->brGradovi = brGradovi;
  67.     }
  68.     Avtobus(const Avtomobil &a): Vozilo(a)//copy constructor
  69.     {
  70.         this->brPatnici = brPatnici;
  71.         this->brGradovi = brGradovi;
  72.     }
  73. ---------------------------------------------------------------------------------------------------------------------------------------
  74. //obicehen primer
  75. class MaticenLekar : public Lekar
  76. {
  77. private:
  78.     int brPacienti;
  79.     double *kotizacii;
  80. public:
  81.     MaticenLekar() : Lekar()
  82.     {
  83.         brPacienti=0;
  84.         kotizacii = new double[0];
  85.     }
  86.     MaticenLekar(Lekar &l, int brPacienti,double *kotizacii) : Lekar(l)
  87.     {
  88.         this->brPacienti = brPacienti;
  89.         this->kotizacii = new double[brPacienti];
  90.         for(int i=0;i<brPacienti;i++)
  91.         {
  92.             this->kotizacii[i] = kotizacii[i];
  93.         }
  94.     }
  95.     MaticenLekar(const MaticenLekar &ml) : Lekar(ml)//copy constructor
  96.     {
  97.         this->brPacienti = ml.brPacienti;
  98.         this->kotizacii = new double [brPacienti];
  99.         for(int i=0;i<brPacienti;i++)
  100.         {
  101.             this->kotizacii[i] = ml.kotizacii[i];
  102.         }
  103.     }
  104.    
  105.     MaticenLekar& operator=(const MaticenLekar &ml)
  106.     {
  107.         if(this!=&ml)
  108.         {
  109.             this->faksimil = ml.faksimil;
  110.             strcpy(this->ime,ml.ime);
  111.             strcpy(this->prezime,ml.prezime);
  112.             this->osnovnaPlata = ml.osnovnaPlata;
  113.             this->brPacienti = ml.brPacienti;
  114.             this->kotizacii = new double[brPacienti];
  115.             for(int i=0;i<brPacienti;i++)
  116.             {
  117.                 this->kotizacii[i] = ml.kotizacii[i];
  118.             }
  119.         }
  120.         return *this;
  121.     }
  122.     double prosek()
  123.     {
  124.         double suma=0;
  125.         for(int i=0;i<brPacienti;i++)
  126.         {
  127.             suma+=kotizacii[i];
  128.         }
  129.         return suma/brPacienti;
  130.     }
  131.    
  132.     //@Override
  133.     void pecati()
  134.     {
  135.         Lekar::pecati();
  136.         cout<<"Prosek na kotizacii: "<<prosek()<<endl;
  137.     }
  138.     double getPlata()
  139.     {
  140.         double osnovna=Lekar::getPlata();
  141.         return osnovna + 30*prosek()/100;
  142.     }
  143.     ~MaticenLekar()
  144.     {
  145.         delete []kotizacii;
  146.     }
  147. };
  148. ---------------------------------------------------------------------------------------------------------------------------------------
  149.    //polimorizam i dinamic static
  150.  void najskapKoncert(Koncert **k,int n)
  151. {
  152.     int brElek=0;
  153.     float max=k[0]->cena();
  154.     int index=0;
  155.    
  156.     for(int i=0;i<n;i++){
  157.         ElektronskiKoncert *ek = dynamic_cast<ElektronskiKoncert*>(k[i]);
  158.         if(ek!=0)
  159.         {
  160.             brElek++;
  161.         }
  162.         if(k[i]->cena() > max)
  163.         {
  164.             max = k[i]->cena();
  165.             index = i;
  166.         }
  167.     }
  168.    
  169.     cout<<"Najskap koncert: "<<k[index]->getNaziv()<<" "<<k[index]->cena()<<endl;
  170.     cout<<"Elektronski koncerti: "<<brElek<<" od vkupno "<<n<<endl;
  171.    
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement