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 brzina;
- public:
- Automobile() {}
- Automobile(char* _marka, int* _registracija, int _brzina) {
- marka=new char[strlen(_marka)+1];
- strcpy(marka,_marka);
- registracija=new int[5];
- for(int i=0; i<5; i++) registracija[i]=_registracija[i];
- brzina=_brzina;
- }
- 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];
- brzina=a.brzina;
- }
- Automobile& operator=(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];
- brzina=a.brzina;
- return *this;
- }
- char* getmarka() {
- return marka;
- }
- int* getregistracija() {
- return registracija;
- }
- int getbrzina() {
- return brzina;
- }
- void setse(char* _marka, int* _registracija, int _brzina) {
- delete [] marka;
- delete [] registracija;
- brzina = _brzina;
- marka=new char[strlen(_marka)+1];
- strcpy(marka, _marka);
- registracija=new int[5];
- for(int i=0; i<5; i++) registracija[i]=_registracija[i];
- }
- bool operator==(Automobile& a) {
- for(int i=0; i<5; i++) {
- if(registracija[i]!=a.registracija[i]) return false;
- }
- return true;
- }
- friend ostream& operator<<(ostream& out, Automobile& a) {
- out << "Marka\t" << a.marka << "\tRegistracija[ ";
- for(int i=0; i<5; i++) out << a.registracija[i] << " ";
- out << "]";
- return out;
- }
- };
- class RentACar {
- private:
- char ime[100];
- Automobile* niza;
- int n;
- public:
- RentACar() {}
- RentACar(const char* _ime) {
- n=0;
- strcpy(ime,_ime);
- }
- RentACar& operator+=(Automobile& a) {
- if(n==0) {
- niza=new Automobile[n+1];
- niza[n]=a;
- n++;
- } else {
- Automobile* temp;
- temp=new Automobile[n+1];
- for(int i=0; i<n; i++) {
- temp[i]=niza[i];
- }
- temp[n]=a;
- delete [] niza;
- niza=temp;
- n++;
- }
- return *this;
- }
- RentACar& operator-=(Automobile& a) {
- for(int i=0; i<n; i++) {
- if(niza[i]==a) {
- niza[i].setse(a.getmarka(),a.getregistracija(),a.getbrzina());
- return *this;
- }
- }
- return *this;
- }
- void pecatiNadBrzina(int broj) {
- cout << ime << endl;
- for(int i=0; i<n; i++) {
- if(niza[i].getbrzina()>broj) cout << niza[i] << endl;
- }
- }
- };
- int main() {
- RentACar agencija("FINKI-Car");
- int n;
- cin>>n;
- 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