Sunteți pe pagina 1din 8

Ministerul Educației al Republicii Moldova

Universitatea Tehnică a Moldovei

Facultatea: Calculatoare Informatică Microelectronică


Departamentul: IIS

RAPORT
despre lucrarea de laborator nr.4
la disciplina: POO

Tema: Moştenirea şi compoziţia

A îndeplinit: st.gr.ISBM-161,Cazacu Constantin

A controlat: lector univ., Plotnic Constantin

Chişinău – 2017
Scopul lucrării:
• studierea moştenirii, avantajele şi dezavantajele;
• studierea compoziţiei;
• studierea regulilor de definire a moştenirii şi compoziţiei;
• studierea formelor de moştenire;
• studierea iniţializatorilor;
• principiul de substituţie;
• moştenirea şi compoziţia – ce să alegem.
Sarcina lucrării:
Varianta 7
а) De creat o ierarhie a claselor clădire – administrarea clădirii – clădire de locuit. Determinaţi
fluxul de ieşire şi fluxul de intrare, constructorul de copiere, operatorul de atribuire prin funcţia
corespunzătoare a clasei de bază.
b) De creat clasa student, care are un nume, specialitate, anul de învăţământ şi balul mediu.
Determinaţi funcţia de definire, schimbare a datelor şi comparare. Pentru sarcina câmpurilor
textuale se foloseşte operatorul new. Determinaţi constructorul, destructorul şi alte funcţii
necesare. Creaţi clasa grupa, care conţine studenţi (o cantitate nelimitată). Definiţi metodele de
adăugare şi eliminare a studenţilor, determinarea balului mediu pe grupă, constructorii,
destructorii şi alte funcţii necesare.
Listingul programului:
// 7.

// a.
/*
#include <iostream>
#include <cstdlib>
#include <string.h>

using namespace std;

class cladire
{
protected:
char adresa[20];
char oras[20];
int nr_etaj;

public:
cladire(){}

cladire(char*adresa, char*oras, int nr_etaj)


{
strcpy(this->adresa, adresa);
strcpy(this->oras, oras);
this->nr_etaj = nr_etaj;
}

cladire(cladire &ob2)
{
strcpy(this->adresa, ob2.adresa);
strcpy(this->oras, ob2.oras);
this->nr_etaj = ob2.nr_etaj;
}

~cladire(){}
};

class administratie
{
protected:
char Nume_Admin[20];
char Prenume_Admin[20];
int nr_locuinte;

public:
administratie(){}

administratie(char *Nume_Admin, char *Prenume_Admin, int nr_locuinte)


{
strcpy(this->Nume_Admin, Nume_Admin);
strcpy(this->Prenume_Admin, Prenume_Admin);
this->nr_locuinte = nr_locuinte;
}

administratie(administratie &ob2)
{
strcpy(this->Nume_Admin, ob2.Nume_Admin);
strcpy(this->Prenume_Admin, ob2.Prenume_Admin);
this->nr_locuinte = ob2.nr_locuinte;
}

~administratie(){}
};

class cladire_locuit: public cladire, public administratie


{
protected:
char NumeLocuitor[20];
char PrenumeLocuitor[20];

public:
cladire_locuit(char *NumeLocuitor, char *PrenumeLocuitor, char *adresa, char *oras, int nr_etaj,
char*NumeAdmin, char*PrenumeAdmin): cladire(adresa,oras,nr_etaj),

administratie(NumeAdmin, PrenumeAdmin, 150)


{
strcpy(this->NumeLocuitor, NumeLocuitor);
strcpy(this->PrenumeLocuitor, PrenumeLocuitor);
}

cladire_locuit(cladire_locuit &ob2): cladire(ob2), administratie(ob2)


{
strcpy(this->NumeLocuitor, ob2.NumeLocuitor);
strcpy(this->PrenumeLocuitor,ob2.PrenumeLocuitor);
}

void Arata()
{
cout << NumeLocuitor << " " << PrenumeLocuitor << " Adresa- " << adresa << " Oras- " << oras <<
"\n Admin-" << Nume_Admin << " " << Prenume_Admin << "\nNr_Locuinte-" << nr_locuinte << endl;
}
};

int main()
{
cladire_locuit Om1("Ionescu", "Ion", "Igor Vieru", "Chisinau", 9, "Florin", "Maria");
cladire_locuit Om2(Om1);

Om1.Arata();
Om2.Arata();

cin.get();

return 0;
}
*/

// b.

#include <iostream>
#include <string.h>
#include <fstream>

using namespace std;

class Student
{
protected:
char* Nume;
char* Prenume;
char* specialitate;
int an;
double bal;

public:
Student(){}
Student(char* Nume, char*Prenume, char*specialitate, int an, double bal)
{
this->Nume = new char[strlen(Nume + 1)];
this->Nume = Nume;
this->Prenume = new char[strlen(Prenume + 1)];
this->Prenume = Prenume;
this->specialitate = new char[strlen(specialitate + 1)];
this->specialitate = specialitate;
this->an = an;
this->bal = bal;
}

void Set(char* Nume, char*Prenume, char*specialitate, int an, double bal)


{
this->Nume = new char[strlen(Nume+1)];
this->Nume=Nume;
this->Prenume = new char[strlen(Prenume+1)];
this->Prenume=Prenume;
this->specialitate = new char[strlen(specialitate+1)];
this->specialitate=specialitate;
this->an = an;
this->bal = bal;
}

void arata()
{
cout << Nume << " " << Prenume << " " << "studiaza " << specialitate << " si e in anul " << an << "
cu media " << bal << endl;
}

friend void comparare(Student S1, Student S2);


double balStud() { return bal; }

~Student(){}
};

void comparare(Student S1, Student S2)


{
if (S1.bal > S2.bal)
{
cout << S1.Nume << " " << S1.Prenume << " are o medie mai mare decit " << S2.Nume << " " <<
S2.Prenume << endl;
}
else
{
cout << S2.Nume << " " << S2.Prenume << " are o medie mai mare decit " << S1.Nume << " " <<
S1.Prenume << endl;
}
}

int i = 0;

class Grupa
{
protected:
char*NumeGrupa;
int nr_grupa;
double bal_mediuGr;
int nr_stud=0;
Student S[100];

public:
Grupa() {}
Grupa(char*NumeGrupa, int nr_grupa)
{
this->NumeGrupa = new char[strlen(NumeGrupa + 1)];
this->NumeGrupa = NumeGrupa;
this->nr_grupa = nr_grupa;
this->nr_grupa, nr_grupa;
}

void AddStudent(Student &Stud)


{
S[i] = Stud;
nr_stud++;
i++;
}

void ShowStudents()
{
cout << "\nGrupa " << NumeGrupa<<nr_grupa << endl;
for (int j = 0; j < nr_stud; j++)
{
S[j].arata();
}
}

void BalMediu()
{
for (int j = 0; j < nr_stud; j++)
{
bal_mediuGr += S[j].balStud();
}
bal_mediuGr = bal_mediuGr / nr_stud;

cout << "\nGrupa " << NumeGrupa <<nr_grupa<< " are media " << bal_mediuGr << endl;
}

~Grupa(){}
};

int main()
{
Grupa Gr1("C", 162);
Student S[100];
Student S2("Petru", "Locopenco", "Calculatoare", 3, 7.8);

int n;
char*nume;
char*prenume;
char*specialitate;
int an;
double bal;

ifstream f1("StudentiCalc.txt");
f1 >> n;

for (int k = 0; k < n; k++)


{
nume = new char[20];
prenume = new char[20];
specialitate = new char[20];
f1 >> nume;
f1 >> prenume;
f1 >> specialitate;
f1 >> an;
f1 >> bal;
S[k].Set(nume, prenume, specialitate, an, bal);
Gr1.AddStudent(S[k]);
}
f1.close();
Gr1.AddStudent(S2);
Gr1.ShowStudents();
Gr1.BalMediu();

comparare(S2, S[1]);

cin.get();

return 0;
}

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

  • Lab 1 C++
    Lab 1 C++
    Document13 pagini
    Lab 1 C++
    Maxim Tincu
    Încă nu există evaluări
  • Laborator nr.3 POO
    Laborator nr.3 POO
    Document6 pagini
    Laborator nr.3 POO
    MARYAN Pătru
    Încă nu există evaluări
  • Laborar 4 Programare
    Laborar 4 Programare
    Document13 pagini
    Laborar 4 Programare
    cristian
    Încă nu există evaluări
  • Laborator 1 C
    Laborator 1 C
    Document17 pagini
    Laborator 1 C
    Dorin Graur
    Încă nu există evaluări
  • Lab 7 Cazacu POO
    Lab 7 Cazacu POO
    Document8 pagini
    Lab 7 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • Lab1 Po
    Lab1 Po
    Document7 pagini
    Lab1 Po
    Alina Axenti
    Încă nu există evaluări
  • Lab 2 POO AI-191
    Lab 2 POO AI-191
    Document8 pagini
    Lab 2 POO AI-191
    Carolin
    Încă nu există evaluări
  • Baze de Data Lab4
    Baze de Data Lab4
    Document2 pagini
    Baze de Data Lab4
    DanuIepuras
    0% (1)
  • Laboratorul 1 Tap
    Laboratorul 1 Tap
    Document4 pagini
    Laboratorul 1 Tap
    catalina bucur
    Încă nu există evaluări
  • Raport 2 SDA
    Raport 2 SDA
    Document11 pagini
    Raport 2 SDA
    ПётрЧервак
    Încă nu există evaluări
  • Lab MMC2
    Lab MMC2
    Document5 pagini
    Lab MMC2
    Maxim
    Încă nu există evaluări
  • Laborator 3
    Laborator 3
    Document17 pagini
    Laborator 3
    DorelDjj
    Încă nu există evaluări
  • Lab 6
    Lab 6
    Document4 pagini
    Lab 6
    Егор Казаков
    Încă nu există evaluări
  • MMC Lab3 Rap
    MMC Lab3 Rap
    Document4 pagini
    MMC Lab3 Rap
    I LOVE ME
    Încă nu există evaluări
  • LL4 BD
    LL4 BD
    Document6 pagini
    LL4 BD
    Anya Mr
    Încă nu există evaluări
  • Lab 6 Poo
    Lab 6 Poo
    Document5 pagini
    Lab 6 Poo
    Alex Tronciu
    Încă nu există evaluări
  • Laborator Nr.2 BD
    Laborator Nr.2 BD
    Document12 pagini
    Laborator Nr.2 BD
    Андрей Пырлог
    Încă nu există evaluări
  • Raport GC Lab 1
    Raport GC Lab 1
    Document6 pagini
    Raport GC Lab 1
    Nickolae Enachi
    Încă nu există evaluări
  • Lab 6 Cazacu POO
    Lab 6 Cazacu POO
    Document5 pagini
    Lab 6 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • Laboratorul Nr1 La Grafica Pe Calculator Gc.
    Laboratorul Nr1 La Grafica Pe Calculator Gc.
    Document4 pagini
    Laboratorul Nr1 La Grafica Pe Calculator Gc.
    Ion Damaschin
    Încă nu există evaluări
  • Metode Și Modele de Calcul 2
    Metode Și Modele de Calcul 2
    Document6 pagini
    Metode Și Modele de Calcul 2
    I LOVE ME
    Încă nu există evaluări
  • Laborator 1 POO PDF
    Laborator 1 POO PDF
    Document6 pagini
    Laborator 1 POO PDF
    kanamechan27
    Încă nu există evaluări
  • Structuri de Date Si Algoritmi Culeg Probleme DS PDF
    Structuri de Date Si Algoritmi Culeg Probleme DS PDF
    Document33 pagini
    Structuri de Date Si Algoritmi Culeg Probleme DS PDF
    AlexandruBotnaru
    Încă nu există evaluări
  • Laboratorul 1
    Laboratorul 1
    Document4 pagini
    Laboratorul 1
    ion
    Încă nu există evaluări
  • Laborator-2mmc Balan Ion
    Laborator-2mmc Balan Ion
    Document12 pagini
    Laborator-2mmc Balan Ion
    Ion Bn
    Încă nu există evaluări
  • NR 4
    NR 4
    Document7 pagini
    NR 4
    Graid Icen
    Încă nu există evaluări
  • TAP Lab5 Popov Biatrice CR 191
    TAP Lab5 Popov Biatrice CR 191
    Document6 pagini
    TAP Lab5 Popov Biatrice CR 191
    Alina Axenti
    Încă nu există evaluări
  • Laborator nr1 SDA
    Laborator nr1 SDA
    Document25 pagini
    Laborator nr1 SDA
    Iulian Decuseara
    Încă nu există evaluări
  • Raport: La Disciplina Metode Și Modele de Calcul 1
    Raport: La Disciplina Metode Și Modele de Calcul 1
    Document9 pagini
    Raport: La Disciplina Metode Și Modele de Calcul 1
    Anya Mr
    Încă nu există evaluări
  • TAP Lab6 Popov Biatrice - CR 191
    TAP Lab6 Popov Biatrice - CR 191
    Document6 pagini
    TAP Lab6 Popov Biatrice - CR 191
    Alina Axenti
    Încă nu există evaluări
  • ASAD Lab03 Raport
    ASAD Lab03 Raport
    Document6 pagini
    ASAD Lab03 Raport
    Mihai U
    Încă nu există evaluări
  • Lab 2 MMC Boj
    Lab 2 MMC Boj
    Document12 pagini
    Lab 2 MMC Boj
    Andrian Brinzan
    Încă nu există evaluări
  • MMC2 Modulul2
    MMC2 Modulul2
    Document16 pagini
    MMC2 Modulul2
    ViorelRotari
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document10 pagini
    Lab 1
    Ion Cornea
    Încă nu există evaluări
  • LAb 2 SDA
    LAb 2 SDA
    Document19 pagini
    LAb 2 SDA
    Dima Cucu
    Încă nu există evaluări
  • Laborator 2 POO
    Laborator 2 POO
    Document8 pagini
    Laborator 2 POO
    Mihali Ionel
    Încă nu există evaluări
  • MMC Lab2
    MMC Lab2
    Document6 pagini
    MMC Lab2
    Mihail Boran
    Încă nu există evaluări
  • Laborator 1 Cucu Eugeniu
    Laborator 1 Cucu Eugeniu
    Document5 pagini
    Laborator 1 Cucu Eugeniu
    Cucu Eugen
    Încă nu există evaluări
  • Dutca Alexandru CR-182 Lab3 PCD
    Dutca Alexandru CR-182 Lab3 PCD
    Document5 pagini
    Dutca Alexandru CR-182 Lab3 PCD
    Dutca Alexandru
    Încă nu există evaluări
  • BDC 9b
    BDC 9b
    Document5 pagini
    BDC 9b
    Victor Noroc
    Încă nu există evaluări
  • Evaluarea 1 TSSS, Varianta 2
    Evaluarea 1 TSSS, Varianta 2
    Document2 pagini
    Evaluarea 1 TSSS, Varianta 2
    Alex Tronciu
    Încă nu există evaluări
  • Programarea Avansata
    Programarea Avansata
    Document8 pagini
    Programarea Avansata
    iry_piry
    Încă nu există evaluări
  • Lab 1 SDA Var 10
    Lab 1 SDA Var 10
    Document6 pagini
    Lab 1 SDA Var 10
    Vladimir Zgardan
    Încă nu există evaluări
  • Lab 4 MN
    Lab 4 MN
    Document3 pagini
    Lab 4 MN
    nn nnn
    Încă nu există evaluări
  • Lucrarea de Laborator nr6 - C++
    Lucrarea de Laborator nr6 - C++
    Document8 pagini
    Lucrarea de Laborator nr6 - C++
    CapitanMD
    Încă nu există evaluări
  • Lab 4 BDC
    Lab 4 BDC
    Document8 pagini
    Lab 4 BDC
    Ion Popescu
    0% (1)
  • Lab 2 BTD
    Lab 2 BTD
    Document14 pagini
    Lab 2 BTD
    megadanyx
    Încă nu există evaluări
  • TW Lab 5
    TW Lab 5
    Document4 pagini
    TW Lab 5
    danielploaia
    Încă nu există evaluări
  • Laborator 5 POO
    Laborator 5 POO
    Document6 pagini
    Laborator 5 POO
    Constantin Palita
    Încă nu există evaluări
  • Lucrarea de Laborator NR 5 POO
    Lucrarea de Laborator NR 5 POO
    Document4 pagini
    Lucrarea de Laborator NR 5 POO
    Alexandru Burdeniuc
    Încă nu există evaluări
  • Lucrare de Curs BDC
    Lucrare de Curs BDC
    Document17 pagini
    Lucrare de Curs BDC
    Petru Voloceai
    Încă nu există evaluări
  • Grafica Laborator Nr.3
    Grafica Laborator Nr.3
    Document5 pagini
    Grafica Laborator Nr.3
    Cebotari Ion
    100% (2)
  • Lab 3 Somipp
    Lab 3 Somipp
    Document14 pagini
    Lab 3 Somipp
    Augusta Bucataru
    Încă nu există evaluări
  • Grafica Laborator Nr.2
    Grafica Laborator Nr.2
    Document8 pagini
    Grafica Laborator Nr.2
    Cebotari Ion
    100% (1)
  • Laboratorul 2 PPE
    Laboratorul 2 PPE
    Document4 pagini
    Laboratorul 2 PPE
    crismaruion
    Încă nu există evaluări
  • Lab 4
    Lab 4
    Document4 pagini
    Lab 4
    Viktor Dobrovolschi
    Încă nu există evaluări
  • TAP Lab2
    TAP Lab2
    Document4 pagini
    TAP Lab2
    Adrian Bodorin
    Încă nu există evaluări
  • Lab 4
    Lab 4
    Document5 pagini
    Lab 4
    cristian
    Încă nu există evaluări
  • L08 Tablouri PDF
    L08 Tablouri PDF
    Document8 pagini
    L08 Tablouri PDF
    Stefan Grecu
    Încă nu există evaluări
  • Lab.4 POO UD
    Lab.4 POO UD
    Document9 pagini
    Lab.4 POO UD
    Miroslava
    Încă nu există evaluări
  • Nano Medic
    Nano Medic
    Document1 pagină
    Nano Medic
    Iura Cazacu
    Încă nu există evaluări
  • Lab Broasca
    Lab Broasca
    Document6 pagini
    Lab Broasca
    Iura Cazacu
    Încă nu există evaluări
  • Poziția de Lider În Domeniul Tehnologiilor Generice Și Industriale
    Poziția de Lider În Domeniul Tehnologiilor Generice Și Industriale
    Document5 pagini
    Poziția de Lider În Domeniul Tehnologiilor Generice Și Industriale
    Iura Cazacu
    Încă nu există evaluări
  • Biofizica
    Biofizica
    Document2 pagini
    Biofizica
    Iura Cazacu
    Încă nu există evaluări
  • Lab Broasca
    Lab Broasca
    Document6 pagini
    Lab Broasca
    Iura Cazacu
    Încă nu există evaluări
  • Lab nr.2 Tensiune Superficiala
    Lab nr.2 Tensiune Superficiala
    Document5 pagini
    Lab nr.2 Tensiune Superficiala
    Iura Cazacu
    Încă nu există evaluări
  • Lab - 5
    Lab - 5
    Document4 pagini
    Lab - 5
    Iura Cazacu
    Încă nu există evaluări
  • Lab - 5
    Lab - 5
    Document4 pagini
    Lab - 5
    Iura Cazacu
    Încă nu există evaluări
  • Diplo
    Diplo
    Document1 pagină
    Diplo
    Iura Cazacu
    Încă nu există evaluări
  • Masini Vechi
    Masini Vechi
    Document1 pagină
    Masini Vechi
    Iura Cazacu
    Încă nu există evaluări
  • Masini Multe
    Masini Multe
    Document1 pagină
    Masini Multe
    Iura Cazacu
    Încă nu există evaluări
  • Masini Vechi
    Masini Vechi
    Document1 pagină
    Masini Vechi
    Iura Cazacu
    Încă nu există evaluări
  • Server
    Server
    Document1 pagină
    Server
    Iura Cazacu
    Încă nu există evaluări
  • Imulite
    Imulite
    Document1 pagină
    Imulite
    Iura Cazacu
    Încă nu există evaluări
  • Lab 3 TB
    Lab 3 TB
    Document2 pagini
    Lab 3 TB
    Iura Cazacu
    Încă nu există evaluări
  • Lab 2 TB
    Lab 2 TB
    Document1 pagină
    Lab 2 TB
    Iura Cazacu
    Încă nu există evaluări
  • Lab 4 TB
    Lab 4 TB
    Document1 pagină
    Lab 4 TB
    Iura Cazacu
    Încă nu există evaluări
  • SFSD
    SFSD
    Document1 pagină
    SFSD
    Iura Cazacu
    Încă nu există evaluări
  • Materiale
    Materiale
    Document1 pagină
    Materiale
    Iura Cazacu
    Încă nu există evaluări
  • Lab 5 TB
    Lab 5 TB
    Document2 pagini
    Lab 5 TB
    Iura Cazacu
    Încă nu există evaluări
  • Laboratorul 1 Med
    Laboratorul 1 Med
    Document1 pagină
    Laboratorul 1 Med
    Iura Cazacu
    0% (1)
  • Lab MED3
    Lab MED3
    Document2 pagini
    Lab MED3
    Iura Cazacu
    Încă nu există evaluări
  • Laboratorul 2 La MED
    Laboratorul 2 La MED
    Document1 pagină
    Laboratorul 2 La MED
    Iura Cazacu
    Încă nu există evaluări
  • Chestionar Evaluarea II DMCO PDF
    Chestionar Evaluarea II DMCO PDF
    Document1 pagină
    Chestionar Evaluarea II DMCO PDF
    Iura Cazacu
    Încă nu există evaluări
  • Lab 6
    Lab 6
    Document5 pagini
    Lab 6
    Andrian Ciumac
    Încă nu există evaluări
  • Lab Med 4
    Lab Med 4
    Document2 pagini
    Lab Med 4
    Iura Cazacu
    Încă nu există evaluări
  • Me 8
    Me 8
    Document3 pagini
    Me 8
    Iura Cazacu
    Încă nu există evaluări
  • Chestionar Evaluarea II DMCO PDF
    Chestionar Evaluarea II DMCO PDF
    Document1 pagină
    Chestionar Evaluarea II DMCO PDF
    Iura Cazacu
    Încă nu există evaluări
  • Labhh 7
    Labhh 7
    Document4 pagini
    Labhh 7
    Mihai Rusu
    Încă nu există evaluări
  • Sarcina Lab2
    Sarcina Lab2
    Document10 pagini
    Sarcina Lab2
    Nickolae Enachi
    Încă nu există evaluări