Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
23 / 21 / 2
Регистрация: 04.09.2019
Сообщений: 425
1

Добавить класс Series(динамический массив), чтобы он записывал данные о фигуре

24.02.2020, 13:58. Показов 378. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно добавить класс Series(динамический массив), чтобы он записывал данные о фигуре и выводил на экран. Мне уже помог один хороший человек с данным кодом, но понять до конца не могу. Код весь ниже:
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
//ConsoleApplication6
#include "pch.h"
#include <iostream>
#include "Parallelepiped.h"
#include "Body.h"
#include "Ball.h"
#include "Cone.h"
#include <vector>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");   
    int e;
    do {
        system("pause");
        system("cls");
        cout << "[Protected By Airat]=> Введите номер выбора: " << endl;
        cout << "1. Найти объем и площадь прямоугольного параллелепипеда.  " << endl;
        cout << "2. Найти объем и площадь шара." << endl;
        cout << "3. Найти объем и площадь конуса." << endl;
        cout << "4. Выход из программы." << endl;
        cin >> e;
        switch (e)
        {
        case 1:
        {
            std::vector<Body *> bodies;
            bodies.emplace_back(new Parallelepiped(1, 2, 3));
 
            for (auto* body : bodies)
                body->Print(std::cout) << ", S = " << body->SurfaceArea() << ", V = " << body->Volume() << std::endl;
 
            for (auto* body : bodies)
                delete body;
        }; break;
        case 2:
        {
            std::vector<Body *> bodies;
            bodies.emplace_back(new Ball(1, 2, 3));     
 
            for (auto* body : bodies)
                body->Print(std::cout) << ", S = " << body->SurfaceArea() << ", V = " << body->Volume() << std::endl;
 
            for (auto* body : bodies)
                delete body;
        }; break;
        case 3: 
        {
            std::vector<Body *> bodies;
            bodies.emplace_back(new Cone(1, 2, 3));         
 
            for (auto* body : bodies)
                body->Print(std::cout) << ", S = " << body->SurfaceArea() << ", V = " << body->Volume() << std::endl;
 
            for (auto* body : bodies)
                delete body;
        }break;
        case 4: {
            return 0;
 
        }; break;
        }
    }
        while (e != 7);
    
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//Parallelepiped.h
#pragma once
#include "Body.h"
class Parallelepiped
    : public Body
{
public:
    Parallelepiped(double x, double y, double z);
    virtual double SurfaceArea() const override;
    virtual double Volume() const override;
    virtual std::ostream &Print(std::ostream &out) const;
 
public:
    double m_x;
    double m_y;
    double m_z;
};
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
//Parallelepiped.cpp
#include "pch.h"
#include "Parallelepiped.h"
#include "Body.h"
#include <iostream>
 Parallelepiped::Parallelepiped(double x, double y, double z)
    : m_x(x)
    , m_y(y)
    , m_z(z)
{
}
 
double Parallelepiped::SurfaceArea() const
{
    return 2*(m_x + m_y + m_z);
}
double Parallelepiped::Volume() const
{
    return m_x * m_y * m_z;
}
 
std::ostream& Parallelepiped::Print(std::ostream& out) const
{
    return out << "Parallelepiped: x=" << m_x << ", y=" << m_y << ", z=" << m_z;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//Cone.h
#pragma once
#include "Body.h"
class Cone
    : public Body
{
public:
    Cone(double x, double y, double z);
    virtual double SurfaceArea() const override;
    virtual double Volume() const override;
    virtual std::ostream &Print(std::ostream &out) const;
 
public:
    double r;
    double l;
    double h;
};
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
//Cone.cpp
#include "pch.h"
#include "Body.h"
#include <iostream>
#include "Cone.h"
Cone::Cone(double x, double y, double z)
    : r(x) ,
      l(z) ,
      h(z)
 
{
}
 
double Cone::SurfaceArea() const
{
    return 3, 14 * r*(r+l);
}
double Cone::Volume() const
{
    return 0,3*3,14*r*r*h;
}
 
std::ostream& Cone::Print(std::ostream& out) const
{
    return out << "Cone: r=" << r << ", l=" << l << ", h=" << h;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
//Body.h
#pragma once
#include <iostream>
 
class Body
{
public:
    virtual ~Body() = default;
    virtual double SurfaceArea() const = 0;
    virtual double Volume() const = 0;
    virtual std::ostream& Print(std::ostream& out) const = 0;
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//Ball.h
#include "Body.h"
#pragma once
class Ball
    : public Body
{
public:
    Ball(double x, double y, double z);
    virtual double SurfaceArea() const override;
    virtual double Volume() const override;
    virtual std::ostream &Print(std::ostream &out) const;
 
public:
    double r;
};
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
//Ball.cpp
#include "pch.h"
#include "Body.h"
#include <iostream>
#include "Ball.h"
Ball::Ball(double x, double y, double z)
    : r(x)
    
{
}
 
double Ball::SurfaceArea() const
{
    return 3,14*r*r;
}
double Ball::Volume() const
{
    return 3,14*1,3*r*r;
}
 
std::ostream& Ball::Print(std::ostream& out) const
{
    return out << "Ball: r=" << r;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.02.2020, 13:58
Ответы с готовыми решениями:

Добавить в динамический массив числа таким образом, чтобы сумма чисел стала равной нулю
Вводится последовательность вещественных чисел, необходимо добавить однозначных или двузначных...

Создать динамический класс Book, содержащей динамический массив Authors
всем привет. может кто-то набросать код для такой вот задачи: Создать динамический класс Book,...

Создать динамический класс Book, содержащий динамический массив Authors
Мне нужно написать программу,а я не знаю как ее написать. Знаю, тут люди за кого-то не делают,...

Как сделать так что бы когда я говорю Fraps записывал игру а когда молчу не записывал?
Как сделать так что бы когда я говорю Fraps(или др программа) записывала игру а когда молчу не...

0
24.02.2020, 13:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.02.2020, 13:58
Помогаю со студенческими работами здесь

Добавить класс клиент в котором использовать клиентский статический и динамический метод
Ребята , вообщем сдавал лабораторную работу, и на пункте 4 чёт я подзастрял.Объясните пожалуйста...

Как добавить в массив студентов динамический массив оценок?
Как?

Дан динамический массив.Нужно удалить из него все простые числа и добавить оставшееся в новый массив
Доброго времени суток,не могу понять, где моя ошибка, помогите пожалуйста. Полный текст...

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

Добавить строку в динамический массив
Помогите пожалуйста. Как добавить строку в динамический массив?

Динамический массив, добавить элемент
У меня проблема вот в чем Мне для VBO в OpenGL для буфера нужен одномерный массив, и в него...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru