Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.82 KB | None | 0 0
  1. #include #include using namespace std; class Zbor { private: const int codZbor; int nrKm; float* preturi = NULL; int nrBilete; public: static int costKm; Zbor(const int p_codZbor, int p_nrKm, float* p_preturi,int p_nrBilete):codZbor(p_codZbor) { nrKm = p_nrKm; if (p_preturi != NULL && p_nrBilete > 0) { nrBilete = p_nrBilete; preturi = new float[p_nrBilete]; for (int i = 0; i < p_nrBilete; i++) { preturi[i] = p_preturi[i]; } } } Zbor(const Zbor& z):codZbor(z.codZbor) { nrKm = z.nrKm; nrBilete = z.nrBilete; preturi = new float[z.nrBilete]; for (int i = 0; i < z.nrBilete; i++) { preturi[i] = z.preturi[i]; } } Zbor(const int p_codZbor) :codZbor(p_codZbor) { nrKm = 0; } float getPreturi(int pozitie) { int x = 0; if (preturi != NULL) x = preturi[pozitie]; return x; } int getNrKm() { return nrKm; } int getCodZbor() { return codZbor; } void addBilet(float valoare) { float* copiePreturi = new float[nrBilete]; for (int i = 0; i < nrBilete; i++) { copiePreturi[i] = preturi[i]; } if (preturi != NULL) { delete[] preturi; } nrBilete++; preturi = new float[nrBilete]; for (int i = 0; i < nrBilete - 1; i++) { preturi[i] = copiePreturi[i]; } preturi[nrBilete ] = valoare; } int getNrBilete() { return nrBilete; } Zbor operator=(const Zbor& z) { nrKm = z.nrKm; nrBilete = z.nrBilete; preturi = new float[z.nrBilete]; for (int i = 0; i < z.nrBilete; i++) { preturi[i] = z.preturi[i]; } return *this; } bool esteRentabil() { for (int i = 0; i < nrBilete; i++) if ((costKm*nrKm) <= (preturi[i] * nrBilete)) return true; else return false; } friend ostream& operator<<(ostream& monitor,Zbor& z) { monitor << "Zborul " << z.codZbor << " are " << z.nrKm << ".Bilete vandute : "; for (int i = 0; i < z.getNrBilete(); i++) monitor << z.preturi[i] << endl; return monitor; } bool operator>(Zbor& z) { if (z.nrKm > 1000) return true; else return false; } }; bool operator>(Zbor& z,int valoare) { if (z.getNrKm()>valoare) return true; else return false; } int Zbor::costKm = 100; void main() { Zbor zb1(1201);//1201-codZbor cout << zb1.getNrKm();//afiseaza 0 float preturi[]{ 300,200,450,250 }; Zbor zb2(1210, 1350, preturi, 4); cout << "\n" << zb2.getPreturi(1);//200 Zbor zb3 = zb2; cout << "\n" << zb3.getCodZbor();//afis 1210 zb3.addBilet(500);//adauga un nou pret bilet in vectorul de preturi cout << "\n" << zb3.getNrBilete();//afiseaza 5 zb1 = zb3; bool rez = zb1.esteRentabil();//returneaza 1 daca consumul in fct de km parcursi de zbor si de costul per km este acoperit de biletele achizitionate cout << "\n" << rez; //afiseaza 0 cout << endl; Zbor::costKm = 120; cout << zb1;//afiseaza: Zborul 1201 are 1350 km.Biletele vandute : 300 200 450 250 500 /* zb4 =--zb1;///elimina ultimul pret din vectorul de preturi bilete cout << zb1 << zb4;*/ if (zb3 > 1000) cout << "\nZborul zb3 are un nr de km > 1000"; else cout << "\nZborul zb3 nu are un nr de km > 1000"; //se va afisa mesajul corect }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement