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 maximumBrzina;
- public:
- Automobile() {
- marka = new char[1];
- strcpy(marka, " ");
- registracija = new int[1];
- registracija[0] = 0;
- }
- Automobile(char *marka, int registracija[], int maximumBrzina) {
- this->marka = new char[strlen(marka) + 1];
- strcpy(this->marka, marka);
- this->registracija = new int[5];
- for(int i = 0; i < 5; i++)
- this->registracija[i] = registracija[i];
- this->maximumBrzina = maximumBrzina;
- }
- Automobile(const Automobile &car) {
- this->marka = new char[strlen(car.marka) + 1];
- strcpy(this->marka, car.marka);
- this->registracija = new int[5];
- for(int i = 0; i < 5; i++) {
- this->registracija[i] = car.registracija[i];
- }
- this->maximumBrzina = car.maximumBrzina;
- }
- ~Automobile() {
- delete [] marka;
- delete [] registracija;
- }
- int getMaximumBrzina() {
- return maximumBrzina;
- }
- Automobile& operator=(const Automobile &car) {
- if(this != &car) {
- delete [] marka;
- marka = new char[strlen(car.marka) + 1];
- strcpy(marka, car.marka);
- delete [] registracija;
- registracija = new int[5];
- for(int i = 0; i < 5; i++)
- registracija[i] = car.registracija[i];
- maximumBrzina = car.maximumBrzina;
- }
- return *this;
- }
- bool operator==(const Automobile &car) {
- bool isti = true;
- for(int i = 0; i < 5; i++)
- if(registracija[i] != car.registracija[i])
- return false;
- return true;
- }
- friend ostream& operator<<(ostream &screamAndShout, const Automobile &car) {
- screamAndShout << "Marka\t" << car.marka << "\tRegistracija[ ";
- for(int i = 0; i < 5; i++)
- screamAndShout << car.registracija[i] << " ";
- screamAndShout << "]" << endl;
- return screamAndShout;
- }
- };
- class RentACar {
- private:
- char ime[100];
- Automobile *avtomobili;
- int brojNaAvtomobili;
- public:
- RentACar(char *ime) {
- strcpy(this->ime, ime);
- avtomobili = new Automobile[1];
- brojNaAvtomobili = 0;
- }
- ~RentACar() {
- delete [] avtomobili;
- }
- RentACar& operator=(const RentACar &agencija){
- if(this != &agencija) {
- strcpy(ime, agencija.ime);
- brojNaAvtomobili = agencija.brojNaAvtomobili;
- delete [] avtomobili;
- avtomobili = new Automobile[brojNaAvtomobili];
- for(int i = 0; i < brojNaAvtomobili; i++)
- avtomobili[i] = agencija.avtomobili[i];
- }
- return *this;
- }
- RentACar& operator+=(const Automobile &newCar) {
- Automobile *temp;
- temp = new Automobile[brojNaAvtomobili + 1];
- for(int i = 0; i < brojNaAvtomobili; i++)
- temp[i] = avtomobili[i];
- temp[brojNaAvtomobili] = newCar;
- delete [] avtomobili;
- avtomobili = temp;
- brojNaAvtomobili++;
- return *this;
- }
- RentACar& operator-=(const Automobile &deleteCar) {
- for(int i = 0; i < brojNaAvtomobili; i++)
- if(avtomobili[i] == deleteCar)
- avtomobili[i] = deleteCar;
- return *this;
- }
- void pecatiNadBrzina(int max) {
- cout << ime << endl;
- for(int i = 0; i < brojNaAvtomobili; i++)
- if(avtomobili[i].getMaximumBrzina() > max)
- cout << avtomobili[i];
- }
- };
- int main()
- {
- RentACar agencija("FINKI-Car");
- int n;
- cin>>n;
- for (int i=0;i<n;i++) {
- char marka[100];
- int registracija[5];
- int maximumBrzina;
- cin>>marka;
- for (int i=0;i<5;i++)
- cin>>registracija[i];
- cin>>maximumBrzina;
- Automobile nov=Automobile(marka,registracija,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 registracija[5];
- int maximumBrzina;
- cin>>marka;
- for (int i=0;i<5;i++)
- cin>>registracija[i];
- cin>>maximumBrzina;
- Automobile greshka=Automobile(marka,registracija,maximumBrzina);
- //brishenje na avtomobil
- agencija-=greshka;
- agencija.pecatiNadBrzina(150);
- return 0;
- }
Add Comment
Please, Sign In to add comment