Advertisement
TwiNNeR

cpp avtomobili

Apr 5th, 2015
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.85 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. class Automobile {
  6. private:
  7.     char* marka;
  8.     int* registracija;
  9.     int brzina;
  10. public:
  11.     Automobile() {}
  12.     Automobile(char* _marka, int* _registracija, int _brzina) {
  13.         marka=new char[strlen(_marka)+1];
  14.         strcpy(marka,_marka);
  15.         registracija=new int[5];
  16.         for(int i=0; i<5; i++) registracija[i]=_registracija[i];
  17.         brzina=_brzina;
  18.     }
  19.     Automobile(const Automobile& a) {
  20.         marka= new char[strlen(a.marka)+1];
  21.         strcpy(marka,a.marka);
  22.         registracija=new int[5];
  23.         for(int i=0; i<5; i++) registracija[i]=a.registracija[i];
  24.         brzina=a.brzina;
  25.     }
  26.     Automobile& operator=(Automobile& a) {
  27.         marka= new char[strlen(a.marka)+1];
  28.         strcpy(marka,a.marka);
  29.         registracija=new int[5];
  30.         for(int i=0; i<5; i++) registracija[i]=a.registracija[i];
  31.         brzina=a.brzina;
  32.         return *this;
  33.     }
  34.     char* getmarka() {
  35.         return marka;
  36.     }
  37.     int* getregistracija() {
  38.         return registracija;
  39.     }
  40.     int getbrzina() {
  41.         return brzina;
  42.     }
  43.     void setse(char* _marka, int* _registracija, int _brzina) {
  44.         delete [] marka;
  45.         delete [] registracija;
  46.         brzina = _brzina;
  47.         marka=new char[strlen(_marka)+1];
  48.         strcpy(marka, _marka);
  49.         registracija=new int[5];
  50.         for(int i=0; i<5; i++) registracija[i]=_registracija[i];
  51.     }
  52.     bool operator==(Automobile& a) {
  53.         for(int i=0; i<5; i++) {
  54.             if(registracija[i]!=a.registracija[i]) return false;
  55.         }
  56.         return true;
  57.     }
  58.     friend ostream& operator<<(ostream& out, Automobile& a) {
  59.         out << "Marka\t" << a.marka << "\tRegistracija[ ";
  60.         for(int i=0; i<5; i++) out << a.registracija[i] << " ";
  61.         out << "]";
  62.         return out;
  63.     }
  64. };
  65.  
  66. class RentACar {
  67. private:
  68.     char ime[100];
  69.     Automobile* niza;
  70.     int n;
  71. public:
  72.     RentACar() {}
  73.     RentACar(const char* _ime) {
  74.         n=0;
  75.         strcpy(ime,_ime);
  76.     }
  77.     RentACar& operator+=(Automobile& a) {
  78.         if(n==0) {
  79.             niza=new Automobile[n+1];
  80.             niza[n]=a;
  81.             n++;
  82.         } else {
  83.             Automobile* temp;
  84.             temp=new Automobile[n+1];
  85.             for(int i=0; i<n; i++) {
  86.                 temp[i]=niza[i];
  87.             }
  88.             temp[n]=a;
  89.             delete [] niza;
  90.             niza=temp;
  91.             n++;
  92.         }
  93.         return *this;
  94.     }
  95.     RentACar& operator-=(Automobile& a) {
  96.         for(int i=0; i<n; i++) {
  97.             if(niza[i]==a) {
  98.                 niza[i].setse(a.getmarka(),a.getregistracija(),a.getbrzina());
  99.                 return *this;
  100.             }
  101.         }
  102.         return *this;
  103.     }
  104.     void pecatiNadBrzina(int broj) {
  105.         cout << ime << endl;
  106.         for(int i=0; i<n; i++) {
  107.             if(niza[i].getbrzina()>broj) cout << niza[i] << endl;
  108.         }
  109.     }
  110. };
  111.  
  112. int main() {
  113.     RentACar agencija("FINKI-Car");
  114.     int n;
  115.     cin>>n;
  116.  
  117.     for (int i=0; i<n; i++) {
  118.         char marka[100];
  119.         int regisracija[5];
  120.         int maximumBrzina;
  121.  
  122.         cin>>marka;
  123.  
  124.         for (int i=0; i<5; i++)
  125.             cin>>regisracija[i];
  126.  
  127.         cin>>maximumBrzina;
  128.  
  129.         Automobile nov=Automobile(marka,regisracija,maximumBrzina);
  130.  
  131.         //dodavanje na avtomobil
  132.         agencija+=nov;
  133.  
  134.     }
  135.     //se cita grehsniot avtmobil, za koj shto avtmobilot so ista registracija treba da se izbrishe
  136.     char marka[100];
  137.     int regisracija[5];
  138.     int maximumBrzina;
  139.     cin>>marka;
  140.     for (int i=0; i<5; i++)
  141.         cin>>regisracija[i];
  142.     cin>>maximumBrzina;
  143.  
  144.     Automobile greshka=Automobile(marka,regisracija,maximumBrzina);
  145.  
  146.     //brishenje na avtomobil
  147.     agencija-=greshka;
  148.  
  149.     agencija.pecatiNadBrzina(150);
  150.  
  151.     return 0;
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement