Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <cstring>
- using namespace std;
- class Brod
- {
- protected:
- char ime[100];
- char drzava[30];
- float kvadratura;
- public:
- Brod(){}
- Brod(char *ime,char *drzava,float kvadratura)
- {
- strcpy(this->ime,ime);
- strcpy(this->drzava,drzava);
- this->kvadratura=kvadratura;
- }
- friend ostream &operator <<(ostream &out,Brod &m)
- {
- out<<"Ime: "<<m.ime<<endl;
- out<<"Drzava: "<<m.drzava<<endl;
- out<<"Kvadrati: "<<m.kvadratura<<endl;
- out<<"Cena: "<<m.Cena()<<endl;
- return out;
- }
- virtual float Cena() const =0;
- bool operator >(const Brod &m)
- {
- if(this->Cena()>m.Cena())
- return true;
- else return false;
- }
- };
- class Jahta: public Brod
- {
- private:
- int brojpalubi;
- int brojmotori;
- public:
- Jahta(){};
- Jahta(char *ime,char *drzava,float kvadratura,int brojpalubi,int brojmotori):Brod(ime,drzava,kvadratura)
- {
- this->brojpalubi=brojpalubi;
- this->brojmotori=brojmotori;
- };
- float Cena() const
- {
- return kvadratura*700+brojmotori*20000+brojpalubi*4500;
- }
- };
- class Krstosuvac: public Brod
- {
- private:
- float kvadraturakab;
- int brojkabini;
- public:
- Krstosuvac(){};
- Krstosuvac(char *ime,char *drzava,float kvadratura,float kvadraturakab,int brojkabini):Brod(ime,drzava,kvadratura)
- {
- this->kvadraturakab=kvadraturakab;
- this->brojkabini=brojkabini;
- }
- float Cena() const
- {
- return (kvadraturakab*900)*brojkabini;
- }
- };
- class Tanker: public Brod
- {
- private:
- float volumen;
- int brojekipaz;
- public:
- Tanker(){};
- Tanker(char *ime,char *drzava,float kvadratura,float volumen,int brojekipaz):Brod(ime,drzava,kvadratura)
- {
- this->volumen=volumen;
- this->brojekipaz=brojekipaz;
- }
- float Cena() const
- {
- return (volumen*500)+(brojekipaz*3000);
- }
- };
- Brod& najskap_brod (Brod **b, int n) {
- Brod* max = b[0];
- for (int i = 1; i < n; i ++)
- if (b[i] > max)
- max = b[i];
- return *max;
- }
- int main() {
- int n; // Broj na brodovi
- int tip_brod; // Tip na Brod (1-Jahta, 2-Krstosuvac, 3-Tanker)
- cin >> n;
- Brod **brodovi = new Brod*[n];
- char ime[100];
- char drzava[30] ;
- float kvadratura;
- for(int i = 0; i < n; ++i) {
- cin >> tip_brod>> ime >> drzava >> kvadratura;
- if(tip_brod==1) {
- int br_palubi;
- int broj_motori;
- cin >> br_palubi >> broj_motori;
- brodovi[i] = new Jahta(ime, drzava, kvadratura, br_palubi, broj_motori);
- }
- else if(tip_brod == 2) {
- int br_kabini;
- float kvadrat_na_kabina;
- cin >> br_kabini >> kvadrat_na_kabina;
- brodovi[i] = new Krstosuvac (ime, drzava, kvadratura, br_kabini, kvadrat_na_kabina);
- }
- else if(tip_brod == 3){
- float volumen;
- int br_ekipaz;
- cin >>volumen >> br_ekipaz;
- brodovi[i]= new Tanker (ime, drzava, kvadratura, volumen, br_ekipaz);
- }
- }
- cout<<"== BRODOVI =="<<endl;
- for (int i=0; i<n; i++){
- cout<<*(brodovi[i])<<endl;
- }
- cout << "=== NAJSKAP BROD ===" << endl;
- cout << najskap_brod(brodovi, n);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement