POO-seteri Si Geteri

Descărcați ca docx, pdf sau txt
Descărcați ca docx, pdf sau txt
Sunteți pe pagina 1din 3

#include <iostream>

using namespace std;

class Senzor
{

private:

int id;
char *nume;
float tensiune_maxima;
int interval_masurare;
float timp_masurare;
float* valori_masurate;

public:

void set_nume(char* nume)


{
if (strlen(nume) > 0)
{
this->nume = new char[strlen(nume) + 1];
strcpy(this->nume, nume);
}
}

void set_tensiune_maxima(float tensiune_maxima)


{
this->tensiune_maxima = tensiune_maxima;
}

void set_interval_masurare(int interval_masurare)


{
this->interval_masurare = interval_masurare;
}

void set_timp_masurare(float timp_masurare)


{
this->timp_masurare = timp_masurare;
}

void set_valori_masurate(int interval_masurare, float timp_masurare, float*


valori_masurate)
{
this->interval_masurare = interval_masurare;
this->timp_masurare = timp_masurare;
int nr = interval_masurare / timp_masurare;
this->valori_masurate = new float[nr];
for (int i = 0; i < interval_masurare / timp_masurare; i++)
{
this->valori_masurate[i] = valori_masurate[i];
}
}

int get_id()
{
return 3;
}

char* get_nume()
{
return nume;
}

float get_tensiune_maxima()
{
return tensiune_maxima;
}

int get_interval_masurare()
{
return interval_masurare;
}

float get_timp_masurare()
{
return timp_masurare;
}

float get_valori_masurate(int pozitie)


{
int nr = interval_masurare / timp_masurare;
if (pozitie<nr && pozitie >= 0)
return valori_masurate[pozitie];
}
};

void main()
{
char nume[30];
float tensiune_maxima;
int interval_masurare;
float timp_masurare;
int nr;
int nr_obiecte;
cout << "Numarul de obiecte este: ";
cin >> nr_obiecte;
Senzor* vector_obiecte;
vector_obiecte = new Senzor[nr_obiecte];
for (int i = 0; i < nr_obiecte; i++)
{
cout << "Numele obiectului " << i + 1 << " este: ";
cin >> nume;
vector_obiecte[i].set_nume(nume);
cout << "Tensiunea maxima a obiectului " << i + 1 << " este: ";
cin >> tensiune_maxima;
vector_obiecte[i].set_tensiune_maxima(tensiune_maxima);
cout << "Intervalul de masurare pentru obiectul " << i + 1 << " este: ";
cin >> interval_masurare;
vector_obiecte[i].set_interval_masurare(interval_masurare);
cout << "Timpul de masurare pentru obiectul " << i + 1 << " este:";
cin >> timp_masurare;
vector_obiecte[i].set_timp_masurare(timp_masurare);
float valori_masurate[100];
nr = interval_masurare / timp_masurare;
cout << "Pentru obiectul " << i + 1 << " s-au realizat " << nr << "
masurari. " << endl;
for (int j = 0; j < nr; j++)
{
cout << "Valoarea "<<j+1<< " masurata pentru obiectul " << i + 1 <<
" este: ";
cin >> valori_masurate[j];
}
vector_obiecte[i].set_valori_masurate(interval_masurare,
timp_masurare, valori_masurate);

for (int i = 0; i < nr_obiecte; i++)


{
cout << "Id-ul obiectului " << i + 1 << " este: ";
cout << vector_obiecte[i].get_id() << endl;
cout << "Numele obiectului " << i + 1 << " este: ";
cout << vector_obiecte[i].get_nume() << endl;
cout << "Tensiunea maxima a obiectului " << i + 1 << " este de " <<
vector_obiecte[i].get_tensiune_maxima() << "V." << endl;
//? nu afiseaza cu virgula
cout << "Intervalul de masurare pentru obiectul " << i + 1 << " este de "
<< vector_obiecte[i].get_interval_masurare() << " minute. " << endl;
cout << "Timpul de masurare pentru obiectul " << i + 1 << " este de " <<
vector_obiecte[i].get_timp_masurare() << " secunde. " << endl;
cout << "Pentru obiectul " << i + 1 << " s-au realizat " << nr << "
masurari. " << endl;
for (int j = 0; j < nr; j++)
{
cout << "Valoarea "<<j+1<<" masurata pentru obiectul " << i + 1 << "
este: ";
cout << vector_obiecte[i].get_valori_masurate(j) << endl;
}
}

};

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