/
AirLexa
/
origin
Обзор
Документация
Войти
/
AirLexa
/
origin
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
Lesson_05/Task_2/Tasl_2.cpp
179 строк
4 KB
AirLexa
добавил Lesson_05/Task_2/Tasl_2.cpp
23 окт 2025, 09:07
23 окт 2025, 09:07
2b8155c
Код
Авторство
О чём код?
#include <iostream> #include <windows.h> #include <string> class Figura { private: std::string name = "Фигура"; public: void set_name(std::string name) { this->name = name; } std::string get_name() { return name.append(":\n"); } }; class Tri : public Figura { int a, b, c, A, B, C; public: Tri(int a, int b, int c, int A, int B, int C) { set_name("Треугольник"); this->a = a; this->b = b; this->c = c; this->A = A; this->B = B; this->C = C; } std::string to_string() { return get_name() + "Стороны: а = " + std::to_string(a) + ", b = " + std::to_string(b) + ", c = " + std::to_string(c) + "\nУглы: A = " + std::to_string(A) + ", B = " + std::to_string(B) + ", C = " + std::to_string(C) + "\n"; } }; class Tri_90 : public Tri { public: Tri_90(int a, int b, int c, int A, int B) : Tri(a, b, c, A, B, 90) { set_name("Прямоугольный треугольник"); } }; class Tri_2_side : public Tri { public: Tri_2_side(int a, int b, int A, int B) : Tri(a, b, a, A, B, A) { set_name("Равнобедренный треугольник"); } }; class Tri_3_side : public Tri_2_side { public: Tri_3_side(int a) : Tri_2_side(a, a, 60, 60) { set_name("Равносторонний треугольник"); } }; class Quadre : public Figura { private: int a, b, c, d, A, B, C, D; public: Quadre(int a, int b, int c, int d, int A, int B, int C, int D) { set_name("Четырехугольник"); this->a = a; this->b = b; this->c = c; this->d = d; this->A = A; this->B = B; this->C = C; this->D = D; } std::string to_string() { return get_name() + "Стороны: а = " + std::to_string(a) + ", b = " + std::to_string(b) + ", c = " + std::to_string(c) + ", d = " + std::to_string(d) + "\nУглы: A = " + std::to_string(A) + ", B = " + std::to_string(B) + ", C = " + std::to_string(C) + ", D = " + std::to_string(D) + "\n"; } }; class Parall : public Quadre { public: Parall(int a, int b, int A, int B) : Quadre(a, b, a, b, A, B, A, B) { set_name("Параллелограм"); } }; class Rect : public Parall { public: Rect(int a, int b) : Parall(a, b, 90, 90) { set_name("Прямоугольник"); } }; class Square : public Rect { public: Square(int a) : Rect(a, a) { set_name("Квадрат"); } }; class Romb : public Parall { public: Romb(int a, int A, int B) : Parall(a, a, A, B) { set_name("Ромб"); } }; int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); Tri tri(10, 20, 30, 50, 60, 70); std::cout << tri.to_string() << std::endl; Tri_90 tri_90(10, 20, 30, 50, 60); std::cout << tri_90.to_string() << std::endl; Tri_2_side tri_2_side(10, 20, 50, 60); std::cout << tri_2_side.to_string() << std::endl; Tri_3_side tri_3_side(30); std::cout << tri_3_side.to_string() << std::endl; Quadre quadre(10, 20, 30, 40, 50, 60, 70, 80); std::cout << quadre.to_string() << std::endl; Rect rect(10, 20); std::cout << rect.to_string() << std::endl; Square square(20); std::cout << square.to_string() << std::endl; Parall parall(20, 30, 30, 40); std::cout << parall.to_string() << std::endl; Romb romb(30, 30, 40); std::cout << romb.to_string() << std::endl; return 0; }