Sunteți pe pagina 1din 1

Sudentii vor rezolva, LA ALEGERE, unul din cele 2 subiecte

Nr. 1
Se considera proiectele deja realizate. Sa se aplice urmatoarele transformari:
1. (5p)Sa se implementeze clasele de mai jos:
Luna (luna(char[20]))
ZiLuna (zi(int)) – derivata din clasa Luna;
LunaAn(an(int)) – derivata din clasa Luna;
DataCompleta – derivata din clasele ZiLuna si LunaAn
ObiectActual – derivata din clasele X (clasa derivata din proiectul vostru) si DataCompleta. - contine, pe
langa campurile existente in X si campurile din DataCompleta.
(0.5p) Se vor utiliza campuri statice pentru numararea obiectelor actualizate in luna aprilie 2018; afisarea se
va face folosind o functie statica.
(1p) Se vor exemplifica conceptele de upcasting / downcasting pe noile clase introduse.
(0.5p) Se vor scrie operatorii >> si << pentru noile clase introduce.
(1p) Toate clasele vor conține constructori de inițializare, parametrizati.
(1p) Toate clasele vor conține constructori de copiere si operatorul = supraincarcat.

Nr. 2
Se doreste implementarea unei aplicatii care sa permita gestionarea conturile deschise la banca X. In acest
scop se vor implementa clasele:

ContBancar(protected: int sold, char* detinator, si public: metodele virtuale pure: depunere(int suma) si
retragere(int suma));
ContEconomii: public ContBancar (double rataDobanda; public: aplicaDobanda())
ContCurent: public ContBancar (int nrTranzactii, int nrTranzactiiGratis, int costTranzactie; public
Cheltuieli())

Cerinte:
(2p) Clasele derivate sa conțina constructori de inițializare si parametrizati (care sa apeleze constructorii din
clasa de baza) si destructori.

(2p) Toate clasele derivate vor conține constructori de copiere si operatorul = supraincarcat.

(1p) Operatorul >> să fie supraincarcat astfel incat citirea sa fie facuta din fisier, iar << sa faca afisarea pe
ecran.

(1p) Clasa ContBancar va contine o functie virtuala Afisare care va fi rescrisa corespunzator in clasele
derivate.

(0.5p) Se va exemplifica downcasting-ul.

(2.5p) Functia main() va contine un “Demo” cu exemplificarea tuturor conceptelor implementate si este
obligatorie parcurgerea unui vector de pointeri la ContBancar*, incarcat cu adrese de obiecte de tip
ContEconomii si ContCurent.

Obs:
1. Intr-un cont de economii dobânda este utilizată la anumite intervale de timp, când trebuie să fie calculată
şi adăugată la soldul → metoda aplicăDobânda().
2. Intr-un cont curent exista un numar limitat de operatiuni gratuite, restul tranzactiilor/operatiunilor fiind cu
plata. Fiecare tranzacţie efectuată are un cost iniţializat la crearea unui cont curent.
La anumite intervale de timp, costul tranzacţiilor va fi extras din cont şi numărul tranzacţiilor porneşte de la
zero.
3. Oficiu – 1p
4. Timp de lucru 1h30

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