Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
RAPORT
Lucrarea de laborator nr.2
Tema: ” Constructorul – funcţie de iniţializare a obiectelor
clasei”
Chișinău 2021
Scopul lucrării:
class Document
{
char *denumirea;
char *tema;
char *autorul;
int nrPagini;
char *data;
char *timpul;
public:
Document();
Document(const Document &);
Document(char *denumirea);
void creare();
void afisare();
void modificareTema();
void modificareData();
};
void Document::creare()
{
denumirea = new char[21];
tema = new char[21];
autorul = new char[21];
data = new char[21];
timpul = new char[21];
cout << "Introduceti denumirea documentului: ";
cin >> denumirea;
cout << "Introduceti tema: ";
cin >> tema;
cout << "Introduceti autorul: ";
cin >> autorul;
cout << "Introduceti numarul de pagini: ";
cin >> nrPagini;
cout << "Introduceti data ultimii redactari: ";
cin >> data;
cout << "Introduceti timpul ultimii redactari: ";
cin >> timpul;
}
void Document::modificareTema()
{
cout << "Introduceti tema noua: ";
cin >> tema;
}
void Document::modificareData()
{
cout << "Introduceti data noua: ";
cin >> data;
}
void Document::afisare()
{
cout << "\nDenumirea documentului: " << denumirea << endl;
cout << "Tema documentului: " << tema << endl;
cout << "Autorul: " << autorul << endl;
cout << "Numarul de pagini: " << nrPagini << endl;
cout << "Data ultimii redactari: " << data << endl;
cout << "Timpul ultimii redactari: " << timpul << endl;
}
int main()
{
int nrDeDocumente, temp;
cout << "Introduceti numarul de documente: ";
cin >> nrDeDocumente;
Document doc[8];
for (int i = 0; i < nrDeDocumente; i++)
{
doc[i].creare();
}
for (int i = 0; i < nrDeDocumente; i++)
{
cout << "\n"
<< i + 1 << endl;
doc[i].afisare();
}
cout << "Introduceti numarul de ordine a documentului spre schimbare: ";
cin >> temp;
doc[temp - 1].modificareTema();
cout << "Introduceti numarul de ordine a documentului spre schimbare: ";
cin >> temp;
doc[temp - 1].modificareData();
for (int i = 0; i < nrDeDocumente; i++)
{
cout << "\n"
<< i + 1 << endl;
doc[i].afisare();
}
system("pause");
}
#include <iostream>
class Matrix
{
public:
int Tab[50][50];
int line;
int column;
Matrix();
Matrix(int);
Matrix(int, int);
Matrix(const Matrix &);
~Matrix();
void f_set_matr();
void f_show();
void f_addition(const Matrix &matrix);
void f_subtract(const Matrix &matrix);
void f_multipl_matrix(const Matrix &matrix);
void f_multipl_num(int value);
};
int g_size;
Matrix::~Matrix()
{
int i;
void Matrix::f_set_matr()
{
int i, j;
for (i = 0; i < line; i++)
for (j = 0; j < column; j++)
{
cout << " Coordonata[" << i << "][" << j << "]=";
cin >> Tab[i][j];
}
}
void Matrix::f_show()
{
int i, j;
if (column == matrix.line)
{
for (i = 0; i < line; i++)
{
for (j = 0; j < column; j++)
{
for (k = 0; k < line; k++)
{
temp += Tab[i][k] * matrix.Tab[k][j];
Tab2[i][j] = temp;
}
temp = 0;
}
temp = 0;
}
for (i = 0; i < line; i++)
for (j = 0; j < column; j++)
Tab[i][j] = Tab2[i][j];
}
else
cout << "Matricile nu pot fi inmultine din cauza dimensiunilor" << endl;
}
void f_menu()
{
Matrix m1, m2;
int ml_nr;
exit(0);
}
int main()
{
f_menu();
return (0);
}
Explicati termenul de initializare – Crearea unui obiect de tipul clasei
Ce cuvinte cheie se utilizeaza pentru definire constructorului sau destructorului? – se
utilizeaza cu acelasi nume ca al clasei , la destructor este precedat de “~”.
Poate oare un constructor sa returneze o valoare? - nu , nici chiar void
Poate oare sa exista clase fara constructori? – nu , daca programatoru-l nu de clara
constructorul si constructorul de coipiere este creat automat de catre compilator.
Citi constructori poate contine o clasa? Dar destructori? De ce? – Clasa poate sa contina un
numar nenumarat de constructori , in dependenta de caz . Dar destructorul poate fi numai unul
pentru ca el nu are paramaetri deci nu poate fi supraincarcat , si este unic pentru o clasa.
Concluzie:
În urma efectuării lucrării de laborator am efectuat 2 programe utilizând clasele. În
primul program am creat o clasă cu denumirea Document creând 5 variabile utilizând memoria
dinamică și o variabilă de tip int. Am definit toți constructorii. Am creat deasemenea 2 funcții de
modificare a temei și respectiv a datei ultimei redactări.
În al doilea program am creat o clasă cu denumirea Matrice care are funcții ce execută adunarea
și scăderea a matricilor, înmulțirea celor 2 matrici între ele și înmulțirea a unei matrici cu un
număr.