Sunteți pe pagina 1din 1

Subiect – Mașină de curse

Să se realizeze clasa MasinaDeCurse cu următoarele atribute:


• serieMasina – șir de caractere (string) constant
• numeEchipa - șir de caractere (string)
• nrTururiGrandPrix – atribut întreg pozitiv care reprezintă numărul total de tururi de parcurs
într-o cursă de grand prix
• lungimeTur – atribut de tip float pozitiv care reprezintă lungimea turului în kilometri
• nrTururiEfectuate – atribut întreg pozitiv ce reprezintă numărul de tururi efectuate de
mașina echipei de curse
• timpPeTurEfectuat – vector alocat dinamic la float ce conține timpii pe fiecare tur efectuat,
măsurați în secunde
• timpMinimPeTur – atribut static de tip float ce reprezintă valoarea minimă a timpului pe
tur
Să se efectueze următoarele cerințe:
1. Să se scrie constructorul fără parametri (default). Să nu se lase niciun atribut neinițializat.
2. Să se scrie constructorul cu parametri dat în fișierul cpp și să se facă validări pentru
parametrii metodei. Să nu se lase niciun atribut neinițializat.
3. Să se scrie destructorul fără memory leaks.
4. Să se facă getteri și setteri pentru atributele numeEchipa și timpPeTurEfectuat. Să se facă
verificarea parametrilor primiți în setteri.
5. Să se scrie constructorul de copiere.
6. Să se supraîncarce operatorul = fără a genera memory leaks.
7. Să se supraîncarce operatorii >> și << pentru citirea și scrierea din consolă.
8. Să se facă supraîncărcarea operatorului += pentru a se adăuga un nou tur. Dacă s-au
efectuat toate tururile din grand prix atunci nu se va mai adăuga turul curent.
9. Să se supraîncarce operatorul < pentru a se compara cei mai rapizi timpi pe tur dintre două
mașini de curse din grand prix.
10. Să se scrie metoda vitezaMediePeTur(int tur) care să returneze viteza medie pe un tur
efectuat, la alegere (viteza în km/h). De exemplu apelul vitezaMediePeTur(1) va returna
viteza medie cu care mașina a parcurs circuitul în primul tur al grand prix-ului.
Durată de lucru 1 oră.
Toate implementările din cerințele de mai sus vor fi testate în main. Atributele clasei vor fi
implementate în zona privată a clasei.
Soluțiile care au erori de compilare se vor puncta cu nota 1/10. Cerințele care conțin erori la
runtime (erori de HEAP) vor fi punctate pe jumătate. Cerințele care sunt implementate în clasă,
dar care nu sunt testate în main vor fi punctate pe jumătate.
Se va trimite fișierul cpp cu rezolvarea lucrării, denumirea fișierului având următorul format:
10XX_Nume_Prenume_Lucrare.cpp, unde 10XX este numărul grupei din care faceți parte.

S-ar putea să vă placă și