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:
declaratia unei clase;
membri de date privati, publici ale unei clase;
functii constructor ale unei clase;
functie destructor a unei clase;
functii membre (metode) private, publice ale unei clase;
functii "friend" ale unei clase;
operatorul de rezolutie "::";
cuvantul cheie "this";
implementarea unei clase.
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.