Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Vozilo
- {
- protected:
- float masa;
- int sirina;
- int visina;
- public:
- Vozilo(float masa=0.0,int sirina=0,int visina=0)
- {
- this->masa=masa;
- this->sirina=sirina;
- this->visina=visina;
- }
- virtual float vrati_dnevna_cena ()=0;
- float getMasa()
- {
- return masa;
- }
- void setMasa(float masa)
- {
- this->masa=masa;
- }
- int getSirina()
- {
- return sirina;
- }
- void setSirina(int sirina)
- {
- this->sirina=sirina;
- }
- int getVisina()
- {
- return visina;
- }
- void setVisina(int visina)
- {
- this->visina=visina;
- }
- };
- class Avtomobil : public Vozilo
- {
- private:
- int br_vrati;
- public:
- Avtomobil(float masa,int sirina,int visina,int br_vrati=0): Vozilo(masa,sirina,visina)
- {
- this->br_vrati=br_vrati;
- }
- float vrati_dnevna_cena()
- {
- if(br_vrati>5)
- return 100;
- else
- return 130;
- }
- int getBrVrati()
- {
- return br_vrati;
- }
- void setBrVrati(int br_vrati)
- {
- this->br_vrati=br_vrati;
- }
- };
- class Avtobus : public Vozilo
- {
- private:
- int br_patnici;
- public:
- Avtobus(float masa,int sirina,int visina,int br_patnici=0): Vozilo(masa,sirina,visina)
- {
- this->br_patnici=br_patnici;
- }
- float vrati_dnevna_cena ()
- {
- return br_patnici*5;
- }
- int getBrPatnici()
- {
- return br_patnici;
- }
- void setBrPatnici(int br_patnici)
- {
- this->br_patnici=br_patnici;
- }
- };
- class Kamion : public Vozilo
- {
- private:
- float max_masa;
- public:
- Kamion(float masa,int sirina,int visina,float max_masa=0)
- {
- this->max_masa=max_masa;
- }
- float vrati_dnevna_cena ()
- {
- return (masa*max_masa)*0.02;
- }
- int getMaxMasa()
- {
- return max_masa;
- }
- void setMaxMasa(float max_masa)
- {
- this->max_masa=max_masa;
- }
- };
- class ParkingPlac
- {
- private:
- Vozilo **v;
- int n;
- public:
- ParkingPlac(){v=NULL;
- int n=0;}
- ~ParkingPlac () {}
- ParkingPlac &operator +=(const Vozilo &vv)
- {
- Vozilo **tmp;
- tmp=new Vozilo*[n+1];
- for(int i=0;i<n;i++)
- {
- tmp[i]=v[i];
- }
- delete [] v;
- tmp[n]=vv;
- v=tmp;
- tmp=NULL;
- n++;
- return *this;
- }
- float presmetajVkupnaMasa()
- {
- float brojac=0.0;
- for(int i=0;i<n;i++)
- {
- brojac+=v[i]->getMasa();
- }
- return brojac;
- }
- int brojVozilaPoshirokiOd(int i)
- { int maxi=0;
- for(int j=0;j<n;j++)
- {
- if(v[j]->getSirina()>i)
- {
- maxi++;
- }
- }
- return maxi;
- }
- void pecati()
- {
- int kola=0,av=0,kam=0;
- for(int i=0;i<n;i++)
- {
- if(dynamic_cast<Avtomobil*>v[i])
- {
- kola++;
- }
- else if(dynamic_cast<Avtobus*>v[i])
- {
- av++;
- }
- else if(dynamic_cast<Kamion*>v[i])
- {
- kam++;
- }
- }
- cout<<"Brojot na avtomobili e "<<kola<<", brojot na avtobusi e "<<av<<" i brojot na kamioni e "<<kam<<"."<<endl;
- }
- int pogolemaNosivostOd(Vozilo &v)
- {
- int brojac=0;
- for(int i=0;i<n;i++)
- {
- if(v[i]->getMaxMasa>v.getMasa())
- {
- brojac++;
- }
- }
- return brojac;
- }
- int vratiDnevnaZarabotka()
- {
- int suma=0;
- for(int i=0;i<n;i++)
- {
- suma+=v[i]->vrati_dnevna_cena();
- }
- return suma;
- }
- };
- int main(){
- ParkingPlac p;
- int n;
- cin>>n;
- int shirina,visina, broj;
- float masa,nosivost;
- for (int i=0;i<n;i++){
- int type;
- cin>>type;
- if(type==1){
- cin>>masa>>shirina>>visina>>broj;
- Avtomobil *a=new Avtomobil(masa,shirina,visina,broj);
- p+=a;
- }
- if(type==2){
- cin>>masa>>shirina>>visina>>broj;
- p+=new Avtobus(masa,shirina,visina,broj);
- }
- if(type==3){
- cin>>masa>>shirina>>visina>>nosivost;
- p+=new Kamion(masa,shirina,visina,nosivost);
- }
- }
- p.pecati();
- cout<<"\nZarabotkata e "<<p.vratiDnevnaZarabotka()<<endl;
- cout<<"Vkupnata masa e "<<p.presmetajVkupnaMasa()<<endl;
- cout<<"Brojot poshiroki od 5 e "<<p.brojVozilaPoshirokiOd(5)<<endl;
- Avtomobil a(1200,4,3,5);
- cout<<"Brojot na kamioni so nosivost pogolema od avtomobilot e "<<p.pogolemaNosivostOd(a)<<endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment