1 / 1 / 0
Регистрация: 17.08.2012
Сообщений: 63
1

Создать абстрактный класс "Треугольник" и производный - "Равнобедренный треугольник"

06.03.2016, 00:23. Показов 5495. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание

Создать абстрактный класс треугольник. Предусмотреть в классе методы проверки существования треугольника, вычисления и вывода сведений о фигуре – длины сторон, углы, периметр, площадь. Создать производный класс – равнобедренный треугольник, члены класса – длины 3-х сторон, предусмотреть в классе все методы базового класса плюс проверку, является ли треугольник равнобедренным. В самой программе создать объекты с помощью указателя и обычным способом. Вызвать функции каждого из этих объектов.

Такая вот Беда(
Заранее спасибо всем кто поможет
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.03.2016, 00:23
Ответы с готовыми решениями:

Создать иерархию классов Треугольник, Равнобедренный треугольник, прямоугольный треугольник
Создайте класс для описания равнобедренного треугольника IsoscelesTriangle и RightTriangle - для...

Класс треугольник с произвольным классом - равнобедренный треугольник
Создать класс треугольник, члены класса - длины 3-х сторон. Предусмотреть в классе методы проверки...

Создать производный класс – равносторонний треугольник
Само задание разбито на 2 части (классы) - треугольник и равносторонний треугольник. Обе части...

Создать базовый класс Треугольник с 2 наследниками: Равносторонний треугольник, Прямоугольный треугольник
Задание звучит так: Нужно создать базовый класс Треугольник с двумя наследующими его классами - ...

3
BrainOverflow
126 / 130 / 64
Регистрация: 31.03.2013
Сообщений: 556
06.03.2016, 09:01 2
Лучший ответ Сообщение было отмечено Obivangosu как решение

Решение

Obivangosu, мой код далеко не идеальный, но я старался и надеюсь все правильно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
const double PI = 3.14;
class triangle
{
public:
    virtual void getData() = 0;
    virtual void setData() = 0;
    virtual void getDataforrb() = 0;
    virtual double angles(double a, double b, double c) = 0;
};
class rbtriangle : public triangle
{
private:
    double a, b, c, h, osn;
    double first, second, third;
    bool rb = false;
public:
     void getData()
    {
        cout << "Стороны: " << a << ", " << b << ", " << c << endl;
        cout << "Площадь: " << 0.5 * h  << endl;
        cout << "Периметр: " << a + b + c << endl;
        cout << "Угол между a и b - " << first << endl;
        cout << "Угол между a и c - " << second << endl;
        cout << "Угол между c и b - " << third << endl;
    }
     void getDataforrb()
     {
         cout << "\tТРЕУГОЛЬНИК РАВНОБЕДРЕННЫЙ\t";
         cout << "Стороны: " << a << ", " << b << ", " << c << endl;
         cout << "Площадь: " << 0.5 * osn * h << endl;
         cout << "Периметр: " << a + 2 * b<< endl;
         if (a == b)
         {
             cout << "Угол между a и c - " << second << endl;
             cout << "Угол между c и b - " << second << endl;
             cout << "Угол между b и a - " << 180 - (2 * second) << endl;
         }
         if (b == c)
         {
             cout << "Угол между a и b - " << first << endl;
             cout << "Угол между a и c - " << first << endl;
             cout << "Угол между b и c - " << 180 - (2 * first) << endl;
         }
         if (a == c)
         {
             cout << "Угол между c и b - " << third << endl;
             cout << "Угол между a и b - " << third << endl;
             cout << "Угол между a и c - " << 180 - (2 * third) << endl;
         }
     }
     void setData()
     {
         cout << "\nВведите 3 значения трех сторон треугольника: "; cin >> a >> b >> c;
         if ((a + b < c) || (a + c < b) || (b + c < a))
             cout << "Треугольника с такими углами не существует!" << endl;
         if (a == b || b == c || a == c)
         {
             cout << "Треугольник равнобедренный!\n";
             cout << "Введите основание треугольника: "; cin >> osn;
             cout << "\nВведите высоту: "; cin >> h;
             first = angles(a, b, c);
             second = angles(a, c, b);
             third = angles(b, c, a);
             rb = true;
             getDataforrb();
         }
         else
         {
             first = angles(a, b, c);
             second = angles(a, c, b);
             third = angles(b, c, a);
         }
        if(rb == false) cout << "\nВведите высоту: "; cin >> h;
     }
     double angles(double a, double b, double c)
     {
         return ((acos(((a*a) + (b*b) - (c*c)) / (2.*a*b))) * 180) / PI;
     }
};
int main()
{
    setlocale(LC_ALL, "Russian");
    triangle* tr = new rbtriangle;
    tr->setData();
    tr->getData();
}
2
1 / 1 / 0
Регистрация: 17.08.2012
Сообщений: 63
06.03.2016, 18:37  [ТС] 3
Sabnik18, этот код как Сикстинская капелла, так же идеален)

Спасибо большое буду разбирать)
0
sab1ch
06.03.2016, 18:49     Создать абстрактный класс "Треугольник" и производный - "Равнобедренный треугольник"
  #4

Не по теме:

Цитата Сообщение от Obivangosu Посмотреть сообщение
этот код как Сикстинская капелла, так же идеален)
:beach: :thank_you:

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.03.2016, 18:49

Создать абстрактный класс фигур и сделать 2 наследника (треугольник, прямоугольник)
Доброго времени суток. Задание такое : создать абстрактный класс фигур и сделать 2 наследника(...

Создать абстрактный базовый класс Тройка чисел с виртуальными методами увеличения на 1. Создать производный класс Время со своими функциями
Здравствуйте, пожалуйста помогите написать код к данной задаче, с таким условием: Создать...

Как создать равнобедренный треугольник из звездочек с использованием while, do while на С++?
Имеется такой код: #include &lt;iostream&gt; using namespace std; int main() { ...

Создать иерархию классов: Треугольник, Прямоугольный, Равнобедренный и Равносторонний
Помогите с задачей пожалуйста !!! Даже не знаю с чего начать ( Создать иерархию классов ...

Создать классы "Треугольник" и "Равнобедренный Треугольник"
Задание такое: Создать класс Треугольник, члены класса - длины 3-х сторон. Предусмотреть в классе...

В Paintbox вписать в круг треугольник, потом квадрат, и равнобедренный треугольник
Int a=StrToInt (Edit1-&gt;Text); PaintBox-&gt;Canvas-&gt;Ellipse(200-a/2,200-a/2,200+a/2,200+a/2);нарисовал...

Создать классы: Равнобедренный треугольник, равнобедренный треугольник со скошенными углами
помогите создать классы: Равнобедренный треугольник, равнобедренный треугольник со скошенными...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru