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[100];
- float kvadratura;
- public:
- Brod(char *ime="", char *drzava="", float kvadratura=0)
- {
- strcpy(this->ime, ime);
- strcpy(this->drzava, drzava);
- this->kvadratura = kvadratura;
- }
- virtual float cena()=0;
- //virtual void pecati()=0;
- friend ostream &operator<<(ostream &out, Brod &b)
- {
- out<<"Ime: "<<b.ime<<endl;
- out<<"Drzava: "<<b.drzava<<endl;
- out<<"Kvadrati: "<<b.kvadratura<<endl;
- out<<"Cena: "<<b.cena()<<endl;
- return out;
- }
- bool operator>(Brod &b)
- {
- return cena() > b.cena();
- }
- };
- class Jahta:public Brod
- {
- protected:
- int brPalubi;
- int brMotori;
- public:
- Jahta(char *ime="", char *drzava="", float kvadratura=0, int brPalubi=0, int brMotori=0):Brod(ime, drzava, kvadratura)
- {
- this->brPalubi=brPalubi;
- this->brMotori=brMotori;
- }
- float cena()
- {
- return kvadratura*700+brMotori*20000+brPalubi*4500;
- }
- /*friend ostream &operator<<(ostream &out, Jahta &j)
- {
- return out<<j.ime<<j.drzava<<j.kvadratura<<j.brPalubi<<j.brMotori<<endl;
- }*/
- };
- class Krstosuvac:public Brod
- {
- protected:
- float kvadKabina;
- int brKabini;
- public:
- Krstosuvac(char *ime="", char *drzava="", float kvadratura=0, float kvadKabina=0, int brKabini=0):Brod(ime, drzava, kvadratura)
- {
- this->kvadKabina=kvadKabina;
- this->brKabini=brKabini;
- }
- float cena()
- {
- return (kvadKabina*900)*brKabini;
- }
- /*friend ostream &operator<<(ostream &out, Krstosuvac &k)
- {
- return out<<k.ime<<k.drzava<<k.kvadratura<<k.kvadKabina<<k.brKabini<<endl;
- }*/
- };
- class Tanker:public Brod
- {
- protected:
- float volumen;
- int ekipaz;
- public:
- Tanker(char *ime="", char *drzava="", float kvadratura=0,float volumen=0, int ekipaz=0):Brod(ime, drzava, kvadratura)
- {
- this->volumen=volumen;
- this->ekipaz=ekipaz;
- }
- float cena()
- {
- return (volumen*500)+3000*ekipaz;
- }
- /*friend ostream &operator<<(ostream &out, Tanker &t)
- {
- return out<<t.ime<<t.drzava<<t.kvadratura<<t.volumen<<t.ekipaz<<endl;
- }*/
- };
- Brod &najskap_brod(Brod **brodovi, int n)
- {
- Brod *temp = brodovi[0];
- for(int i=0; i<n; i++)
- {
- if(brodovi[i] > temp)
- temp = brodovi[i];
- }
- return *temp;
- }
- 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;
- najskap_brod(brodovi, n);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment