Implementați clasa Set (mulțime) care să ofere următoarele funcționalități:
-
Fiecare element să apară o singură dată (operația care va realiza această funcționalitate va fi implementată cât mai eficient).
-
Inserarea, ștergerea și căutarea unui element.
-
Supraîncărcarea operatorului [] pentru accesarea elementului de pe poziția i.
-
Supraîncărcarea operatorului + care să efectueze reuniunea a două mulțimi (fără duplicate).
-
Supraîncărcarea operatorilor < și > care să compare cardinalul a două mulțimi.
-
Supraîncărcarea operatorului * pentru înmulțirea cu un scalar.
-
Obținerea sumei elementelor din mulțime.
-
Obținerea elementelor pare, respectiv impare din mulțime (sub formă de Set).
-
Obținerea numărului de elemente din mulțime.
Următoarele cerințe sunt valabile pentru toate proiectele:
-
Comentarii ı̂n cod care să ofere detalii despre modul de implementare.
-
Indentarea și spațierea adecvată a codului.
-
Utilizarea unei convenții de denumire a variabilelor și a metodelor.
-
Separarea declarației de implementare a clasei/claselor. Declararea se va face ı̂n .h (header) și implementare ı̂n .cpp.
-
Supraı̂ncărcarea operatorilor de citire și afișare (<< și >>).
-
Implementatea constructorilor cu parametri, fără parametri, de copiere și supraı̂ncărcarea operatorului =.
-
Implementarea destructorului.
-
Alocarea dinamică a memoriei.
-
Funcțonalitățile implementate vor fi testate folosing assert.
-
Fiecare clasă va suporta număr arbitrar de intrări (pentru cele ı̂n care se pot adauga elemente).
-
Pentru punctajul maxim implementările trebuie să fie cât mai eficiente din punct de vedere timp și spațiu.
-
Folosirea operatorilor << și >> ı̂n cod, cu excepția supraı̂ncărcarii operatorilor de citire și afișare, nu este permisă.
-
Folisirea utilităților oferite de STL nu este permisă.
-
În cazul parcurgerilor rezultatul ı̂ntors va fi un array care conține elementele ı̂n ordinea de parcurgere (e.g. primul element parcurs pe prima poziție ı̂n vector, al doilea element pe a doua poziție ı̂n vector ș.a.m.d).
-
Fiecare clasă trebuie sa includă doar funcționalitățile enumerate ı̂n cerințe. Dacă se consideră necesare alte metode acestea trebuie să fie declarate ca private.
Programare Orientată pe Obiecte (POO) - Tema 1 Set (Mulțime)
22 martie 2020, ora 12:00
24 martie 2020, ora 12:00
24 martie 2020, ora 00:00