0 / 0 / 1
Регистрация: 06.11.2016
Сообщений: 12
|
|
1
|
Как передать вводимые значения с родит. класса в наследуемый
20.11.2016, 18:06. Показов 546. Ответов 0
Вот собственно код, нужно что бы с класса треугольник передавало значения абс.
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
| #include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
class Triangle {
public:
float a, b, c;
float SetSide() {
cout << "Введите первую сторону: " << endl;
cin >> a;
cout << "Введите вторую сторону: " << endl;
cin >> b;
cout << "Введите третью сторону: " << endl;
cin >> c;
cout << "Стороны введены!" << endl;
return 0;
}
};
class Equilateral : public Triangle {
public:
float per, ar, h, a, b, c;
float Perimeter() {
if (a = b = c) {
per = a*a*a;
cout << "Периметр равностороннего треугольника = " << per << endl;
}
else {
cout << "Треугольник не равносторонний! Введите стороны правильно!" << endl;
}
return 0;
}
float Area() {
if (a == b == c) {
h = sqrt(a*a - a*a / 4);
ar = 0.5*(a*h);
cout << "Площадь равностороннего треугольника = " << ar << endl;
}
else {
cout << "Треугольник не равносторонний! Введите стороны правильно!" << endl;
}
return 0;
}
}; // Класс для равностороннего треугольника
class Rectangular : public Triangle {
public:
float h, per, ar, A, B, C;
float Height(){
if(a*a + b*b == c*c){
A = a + b;
B = b + c;
C = c + a;
h = A*B / C == A*B / sqrt(A*A+B*B);
cout << "Высота к гипотенузе = " << h << endl;
}
else{
cout << "Треугольник не прямоугольный! Введите стороны правильно!" << endl;
}
return 0;
}
float RecPerimetr() {
if (a*a + b*b == c*c) {
per = a + b + c;
cout << "Периметр прямоугольного треугольника = " << per << endl;
}
else {
cout << "Треугольник не прямоугольный! Введите стороны правильно!" << endl;
}
return 0;
}
float RecArea() {
if (a*a + b*b == c*c) {
ar = (1 / 2)*a*b;
cout << "Площадь прямоугольного треугольника = " << ar << endl;
}
else {
cout << "Треугольник не прямоугольный! Введите стороны правильно!" << endl;
}
return 0;
}
}; // Класс для прямоугольного треугольника
int main() {
setlocale(0, "");
Triangle t;
Equilateral e;
Rectangular r;
int key;
do {
cout << "1. Вычисление периметра равностороннего треугольника" << endl;
cout << "2. Вычисление площади равностороннего треугольника" << endl;
cout << "3. Вычисление периметра прямоугольного треугольника" << endl;
cout << "4. Вычисление площади прямоугольного треугольника" << endl;
cout << "5. Вычисление высоты к гипотен прямоугольного треугольника" << endl;
cout << "6. Ввести абс" << endl;
cout << "7. Выход из программы" << endl;
cin >> key;
switch (key)
{
case 1: system("cls"); e.Perimeter();break;
case 2: system("cls"); e.Area();break;
case 3: system("cls"); r.RecPerimetr();break;
case 4: system("cls"); r.RecArea();break;
case 5: system("cls"); r.Height();break;
case 6: system("cls"); t.SetSide();break;
case 7: system("cls"); exit(0);break;
default: system("cls"); cout << "Ошибка!" << endl;
}
} while (key != 5);
return 0;
}; |
|
0
|