Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
Antot N...
0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 14
#1

Программирование на С++ с использованием классов. Массивы объектов. Наследование - C++

25.01.2011, 14:03. Просмотров 2418. Ответов 12
Метки нет (Все метки)

Помогите с программированием,пожалуйста!!!!!!!!!!!!
Создать класс равносторонний треугольник, член класса - длина стороны.
Предусмотреть в классе методы вычисления и вывода сведений о фигуре –
периметр, площадь. Создать производный класс – правильная треугольная
призма с высотой H, добавить в класс метод определения объема фигуры,
перегрузить методы расчета площади и вывода сведений о фигуре. Написать
программу, демонстрирующую работу с классом: дано N треугольников и M
призм. Найти количество треугольников, у которых площадь меньше средней
площади треугольников, и призму с наибольшим объемом.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2011, 14:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программирование на С++ с использованием классов. Массивы объектов. Наследование (C++):

Программирование на С++ с использованием классов. Массивы объектов. Наследование - C++
Создать класс окружность, член класса - R. Предусмотреть в классе методы вычисления и вывода сведений о фигуре – площади, длины...

Наследование static атрибута(хранение количества объектов наследуемых классов) - C++
Есть абстрактный класс base, от него наследуются 3 класса child1 child2 child3. Создается множество объектов одного из этих трех классов, в...

Массивы объектов. Наследование - C++
Здравствуйте! Скоро экзамен, а я никак не могу решить эту задачу, может кто-то поможет? Вот условие: Создать класс окружность, член...

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

Разработка с использованием простейших классов и объектов - C++
.Розробиты метод-член класса для определения минимального и максимального элементов одномерного динамического массива и их порядковых ...

Разработка с использованием простейших классов и объектов - C++ - C++
Разработать функцию определения А3 для заданного элемента а и подпрограмму, которая использует эту функцию для преобразования каждого ...

12
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
25.01.2011, 14:27 #2
Категорически отказываюсь наследовать призму от треугольника.
2
M128K145
Эксперт С++
8300 / 3520 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
25.01.2011, 23:16 #3
silent_1991, а если призма будет только треугольной?
1
Ardatov
19 / 19 / 3
Регистрация: 13.12.2009
Сообщений: 43
26.01.2011, 00:40 #4
Хорошая задачка. Если не секрет - с какого курса и по какому предмету, можно в личку.
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
122
123
124
125
126
127
128
129
130
131
#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;
}
1
Antot N...
0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 14
26.01.2011, 03:27  [ТС] #5
Я учусь на 3ем курсе ДВГУ, прикладная инф (в экономике)....вот такие вот нам задачи дают решать.

Добавлено через 29 минут
что-то эта прога ничего не выводит...и результат очень непонятен......
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
26.01.2011, 09:22 #6
M128K145, и даже в этом случае! Призма не есть частный случай треугольника, призма есть частный случай трёхмерной фигуры, а треугольник - частный случай двухмерной фигуры, а они, в свою очередь, частные случаи абстрактного понятия "фигура". О как!
1
Antot N...
0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 14
26.01.2011, 11:09  [ТС] #7
.......но сделайте так чтобы было всё п русски написано в консоле.....
0
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
26.01.2011, 13:02 #8
silent_1991, ага, и не первый раз уже. В прошлый раз предлагали наследовать цилиндр от окружности.

Кстати, использовать формулу Герона для вычисления площади равностороннего треугольника — бессмысленно. Всё гораздо проще.
1
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
26.01.2011, 13:05 #9
volovzi, тогда у меня настроение было получше, и я всё-таки унаследовал, хотя упомянул про правильную иерархию в точности то же самое, что и здесь)))
На счёт Герона - естественно, для равностороннего треугольника лучше "родную" формулу использовать)))
1
Antot N...
0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 14
26.01.2011, 13:24  [ТС] #10
это конечно всё очень весело, но, господа, быть может вы ответите на мой вопрос???
0
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
26.01.2011, 13:38 #11
Antot N..., а ты сам что-нибудь собираешься делать?
1
Ardatov
19 / 19 / 3
Регистрация: 13.12.2009
Сообщений: 43
26.01.2011, 14:34 #12
Antot N..., что именно вам не понятно?
1
Миниатюры
Программирование на С++ с использованием классов. Массивы объектов. Наследование  
Antot N...
0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 14
26.01.2011, 14:39  [ТС] #13
не совсем понял твой вопрос....просто, друзья, я вообще мало что понимаю в этом с++....просто прошу вашей помощи разобраться с этим всем....у меня экзамен через 2 дня, а у меня нет ничего, чего бы я мог показать преподу....так что вот проу вашей помощи...

Добавлено через 1 минуту
Ardatov, спасибо за пояснение))
0
26.01.2011, 14:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2011, 14:39
Привет! Вот еще темы с ответами:

Множественное наследование с использованием абстрактных базовых классов, файлового ввода-вывода с применением потоков С++, функций обработки исключи - C++
Создать программу с абстрактным базовым классом и множественным наследованием, реализовать в нем: • конструктор, • деструктор, ...

Заменить наследование классов на наследование интерфейсов - C++
#include &lt;iostream&gt; #include &lt;assert.h&gt; using namespace std; int people_on_base = 100; int vehicles_on_base = 100; double...

Наследование классов. Копирование производных классов - C++
Здравствуйте всем, у меня такой вопрос: написал код #include &quot;stdafx.h&quot; class A //Создаем класс А { int mA; ...

Разработать иерархию классов, демонстрирующее работу с коллекцией объектов разных классов - C++
Задание: Разработать в соответствии с индивидуальным заданием иерархию классов и приложение, демонстрирующее работу с коллекцией объектов...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.