Advertisement
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,visina;
- public:
- Vozilo() {}
- Vozilo(float masa,int sirina,int visina) {
- this->masa=masa;
- this->sirina=sirina;
- this->visina=visina;
- }
- void setMasa(float masa) {
- this->masa=masa;
- }
- void setSirina(int sirina) {
- this->sirina=sirina;
- }
- void setVisina(int visina) {
- this->visina=visina;
- }
- float getMasa() {
- return masa;
- }
- int getSirina() {
- return sirina;
- }
- int getVisina() {
- return visina;
- }
- virtual int vratiDnevnaCena() =0;
- };
- class Avtomobil:public Vozilo {
- protected:
- int vrati;
- public:
- Avtomobil():Vozilo() {}
- Avtomobil(float masa,int sirina,int visina,int vrati):Vozilo(masa,sirina,visina) {
- this->vrati=vrati;
- }
- void setVrati(int vrati) {
- this->vrati=vrati;
- }
- int getVrati() {
- return vrati;
- }
- virtual int vratiDnevnaCena() {
- if(vrati<5) {
- return 100;
- }
- return 130;
- }
- };
- class Avtobus:public Vozilo {
- protected:
- int patnici;
- public:
- Avtobus():Vozilo() {}
- Avtobus(float masa,int sirina,int visina,int patnici):Vozilo(masa,sirina,visina) {
- this->patnici=patnici;
- }
- void setPatnici(int patnici) {
- this->patnici=patnici;
- }
- int getPatnici() {
- return patnici;
- }
- virtual int vratiDnevnaCena() {
- return patnici*5;
- }
- };
- class Kamion:public Vozilo {
- protected:
- float tovar;
- public:
- Kamion():Vozilo() {}
- Kamion(float masa,int sirina,int visina,float tovar):Vozilo(masa,sirina,visina) {
- this->tovar=tovar;
- }
- void setTovar(float tovar) {
- this->tovar=tovar;
- }
- float getTovar() {
- return tovar;
- }
- virtual int vratiDnevnaCena() {
- return(masa+tovar)*0.02;
- }
- };
- class ParkingPlac {
- protected:
- Vozilo**vozila;
- int Broj;
- public:
- ParkingPlac() {
- Broj=0;
- vozila=new Vozilo*[0];
- }
- ParkingPlac(Vozilo*vozila[], int Broj) {
- this->Broj = Broj;
- this->vozila = new Vozilo*[this->Broj];
- for (int i = 0; i < this->Broj; i++) {
- this->vozila[i] = vozila[i];
- }
- }
- ParkingPlac(const ParkingPlac &r) {
- this->Broj = r.Broj;
- this->vozila = new Vozilo*[this->Broj];
- for (int i = 0; i < this->Broj; i++) {
- this->vozila[i] = r.vozila[i];
- }
- }
- ParkingPlac operator=(const ParkingPlac &r) {
- if (this!=&r) {
- delete[]vozila;
- this->Broj = r.Broj;
- this->vozila = new Vozilo*[this->Broj];
- for (int i = 0; i < this->Broj; i++) {
- this->vozila[i] = r.vozila[i];
- }
- }
- return*this;
- }
- ParkingPlac operator +=(Vozilo *r) {
- Vozilo **tmp = new Vozilo *[Broj + 1];
- for (int i = 0; i < Broj; i++) {
- tmp[i] = vozila[i];
- }
- delete[]vozila;
- tmp[Broj++] = r;
- vozila = tmp;
- return *this;
- }
- float presmetajVkupnaMasa() {
- float m=0;
- for(int i =0; i<Broj; i++) {
- m+=vozila[i]->getMasa();
- }
- return m;
- }
- int brojVozilaPoshirokiOd(int l) {
- int pos=0;
- for (int i=0; i<Broj; i++) {
- if (vozila[i]->getSirina()>l)
- {pos++;}
- }
- return pos;
- }
- void pecati() {
- int brojkoli=0,brojbus=0,brojkam=0;
- for(int i =0; i<Broj; i++) {
- if (dynamic_cast<Avtomobil*>(vozila[i]))
- brojkoli++;
- if (dynamic_cast<Avtobus*>(vozila[i]))
- brojbus++;
- if (dynamic_cast<Kamion*>(vozila[i]))
- brojkam++;
- }
- cout<<"Broot na avtomobili e "<<brojkoli<<", brojot na avotubusi e "<<brojbus<<" i brojot na kamioni e "<<brojkam<<"."<<endl;
- }
- int pogolemaNosivostOd (Vozilo&v) {
- int broj=0;
- for (int i=0; i<Broj; i++) {
- Kamion *kamion= dynamic_cast<Kamion*>(vozila[i]);
- if(kamion!=0)
- {
- if(kamion->getTovar()>v.getMasa())
- {broj++;}
- }
- }
- return broj;
- }
- int vratiDnevnaZarabotka() {
- int zarabotka;
- for(int i=0; i<Broj; i++) {
- zarabotka += vozila[i]->vratiDnevnaCena();
- }
- return zarabotka;
- }
- ~ParkingPlac(){delete[]vozila;}
- };
- 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
Advertisement