Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cstring>
- using namespace std;
- class Automobile
- {
- private:
- char *marka;
- int *registracija;
- int maks_brzina;
- public:
- Automobile(const char *m="", const int *reg=0, int maksb=0)
- {
- marka = new char[strlen(m)+1];
- strcpy(marka,m);
- registracija = new int[5];
- if(reg==0)
- {
- for(int i=0;i<5;i++)
- {
- registracija[i]=0;
- }
- }
- else
- {
- for(int i=0;i<5;i++)
- {
- registracija[i]=reg[i];
- }
- }
- maks_brzina=maksb;
- }
- Automobile(const Automobile &a)
- {
- marka = new char[strlen(a.marka)+1];
- strcpy(marka,a.marka);
- registracija = new int[5];
- for(int i=0;i<5;i++)
- {
- registracija[i]=a.registracija[i];
- }
- maks_brzina=a.maks_brzina;
- }
- Automobile &operator =(const Automobile &a)
- {
- if(this==&a)return *this;
- delete [] marka;
- marka = new char[strlen(a.marka)+1];
- strcpy(marka,a.marka);
- registracija = new int[5];
- for(int i=0;i<5;i++)
- {
- registracija[i]=a.registracija[i];
- }
- maks_brzina=a.maks_brzina;
- return *this;
- }
- ~Automobile(){delete [] marka; delete [] registracija;}
- bool operator ==(const Automobile &a)
- {
- bool flag=true;
- for(int i=0;i<5;i++)
- {
- if(registracija[i]!=a.registracija[i])
- flag=false;
- }
- return flag;
- }
- friend ostream &operator <<(ostream &out, const Automobile &a)
- {
- out<<"Marka\t";
- out<<a.marka<<""<<"\tRegistracija[ ";
- for(int i=0;i<5;i++)
- {
- out<<a.registracija[i]<<" ";
- }
- out<<"]"<<endl;
- }
- int get_brzina()
- {
- return maks_brzina;
- }
- };
- class RentACar
- {
- private:
- char ime[100];
- Automobile *av;
- int broj_alto;
- public:
- RentACar(const char *im="", const Automobile *avt=0, int br_al=0)
- {
- av = new Automobile[br_al];
- strcpy(ime,im);
- for(int i=0;i<br_al;i++)
- {
- av[i] = avt[i];
- }
- broj_alto=br_al;
- }
- RentACar (const RentACar &rc)
- {
- strcpy(ime,rc.ime);
- av = new Automobile[rc.broj_alto];
- for(int i=0;i<rc.broj_alto;i++)
- {
- av[i] = rc.av[i];
- }
- broj_alto=rc.broj_alto;
- }
- RentACar &operator +=(const Automobile &a)
- {
- Automobile *temp;
- temp = new Automobile [broj_alto+1];
- for(int i=0;i<broj_alto;i++)
- {
- temp[i] = av[i];
- }
- temp[broj_alto]=a;
- delete [] av;
- av=temp;
- broj_alto++;
- return *this;
- }
- RentACar &operator -=(const Automobile &a)
- {
- Automobile *temp;
- int brojac=0;
- for(int i=0;i<broj_alto;i++)
- {
- if(av[i]==a)brojac++;
- }
- temp = new Automobile[broj_alto-brojac];
- int b=0;
- for(int i=0;i<broj_alto;i++)
- {
- if(!(av[i]==a))
- {
- temp[b]=av[i];
- b++;
- }
- }
- delete [] av;
- av=temp;
- broj_alto=broj_alto-brojac;
- return *this;
- }
- void pecatiNadBrzina(int maks)
- {
- for(int i=0;i<broj_alto;i++)
- {
- if(av[i].get_brzina()>maks)
- cout<<av[i];
- }
- }
- };
- int main()
- {
- RentACar agencija("FINKI-Car");
- int n;
- cin>>n;
- cout<<"FINKI-Car"<<endl;
- for (int i=0;i<n;i++)
- {
- char marka[100];
- int regisracija[5];
- int maximumBrzina;
- cin>>marka;
- for (int i=0;i<5;i++)
- cin>>regisracija[i];
- cin>>maximumBrzina;
- Automobile nov=Automobile(marka,regisracija,maximumBrzina);
- //dodavanje na avtomobil
- agencija+=nov;
- }
- //se cita grehsniot avtmobil, za koj shto avtmobilot so ista registracija treba da se izbrishe
- char marka[100];
- int regisracija[5];
- int maximumBrzina;
- cin>>marka;
- for (int i=0;i<5;i++)
- cin>>regisracija[i];
- cin>>maximumBrzina;
- Automobile greshka=Automobile(marka,regisracija,maximumBrzina);
- //brishenje na avtomobil
- agencija-=greshka;
- agencija.pecatiNadBrzina(150);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement