Documente Academic
Documente Profesional
Documente Cultură
#include<string>
using namespace std;
class Magazin
{private:
const int cui;
string adresa;
int nrProduse;
float* preturi;
public:
static int nrMagazine;
Magazin(int cui) :cui(100+nrMagazine++)
{
this->adresa = "Anonim";
this->nrProduse = 0;
this->preturi = NULL;
}
string getAdresa()
{
return this->adresa;
}
int getNrProduse()
{
return this->nrProduse;
}
~Magazin()
{
delete[]preturi;
}
int getCui()
{
return this->cui;
}
float* getPreturi()
{
return this->preturi;
}
float calculeazaPretulMediu()
{
float suma=0;
for (int i = 0; i < this->nrProduse; i++)
{
suma += preturi[i];
}
return suma/ this->nrProduse;
}
{
return preturi[index];
}
Magazin&operator+=(float valoare)
{
float* vectorNou = new float[nrProduse];
for (int i = 0; i < nrProduse; i++)
{
vectorNou[i] = this->preturi[i];
}
this->nrProduse++;
this->preturi = new float[nrProduse];
};
int Magazin::nrMagazine = 0;
void main()
{
//nota 3
cout << "\nCERINTE NOTA 3 ---------------------------" << endl;
Magazin m1(101);
cout << m1.getAdresa() << endl;//afiseaza Anonim
float preturi[]{ 12.2,14.5,5.99,6.55,20.0 };
Magazin m2(102, "Str. Popesti Leordeni, nr5", 5, preturi);
cout << m2.getNrProduse() << endl;//afiseaza 5
//nota 4
cout << "\nCERINTE NOTA 4 ---------------------------" << endl;
Magazin m3 = m2;
cout << m2;
cout << m3.getCui() << endl;//afis 102
//nota 5
cout << "\nCERINTE NOTA 5 ---------------------------" << endl;
float preturi_noi[]{ 10.65,8.6,12.0 };
m3.setPreturi(preturi_noi, 3);
cout << m3.getPreturi()[1];//afis 8.6
//nota 6
cout << "\nCERINTE NOTA 6 ---------------------------" << endl;
Magazin m4(104);
m1 = m4 = m3;
//cout << Magazin::getNrMagazine() << endl;//afis. 4
float pretMediu = m1.calculeazaPretulMediu();
cout <<endl<< pretMediu << endl;
//nota 7
cout << "\nCERINTE NOTA 7 ---------------------------" << endl;
cout << m3;
Magazin* pm = new Magazin(103);
*pm = m2;
cout << *pm;
//nota 8
cout << "\nCERINTE NOTA 8 ---------------------------" << endl;
delete pm;
m2[2] = 10; //modifica pretul celui de al doilea produs
cout << m2[2];
//nota 9
cout << "\nCERINTE NOTA 9 ---------------------------" << endl;
m2 += 12;//adauga un nou produs cu pretul specificat
cout << endl << endl<< m2;
//nota 10
cout << "\nCERINTE NOTA 10 ---------------------------" << endl;
cout << "\n magazinul m1 are produse disponibile?" << !m1;