Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cstring>
- using namespace std;
- //вашиот код треба да биде тука
- class Vozilo{
- protected:
- float masa;
- int sirina,visina;
- public:
- Vozilo(){
- }
- Vozilo(float m,int s,int v):masa(m),sirina(s),visina(v){}
- virtual float getMasa()
- {
- return masa;
- }
- int getS()
- {
- return sirina;
- }
- int getV()
- {
- return visina;
- }
- virtual int vratiDnevnaCena()=0;
- };
- class Avtomobil:public Vozilo{
- protected:
- int brvrati;
- public:
- Avtomobil(float m,int s,int v,int brv):Vozilo(m,s,v),brvrati(brv){}
- int getVrati()
- {
- return brvrati;
- }
- virtual int vratiDnevnaCena()
- {
- if(brvrati<5)
- return 100;
- else
- return 130;
- }
- };
- class Avtobus:public Vozilo{
- protected:
- int brpatnici;
- public:
- Avtobus(float m,int s,int v,int brp):Vozilo(m,s,v),brpatnici(brp){}
- int getBrp()
- {
- return brpatnici;
- }
- virtual int vratiDnevnaCena()
- {
- return 5*brpatnici;
- }
- };
- class Kamion:public Vozilo{
- protected:
- float maksm;
- public:
- Kamion(float m,int s,int v,float m1):Vozilo(m,s,v),maksm(m1){}
- float getM()
- {
- return maksm;
- }
- virtual int vratiDnevnaCena()
- {
- return 0.02*(this->maksm+this->getMasa());
- }
- };
- class ParkingPlac{
- private:
- Vozilo **v;
- int n;
- public:
- ParkingPlac() { v=new Vozilo*[100]; n=0; }
- ParkingPlac(const ParkingPlac &r)
- {
- for(int i=0;i<n;i++)
- delete v[i];
- n=r.n;
- v=new Vozilo*[n];
- for(int i=0; i<n; i++)
- {
- v[i]=r.v[i];
- }
- }
- ~ParkingPlac()
- {
- for(int i=0;i<n;i++)
- delete v[i];
- delete []v;
- }
- ParkingPlac &operator+=(Vozilo *vozilo)
- {
- v[n++]=vozilo;
- // cout<<"ulaza tuj"<<endl;
- return *this;
- }
- float presmetajVkupnaMasa()
- {
- float r=0;
- for(int i=0;i<n;i++)
- r+=v[i]->getMasa();
- return r;
- }
- int brojVozilaPoshirokiOd(int l)
- {
- int q=0;
- for(int i=0;i<n;i++)
- {
- if(v[i]->getS()>=l)
- q++;
- }
- return q;
- }
- void pecati()
- {
- // cout<<"stignala"<<endl;
- int brAvtomobili=0;
- int brAvtobusi=0;
- int brKamioni=0;
- for(int i=0; i<n; i++)
- {
- Avtomobil *a=dynamic_cast<Avtomobil*>(v[i]);
- if(a!=0)
- brAvtomobili++;
- Avtobus *b=dynamic_cast<Avtobus*>(v[i]);
- if(b!=0)
- brAvtobusi++;
- Kamion *k=dynamic_cast<Kamion*>(v[i]);
- if(k!=0)
- brKamioni++;
- }
- cout << "Brojot na avtomobili e "<<brAvtomobili<<", brojot na avtobusi e "
- <<brAvtobusi<<" i brojot na kamioni e "<<brKamioni<<"."<<endl;
- }
- int pogolemaNosivostOd(Vozilo &voz)
- {
- int br=0;
- for(int i=0;i<n;i++)
- {
- Kamion *k;
- k=dynamic_cast<Kamion *>(v[i]);
- if(k!=0)
- {
- if(k->getM()>voz.getMasa())
- br++;
- }
- }
- return br;
- }
- int vratiDnevnaZarabotka() {
- int rez=0;
- for(int i=0;i<n;i++)
- rez+=v[i]->vratiDnevnaCena();
- return rez;
- }
- };
- 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);
- }
- // cout<<"vrti main"<<endl;
- }
- //cout<<"DA"<<endl;
- 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;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement