Subiectul 15 Nume si prenume: __________________________ Grupa: __________ Puncte estimate: ____________
Să se implementeze clasa Produs (codProd – cod reprezentat de un număr întreg constant, nrPreturi – număr preturi din istoric preturi, istoricPreturi – vector cu dimensiune variabilă, alocat dinamic, cu numere întregi ce reprezintă lista preturilor pe care produsul le-a avut), și să se dezvolte aplicația C++ care conține următoarele instrucțiuni din main(): 1pt 1pt 1pt
Definire clasa si atribute conform cerințelor
1pt
Produs p3 = p2; cout << "\n" << p3.getCodProd(); //afișează 104
1pt
int preturi2[]{ 500,525,400,450 }; p1.setPreturi(preturi2, 4); cout <<"\n"<< p1.getNrPreturi(); //afișează 4
1pt
p3 = p1; int pretMax = p3.getPretMaxim(); cout <<"\n"<< pretMax; //afișează 525 Produs p4(110); cout<<"\n"<< p4.getPretMaxim(); //afișează 0
1pt
Produs* pp1 = new Produs(109); *pp1 = p1; cout << *pp1; //afișează Produsul cu codul 109 are 4 preturi in istoric: 500 525 400 450
1pt
... // dezalocă spațiul ocupat de pp1 – implementați apelul pentru ștergere int pretUltim = (int)p1; cout << "\n"<<pretUltim; //afișează 450, ultimul pret din istoricul de preturi
1pt
p1 = ++p3; //actualizeaza ultimul pret prin incrementarea cu 1 unitate cout << p1; //afișează Produsul cu codul 102 are 4 preturi in istoric: 500 525 400 451 cout << p3; //afișează Produsul cu codul 104 are 4 preturi in istoric: 500 525 400 451 p4.setPreturi(preturi,5); if (p1 == p4) cout << "\nPretul mediu al produsului p1 este acelasi cu cel al produsului p4"; else cout << "\ nPretul mediu al produsului p1 nu este acelasi cu cel al produsului p4";
1pt
Implementare destructor pentru a evita generarea de memory leaks void main() { Produs p1(102); cout << p1.getNrPreturi(); //afișează 0 int preturi[]{ 100,150,125,150,130 }; Produs p2(104, preturi, 5); cout << "\n" << p2.getNrPreturi(); //afișează 5
//se va afișa mesajul corect Notă: Doar soluțiile care nu conțin erori de compilare vor fi evaluate.