Создать класс, описывающий геометрическую фигуру прямоугольник. Данные класса: координаты левого нижнего угла и правого верхнего угла. Открытые функции класса: ввод координат, расчет периметра прямоугольника, расчет площади прямоугольника, вывод координат всех вершин на экран.
Помогите написать код C++
C/C++
Работа с классами и объектами
#include <iostream>
#include <cmath>
#include <cstdlib>
using namespace std;
struct Point {
double x;
double y;
Point() : x(0), y(0) {}
Point(const double x, const double y) : x(x), y(y) {}
double length(const Point& p)const {
return sqrt(pow(p.x - x, 2) + pow(p.y - y, 2));
}
friend ostream& operator<<(ostream& out, const Point& p) {
return out << "(" << p.x << ", " << p.y << ")";
}
};
class Rectangle {
public:
Rectangle() = default;
Rectangle(const Point& a, const Point& b) : a(a), b(b) {}
double perimeter()const {
auto ac = Point{ a.x, b.y }.length(a);
auto ad = Point{ b.x, a.y }.length(a);
return (ac + ad) * 2.0;
}
double area()const {
auto ac = Point{ a.x, b.y }.length(a);
auto ad = Point{ b.x, a.y }.length(a);
return ac * ad;
}
void coords()const {
cout
<< "{" << b << ", "
<< Point{ a.x, b.y } << ", "
<< a << ", "
<< Point{ b.x, a.y } << "}\n";
}
private:
Point a;
Point b;
};
Point point(const char* name) {
Point p;
cout << name << "x: ";
cin >> p.x;
cout << name << "y: ";
cin >> p.y;
return p;
}
int main() {
auto a = point("A");
auto b = point("B");
Rectangle rect{ a, b };
cout.setf(ios::fixed);
cout.precision(2);
auto p = rect.perimeter();
cout << "Perimeter: " << p << '\n';
auto s = rect.area();
cout << "Area: " << s << '\n';
rect.coords();
system("pause > nul");
}
#include <cmath>
#include <cstdlib>
using namespace std;
struct Point {
double x;
double y;
Point() : x(0), y(0) {}
Point(const double x, const double y) : x(x), y(y) {}
double length(const Point& p)const {
return sqrt(pow(p.x - x, 2) + pow(p.y - y, 2));
}
friend ostream& operator<<(ostream& out, const Point& p) {
return out << "(" << p.x << ", " << p.y << ")";
}
};
class Rectangle {
public:
Rectangle() = default;
Rectangle(const Point& a, const Point& b) : a(a), b(b) {}
double perimeter()const {
auto ac = Point{ a.x, b.y }.length(a);
auto ad = Point{ b.x, a.y }.length(a);
return (ac + ad) * 2.0;
}
double area()const {
auto ac = Point{ a.x, b.y }.length(a);
auto ad = Point{ b.x, a.y }.length(a);
return ac * ad;
}
void coords()const {
cout
<< "{" << b << ", "
<< Point{ a.x, b.y } << ", "
<< a << ", "
<< Point{ b.x, a.y } << "}\n";
}
private:
Point a;
Point b;
};
Point point(const char* name) {
Point p;
cout << name << "x: ";
cin >> p.x;
cout << name << "y: ";
cin >> p.y;
return p;
}
int main() {
auto a = point("A");
auto b = point("B");
Rectangle rect{ a, b };
cout.setf(ios::fixed);
cout.precision(2);
auto p = rect.perimeter();
cout << "Perimeter: " << p << '\n';
auto s = rect.area();
cout << "Area: " << s << '\n';
rect.coords();
system("pause > nul");
}
Ruslan
Спасибо большое
ну вот в 3d max как примерно описывались объекты


и, что?
Ruslan
Помогите написать код
C++
C++
Похожие вопросы
- Лабораторная работа. Классы. Передача объекта в качестве аргумента.
- Классы, функции, объекты
- Работа с классами в C++
- Составить программу на С++ Программирование с использованием классов. Создание и работа с классами.
- Доработка класса. Создание массива объектов
- Программирование на С++(Классы-объекты)
- Динамические массивы объектов класса. Нужна помощь.
- Что сложного в этом вашем Си плюс плюсе? Классы, объекты, конструкторы, наследование, полиморфизм?
- Как перебрать объект класса записанный в list?
- Где располагается нессылочная переменная в ссылочном объекте с++?