Documente Academic
Documente Profesional
Documente Cultură
a patratului. Clasa mai contine un constructor explicit cu parametru implicit=0, metode set si get, o
metoda calcDiag() ptr calculul diagonalei care e returnata ca valoare double, o metoda calcPerim()
ptr calculul perimetrului returnand un intreg si un destructor care afiseaza un mesaj. Instantiati n<5
(citit de la tastatura) obiecte intr-un tablou. Definiti un pointer la primul obiect si o referinta la al
doilea. Apelati metodele clasei ptr aceste doua obiecte. Supraincarcati operatorul de insertie ptr a
afisa latura, diagonala si perimetrul ptr toate obiectele. Afisati pe randuri separate datele specifice
tuturor obiectelor. Scrieti aceleasi date intr-un fisier. Daca e cazul folositi si alte metode necesare.
Clasa va fi declarata intr-un fisier header separate si apoi definita intr-un fisier *.cpp
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
int n = 1;
class Patrat {
int l;
public:
Patrat(int l = 0) :l(l) {}
void setL(int l) { this->l = l; }
int getL() { return l; }
double calcDiag() {return l * sqrt(2);}
int main()
{
cout << "Cititi n(n<5): "; cin >> n;
Patrat* tab = new Patrat[n];
Patrat* pp = &tab[0];
Patrat& pr = tab[1];
pp->setL(2);
cout << pp->getL() << " " << pp->calcPerim() << " " << pp->calcDiag();
pr.setL(3);
cout << endl << pr.getL() << " " << pr.calcPerim() << " " << pr.calcDiag();
cout << tab;
char name[20];
cin.ignore();
cout << "Cititi numele fisierului: ";
cin.getline(name, 20);
ofstream file(name, ios::out, ios::trunc);
for (int i = 0; i < n; i++)
{
file << "\nLatura: " << tab[i].getL();
file << "\nDiagonala: " << tab[i].calcDiag();
file << "\nPerimetrul: " << tab[i].calcPerim();
file << endl;
}
file.close();
delete[]tab;
cin.ignore();
cin.get();
return 0;
}