Sunteți pe pagina 1din 2

Tema POO

Încărcați fișierul cpp aferent unei clase care să conțină:


- minim trei membri, dintre care unul alocat dinamic,
- doi constructori,
- destructorul,
- metode de acces la membri
- o metodă care efectuează o prelucrare.

Validați valorile transmise ca parametru în metodele de tip set.

#include <iostream>
#include <string.h>
#include <crtdbg.h>
using namespace std;

class Medicament {
int cod_medicament;
char* denumire_medicament;
float pret_medicament;

public:

Medicament()
{
cod_medicament = 0;
denumire_medicament = new char[strlen("Medicament") + 1];
strcpy(denumire_medicament, "nedenumit");
pret_medicament = 0.0;
cout << "S-a apelat constructorul fara parametri." << endl;
}
Medicament(int cod_medicament) : cod_medicament(cod_medicament)
{
denumire_medicament = new char[strlen("Medicament") + 1];
strcpy(denumire_medicament, "nedenumit");
pret_medicament = 0.0;
cout << "S-a apelat constructorul cu 1 parametru." << endl;
}

Medicament(int cod_medicament,
const char* denumire_medicament,
float pret_medicament)
{
this->cod_medicament = cod_medicament;
this->denumire_medicament = new char[strlen(denumire_medicament) + 1];
strcpy(this->denumire_medicament, denumire_medicament);
this->pret_medicament = pret_medicament;
cout << "S-a apelat constructorul cu 3 parametri." << endl;
}

~Medicament()
{
delete[] denumire_medicament;
cout << "S-a apelat destructorul." << endl;
}

void afiseaza_medicament()
{
cout << cod_medicament << " " << denumire_medicament << " " <<
pret_medicament << endl;
}

void modifica_pret_medicament(float val)


{
pret_medicament += val;
}

void setdenumire(const char* denumire_medicament) {


delete[] this->denumire_medicament;
this->denumire_medicament = new char[strlen(denumire_medicament) + 1];
strcpy(this->denumire_medicament, denumire_medicament);
}

void setpret(float pret_medicament) {


this->pret_medicament = pret_medicament;
}

};

int main()
{
Medicament m1;
Medicament m2(105);
Medicament m3(107, "coldrex", 17.5);

Medicament m;
m.afiseaza_medicament();

float v;
cout << "Valoare adaugata:";
cin >> v;

m.modifica_pret_medicament(v);
m.afiseaza_medicament();

Medicament nurofen;
nurofen.setdenumire("Nurofen");
nurofen.afiseaza_medicament();

nurofen.setpret(10.5);
nurofen.afiseaza_medicament();
}

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