23 / 21 / 2
Регистрация: 04.09.2019
Сообщений: 425
|
|
1
|
Добавить класс Series(динамический массив), чтобы он записывал данные о фигуре
24.02.2020, 13:58. Показов 378. Ответов 0
Нужно добавить класс 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
|