C/C++

Visual studio, код программы

19 вариант
Помогите с зачётом пожалуйста
#include <conio.h>
#include <iostream>
using namespace std;
struct Area {
inline static const auto pi = 3.1415926535897932;
static double triangle(double a, double b, double c) {
auto p = (a + b + c) / 2;
return sqrt(p * (p - a) * (p - b) * (p - c));
}
static double rectangle(double a, double b) {
return a * b;
}
static double circle(double r) {
return pi * r * r;
}
};
struct Perimeter {
inline static const auto pi = 3.1415926535897932;
static double triangle(double a, double b, double c) {
return a + b + c;
}
static double rectangle(double a, double b) {
return (a + b) * 2;
}
static double circle(double r) {
return pi * (r + r);
}
};
double real(const char* msg) {
double value;
do {
cout << msg;
cin >> value;
} while (value <= 0);
return value;
}
int main() {
system("chcp 1251 > nul");
double area, perimeter;
while (true) {
cout << "п к т >>> ";
char choice = _getch();
puts("");
switch (choice) {
case 'п': case 'П': case 'g':case 'G': {
auto a = real("Первая сторона прямоугольника: ");
auto b = real("Вторая сторона прямоугольника: ");
area = Area::rectangle(a, b);
perimeter = Perimeter::rectangle(a, b);
break;
}
case 'к': case 'К': case 'r':case 'R': {
auto radius = real("Радиус круга: ");
area = Area::circle(radius);
perimeter = Perimeter::circle(radius);
break;
}
case 'т': case 'Т': case 'n':case 'N': {
double a, b, c, p;
do {
a = real("Первая сторона треугольника: ");
b = real("Вторая сторона треугольника: ");
c = real("Третья сторона треугольника: ");
p = (a + b + c) / 2;
} while ((p - a) * (p - b) * (p - c) <= 0);
area = Area::triangle(a, b, c);
perimeter = Perimeter::triangle(a, b, c);
break;
}
default:
puts("Ошибка при выборе пункта меню!");
continue;
}
cout
<< "Площадь: " << area << '\n'
<< "Периметр: " << perimeter << '\n';
}
system("pause > nul");
}
BB
Birgan Baidauletov
85 056
Лучший ответ
Так а шо сложного. В мэине пишешь switch. И для каждого кейса прописываешь формулу. Далее вводишь данные и выбираешь, что ето, круг или что-то там. А после вычисления std::cout<<P<<....
Олег Коробов Способов реализации с десяток