C/C++

Нужен код на С++

Описать класс Треугольник, содержащий координаты вершин, конструктор, функцию, определяющую правильность введения данных, т.е. проверяющую возможность построения треугольника по заданным вершинам, и функцию, рисующую треугольник на экране. Продемонстрировать в программе работу всех функций.
#include <iostream>
#include <limits>
#include <cmath>
#include <string>
using namespace std;
unsigned coord(const string& name) {
cout << name;
unsigned value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
struct Point {
unsigned x;
unsigned y;
Point() : x(0), y(0) {}
Point(const unsigned x, const unsigned y) : x(x), y(y) {}
double length(const Point& p)const {
return sqrt(pow(p.x - x, 2) + pow(p.y - y, 2));
}
};
Point point(const string& name) {
Point p;
p.x = coord(name + "x: ");
p.y = coord(name + "y: ");
return p;
}
class Triangle {
public:
Triangle(const Point& a, const Point& b, const Point& c) : a(a), b(b), c(c) {}
double perimeter()const {
return (a.length(b) + b.length(c) + c.length(a));
}
bool exist()const {
return argument() > 0;
}
void paint()const {
puts("Я не художник, я только учусь!");
}
private:
Point a, b, c;
double argument()const {
auto p = perimeter() / 2.0;
return p * (p - a.length(b)) * (p - b.length(c)) * (p - c.length(a));
}
};
int main() {
system("chcp 1251 > nul");
auto a = point("A");
auto b = point("B");
auto c = point("C");
Triangle t{ a, b, c };
if (t.exist()) t.paint();
else puts("Треугольника с такими координатами не существует!");
system("pause > nul");
}
Дима Храпунов
Дима Храпунов
82 252
Лучший ответ
SS?))