Есть программа для нахождения площади и периметра треугольника. Нужно доработать класс, добавив в него стандартный и дополнительный конструкторы. В главной функции объявить массив объектов. Добавить к нему объекты, созданные по стандартным и дополнительным конструктором.
#include
#include
using namespace std;
class Triangle {
public:
void Enter_sides() {
cout << "Enter the first side:" << endl;
cin >> side1;
cout << "Enter the second side:" << endl;
cin >> side2;
cout << "Enter the third side:" << endl;
cin >> side3;
cout << "Enter the height:" << endl;
cin >> height;
}
void Perimeter() {
Pr = side1 + side2 + side3;
}
void Square() {
Sq = 0.5 * side1 * height;
}
float Return_perimeter() {
return Pr;
}
float Return_square() {
return Sq;
}
private:
double side1, side2, side3, height;
float Pr, Sq;
};
int main() {
cout << "Calculating the perimeter and area of a triangle" << endl;
Triangle *tr1 = new Triangle;
tr1->Enter_sides();
tr1->Perimeter();
tr1->Square();
cout << "Perimeter of Triangle = " << tr1 -> Return_perimeter() << endl;
cout << "Square of Triangle = " << tr1 -> Return_square() << endl;
delete tr1;
system("pause");
return 0;
}
C/C++
Доработка класса. Создание массива объектов
#include <iostream>
#include <iomanip>
using namespace std;
class Triangle {
public:
Triangle() : a(0), b(0), c(0) {}
Triangle(double a, double b, double c) : a(a), b(b), c(c) {}
void set(double a, double b, double c) {
this->a = a;
this->b = b;
this->c = c;
}
double perimeter() {
return a + b + c;
}
double area() {
if (exist()) return sqrt(arg());
return 0;
}
bool exist() {
return arg() > 0;
}
private:
double a, b, c;
double arg() {
auto p = perimeter() / 2;
return p * (p - a) * (p - b) * (p - c);
}
friend ostream& operator<<(ostream& out, const Triangle& t) {
return out << '(' << t.a << ", " << t.b << ", " << t.c << ')';
}
};
double input(const char* msg) {
cout << msg;
double value;
cin >> value;
return value;
}
int main() {
constexpr auto buffer = 5U;
Triangle box[buffer];
for (auto i = 0U; i < buffer; ++i) {
auto a = input("a: ");
auto b = input("b: ");
auto c = input("c: ");
if (i & 1) {
box[i] = Triangle(a, b, c);
} else {
Triangle t;
t.set(a, b, c);
box[i] = t;
}
if (!box[i].exist()) --i;
cout.put('\n');
}
system("cls");
cout << fixed << setprecision(2);
for (auto i = 0U; i < buffer; ++i) {
cout << "Triangle " << box[i] << '\n'
<< "p: " << box[i].perimeter() << '\n'
<< "s: " << box[i].area() << "\n\n";
}
system("pause > nul");
}
#include <iomanip>
using namespace std;
class Triangle {
public:
Triangle() : a(0), b(0), c(0) {}
Triangle(double a, double b, double c) : a(a), b(b), c(c) {}
void set(double a, double b, double c) {
this->a = a;
this->b = b;
this->c = c;
}
double perimeter() {
return a + b + c;
}
double area() {
if (exist()) return sqrt(arg());
return 0;
}
bool exist() {
return arg() > 0;
}
private:
double a, b, c;
double arg() {
auto p = perimeter() / 2;
return p * (p - a) * (p - b) * (p - c);
}
friend ostream& operator<<(ostream& out, const Triangle& t) {
return out << '(' << t.a << ", " << t.b << ", " << t.c << ')';
}
};
double input(const char* msg) {
cout << msg;
double value;
cin >> value;
return value;
}
int main() {
constexpr auto buffer = 5U;
Triangle box[buffer];
for (auto i = 0U; i < buffer; ++i) {
auto a = input("a: ");
auto b = input("b: ");
auto c = input("c: ");
if (i & 1) {
box[i] = Triangle(a, b, c);
} else {
Triangle t;
t.set(a, b, c);
box[i] = t;
}
if (!box[i].exist()) --i;
cout.put('\n');
}
system("cls");
cout << fixed << setprecision(2);
for (auto i = 0U; i < buffer; ++i) {
cout << "Triangle " << box[i] << '\n'
<< "p: " << box[i].perimeter() << '\n'
<< "s: " << box[i].area() << "\n\n";
}
system("pause > nul");
}
Похожие вопросы
- Массив объектов С++
- Динамические массивы объектов класса. Нужна помощь.
- Создание массива C++
- Составить программу на С++ Программирование с использованием классов. Создание и работа с классами.
- Лабораторная работа. Классы. Передача объекта в качестве аргумента.
- Заменить нулями элементы массива, которые расположены между первым минимальным и последним максимальным элементами масси
- Помогите исправить и дописать программу с массивами на языке C++. Буду благодарен, т. к. самому уже не понятно.
- Нужна помощь в составлении одномерных массивов С++
- Кольцевой сдвиг массива
- Помогите пожалуйста с Массивами .В языке С .Заполнил 2-мерный массив N и M случайными числами дальше не понимаю.