Sunteți pe pagina 1din 6

Ministerul Educaţiei al Republicii Moldova

Universitatea Tehnică a Moldovei

Departamentul Informatică și Ingineria Sistemelor

RAPORT
Lucrarea de laborator nr.2
la disciplina Programarea Orientată pe Obiecte

A efectuat:
st. gr. AI-161 S.Dubac

A verificat:
lector univ. M.Oșovschi

Chişinău 2017
Lucrarea de laborator nr.2

Tema: Clase(constructori, destructori). Funcții și clase prietene.

Scopul lucrării: Familiarizarea studenţilor cu noțiunea de clase, utilizarea constructorilor,


destructorilor, cu noțiunea de funcții și clase prietene.

Sarcina de lucru: Să se scrie un program pentru implementarea unei clase care include
un set de date specifice cît și următoarele metode:
- Constructor prestabilit,
- Constructor de copiere,
- Constructor cu parametri,
- Metodă de inițializare a datelor,
- Metodă de afișare a datelor,
- Metode de returnare și afișare separată a datelor(opțional).

Clasa va conține metode descrise atît în interior cît și în exteriorul ei. Cel puțin o metod
va fi declarată ca funcție prietenă. După posibilități să se utilizeze pointerul this și
operatorul rezoluție( ::).
Sarcină individuală:Elev- numele, clasa, balul mediu.

Mersul lucrării:

Codul programului din fisierul main.cpp:

#include <iostream>
#include "prototip.h"

using namespace std;

int main()
{
Elev el1,el2;
string num;
int cl;
float bm;

cout<<"Dati numele elevului: ";


cin>>num;
el1.setNumele(num);
cout<<"Dati clasa elevului: ";
cin>>cl;
el1.setClasa(cl);
cout<<"Dati balul mediu al elevului: ";
cin>>bm;
el1.setBm(bm);
1
cout<<"Obiect creat cu ajutorul metodelor mutator si informatie afisata cu ajutorul
metodelor accessor:"<<endl;
cout<<"Numele elevului: "<<el1.getNumele()<<endl;
cout<<"Clasa: "<<el1.getClasa()<<endl;
cout<<"Balul mediu: "<<getBalulMediu(&el1)<<endl;
cout<<"\n";

cout<<"Obiect creat cu constructor predefinit:"<<endl;


el2.afiseazaElev();
cout<<"\n";

cout<<"Obiect creat cu constructor de copiere: "<<endl;


Elev el3(&el2);
el3.afiseazaElev();
cout<<"\n";

cout<<"Obiect creat cu constructor cu parametri: "<<endl;


Elev el4("Serghei",10,9.2);
el4.afiseazaElev();

return 0;
}

Codul programului din fisierul prototipuri.h:

#ifndef LAB2POO_PROTOTIPURI_H
#define LAB2POO_PROTOTIPURI_H
#include <iostream>
#include <cstring>
using namespace std;
class Elev{
private:
string numele;
int cl;
double bm;

public:
// ***** constructor implicit *****
Elev(){
numele="Tudor";
cl=10;
bm=9.0;
}

// ***** constructor cu parametri *****


Elev(string numele,int cl,float bm){
2
this->numele=numele;
this->cl=cl;
this->bm=bm;
}

// ***** constructor de copiere *****


Elev(Elev *el){
this->numele=el->numele;
this->cl=el->cl;
this->bm=el->bm;
}

// ***** mutator methods *****


void setNumele(string numele);
void setClasa(int clasa);
void setBm(float bm);

// ***** accessor methods *****


string getNumele();
int getClasa();

// ***** metoda friend *****


friend double getBalulMediu(Elev *el){
return el->bm;
}

// ***** metoda de afisat toate datele despre un elev *****


void afiseazaElev();
};

#endif //LAB2POO_PROTOTIPURI_H

Codul programului din fisierul metode.cpp:

#include "prototip.h"

// ***** mutator methods *****


void Elev::setNumele(string numele){
this->numele=numele;
}

void Elev::setClasa(int cl){


this->cl=cl;
}

void Elev::setBm(float bm){


this->bm=bm;
3
}

// ***** accessor methods *****


string Elev::getNumele(){
return numele;
}

int Elev::getClasa(){
return cl;
}

// ***** metoda de afisat toate datele despre un elev *****


void Elev::afiseazaElev(){
cout<<"Numele elevului: "<<this->numele<<endl;
cout<<"Clasa: "<<this->cl<<endl;
cout<<"Balul mediu: "<<this->bm<<"\n";
}

Rezultatul obtinut:

4
Analiza rezultatelor si concluzii:

1)În urma efectuării lucrării de laborator ne-am familiarizat cu noțiunea de clasă, obiect,
constructor, destructor, clase și funcții prietene.
2)Am făcut cunoștință cu noțiunile de metode setter și getter, cu operatorul rezoluție și
cuvântul cheie this.
3)Am înțeles cum se face apelul unei metode, cum se instanțiază un obiect cu ajutorul
constructorilor și am făcut cunoștință cu tipurile de constructori.

Bibliografie:

1.Conspectul prelegerilor cursului Programarea Orientata pe Obiecte[1]

2. Manual “Totul despre C si C++” ,autor: Kris Jamsa, Lars Klander.

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