Scopul lucrarii: Deprinderea de scriere a
functiilor constructor si destructor adecvate pentru clasele proiectate.
Desfasurarea lucrarii: Se vor scrie programe
in cadrul carora se vor defini constructori si destructori adecvati pentru
clasele proiectate.
Se va utiliza paradigma abstractizarii datelor, aplicatiile avand fisiere header
de interfata si fisiere sursa de implementare pentru modulele dezvoltate, precum
si un fisier sursa de utilizare.
Se pot folosi ca model clasele list si
node din capitolul 5 (exemplele 5.5 si 5.10).
Probleme:
1. Sa se rescrie problema 3 (laboratorul 3) punctul a) referitoare la cartile de
joc. Se vor utiliza doua clase separate:
o clasa
asociata cartilor de joc, care memoreaza suita si valoarea fiecarei carti,
precum si un membru next, care permite legarea cartilor intr-o lista;
o clasa
asociata pachteului de carti, care reprezinta o lista a cartilor de joc din
pachet (posibil coada); o carte extrasa din pachet este scoasa din lista de
carti.
2. Sa se adauge doua noi functii membru la problema 1, care reprezinta simularea
jocului de carti 21, precum si amestecarea cartilor din pachet. Sa se scrie un
program care utilizeaza clasa pentru un asemenea joc intre doi jucatori, dupa
amestecarea initiala a pachetului.
3. Sa se proiecteze si implementeze o clasa ce defineste un cuvant, impreuna cu
o lista de cuvinte sinonime cu acesta. Principalele operatii ce se pot efectua
asupra clasei sunt cele de adaugare a unui nou sinonim la cuvant, precum si de
afisare a listei de sinonime a cuvantului. Sa se implementeze functiile
constructor si desturctor, precum si functiile membre ce reliazeaza operatiile
specificate. Lista de sinonime se memoreaza ordonata lexicografic. Programul va
simula crearea si consultarea unui dictionar de sinonime, reprezentat de un
tablou de cuvinte, fiecare cu sinonimele asociate.
4. Sa se scrie un program care simuleaza crearea si consultarea enei agende
telefonice. Fiecare abonat este caracterizat prin nume, adresa si numar de
telefon, iar operatia de cautare se face dupa numele unui abonat. Se vor utiliza
doua clase separate:
o clasa
asociata abonatilor, care memoreaza numele, adresa si telefonul fiecarui abonat,
precum si doi membri left si right, care permit legarea abonatilor intr-un
arbore de cautare;
o clasa
asociata agendei telefonice care reprezinta un arbore de cautare, sortat dupa
numele abonatilor; agenda telefonica va memora doar pointerul spre radacina
arborelui de cautare.