Josif_tepe

Untitled

Sep 13th, 2026
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.72 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Sportist {
  5. private:
  6.     string ime;
  7.     float bmi;
  8.     int aktivni;
  9.    
  10. public:
  11.     Sportist () {}
  12.     Sportist(string ime, float bmi ,int aktivni) {
  13.         this->ime = ime;
  14.         this->bmi = bmi;
  15.         this->aktivni = aktivni;
  16.     }
  17.    
  18.     Sportist(const Sportist &tmp) {
  19.         this->ime = tmp.ime;
  20.         this->bmi = tmp.bmi;
  21.         this->aktivni = tmp.aktivni;
  22.     }
  23.     ~Sportist() {}
  24.    
  25.     virtual void print() {
  26.         cout << "Ime: " << ime << " bmi: " << bmi << " aktivni: " << aktivni << endl;
  27.     }
  28.    
  29.     virtual float presmetajKalorii() {
  30.         float f = 100 + (aktivni * 1.1);
  31.         float razlika = bmi - 21.7;
  32.        
  33.         return f + (20 * razlika);
  34.     }
  35.    
  36. };
  37.  
  38. class Maratonci : public Sportist {
  39. private:
  40.     float km;
  41.    
  42. public:
  43.     Maratonci() : Sportist() {}
  44.     Maratonci(string ime, float bmi ,int aktivni, float km) : Sportist(ime, bmi, aktivni) {
  45.         this->km = km;
  46.     }
  47.     Maratonci(const Maratonci &tmp) : Sportist(tmp) {
  48.         this->km = tmp.km;
  49.     }
  50.    
  51.     ~Maratonci() {}
  52.    
  53.     virtual void print() override {
  54.         Sportist::print();
  55.        
  56.         cout << "KM: " << km << endl;
  57.     }
  58.    
  59.     virtual float presmetajKalorii() override {
  60.         float f = Sportist::presmetajKalorii();
  61.         f += 30 * km;
  62.         return f;
  63.     }
  64. };
  65.  
  66. class Velosipedisti : public Sportist {
  67. private:
  68.     int razlika;
  69.     bool sami;
  70. public:
  71.     Velosipedisti() : Sportist() {}
  72.     Velosipedisti(string ime, float bmi ,int aktivni, int razlika, bool sami) : Sportist(ime, bmi, aktivni) {
  73.         this->razlika = razlika;
  74.         this->sami = sami;
  75.     }
  76.    
  77.     Velosipedisti(const Velosipedisti & tmp) : Sportist(tmp) {
  78.         this->razlika = tmp.razlika;
  79.         this->sami = tmp.sami;
  80.     }
  81.    
  82.     ~Velosipedisti() {}
  83.    
  84.     virtual void print() override {
  85.         Sportist::print();
  86.         cout << "Razlika: " << razlika << " " << sami << endl;
  87.     }
  88.    
  89.     virtual float presmetajKalorii() override {
  90.         float f = Sportist::presmetajKalorii();
  91.         float m = razlika / 500;
  92.         f += m * 40;
  93.         if(!sami) {
  94.             f = f - (0.2 * f);
  95.         }
  96.         return f;
  97.     }
  98.    
  99. };
  100.  
  101.  
  102. int main() {
  103.     Sportist * niza[3];
  104.     niza[0] = new Sportist("A", 50, 100);
  105.     niza[1] = new Maratonci("B", 60, 300, 5);
  106.     niza[2] = new Velosipedisti("C", 70, 700, 600, false);
  107.    
  108.    
  109.     niza[0]->print();
  110.     cout << niza[0]->presmetajKalorii() << endl;
  111.    
  112.     niza[1]->print();
  113.     cout << niza[1] -> presmetajKalorii() << endl;
  114.    
  115.     niza[2]->print();
  116.     cout << niza[2]->presmetajKalorii() << endl;
  117.    
  118.       return 0;
  119. }
  120.  
Advertisement
Add Comment
Please, Sign In to add comment