/
ArtT
/
Netology
Обзор
Документация
Войти
/
ArtT
/
Netology
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Part2/Task_2_4_2/Task_2_4_2.cpp
147 строк
5 KB
ArtT
Корректировка четвёртого задания
15 ноя 2025, 09:32
15 ноя 2025, 09:32
0833e66
Код
Авторство
О чём код?
#include <iostream> #include <string> using namespace std; class Figure { private: string name = "Фигура"; int sides_count{ 0 }; protected: Figure(const string setName, const int setSidesCount) : name{ setName }, sides_count{ setSidesCount } {}; int getSidesCount() { return sides_count; } string getName() { return name; } public: Figure() = default; }; class Triangle : public Figure { private: int a{ 0 }, b{ 0 }, c{ 0 }; int A{ 0 }, B{ 0 }, C{ 0 }; protected: Triangle(string setName, int set_a, int set_b, int set_c, int set_A, int set_B, int set_C) : Figure(setName, 3), a{ set_a }, b{ set_b }, c{ set_c }, A{ set_A }, B{ set_B }, C{ set_C } {} public: Triangle(int set_a, int set_b, int set_c, int set_A, int set_B, int set_C) : Figure("Треугольник", 3), a{ set_a }, b{ set_b }, c{ set_c }, A{ set_A }, B{ set_B }, C{ set_C } {} string printInfo() { return this->getName() + ": \n"+ "Стороны: a = " + to_string(this->a) + ", b = " + to_string(this->b) + ", c = " + to_string(this->c) + "\n" + "Углы: A = " + to_string(this->A) + ", B = " + to_string(this->B) + ", C = " + to_string(this->C); } }; class RectangularTriangle : public Triangle { public: RectangularTriangle(int set_a, int set_b, int set_c, int set_A, int set_B): Triangle("Прямоугольный треугольник", set_a , set_b, set_c, set_A, set_B, 90) {} }; class IsoscelesTriangle : public Triangle { public: IsoscelesTriangle(int set_a, int set_b, int set_A, int set_B) : Triangle("Равнобедренный треугольник", set_a, set_b, set_b, set_A, set_B, set_B) {} }; class EquilateralTriangle : public Triangle { public: EquilateralTriangle(int set_a) : Triangle("Равносторонний треугольник", set_a, set_a, set_a, 60, 60, 60) {} }; class Quadrangle : public Figure { private: int a{ 0 }, b{ 0 }, c{ 0 }, d{ 0 }; int A{ 0 }, B{ 0 }, C{ 0 }, D{ 0 }; protected: Quadrangle(string setName, int set_a, int set_b, int set_c, int set_d, int set_A, int set_B, int set_C, int set_D) : Figure(setName, 4), a{ set_a }, b{ set_b }, c{ set_c }, d{ set_d }, A{ set_A }, B{ set_B }, C{ set_C }, D{ set_D } {} public: Quadrangle(int set_a, int set_b, int set_c, int set_d, int set_A, int set_B, int set_C, int set_D) : Figure("Четырёхугольник", 4), a{ set_a }, b{ set_b }, c{ set_c }, d{ set_d }, A{ set_A }, B{ set_B }, C{ set_C }, D{ set_D } {} string printInfo() { return this->getName() + ": \n" + "Стороны: a = " + to_string(this->a) + ", b = " + to_string(this->b) + ", c = " + to_string(this->c) + ", d = " + to_string(this->d) + "\n" + "Углы: A = " + to_string(this->A) + ", B = " + to_string(this->B) + ", C = " + to_string(this->C) + ", D = " + to_string(this->D); } }; class Parallelogram : public Quadrangle { protected: Parallelogram(string setName, int set_a, int set_b, int set_A, int set_B) : Quadrangle(setName, set_a, set_b, set_a, set_b, set_A, set_B, set_A, set_B) {} public: Parallelogram(int set_a, int set_b, int set_A, int set_B) : Quadrangle("Параллелограмм", set_a, set_b, set_a, set_b, set_A, set_B, set_A, set_B) {} }; class Rectangle : public Parallelogram { protected: Rectangle(string setName, int set_a, int set_b) : Parallelogram(setName, set_a, set_b, 90, 90) {} public: Rectangle(int set_a, int set_b) : Parallelogram("Прямоугольник", set_a, set_b, 90, 90) {} }; class Square : public Rectangle { public: Square(int set_a) : Rectangle("Квадрат", set_a, set_a) {} }; class Rhomb : public Parallelogram { public: Rhomb(int set_a, int set_A, int set_B) : Parallelogram("Ромб", set_a, set_a, set_A, set_B) {} }; int main() { setlocale(LC_ALL, "rus"); Triangle triangle(10, 20, 30, 50, 60, 70); cout << triangle.printInfo() << endl << endl; RectangularTriangle rectangularTriangle(20, 30, 40, 50, 60); cout << rectangularTriangle.printInfo() << endl << endl; IsoscelesTriangle isoscelesTriangle(20, 30, 50, 60); cout << isoscelesTriangle.printInfo() << endl << endl; EquilateralTriangle equilateralTriangle(20); cout << equilateralTriangle.printInfo() << endl << endl; Quadrangle quadrangle(10, 20, 30, 40, 50, 60, 70, 80); cout << quadrangle.printInfo() << endl << endl; Parallelogram parallelogram(20, 30, 30, 40); cout << parallelogram.printInfo() << endl << endl; Rectangle rectangle(10, 20); cout << rectangle.printInfo() << endl << endl; Square square(20); cout << square.printInfo() << endl << endl; Rhomb rhomb(30, 30, 40); cout << rhomb.printInfo() << endl << endl; return EXIT_SUCCESS; }