Josif_tepe

Untitled

Sep 11th, 2025
322
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.01 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Sadnica {
  5. protected:
  6.     char * ime;
  7.     float osnovna_cena;
  8.  
  9. public:
  10.     Sadnica () {}
  11.     Sadnica(char * _ime, float _osnovna_cena) {
  12.         ime = new char[strlen(_ime)];
  13.         strcpy(ime, _ime);
  14.         osnovna_cena = _osnovna_cena;
  15.     }
  16.    
  17.     Sadnica(const Sadnica & tmp) {
  18.         ime = new char[strlen(tmp.ime)];
  19.         strcpy(ime, tmp.ime);
  20.         osnovna_cena = tmp.osnovna_cena;
  21.     }
  22.    
  23.     Sadnica & operator = (Sadnica tmp) {
  24.         ime = new char[strlen(tmp.ime)];
  25.         strcpy(ime, tmp.ime);
  26.         osnovna_cena = tmp.osnovna_cena;
  27.        
  28.         return *this;
  29.     }
  30.     ~Sadnica () {}
  31.    
  32.     virtual float presmetaj_cena() {
  33.         return osnovna_cena;
  34.     }
  35.    
  36.     virtual void pechati() {
  37.         cout << ime << " " << presmetaj_cena() << endl;
  38.     }
  39.    
  40. };
  41.  
  42. class Drvo : public Sadnica {
  43. protected:
  44.     int meseci;
  45. public:
  46.     Drvo() : Sadnica() {
  47.        
  48.     }
  49.     Drvo(char * _ime, float _osnovna_cena, int _meseci) : Sadnica(_ime, _osnovna_cena) {
  50.         meseci = _meseci;
  51.     }
  52.    
  53.     Drvo(const Drvo & tmp) : Sadnica(tmp) {
  54.         meseci = tmp.meseci;
  55.     }
  56.    
  57.     Drvo & operator = (Drvo tmp)  {
  58.         meseci = tmp.meseci;
  59.         return *this;
  60.     }
  61.     ~Drvo() {}
  62.    
  63.     virtual float presmetaj_cena() override {
  64.         float cena = Sadnica::presmetaj_cena();
  65.        
  66.         int kolku = meseci / 2;
  67.         for(int i = 0; i < kolku; i++) {
  68.             cena = cena + (0.1 * cena);
  69.         }
  70.         return cena;
  71.     }
  72.  
  73.     virtual void pechati() override {
  74.         Sadnica::pechati();
  75.         cout << meseci << " " << presmetaj_cena() << endl;
  76.     }
  77. };
  78.  
  79. class Cvet : public Sadnica {
  80. protected:
  81.     int denovi;
  82. public:
  83.     Cvet() : Sadnica() {
  84.        
  85.     }
  86.     Cvet(char * _ime, float _osnovna_cena, int _denovi) : Sadnica(_ime, _osnovna_cena) {
  87.         denovi = _denovi;
  88.     }
  89.     Cvet(const Cvet & tmp) : Sadnica(tmp) {
  90.         denovi = tmp.denovi;
  91.     }
  92.     Cvet & operator = (Cvet tmp) {
  93.         denovi = tmp.denovi;
  94.         return *this;
  95.     }
  96.    
  97.     ~Cvet() {}
  98.    
  99.     virtual float presmetaj_cena() override {
  100.         float cena = Sadnica::presmetaj_cena();
  101.         if(denovi < 14) {
  102.             cena /= 2.0;
  103.         }
  104.         return cena;
  105.     }
  106.    
  107.     virtual void pechati() override {
  108.         Sadnica::pechati();
  109.         cout << denovi << " " << presmetaj_cena() << endl;
  110.     }
  111. };
  112.  
  113. void fja(Sadnica ** niza, int n) {
  114.    
  115.     float cena = niza[0]->presmetaj_cena();
  116.     int idx = 0;
  117.    
  118.     for(int i = 0; i < n; i++) {
  119.         if(niza[i]->presmetaj_cena() > cena) {
  120.             cena = niza[i]->presmetaj_cena();
  121.             idx = i;
  122.         }
  123.     }
  124.     niza[idx]->pechati();
  125.    
  126. }
  127. int main() {
  128.     Sadnica *niza[20];
  129.     Drvo m("Lipa",400,12);
  130.     Cvet sl1("Lubicica",300,20),sl2("Krin",400,10);
  131.     niza[0]=&m;
  132.     niza[1]=&sl1;
  133.     niza[2]=&sl2;
  134.     fja(niza,3);
  135.     sl2=sl1;
  136.     sl2.pechati();
  137.    
  138.      return 0;
  139. }
  140.  
Advertisement
Add Comment
Please, Sign In to add comment