Sunteți pe pagina 1din 2

#include <iostream>

#include <string.h>
using namespace std;

//2
struct Produs
{
int cod;
char* denumire;
float pret_unitar;
char unitate_masura[5];
};
//3
void initializeaza_produs(Produs& prod,
int cod,
const char* denumire,
float pret_unitar,
const char* unitate_masura)
{
prod.cod = cod;
//prod.denumire = (char*)malloc(strlen(denumire) * sizeof (char) + 1);
prod.denumire = new char[strlen(denumire) + 1];
strcpy(prod.denumire, denumire);
prod.pret_unitar = pret_unitar;
strcpy(prod.unitate_masura, unitate_masura);

}
//5
void afiseaza_produs(Produs prod)
{
cout << prod.cod << " " << prod.denumire << " " << prod.pret_unitar << " " <<
prod.pret_unitar << endl;
}

//7
void modifica_denumire(Produs& prod, const char* n)
{
if (prod.denumire != NULL)
{
delete (prod.denumire);
prod.denumire = new char[strlen(n) + 1];
strcpy(prod.denumire, n);
}
else
{
prod.denumire = new char[strlen(n) + 1];
strcpy(prod.denumire, n);
}

//9
void modifica_pret(Produs& prod, float n)
{
if (n > 0)
{
prod.pret_unitar = n;
}
else
{
cout << "Pretul nu poate fi negativ!" << endl;
}

//11
void citeste_produs(Produs& prod)
{
cout << "Cod produs:" << endl;
cin >> prod.cod;
char* denumire = new char[100];
cout << "Denumire produs:" << endl;
cin>>denumire;
prod.denumire = new char[strlen(denumire) + 1];
strcpy(prod.denumire, denumire);
delete(denumire);
cout << "Pret unitar:";
cin >> prod.pret_unitar;
cout << "Unitate de masura:";
cin >> prod.unitate_masura;
}

int main()
{
Produs prod = { 0 };
//4
initializeaza_produs(prod, 100, "creion hb", 0.5, "buc");
//6
afiseaza_produs(prod);
//8
modifica_denumire(prod, "caiet");
afiseaza_produs(prod);
//10
modifica_pret(prod, 15);
afiseaza_produs(prod);
//12
Produs prod1;
citeste_produs(prod1);
}

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