Readme

download Readme

If you can't read please download the document

description

Readme

Transcript of Readme

Autor: Serbana George-Theodor [email protected] 135, semigrupa 2 FMI, UnibucCerinta: Problema 7: multimi finite de numere intregi reprezentate ca tablouri unidimensionale clasa multime sa contina metode de: transformare a unui vector in multime, prin eliminarea duplicatelor din respectivul vector; supraincarcare a operatorilor >; reuniune a doua multimi, implementata prin supraincarcarea operatorului +; intersectie a doua multimi, implementata prin supraincarcarea operatorului *;diferenta dintre doua multimi, implementata prin supraincarcarea operatorului -; sa se creeze o clasa pereche de numere intregi si o clasa multime de perechi de numere intregi reprezentata ca vector de obiecte de tip clasa pereche;clasa multime de perechi sa fie prietena a clasei pereche de intregi;fiecare dintre clasele pereche si multime de perechi sa contina supraincarcari pentru >; sa se scrie o functie care efectueaza produsul cartezian a doua multimi de intregi,date ca instante ale clasei multime de intregi, si il memoreaza intr-o instanta a clasei multime de perechi de intregi;Proiect Scris in C++(11), folosind Microsoft Visual Studio Professional 2013, compilat cu msvc2013; Din conceptele OOP sunt folosite doar cele care au logica in context si sunt utile pentru proiectul curent(e.g. nu isi avea rostul o interfata sau RTTI/polymorphic behaviour) Fisierele sursa pair.cpp, pairset.cpp si set.cpp sunt excluse din build deoarece sunt #included in headerele aferente,pentru a pastra separata declararea de implementare si a evita erorile de linking cu template-urile; In designul acestui proiect se incearca pe cat posibil pastrarea incapsularii pentru o modifiabilitate si extensiabilitate mai buna,asadar toti operatorii supraincarcati sunt functii non-membre, non-friend, ele folosind doar interfata publica a claselor De asemenea mentiunea "clasa multime de perechi sa fie prietena a clasei pereche de intregi" nu a fost implementata din motive asemanatoare, mai alesca nu era necesar set.h metoda de transformare a unui vector in multime este chiar constructorul, fiind posibila creearea in mai multe moduri; La inserarea unui nou element acesta se cauta liniar in multime (nu m-am axat pe algoritmi) si se introduce doar daca nu exista; Desi am demonstrat si posbilitatea cin >> mySet, operator care citeste un singur element, este de preferat adaugarea cu mySet >> elementNou; pair.h - clasa pereche (de numere intregi prin specializare ) un obiect pereche de asemenea se poate construi in mai multe moduri; operatorii > supraincarcati; metode de get si set pentru elementele perechii; pairset.h se observa ca aceasta clasa putea fi decat o specializare a Set, si anume Set, care este si tipul pentru strutura din interior m_set; si metodele sale practic apeleaza doar metodele lui m_set, personal consider ca nu era necesara o clasa separata dar am incercat sa respect cerinta; analog, constructori si operatori supraincarcati;