Sunteți pe pagina 1din 5

CATEDRA TEHONOLOGII

Laboratorul nr. 4
Programarea pe Obiecte
11. In calitate de clasă de bază se consideră clasele cerc și
figura (exemplul rezolvat în lucrare). Aceste clase derivă
clasa figura_noua (formată dintr-un patrat și figura
prezentată în exemplul rezolvat), grafic figura_noua se
reprezintă:

Creați clasa figura_noua, derivata claselor cerc și figura,


dacă se cunoaște lungimea laturii pătratului, lungimea
diametrului cercului este egală cu lungimea laturii pătratului,
iar lungimea laturii triunghiului echilateral este egală cu
a+0,3*a, unde a este lungimea laturii
pătratului. Pentru clasa figura_nouă va fi implimentată
metoda de determinare a suprafeței.

Codul:
// MostenireMultimpla.cpp

#include <iostream>
#include <vector>
#include <cmath>
using namespace std;

const float PI = 3.14159265359;

class figura {
// aici va fi patratul si triungiul
public:
// publice pt a le accesa din clasa cerc
float latura_patrat;

figura() {
latura_patrat = latura_triunghi = 0;
}

figura(float x, float y) {
latura_patrat = x;
latura_triunghi = y;
}

void citire_patrat() {
cout << "Introdu latura patratului: ";
cin >> latura_patrat;
}

float s_patrat() {
return latura_patrat * latura_patrat;
}
// aflam latura triunghiului
float latura_triunghi = latura_patrat + 0.3 * latura_patrat;
};

class cerc : public figura {

public:
cerc() {
raza = 0;
}

cerc(float lat) {
raza = lat;
}
// aflam raza cercului
float raza = latura_patrat / 2;

// suprafata cerc
float s_cerc() {
return PI * raza * raza;
}

};

class figura_noua : public cerc{


// suprafata triunghi echilatreral
public:
float s_tr() {
return (latura_patrat * latura_patrat * sqrt(3) / 4);
}
};

int main()
{
vector<figura_noua> lista;

cout << "cate figuri complexe doresti sa introduci?\n";


int n = 0; cin >> n; cout << "\n";

float s_total = 0;
for (int i = 0; i < n; i++) {

figura_noua Figura;
cout << "Figura nr." << i + 1 << "\n";
Figura.citire_patrat();
s_total = (Figura.s_cerc() / 2) + Figura.s_tr() + Figura.s_patrat();
cout << " - Suprafata totala a figurii este de : " << s_total
<< " cm^2 " << endl << endl;
}
}

Rezultate:
Concluzie: În această lucrare de laborator, am aplicat
prorietatea de moștenire multiplă, creând trei clase (figura, cerc;
figura_noua). figura_noua -> cerc -> figura. Astfel, am putut înscrie
și crea în program acea figură complexă. Apoi am declarat un
vector, am precizat cantitatea de figuri pentru care citim datele și
am efectuat calcule, apelând la funcțiile declarate în clase.

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