AnaGocevska

Untitled

May 14th, 2015
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.84 KB | None | 0 0
  1.  #include <iostream>
  2. #include <cstdlib>
  3. #include <cstring>
  4.  
  5. using namespace std;
  6.  
  7. class Brod
  8. {
  9.     protected:
  10.  
  11.     char ime[100];
  12.     char drzava[100];
  13.     float kvadratura;
  14.  
  15.     public:
  16.  
  17.     Brod(char *ime="", char *drzava="", float kvadratura=0)
  18.     {
  19.         strcpy(this->ime, ime);
  20.         strcpy(this->drzava, drzava);
  21.         this->kvadratura = kvadratura;
  22.     }
  23.  
  24.     virtual float cena()=0;
  25.     //virtual void pecati()=0;
  26.  
  27.     friend ostream &operator<<(ostream &out, Brod &b)
  28.     {    
  29.          out<<"Ime: "<<b.ime<<endl;
  30.          out<<"Drzava: "<<b.drzava<<endl;
  31.          out<<"Kvadrati: "<<b.kvadratura<<endl;
  32.         out<<"Cena: "<<b.cena()<<endl;
  33.         return out;
  34.     }
  35.  
  36.     bool operator>(Brod &b)
  37.     {
  38.         return cena() > b.cena();  
  39.     }
  40. };
  41.  
  42. class Jahta:public Brod
  43. {
  44. protected:
  45.     int brPalubi;
  46.     int brMotori;
  47. public:
  48.     Jahta(char *ime="", char *drzava="", float kvadratura=0, int brPalubi=0, int brMotori=0):Brod(ime, drzava, kvadratura)
  49.     {
  50.         this->brPalubi=brPalubi;
  51.         this->brMotori=brMotori;
  52.     }
  53.  
  54.     float cena()
  55.     {
  56.         return kvadratura*700+brMotori*20000+brPalubi*4500;
  57.     }
  58.  
  59.     /*friend ostream &operator<<(ostream &out, Jahta &j)
  60.     {
  61.         return out<<j.ime<<j.drzava<<j.kvadratura<<j.brPalubi<<j.brMotori<<endl;
  62.     }*/
  63.    
  64. };
  65.  
  66. class Krstosuvac:public Brod
  67. {
  68. protected:
  69.     float kvadKabina;
  70.     int brKabini;
  71. public:
  72.     Krstosuvac(char *ime="", char *drzava="", float kvadratura=0, float kvadKabina=0, int brKabini=0):Brod(ime, drzava, kvadratura)
  73.     {
  74.         this->kvadKabina=kvadKabina;
  75.         this->brKabini=brKabini;
  76.     }
  77.  
  78.     float cena()
  79.     {
  80.         return (kvadKabina*900)*brKabini;
  81.     }
  82.  
  83.     /*friend ostream &operator<<(ostream &out, Krstosuvac &k)
  84.     {
  85.         return out<<k.ime<<k.drzava<<k.kvadratura<<k.kvadKabina<<k.brKabini<<endl;
  86.     }*/
  87.    
  88.  
  89. };
  90.  
  91. class Tanker:public Brod
  92. {
  93. protected:
  94.     float volumen;
  95.     int ekipaz;
  96. public:
  97.     Tanker(char *ime="", char *drzava="", float kvadratura=0,float volumen=0, int ekipaz=0):Brod(ime, drzava, kvadratura)
  98.     {
  99.         this->volumen=volumen;
  100.         this->ekipaz=ekipaz;
  101.     }
  102.  
  103.     float cena()
  104.     {
  105.         return (volumen*500)+3000*ekipaz;
  106.     }
  107.  
  108.     /*friend ostream &operator<<(ostream &out, Tanker &t)
  109.     {
  110.         return out<<t.ime<<t.drzava<<t.kvadratura<<t.volumen<<t.ekipaz<<endl;
  111.     }*/
  112. };
  113.  
  114. Brod &najskap_brod(Brod **brodovi, int n)
  115. {
  116.     Brod *temp = brodovi[0];
  117.     for(int i=0; i<n; i++)
  118.     {
  119.         if(brodovi[i] > temp)
  120.             temp = brodovi[i];
  121.     }
  122.     return *temp;
  123. }
  124.        
  125.        
  126.    
  127.  
  128.  
  129. int main() {
  130.     int n; // Broj na brodovi
  131.  
  132.     int tip_brod; // Tip na Brod (1-Jahta, 2-Krstosuvac, 3-Tanker)
  133.  
  134.     cin >> n;
  135.  
  136.     Brod **brodovi = new Brod*[n];
  137.     char ime[100];
  138.     char drzava[30] ;
  139.     float kvadratura;
  140.     for(int i = 0; i < n; ++i) {
  141.         cin >> tip_brod>> ime >> drzava >> kvadratura;
  142.         if(tip_brod==1) {
  143.             int br_palubi;
  144.             int broj_motori;
  145.             cin >> br_palubi >> broj_motori;
  146.             brodovi[i] = new Jahta(ime, drzava, kvadratura, br_palubi, broj_motori);
  147.         }
  148.         else if(tip_brod == 2) {
  149.             int br_kabini;
  150.             float kvadrat_na_kabina;
  151.             cin >> br_kabini >> kvadrat_na_kabina;
  152.  
  153.             brodovi[i] = new Krstosuvac (ime, drzava, kvadratura, br_kabini, kvadrat_na_kabina);
  154.         }
  155.         else if(tip_brod == 3){
  156.             float volumen;
  157.             int br_ekipaz;
  158.             cin >>volumen >> br_ekipaz;
  159.  
  160.             brodovi[i]= new Tanker (ime, drzava, kvadratura, volumen, br_ekipaz);
  161.         }
  162.     }
  163.  
  164.     cout<<"== BRODOVI =="<<endl;
  165.     for (int i=0; i<n; i++){
  166.         cout<<*(brodovi[i])<<endl;
  167.     }
  168.  
  169.     cout << "=== NAJSKAP BROD ===" << endl;
  170.     najskap_brod(brodovi, n);
  171.  
  172.     return 0;
  173. }
Advertisement
Add Comment
Please, Sign In to add comment