Lucrarea 3
Definirea si utilizarea claselor ; utilizarea obiectelor


Scopul lucrarii
: Familiarizarea cu notiunile de baza ale programarii orientate pe obiecte  si cu modul de utilizarea a acestora.    

Desfasurarea lucrarii: Se vor scrie programe in cadrul caror se vor folosi urmatoarele concepte ale paradigmei OOP:

Se va utiliza programarea modulara, aplicatiile avand fisiere header de declarare a claselor si fisiere sursa de implementare a claselor dezvoltate, precum si un fisier sursa de utilizare. In cazul in care nu se specifica in mod explicit, se vor identifica si proiecta modulele corespunzatoare pentru rezolvarea fiecarei aplicatii.


Problema rezolvata:

Se cere scrierea unei clase pentru un student despre care cunoastem informatii despre nume,calificativele obtinute la trei partiale si nota la examenul final.

Fisierele sursa ale aplicatiei. 

Teme propuse:

1.Sa se construiasca o clasa ce defineste un cuvant impreuna cu un set de "definitii" (intelesuri , sinonime) ce i se pot asocia.Sa se implementeze functiile constructor si desturctor, functiile membre ce reliazeaza operatiile de adaugare unui nou sinonim, de citire a informatiilor, de scriere a cuvantului de baza impreuna cu toate "definitiile" sale. Se va folosi apoi clasa creata pentru alcatuirea unui dictionar de sinonime, ale carui entitati vor fi memorate intr-un tablou alocat dinamic.         

2.Sa se defineasca o clasa pentru memorarea si prelucrarea informatiilor despre un salariat : nume, prenume, functia , sex , salariu anual.Pentru aceasta clasa sa se ofere  functii constructor , functia destructor , metode care sa realizeze operatiile de citire , scriere , de modificare a datelor ; de calcul a salariului dintr-o saptamana cunoscandu-se numarul de ore lucrate de salariat in respectiva saptamana.

3.Sa se scrie o clasa care implementeaza numerele complexe. Un numar complex este caracterizat de parte reala si parte imaginara. Pentru aceasta clasa sa se ofere  functii constructor , functia destructor , metode care sa realizeze operatiile de citire , scriere , de calcul a modului a unui numar complex ; de adunare , de scadere , de inmultire si de impartire a doua numere complexe.

4.Sa se declare si implementeze o clasa pentru memorarea si prelucrarea informatiilor despre o carte (titlu , autor cu nume si prenume, cod ISBN, numar pagini, pret ). Pentru aceasta clasa sa se ofere  functii constructor, functia destructor, metode care sa realizeze operatiile de citire, scrie, de modificare si accesare a campurilor clasei.Sa se utilizeze clasa creata la gestiunea unei librarii pentru afisarea cartilor care depasesc un anumit pret, care este dat.Cartile din librarie se vor memora intr-un tablou alocat dinamic.

5. Sa se scrie o clasa ce implementeaza operatiile de baza care pot fi efectuate asupra unui cont bancar: deschiderea unui nou cont, depunerea unei sume de bani, extragerea unei sume de bani, afisarea soldului curent, calculul impozitului si extragerea acestuia din cont.

6.Sa se scrie o clasa care implementeaza un contor ciclic, marginit atīt inferior cīt si superior.Contorul are si un "nume" asociat (titlu).Pentru aceasta clasa sa se ofere :constructori: implicit, cu parametri (eventual impliciti), destructorul corespunzator si functiile membru ce realizeaza urmatoarele operatii : de incrementare/decrementare; de adunare si de scadere īntre un contor si o valoare numerica (n), adunīnd/scazīnd (ciclic si "limitat") valoarea (n) din valoarea contorului; de resetare a contorului; de adunare īntre doua contoare: se adauga valorile si se alege minimul dintre limitele inferioare si maximul dintre limitele superioare; numele se concateneaza.