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;
- void setRegistracija(int reg[5]) {
- for(int i=0; i<5; i++)
- this->registracija[i] = reg[i];
- }
- public:
- Automobile() :brzina(0) {
- marka = new char[1];
- registracija = new int[5];
- }
- Automobile(const char* marka, int registracija[5], int brzina) {
- this->marka = new char[strlen(marka)+1];
- this->registracija = new int[5];
- this->brzina = brzina;
- strcpy(this->marka, marka);
- setRegistracija(registracija);
- }
- Automobile(const Automobile& in) {
- this->marka = new char[strlen(in.marka)+1];
- this->registracija = new int[5];
- this->brzina = in.brzina;
- strcpy(this->marka, in.marka);
- setRegistracija(in.registracija);
- }
- int getMaxBrzina() const {
- return brzina;
- }
- friend ostream& operator <<( ostream& out , Automobile& t) {
- out << "Marka" << "\t" << t.marka <<"\t"<< "Registracija[ ";
- for(int i=0; i<5; i++)
- out << t.registracija[i] << " ";
- cout << "]";
- return out;
- }
- bool operator==(Automobile& t) {
- int flag = 1;
- for (int i=0; i<5; i++) {
- if(registracija[i] != t.registracija[i]) {
- flag = 0;
- break;
- }
- }
- return (flag > 0) ? true : false;
- }
- Automobile &operator=(Automobile &in) {
- if(this!=&in) {
- delete [] marka;
- delete [] registracija;
- marka = new char[strlen(in.marka)+1];
- registracija = new int[5];
- brzina = in.brzina;
- strcpy(marka, in.marka);
- setRegistracija(in.registracija);
- }
- return *this;
- }
- ~Automobile() {
- delete[] marka;
- delete[] registracija;
- }
- };
- class RentACar {
- private:
- char ime[100];
- Automobile *avtomobili;
- int brAvtomobili;
- public:
- RentACar(const char *name): brAvtomobili(0) {
- avtomobili = new Automobile[0];
- strcpy(ime, name);
- }
- RentACar &operator=(const RentACar &in) {
- if(this!=&in) {
- delete [] avtomobili;
- brAvtomobili = in.brAvtomobili;
- for(int i=0; i<brAvtomobili; i++) {
- avtomobili[i] = in.avtomobili[i];
- }
- avtomobili = new Automobile[brAvtomobili];
- strcpy(ime, in.ime);
- }
- return *this;
- }
- RentACar& operator+=(Automobile t ) {
- if(brAvtomobili == 0)
- avtomobili = new Automobile[1];
- Automobile * tmp = new Automobile [brAvtomobili + 1];
- for (int i = 0; i < brAvtomobili ; i ++)
- tmp[i] = avtomobili[i];
- tmp[brAvtomobili++] = t;
- delete[] avtomobili;
- avtomobili = tmp ;
- return *this;
- }
- RentACar& operator -=( Automobile t ) {
- int newCount = 0;
- Automobile * tmp = new Automobile[brAvtomobili];
- for (int i = 0; i < brAvtomobili; i++) {
- if (!( avtomobili[i] == t))
- tmp[newCount++] = avtomobili[i];
- }
- delete[] avtomobili;
- avtomobili = tmp;
- brAvtomobili = newCount;
- return *this;
- }
- void pecatiNadBrzina(int speed) {
- cout << ime << endl;
- if(brAvtomobili != 0)
- for(int i=0; i<brAvtomobili; i++) {
- if(avtomobili[i].getMaxBrzina() > speed)
- cout << avtomobili[i] << endl;
- }
- }
- ~RentACar() {
- delete[] avtomobili;
- }
- };
- 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);
- agencija+=nov;
- }
- 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);
- agencija-=greshka;
- agencija.pecatiNadBrzina(150);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement