Sunteți pe pagina 1din 7

Ministerul Educaţiei, Culturii, Inovației și Cercetării al

Republicii Moldova
Universitatea Tehnică a Moldovei
Catedra Informatica şi Ingineria Sistemelor

Raport
Lucrarea de laborator nr.3
La POO (Programarea Orientată pe Obiecte)

A efectuat: st. gr. IA-171


Bodorin Adrian

A verificat: lector.univ.
Plotnic Constantin

Chişinău 2018
Lucrarea de laborator nr. 3
Tema: Supraincarcarea operatorilor
Scopul lucrării: familiarizarea studenţilor cu noţiunile operatori supraîncărcaţi.
Varianta:5
Sarcina:
Să se creeze clasa Stack – stivă, utilizînd memoria dinamică. Să se definească
următorii operatori ca metode ale clasei: "+" – de adunare a două stive, "=" – de
atribuire, "()" – de returnare a unei stive noi care conţine ultimele n elemente ale
stivei date. Să se definească operatorii de comparare: "==", "!=", "<", ">" ca funcţii
prietene. Pentru realizarea ultimilor doi operatori să se definească funcţia de calcul
a normei elementelor stivei. Să se definească operatorii "<<" şi ">>" pentru
ieşiri/intrări de obiecte. Clasa trebuie să fie absolut funcţională, adică să conţină
toţi constructorii necesari şi destructorul.

Listing-ul programului:

#include <iostream>

using namespace std;

class Stack
{
public:
struct Nod
{int info;
Nod * next;
};
Nod *cap;
int n;
Stack()
{
cap = NULL;
n = 0;
}

Stack(const Stack& o) {
cap = NULL;
this->n = o.n;
Nod * temp = NULL, *prec = NULL;
Nod * c = o.cap;
for (int i = 0; i < this->n; i++) {
temp = new Nod;
temp->next = NULL;
temp->info = c->info;
if (this->cap == NULL)
this->cap = temp;
else
prec->next = temp;
prec = temp;
c = c->next;
}
}

~Stack() {
Nod * t;
do {
t = cap;
cap = cap->next;
delete t;
} while (cap);
}

void Creare_Stivei(void)
{
Nod *temp = NULL;
cout << "\n Introduceti numarul de noduri "; cin >> n;
for (int i = 0; i<n; i++)
{ temp = new Nod;
cout << "\nIntroduceti informatia in nod: ";cin >>
temp->info;
temp->next = cap;
cap=temp;
}

void Afisare_Stivei()

{cout<<"\n____________________________________________________________
__\n";
Nod *temp = cap;
cout << "\n Elementele listei sunt: ";
while (temp)
{
cout << temp->info << " ";
temp = temp->next;
}
cout<<"\n_____________________________________________________________
_\n";
}

Stack invers()
{ Stack t;
t.n = this->n;
Nod * temp = NULL;
Nod * c = this->cap;
for (int i = 0; i < this->n; i++) {
if (c == NULL) break;
temp = new Nod;
temp->info = c->info;
temp->next = t.cap;
t.cap = temp;
c = c->next;
}
return t;
}

Stack operator()( int n)


{ Stack t;
t.n = n;
Nod *temp = NULL, *prec = NULL;
Nod *c=this->cap;
for (int i = 0; i<n; i++)
{ temp = new Nod;
temp->next = NULL;
temp->info = c->info;
if (t.cap == NULL)
t.cap = temp;
else
prec->next = temp;
prec = temp;
c = c->next;
}
return t;
}

Stack operator +(Stack & k)


{
Stack t(*this);
Stack t2( k.invers() );
t.n += t2.n;
Nod * temp = NULL;
Nod * c = t2.cap;
for (int i = 0; i < t2.n; i++) {
temp = new Nod;
temp->info = c->info;
temp->next = t.cap;
t.cap = temp;
c = c->next;
}
return t;
}

Stack operator = (const Stack & o) {


if (cap != NULL) {
this->~Stack();
cap = NULL;
}
this->n = o.n;
Nod * temp = NULL, *prec = NULL;
Nod * c = o.cap;
for (int i = 0; i < n; i++) {
temp = new Nod;
temp->next = NULL;
temp->info = c->info;
if (this->cap == NULL)
this->cap = temp;
else
prec->next = temp;
prec = temp;
c = c->next;
}
return *this;
}
friend bool operator == (Stack o1,Stack o2) ;
friend bool operator != (Stack o1,Stack o2) ;
friend bool operator < (Stack o1,Stack o2) ;
friend bool operator > (Stack o1,Stack o2) ;

};

bool operator ==( Stack o1, Stack o2)


{
{
if (o1.n!=o2.n) return false;
Stack:: Nod *t1=o1.cap,*t2=o2.cap;
for(int i=0;i<o1.n;i++)
{
if(t1->info!=t2->info) return false;
t1=t1->next;
t2=t2->next;
}
return true;
}
}
bool operator != (Stack o1,Stack o2)
{
return !(o1==o2);
}

bool operator < (Stack o1,Stack o2)


{
if (o1.n<o2.n) return true;
else if (o1.n>o2.n) return false;
Stack::Nod *t1=o1.cap,*t2=o2.cap;
for(int i=0;i<o1.n;i++)
{
if(t1->info<t2->info) return true;
else if (t1->info>t2->info)return false;
t1=t1->next;
t2=t2->next;
}
return false;
}
bool operator > (Stack o1,Stack o2)
{
if (o1.n>o2.n) return true;
else if (o1.n<o2.n) return false;
Stack::Nod *t1=o1.cap,*t2=o2.cap;
for(int i=0;i<o1.n;i++)
{
if(t1->info>t2->info) return true;
else if (o1.n<o2.n) return false;
t1=t1->next;
t2=t2->next;
}
return false; }

int main()
{
Stack o1;
o1.Creare_Stivei();
o1.Afisare_Stivei();
cout<<"\n* Crearea unei noi stive din prima prin metoda de copiere :";
Stack o2;
int n;
cout << "\n\nCite elemente din prima doriti sa copiati in a 2-a: ";
cin >> n;
o2 = o1(n);
o2.Afisare_Stivei();
cout<<"\n* Crearea unei noi stive cu ajutorul operatorului=:";
Stack o3;
o3=o2;
o3.Afisare_Stivei();
cout<<"\n* Crearea unei noi stive cu ajutorul operatorului+:";
Stack o4;
o4=o1+o2;
o4.Afisare_Stivei();
cout<<"\n* Raspunsurile la operatorii de comparare sunt:";
cout<<"\n_____________________________________________________________
_\n";
cout<<"Egalitate "<<(o1==o2)<<endl;
cout<<"Inegalitate "<<(o1!=o2)<<endl;
cout<<"Mai mare "<<(o1>o2)<<endl;
cout<<"Mai mic "<<(o1<o2)<<endl;
cout<<"\n_____________________________________________________________
_\n";
}

Rezultatul:

S-ar putea să vă placă și

  • Laborator 1 ASO
    Laborator 1 ASO
    Document4 pagini
    Laborator 1 ASO
    Жан Ганган
    Încă nu există evaluări
  • Lab2 POO
    Lab2 POO
    Document19 pagini
    Lab2 POO
    Alina Axenti
    Încă nu există evaluări
  • Raport Lab 3 Poo Supraincarcarea Operatorilor
    Raport Lab 3 Poo Supraincarcarea Operatorilor
    Document7 pagini
    Raport Lab 3 Poo Supraincarcarea Operatorilor
    Uyukee
    Încă nu există evaluări
  • Lab4 POO
    Lab4 POO
    Document7 pagini
    Lab4 POO
    megadanyx
    Încă nu există evaluări
  • Laborator 2 POO
    Laborator 2 POO
    Document8 pagini
    Laborator 2 POO
    Mihali Ionel
    Încă nu există evaluări
  • Lab.4 POO UD
    Lab.4 POO UD
    Document9 pagini
    Lab.4 POO UD
    Miroslava
    Încă nu există evaluări
  • Lab1 Poo
    Lab1 Poo
    Document15 pagini
    Lab1 Poo
    ciumac andrian
    100% (1)
  • Lab2 Poo
    Lab2 Poo
    Document5 pagini
    Lab2 Poo
    Maria Codreanu
    Încă nu există evaluări
  • Lab 3 Cazacu POO
    Lab 3 Cazacu POO
    Document4 pagini
    Lab 3 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • Lab 5 Cazacu POO
    Lab 5 Cazacu POO
    Document4 pagini
    Lab 5 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • Lab 7 Cazacu POO
    Lab 7 Cazacu POO
    Document8 pagini
    Lab 7 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • Lab 2 POO AI-191
    Lab 2 POO AI-191
    Document8 pagini
    Lab 2 POO AI-191
    Carolin
    Încă nu există evaluări
  • Lab Nr. 4 POO
    Lab Nr. 4 POO
    Document3 pagini
    Lab Nr. 4 POO
    Егор Казаков
    Încă nu există evaluări
  • Laborator 1 C
    Laborator 1 C
    Document17 pagini
    Laborator 1 C
    Dorin Graur
    Încă nu există evaluări
  • MMC2 Modulul2
    MMC2 Modulul2
    Document16 pagini
    MMC2 Modulul2
    ViorelRotari
    Încă nu există evaluări
  • Lab 6
    Lab 6
    Document4 pagini
    Lab 6
    Егор Казаков
    Încă nu există evaluări
  • Lab 6 Poo
    Lab 6 Poo
    Document5 pagini
    Lab 6 Poo
    Alex Tronciu
    Încă nu există evaluări
  • Lab MMC2
    Lab MMC2
    Document5 pagini
    Lab MMC2
    Maxim
    Încă nu există evaluări
  • Lab 4 Cazacu POO
    Lab 4 Cazacu POO
    Document8 pagini
    Lab 4 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • Prob 6
    Prob 6
    Document4 pagini
    Prob 6
    Julia Varga
    Încă nu există evaluări
  • Raport: La Disciplina Metode Și Modele de Calcul 1
    Raport: La Disciplina Metode Și Modele de Calcul 1
    Document9 pagini
    Raport: La Disciplina Metode Și Modele de Calcul 1
    Anya Mr
    Încă nu există evaluări
  • Laborator 1 POO PDF
    Laborator 1 POO PDF
    Document6 pagini
    Laborator 1 POO PDF
    kanamechan27
    Încă nu există evaluări
  • Laborator 3 PI-2020
    Laborator 3 PI-2020
    Document4 pagini
    Laborator 3 PI-2020
    Sandu Zastavnetchi
    Încă nu există evaluări
  • Laborator 5 POO
    Laborator 5 POO
    Document6 pagini
    Laborator 5 POO
    Constantin Palita
    Încă nu există evaluări
  • Lab 1 ASO
    Lab 1 ASO
    Document6 pagini
    Lab 1 ASO
    Cristian
    100% (1)
  • Lab 2 Pam
    Lab 2 Pam
    Document5 pagini
    Lab 2 Pam
    Augusta Bucataru
    Încă nu există evaluări
  • Laborator 3
    Laborator 3
    Document17 pagini
    Laborator 3
    DorelDjj
    Încă nu există evaluări
  • Lab 6 Cazacu POO
    Lab 6 Cazacu POO
    Document5 pagini
    Lab 6 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • Lab 2 POO
    Lab 2 POO
    Document5 pagini
    Lab 2 POO
    Valeria Cebanu
    Încă nu există evaluări
  • Laborar 4 Programare
    Laborar 4 Programare
    Document13 pagini
    Laborar 4 Programare
    cristian
    Încă nu există evaluări
  • Dutca Alexandru CR-182 Lab3 PCD
    Dutca Alexandru CR-182 Lab3 PCD
    Document5 pagini
    Dutca Alexandru CR-182 Lab3 PCD
    Dutca Alexandru
    Încă nu există evaluări
  • MMC Lab3 Rap
    MMC Lab3 Rap
    Document4 pagini
    MMC Lab3 Rap
    I LOVE ME
    Încă nu există evaluări
  • AlexeTudorStefan Lab07
    AlexeTudorStefan Lab07
    Document7 pagini
    AlexeTudorStefan Lab07
    Ovidiu Moldovan
    Încă nu există evaluări
  • TAP Lab4
    TAP Lab4
    Document10 pagini
    TAP Lab4
    Cristian Batir
    Încă nu există evaluări
  • Lab1 Pam
    Lab1 Pam
    Document9 pagini
    Lab1 Pam
    Ion Popescu
    100% (2)
  • Laborator-2mmc Balan Ion
    Laborator-2mmc Balan Ion
    Document12 pagini
    Laborator-2mmc Balan Ion
    Ion Bn
    Încă nu există evaluări
  • Lab 3 Somipp
    Lab 3 Somipp
    Document14 pagini
    Lab 3 Somipp
    Augusta Bucataru
    Încă nu există evaluări
  • Laborator nr.3 POO
    Laborator nr.3 POO
    Document6 pagini
    Laborator nr.3 POO
    MARYAN Pătru
    Încă nu există evaluări
  • Lab 3 Ppe
    Lab 3 Ppe
    Document8 pagini
    Lab 3 Ppe
    Anastasia Gherman
    Încă nu există evaluări
  • Lab1 2mmc
    Lab1 2mmc
    Document10 pagini
    Lab1 2mmc
    Artur Kingsman
    Încă nu există evaluări
  • Lucrarea de Laborator NR 4 POO
    Lucrarea de Laborator NR 4 POO
    Document10 pagini
    Lucrarea de Laborator NR 4 POO
    Alexandru Burdeniuc
    Încă nu există evaluări
  • Evaluarea 1 TSSS, Varianta 2
    Evaluarea 1 TSSS, Varianta 2
    Document2 pagini
    Evaluarea 1 TSSS, Varianta 2
    Alex Tronciu
    Încă nu există evaluări
  • TW Lab4
    TW Lab4
    Document8 pagini
    TW Lab4
    Dan
    Încă nu există evaluări
  • MMC Lab2
    MMC Lab2
    Document6 pagini
    MMC Lab2
    Mihail Boran
    Încă nu există evaluări
  • Lab1 Po
    Lab1 Po
    Document7 pagini
    Lab1 Po
    Alina Axenti
    Încă nu există evaluări
  • Kis Alexandru Lab 6
    Kis Alexandru Lab 6
    Document7 pagini
    Kis Alexandru Lab 6
    Sabine Crihan
    Încă nu există evaluări
  • Raport 3
    Raport 3
    Document11 pagini
    Raport 3
    Damean Alexandra
    100% (1)
  • Ppe 1
    Ppe 1
    Document5 pagini
    Ppe 1
    Victor Lungu
    Încă nu există evaluări
  • ASDN2
    ASDN2
    Document6 pagini
    ASDN2
    Viktor Dobrovolschi
    Încă nu există evaluări
  • Ll1 Mmc1 Mereuta Ana Ti-192
    Ll1 Mmc1 Mereuta Ana Ti-192
    Document11 pagini
    Ll1 Mmc1 Mereuta Ana Ti-192
    Anya Mr
    Încă nu există evaluări
  • Lucrarea de Laborator NR 5 POO
    Lucrarea de Laborator NR 5 POO
    Document4 pagini
    Lucrarea de Laborator NR 5 POO
    Alexandru Burdeniuc
    Încă nu există evaluări
  • Pam 4
    Pam 4
    Document4 pagini
    Pam 4
    violina
    Încă nu există evaluări
  • Lab 6 Somipp
    Lab 6 Somipp
    Document5 pagini
    Lab 6 Somipp
    Augusta Bucataru
    Încă nu există evaluări
  • PCAD
    PCAD
    Document4 pagini
    PCAD
    Fiodor Ciumac
    Încă nu există evaluări
  • CR-191 MIPI Axenti Alina Lab4
    CR-191 MIPI Axenti Alina Lab4
    Document6 pagini
    CR-191 MIPI Axenti Alina Lab4
    Alina Axenti
    Încă nu există evaluări
  • Lab 4
    Lab 4
    Document5 pagini
    Lab 4
    cristian
    Încă nu există evaluări
  • Metode Numerice2
    Metode Numerice2
    Document9 pagini
    Metode Numerice2
    verginarojnita
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document10 pagini
    Lab 1
    Ion Cornea
    Încă nu există evaluări
  • Portofoliu Informatica Intensiv Clasa A 11-A
    Portofoliu Informatica Intensiv Clasa A 11-A
    Document84 pagini
    Portofoliu Informatica Intensiv Clasa A 11-A
    Duman Alex
    Încă nu există evaluări
  • Laborar 3 Programare
    Laborar 3 Programare
    Document6 pagini
    Laborar 3 Programare
    cristian
    Încă nu există evaluări
  • Eliberare РЕКВИЗИТЫ
    Eliberare РЕКВИЗИТЫ
    Document1 pagină
    Eliberare РЕКВИЗИТЫ
    Adrian Bodorin
    Încă nu există evaluări
  • Informaţie Cu Privire La Condiţiile de Eliberare A Creditelor
    Informaţie Cu Privire La Condiţiile de Eliberare A Creditelor
    Document6 pagini
    Informaţie Cu Privire La Condiţiile de Eliberare A Creditelor
    Adrian Bodorin
    Încă nu există evaluări
  • Achizitiile Publice
    Achizitiile Publice
    Document142 pagini
    Achizitiile Publice
    Nicoleta Cr
    100% (1)
  • Tarife Carduri Young Smart
    Tarife Carduri Young Smart
    Document4 pagini
    Tarife Carduri Young Smart
    ЖИЗНЬ ЗНАМЕНИТОСТЕЙ
    Încă nu există evaluări
  • Certificat
    Certificat
    Document1 pagină
    Certificat
    Adrian Bodorin
    Încă nu există evaluări
  • Examen Catedra Militara UTM
    Examen Catedra Militara UTM
    Document46 pagini
    Examen Catedra Militara UTM
    Ion Popescu
    Încă nu există evaluări
  • Da W
    Da W
    Document1 pagină
    Da W
    Adrian Bodorin
    Încă nu există evaluări
  • Certificat
    Certificat
    Document1 pagină
    Certificat
    Adrian Bodorin
    Încă nu există evaluări
  • Lab 01 ICCP
    Lab 01 ICCP
    Document5 pagini
    Lab 01 ICCP
    Adrian Bodorin
    Încă nu există evaluări
  • Semnele Convenționale - Tactica4347547278083261546
    Semnele Convenționale - Tactica4347547278083261546
    Document2 pagini
    Semnele Convenționale - Tactica4347547278083261546
    Adrian Bodorin
    Încă nu există evaluări
  • Formatare Word
    Formatare Word
    Document46 pagini
    Formatare Word
    Alexandru Lesnov
    100% (1)
  • Trenajer RMG Studenti
    Trenajer RMG Studenti
    Document36 pagini
    Trenajer RMG Studenti
    Dana Mirzac
    Încă nu există evaluări
  • Examen Catedra Militara UTM
    Examen Catedra Militara UTM
    Document46 pagini
    Examen Catedra Militara UTM
    Ion Popescu
    Încă nu există evaluări
  • Uf 15
    Uf 15
    Document4 pagini
    Uf 15
    Adrian Bodorin
    Încă nu există evaluări
  • Bap NR 06
    Bap NR 06
    Document209 pagini
    Bap NR 06
    Adrian Bodorin
    Încă nu există evaluări
  • Nume Serviciu: Amenzi Poliție Status: Operațiunea Finalizată Cu Succes
    Nume Serviciu: Amenzi Poliție Status: Operațiunea Finalizată Cu Succes
    Document1 pagină
    Nume Serviciu: Amenzi Poliție Status: Operațiunea Finalizată Cu Succes
    Adrian Bodorin
    Încă nu există evaluări
  • Tarife Carduri Young Smart
    Tarife Carduri Young Smart
    Document4 pagini
    Tarife Carduri Young Smart
    ЖИЗНЬ ЗНАМЕНИТОСТЕЙ
    Încă nu există evaluări
  • Model de Procură
    Model de Procură
    Document1 pagină
    Model de Procură
    Adrian Bodorin
    Încă nu există evaluări
  • Uf 15
    Uf 15
    Document4 pagini
    Uf 15
    Adrian Bodorin
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document52 pagini
    Lab 1
    Adrian Bodorin
    Încă nu există evaluări
  • Anul III 2020 Examen V-5 PDF
    Anul III 2020 Examen V-5 PDF
    Document1 pagină
    Anul III 2020 Examen V-5 PDF
    Culea Constantin
    Încă nu există evaluări
  • Chimice de Uz Casnic
    Chimice de Uz Casnic
    Document5 pagini
    Chimice de Uz Casnic
    Adrian Bodorin
    Încă nu există evaluări
  • Lab 2
    Lab 2
    Document16 pagini
    Lab 2
    Adrian Bodorin
    Încă nu există evaluări
  • Sarcina Lab2
    Sarcina Lab2
    Document10 pagini
    Sarcina Lab2
    Nickolae Enachi
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document30 pagini
    Lab 1
    Ionsam14
    Încă nu există evaluări
  • Lucrare de Laborator NR 2
    Lucrare de Laborator NR 2
    Document3 pagini
    Lucrare de Laborator NR 2
    Adrian Bodorin
    Încă nu există evaluări
  • Text
    Text
    Document1 pagină
    Text
    Adrian Bodorin
    Încă nu există evaluări
  • 16rj 81 Chirtoacă Dorin, Respins Recu Av Mentin Liberare Provizorie
    16rj 81 Chirtoacă Dorin, Respins Recu Av Mentin Liberare Provizorie
    Document13 pagini
    16rj 81 Chirtoacă Dorin, Respins Recu Av Mentin Liberare Provizorie
    Adrian Bodorin
    Încă nu există evaluări
  • Lab 3
    Lab 3
    Document13 pagini
    Lab 3
    Витёк Мужичёк
    100% (1)
  • Labhh 7
    Labhh 7
    Document4 pagini
    Labhh 7
    Mihai Rusu
    Încă nu există evaluări