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 *i, char *d, float f)
- {
- strcpy(ime,i);
- strcpy(drzava,d);
- kvadratura=f;
- }
- virtual float cena()=0;
- friend ostream &operator<<(ostream &output, Brod &rhs)
- {
- output<<"Ime: "<<rhs.ime<<endl;
- output<<"Drzava: "<<rhs.drzava<<endl;
- output<<"Kvadrati: "<<rhs.kvadratura<<endl;
- output<<"Cena: "<<rhs.cena()<<endl;
- return output;
- }
- bool operator>(Brod &rhs)
- {
- return this->cena()>rhs.cena();
- }
- };
- class Jahta:public Brod
- {
- int brojNaPalubi;
- int brojNaMotori;
- public:
- Jahta(){}
- Jahta(char *i, char *d, float k, int br, int brm):Brod(i,d,k)
- {
- brojNaPalubi=br;
- brojNaMotori=brm;
- }
- float cena()
- {
- return kvadratura*700+brojNaMotori*20000+brojNaPalubi*4500;
- }
- };
- class Krstosuvac:public Brod
- {
- float kvadraturaNaKabina;
- int brojNaKabini;
- public:
- Krstosuvac(){}
- Krstosuvac(char *i, char *d, float k, float kv, int br):Brod(i,d,k)
- {
- kvadraturaNaKabina=kv;
- brojNaKabini=br;
- }
- float cena()
- {
- return kvadraturaNaKabina*900*brojNaKabini;
- }
- };
- class Tanker:public Brod
- {
- float volumen;
- int ekipaz;
- public:
- Tanker(){}
- Tanker(char *i, char *d, float k, float vo, int ek):Brod(i,d,k)
- {
- volumen=vo;
- ekipaz=ek;
- }
- float cena()
- {
- return volumen*500+ekipaz*3000;
- }
- };
- Brod &najskap_brod(Brod **brodovi, int n)
- {
- int id=0;
- for(int i=1;i<n;i++)
- if(*brodovi[i]>*brodovi[id])
- id=i;
- return *brodovi[n-1];
- }
- 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