RAPORT
Lucrarea de laborator Nr.4
Varianta:8
Tema:”Mostenirea si compozitia”
2019
Scopul lucrării:
Sarcina Lucrarii:
а) Să se creeze ierarhia de clase bloc de studiu - clasa de bază abstractă şi instituţie preşcolară,
instituţie şcolară medie şi instituţie de învăţămînt superior – clase derivate. Să se supraîncarce
fluxul de ieşire şi fluxul de intrare, să se definească constructorul de copiere, operatorul de atribuire
prin funcţiile corespunzătoare ale clasei de bază.
b) Să se creeze clasa motor, care are o firmă producătoare, tip şi putere. Determinaţi funcţiile de
setare, de schimbare a parametrilor motoarelor. Creaţi o ierarhie a claselor: corabie – clasa de bază
şi vapor pentru pasageri – derivată. Corabia are un motor, capacitate de încărcare, măsurător de
apă, denumire, portul unde este înscris. Pentru setarea cîmpurilor textuale, utilizaţi operatorul new.
a) Codul Programului:
#include <iostream>
#include <string.h>
class bloc_de_studiu
{
protected:
char adress[100];
int nr_inst_invat;
int nr_student;
public:
bloc_de_studiu () : nr_inst_invat(0), nr_student(0)
{}
};
public:
inst_presc() : nr_elevi(0)
{}
public:
inst_medie() : nr_cab(0)
{}
public:
inst_super() : nr_lab(0)
{}
int main()
{
bloc_de_studiu c1;
inst_presc c2;
inst_medie c3;
inst_super c4;
system ("pause");
return (0);
}
Rezultatul Programului:
b) Codul Programului:
#include <iostream>
#include <string.h>
class motor
public:
string name;
string port;
float capacit;
float cap_motor;
string tip;
void ft_define()
cout << "Are un motor cu puterea de? >> " << endl;
void ft_del()
name = '0';
port = '0';
capacit = 0;
cap_motor = 0;
tip = '0';
return os << "\n Denumirea corabiei este : " << s.name << endl << "Denumirea portului
este : " << s.port << endl << "Capacitatea de incarcare este : " << s.capacit << endl << "\n Are un
motor cu o putere de : " << s.cap_motor << endl << "\n Este de tip: : " << s.tip << endl;
};
public:
motor *corabie;
int count;
int pasager;
this->count = count;
pasager = 0;
~Corabie()
delete [] corabie;
count = 0;
void ft_add()
corabie[pasager].ft_define();
pasager++;
void ft_delete()
int i;
cout << "Introduce numarul corabiei care doresti sa o elimini" << endl;
cin >> i;
corabie[i].ft_del();
void ft_modify()
int i;
cout << "Introduceti numarul corabiei pentru modificare dateleor" << endl;
cin >> i;
corabie[i].ft_define();
float ft_medpas()
float sum = 0;
float med = 0;
int i = -1;
sum += corabie[i].capacit;
int i = 0;
float sum = 0;
float med = 0;
i++;
continue ;
i++;
sum += g.corabie[i].capacit;
med = sum/g.pasager;
return out;
};
int main()
char choice;
int n;
cin >> n;
Corabie corabie(n);
while (1)
system("cls");
cout << "[3]. Modificati datele uneia dintre corabii." << endl;
{
if (choice == '0')
break;
if (choice == '1')
corabie.ft_add();
if (choice == '2')
corabie.ft_delete();
if (choice == '3')
corabie.ft_modify();
if (choice == '4')
else
system("pause");
system("pause");
return (0);}
Rezultatul Programului:
Dupa modificare:
Dupa eliminare:
Concluzie:
In rezultatul elaborarii lucrarii date s-a pus baza aplicarii in practica a cunostintelor
teoretice referitoare la mostenirea multipla.
Astfel se poate judeca despre posibilitatile largi acordate de limbajul C++ referitor la
manipularea claselor.