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

Класс "Равносторонний треугольник" и производный класс "Правильная треугольная призма"

21.12.2018, 10:11. Показов 6152. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать класс равносторонний треугольник, член класса – длина стороны.

Предусмотреть в классе методы вычисления и вывода сведений о фигуре – периметр, площадь.

Создать производный класс – правильная треугольная призма с высотой H, добавить в класс метод определения объема фигуры, перегрузить методы расчета площади и вывода сведений о фигуре.

Написать программу, демонстрирующую работу с классом: дано N треугольников и M призм.

Найти количество треугольников, у которых площадь меньше средней площади треугольников, и призму с наибольшим объемом

error C2057: требуется константное выражение
error C2466: невозможно выделить память для массива постоянного нулевого размера
error C2133: ar_tr: неизвестный размер
error C2057: требуется константное выражение
error C2466: невозможно выделить память для массива постоянного нулевого размера
error C2133: ar_pr: неизвестный размер
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include <iostream>
#include <math.h>
using namespace std;
//класс треугольников
class triangle {  
protected:
    float len; //длина строны
public: 
    void set_len(float l) { len = l; } //установить длину  
    float perimeter(); //поиск периметра
    float area(); //поиск площади
    void show_perimeter(); //вывод периметра
    void show_area(); //вывод площади
};
float triangle::perimeter()
{
     return len * 3;
}
void triangle::show_perimeter()
{
     cout << "Perimeter of the triangle is equal to " << triangle::perimeter() 
          << endl;
}     
float triangle::area()
{
     //вычисляется по формуле герона 
     float p = len*3/2;
     float a = sqrt(p*(p-len)*(p-len)*(p-len)); 
     return a;
}
void triangle::show_area()
{
     cout << "Area of a triangle is equal to " << triangle::area() << endl;
}
//класс призм
class prism : public triangle {
    float h; //высота
public:
    void set_h(float hh) { h = hh; } //установит значение высоты
    float volume(); //вычисление объема
    float area(); //вычисление площади
    void show_volume(); //вывод объема
    void show_area(); //вывод площади
};    
float prism::volume()
{                
     return triangle::area() * h;
}
 
float prism::area()
{
      return triangle::area()*2 + (h*len)*3;
}
 
void prism::show_volume()
{
     cout << "The volume of the prism is " << prism::volume() << endl;
}
 
void prism::show_area()
{
     cout << "Area of a prism is equal to " << prism::area() << endl;
}
 
int main()
{
    int N;
    cout << "Enter the count of triangles N: ";
    cin >> N;
    
    int M;
    cout << "Enter the number of prisms M: ";
    cin >> M;
    
    int i;
    triangle ar_tr[N]; //массив объектов треугольников
    //ввод значения стороны треугольника
    float temp;
    for(i=0; i<N; i++) {
             cout << "Enter the length of the triangle: "; 
             cin >> temp;            
             ar_tr[i].set_len(temp);
    }
    //вывод данных (площадь и периметр) о треугольниках
    for(i=0; i<N; i++) {
        ar_tr[i].show_area();
        ar_tr[i].show_perimeter(); 
    }                                           
    prism ar_pr[M]; //массив объектов призм  
    //ввод грани и высоты призмы 
    for(i=0; i<N; i++) {
             cout << "Enter the face and height of the prisms: ";   
             cin >> temp;          
             ar_pr[i].set_len(temp);
             cin >> temp;
             ar_pr[i].set_h(temp);
    }
    //вывод данных (площадь и объем) о призмах
    for(i=0; i<M; i++) {
        ar_pr[i].show_area();
        ar_pr[i].show_volume();
    }    
    //поиск среднего значения площади треугольников    
    float sum=0;
    for(i=0; i<N; i++) sum += ar_tr[i].area();    
    float average = sum/N; //среднее значение      
    //вывод количества треугольников площадь которых меньше средней
    int count=0;
    for(i=0; i<N; i++) 
        if (ar_tr[i].area() < average) count++;
    cout << "\nThe count of triangles, whose area is less than the average: "
         << count;
    
    //поиск призмы с наибольшим объемом
    float max = ar_pr[0].volume();
    for(i=1; i<M; i++) if (max < ar_pr[i].volume()) max = ar_pr[i].volume();
    cout << "Value of the maximum volume of prisms: " << max;
    
    cin.get();
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.12.2018, 10:11
Ответы с готовыми решениями:

Создать производный класс – правильная квадратная призма
Создать класс квадрат, члены класса - длина стороны. Предусмотреть в классе методы вычисления и...

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

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

Создать производный класс – равносторонний треугольник
Создать производный класс – равносторонний треугольник, перегрузить в классе проверку, является ли...

1
Модератор
Эксперт С++
13317 / 10623 / 6346
Регистрация: 18.12.2011
Сообщений: 28,368
21.12.2018, 10:54 2
Лучший ответ Сообщение было отмечено P0liceman как решение

Решение

Цитата Сообщение от P0liceman Посмотреть сообщение
triangle ar_tr[N]; //массив объектов треугольников
C++
1
triangle* ar_tr=new triangle[N];
Аналогично для призмы
1
21.12.2018, 10:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.12.2018, 10:54
Помогаю со студенческими работами здесь

Создать класс TPrism - Правильная призма, создать потомки TPrism3 и TPrism4 - треугольная и четырехугольная призмы
Создать класс TPrism, представляющий правильную призму и содержащий методы для нахождения площади...

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

Создать производный класс "Равносторонний треугольник", перегрузить в классе проверку равносторонности
Создать производный класс –равносторонний треугольник, перегрузить в классе проверку, является ли...

Создать класс квадрат и производный класс – правильная пирамида с апофемой А
Помогите пожалуйста, в Delphi Создать класс квадрат, член класса – длина стороны. Предусмотреть в...

Правильная треугольная призма
Найти длину отрезка

Правильная треугольная призма, площадь сечения
дана правильная треугольная призма A B C A1 B1 C1 ,у которой сторона основания равна 8. Найдите...

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


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

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

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