Ciobanu Stanislav CR221fr POO Lab2
Ciobanu Stanislav CR221fr POO Lab2
Ciobanu Stanislav CR221fr POO Lab2
Raport
Lucrarea de laborator nr. 2
la disciplina “Programarea orientată pe obiecte”
CHIŞINĂU 2024
Lucrarea de laborator nr. 2
Listingul programului:
Long& Long::operator++() {
++n;
return *this;
}
Long Long::operator++(int) {
n++;
return *this;
}
Long& Long::operator--() {
--n;
return *this;
}
Long Long::operator--(int) {
n--;
return *this;
}
Long Long::operator+(long b)
{
Long r;
r.n=n+b;
return r;
}
Long Long::operator+(Long& a)
{
Long r;
r.n=n+a.n;
return r;
}
Long Long::operator*(Long& a)
{
Long r;
r.n=n*a.n;
return r;
}
Long Long::operator*(long b)
{
Long r;
r.n=n*b;
return r;
}
// Implementarea meniului
do {
menu:
cout<<"==========================[Meniu]=======================
===\n"<<endl;
cout<<"1. Adunare intre doua obiecte Long"<<endl;
cout<<"2. Adunare intre un obiect Long si un long"<<endl;
cout<<"3. Inmultire intre doua obiecte Long"<<endl;
cout<<"4. Inmultire intre un obiect Long si un long"<<endl;
cout<<"5. Scadere (diferenta) intre doua obiecte Long"<<endl;
cout<<"6. Scadere (diferenta) intre un obiect Long si un long"<<endl;
cout<<"7. Incrementare prefixata a unui obiect Long"<<endl;
cout<<"8. Incrementare postfixata a unui obiect Long"<<endl;
cout<<"9. Decrementare prefixata a unui obiect Long"<<endl;
cout<<"10. Decrementare postfixata a unui obiect Long"<<endl;
cout<<"11. Citirea de la tastiera a unui obiect Long"<<endl;
cout<<"12. Iesire din program\n"<<endl;
cout<<"Selectati optiunea: ";
cin>>opt;
system("clear");
switch(opt) {
case 1:
cout<<"Prima valoare:"<<endl;
cin>>a; // de ex. 337085435895643930
// Afisam rezultatul
cout<<"Rezultatul adunarii:\n"<<rezultat;
// Revenirea la meniu
goto menu;
break;
case 2:
cout<<"Prima valoare (obiect Long):"<<endl;
cin>>a; // de ex. 337085435895643930
// Afisam rezultatul
cout<<"Rezultatul adunarii:\n"<<rezultat;
// Revenirea la meniu
goto menu;
break;
case 3:
cout<<"Prima valoare:"<<endl;
cin>>a; // de ex. 337085435895643930
cout<<"A doua valoare:"<<endl;
cin>>b; // de ex. -4109992949012952954
// Afisam rezultatul
cout<<"Rezultatul inmultirii:\n"<<rezultat;
// Revenirea la meniu
goto menu;
break;
case 4:
cout<<"Prima valoare (obiect Long):"<<endl;
cin>>a; // de ex. 337085435895643930
// Afisam rezultatul
cout<<"Rezultatul inmultirii:\n"<<rezultat;
// Revenirea la meniu
goto menu;
break;
case 5:
cout<<"Prima valoare:"<<endl;
cin>>a; // de ex. 337085435895643930
// Afisam rezultatul
cout<<"Rezultatul scaderii:\n"<<rezultat;
// Revenirea la meniu
goto menu;
break;
case 6:
cout<<"Prima valoare (obiect Long):"<<endl;
cin>>a; // de ex. 337085435895643930
// Afisam rezultatul
cout<<"Rezultatul scaderii:\n"<<rezultat;
// Revenirea la meniu
goto menu;
break;
case 7:
cout<<"Incrementarea (forma prefixata):"<<endl;
cin>>a; // de ex. 337085435895643930
// Afisam rezultatul
cout<<"Rezultatul incrementarii:\n"<<rezultat;
// Revenirea la meniu
goto menu;
break;
case 8:
cout<<"Incrementarea (forma postfixata):"<<endl;
cin>>a; // de ex. 337085435895643930
// Afisam rezultatul
cout<<"Rezultatul incrementarii:\n"<<rezultat;
// Revenirea la meniu
goto menu;
break;
case 9:
cout<<"Decrementarea (forma prefixata):"<<endl;
cin>>a; // de ex. 337085435895643930
// Afisam rezultatul
cout<<"Rezultatul decrementarii:\n"<<rezultat;
// Revenirea la meniu
goto menu;
break;
case 10:
cout<<"Decrementarea (forma postfixata):"<<endl;
cin>>a; // de ex. 337085435895643930
// Afisam rezultatul
cout<<"Rezultatul decrementarii:\n"<<rezultat;
// Revenirea la meniu
goto menu;
break;
case 11:
cout<<"Introduceti valoarea obiectului Long:"<<endl;
cin>>a; // de ex. 337085435895643930
// Revenirea la meniu
goto menu;
break;
case 12:
exit(1);
default:
cout<<"Eroare! Optiune invalida, alegeti alta optiune."<<endl;
// Pauza pana la apasarea oricarei taste
cin.get(); cin.get();
system("clear");
// Revenirea la meniu
goto menu;
}
} while(opt!=12);
// Finisarea executarii
return 0;
}
Testarea și verificarea programului și rezultatele obținute:
1. Meniul principal: