Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<string>
- #include <fstream>
- using namespace std;
- class Autobuz
- {
- private:
- int nrLinie;
- char* marcaAutobuz = NULL;
- int nrCurseZilnice;
- int nrLocuri;
- public:
- static int pretBilet;
- ///////////////////////////////////////////////////////Constructor default
- Autobuz()
- {
- nrLinie = 0;
- marcaAutobuz = new char[strlen("nespecificat") + 1];
- strcpy(marcaAutobuz, "nespecificat");
- nrCurseZilnice = 0;
- nrLocuri = 0;
- cout << "Constructor default" << endl;
- }
- ///////////////////////////////////////////////////////Constructor cu parametri
- Autobuz(int nrLinie, const char* marcaAutobuz)
- {
- this->nrLinie = nrLinie;
- this->marcaAutobuz = new char[strlen(marcaAutobuz) + 1];
- strcpy(this->marcaAutobuz, marcaAutobuz);
- this->nrCurseZilnice = 0;
- this->nrLocuri = 0;
- cout << "Constructor cu parametri" << endl;
- }
- Autobuz(const char* marcaAutobuz, int nrCurseZilnice, int nrLocuri)
- {
- this->nrLinie = 0;
- this->marcaAutobuz = new char[strlen(marcaAutobuz) + 1];
- strcpy(this->marcaAutobuz, marcaAutobuz);
- this->nrCurseZilnice = nrCurseZilnice;
- this->nrLocuri = nrLocuri;
- cout << "Constructor cu parametri" << endl;
- }
- //////////////////////////////////////////////////////Constructor de copiere
- Autobuz(const Autobuz& copy)
- {
- this->nrLinie = copy.nrLinie;
- this->marcaAutobuz = new char[strlen(copy.marcaAutobuz) + 1];
- strcpy(this->marcaAutobuz, copy.marcaAutobuz);
- this->nrCurseZilnice = copy.nrCurseZilnice;
- this->nrLocuri = copy.nrLocuri;
- cout << "S-a apelat constructorul de copiere" << endl;
- }
- ////////////////////////////////////////////////////Operator =
- Autobuz& operator=(const Autobuz& copie)
- {
- delete[] marcaAutobuz;
- this->nrLinie = copie.nrLinie;
- this->marcaAutobuz = new char[strlen(copie.marcaAutobuz) + 1];
- strcpy(this->marcaAutobuz, copie.marcaAutobuz);
- this->nrCurseZilnice = copie.nrCurseZilnice;
- this->nrLocuri = copie.nrLocuri;
- cout << "S-a apelat operatorul =" << endl;
- return *this;
- }
- ///////////////////////////Metoda venit maxim
- int venitMaxim()
- {
- return nrCurseZilnice * nrLocuri * pretBilet;
- }
- //////////////////////////Metoda realizare cursa
- bool poateRealizaCursa(int nrLocuri)
- {
- if (this->nrLocuri > nrLocuri)
- {
- //cout << "DA" << endl;
- return true;
- }
- else
- {
- //cout << "NU" << endl;
- return false;
- }
- }
- ///////////////////////////////////////////////////////Metoda salvare in fisier
- void Save(string numeFisier)
- {
- ofstream f;
- f.open(numeFisier, ios::out | ios::binary);
- if (f.is_open())
- {
- f.write((char*)&nrLinie, sizeof(int));
- int temp = strlen(marcaAutobuz + 1);
- f.write((char*)&temp, sizeof(int));
- f.write(marcaAutobuz, strlen(marcaAutobuz) + 1);
- f.write((char*)&nrCurseZilnice, sizeof(int));
- f.write((char*)&nrLocuri, sizeof(int));
- f.write((char*)&pretBilet, sizeof(int));
- }
- f.close();
- }
- //////////////////////////////////////////////////Metoda Luat din fisier
- void Load(string numeFisier)
- {
- ifstream f;
- f.open(numeFisier, ios::in | ios::binary);
- if (f.is_open())
- {
- f.read((char*)&nrLinie, sizeof(int));
- int temp = 0;
- f.read((char*)&temp, sizeof(int));
- if (marcaAutobuz != NULL)
- {
- delete[] marcaAutobuz;
- }
- marcaAutobuz = new char[temp];
- f.read(marcaAutobuz, temp);
- f.read((char*)&nrCurseZilnice, sizeof(int));
- f.read((char*)&nrLocuri, sizeof(int));
- f.read((char*)&pretBilet, sizeof(int));
- }
- f.close();
- }
- //////////////////////////////////////setter nume
- void setMarca(char* n)
- {
- if (this->marcaAutobuz)
- {
- delete[] this->marcaAutobuz;
- }
- this->marcaAutobuz = new char[strlen(n) + 1];
- strcpy(this->marcaAutobuz, n);
- }
- void Display()
- {
- cout << "NrLinie " << nrLinie << endl;
- cout << "MarcaAutobuz " << marcaAutobuz << endl;
- cout << "NrCurseZIlnice " << nrCurseZilnice << endl;
- cout << "NrLocuri " << nrLocuri << endl;
- cout << "PretBilet " << pretBilet << endl;
- }
- //////////////////////////////////////////////////////Destrucor
- ~Autobuz()
- {
- if (marcaAutobuz != NULL)
- {
- delete[] this->marcaAutobuz;
- }
- cout << "Destructor apelat" << endl;
- }
- Autobuz operator+(int value)
- {
- Autobuz copie = *this;
- copie.nrCurseZilnice += value;
- return copie;
- }
- friend ostream& operator<<(ostream&, Autobuz);
- //friend int operator+(Autobuz&,int);
- friend Autobuz operator+(int, Autobuz);
- friend istream& operator>>(istream&, Autobuz&);
- bool operator<(const Autobuz& a)
- {
- if (this->nrCurseZilnice < a.nrCurseZilnice)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- };
- class Autobaza
- {
- private:
- int nrAutobuze;
- Autobuz** vector;
- public:
- };
- Autobuz operator+(int value, Autobuz a)
- {
- a.nrCurseZilnice += value;
- return a;
- }
- //int operator+(int x, Autobuz& c)
- //{
- // return c.nrCurseZilnice + x;
- //}
- //int operator+(Autobuz& c, int x)
- //{
- // return c.nrCurseZilnice + x;
- //}
- ostream& operator<<(ostream& out, Autobuz aux)
- {
- out << "NrLinie: " << aux.nrLinie << endl;
- out << "MarcaAutobuz: " << aux.marcaAutobuz << endl;
- out << "NrCurseZilnice: " << aux.nrCurseZilnice << endl;
- out << "NrLocuri: " << aux.nrLocuri << endl;
- out << "PretBilet: " << aux.pretBilet << endl;
- return out;
- }
- istream& operator>>(istream& in, Autobuz& aux)
- {
- cout << "NrLinie: ";
- in >> aux.nrLinie;
- cout <<endl<< "MarcaAutobuz: ";
- char buffer[100];
- in >> buffer;
- aux.setMarca(buffer);
- cout << endl << "NrCurseZIlnice: ";
- in >> aux.nrCurseZilnice;
- cout << endl << "PretBilet: ";
- in >> aux.pretBilet;
- return in;
- }
- int Autobuz::pretBilet = 15;
- int main()
- {
- Autobuz a1("MB", 2, 20);
- Autobuz a2("BMW", 3, 15);
- if (a1 < a2)
- {
- cout << "Primul autobuz are mai putine locuri";
- }
- else
- {
- cout << "Primul autobuz are mai multe locuri";
- }
- //a1.Display();
- //Autobuz a2(5, "otokar");
- //a2.Display();
- //Autobuz a3(a2);
- //a3.Display();
- //Autobuz a4;
- //a4 = a3;
- //a4.Display();
- //Autobuz a5("MB", 2, 10);
- //cout << a5.venitMaxim() << endl;
- //a5.poateRealizaCursa(5);
- //a5.poateRealizaCursa(15);
- //cout<<a5<<endl;
- //Autobuz a6;
- //cin >> a6;
- //a6.Display();
- //a1.Display();
- //cout << a6 + 3 << endl;
- //cout << 3 + a6 << endl;
- //a6 = a6 + 2;
- //a6 = 2 + a6;
- /*cout << endl << "-----------------------";
- a6.Display();
- cout << endl << "-----------------------";*/
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement