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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Викулишна
0 / 0 / 0
Регистрация: 12.12.2010
Сообщений: 28
#1

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

06.01.2011, 10:38. Просмотров 1373. Ответов 2
Метки нет (Все метки)

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

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
06.01.2011, 12:44 #2
Преподавателей, которые заставляют наследовать цилиндр от окружности, нужно посылать куда подальше — обратно в школу.
0
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
06.01.2011, 13:02 #3
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
#include <iostream>
 
//-----------------------------------------------------------------------------
 
class Circle
{
public:
    Circle();
    Circle(double);
 
    void set_r(double);
    double get_r() const;
 
    double area() const;
    double circuit() const;
 
    void print_area() const;
    void print_circuit() const;
 
private:
    double _r;
    
    static const double Pi;
};
 
const double Circle::Pi = 3.14159265358979323;
 
Circle::Circle():
_r(1)
{
}
 
Circle::Circle(double r):
_r(r)
{
}
 
void Circle::set_r(double r)
{
    _r = r;
}
 
double Circle::get_r() const
{
    return _r;
}
 
double Circle::area() const
{
    return Pi * _r * _r;
}
 
double Circle::circuit() const
{
    return 2 * Pi * _r;
}
 
void Circle::print_area() const
{
    std::cout << area();
}
 
void Circle::print_circuit() const
{
    std::cout << circuit();
}
 
//-----------------------------------------------------------------------------
 
class Cylinder: public Circle
{
public:
    Cylinder();
    Cylinder(double, double);
 
    void set_h(double);
    double get_h() const;
 
    double area() const;
    double volume() const;
 
    void print_area() const;
    void print_volume() const;
 
private:
    double _h;
};
 
Cylinder::Cylinder():
Circle(),
_h(1)
{
}
 
Cylinder::Cylinder(double r, double h):
Circle(r),
_h(h)
{
}
 
void Cylinder::set_h(double h)
{
    _h = h;
}
 
double Cylinder::get_h() const
{
    return _h;
}
 
double Cylinder::area() const
{
    return Circle::circuit() * (get_r() + _h);
}
 
double Cylinder::volume() const
{
    return Circle::area() * _h;
}
 
void Cylinder::print_area() const
{
    std::cout << area();
}
 
void Cylinder::print_volume() const
{
    std::cout << volume();
}
 
//-----------------------------------------------------------------------------
 
const int N = 3;
const int M = 5;
 
int main()
{
    Circle circle_arr[N];
    Cylinder cylinder_arr[M];
 
    double max_circle_area;
    double avg_cylinder_volume = 0;
 
    std::cout << "Circles:" << std::endl;
 
    for (int i = 0; i < N; ++i)
    {
        double r;
 
        std::cout << "Enter r [" << i << "]: ";
        std::cin >> r;
 
        circle_arr[i].set_r(r);
 
        if (i == 0)
            max_circle_area = circle_arr[0].area();
        else
        {
            double area = circle_arr[i].area();
 
            if (max_circle_area < area)
                max_circle_area = area;
        }
    }
 
    std::cout << std::endl;
 
    std::cout << "Cylinders:" << std::endl;
 
    for (int i = 0; i < M; ++i)
    {
        double r;
        double h;
 
        std::cout << "Enter r [" << i << "]: ";
        std::cin >> r;
        std::cout << "Enter h [" << i << "]: ";
        std::cin >> h;
 
        cylinder_arr[i].set_r(r);
        cylinder_arr[i].set_h(h);
 
        avg_cylinder_volume += cylinder_arr[i].volume();
    }
 
    avg_cylinder_volume /= M;
 
    std::cout << std::endl;
 
    std::cout << "Max circle area: " << max_circle_area << std::endl;
    std::cout << "Avg cylinder volume: " << avg_cylinder_volume << std::endl;
 
    return 0;
}
Добавлено через 4 минуты
volovzi, да это просто непонимание сути наследование (как бы абсурдно это не звучало - преподаватель не понимает то, что преподаёт студентам о_О). Правильнее было бы сделать абстрактный класс Shape, а от него наследовать и круг, и цилиндр. Короче позднее связывание рулит)))
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2011, 13:02
Привет! Вот еще темы с ответами:

Множественное наследование с использованием абстрактных базовых классов, файлового ввода-вывода с применением потоков С++, функций обработки исключи - 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++
Задание: Разработать в соответствии с индивидуальным заданием иерархию классов и приложение, демонстрирующее работу с коллекцией объектов...


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

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

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