Добавил:
13246980
Оставь надежду всяк сюда поступивший
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Синников С++ / 2 курс / С++ / 5,2 / main
.cpp/*Написать программу,в которой описана иерархия классов: геометрические фигуры(ромб,праллелепипед,эллипс).
Реализовать методы вычисления площади и периметра фигуры.
Продемонстрировать работу всех методов классов, предоставив пользователю выбор типа фигуры для демонстрации.*/
#include <iostream>
#include <locale.h>
#include <math.h>
#include <Romb.h>
#include <Parallelepiped.h>
#include <Ellipse.h>
#include <Figure.h>
using namespace std;
int main()
{
setlocale(LC_ALL,"RUS");
Figure *f;
bool exit = false; //переменная для выхода из программы
while(!exit)
{
int input;
cout<<"---------------------------------------------------"<<endl;
cout<<"Выберете одно из действий:"<<endl;
cout<<"0. Завершить программу"<<endl;
cout<<"1. Создать Ромб"<<endl;
cout<<"2. Создать Прааллелепипед"<<endl;
cout<<"3. Создать Эллипс"<<endl;
cout<<"---------------------------------------------------"<<endl;
cin>>input;
switch(input)
{
case 0:
{
exit=true;
break;
}
case 1:
{
f = new Romb();
int input2=1;
while(input2!=0)
{
cout<<"---------------------------------------------------"<<endl;
cout<<"Выберете одно из действий:"<<endl;
cout<<"0. Вернуться назад"<<endl;
cout<<"1. Задать диагонали ромба"<<endl;
cout<<"2. Вывести информацию о ромбе"<<endl;
cout<<"3. Узнать периметр ромба"<<endl;
cout<<"4. Узнать площадь ромба"<<endl;
cout<<"---------------------------------------------------"<<endl;
cin>>input2;
switch(input2)
{
case 1:
{
cout<<"---------------------------------------------------"<<endl;
f->read();
break;
}
case 2:
{
cout<<"---------------------------------------------------"<<endl;
f->print();
cout<<endl;
break;
}
case 3:
{
cout<<"---------------------------------------------------"<<endl;
cout<<"Периметр ромба = "<<f->getPerimeter()<<endl;
break;
}
case 4:
{
cout<<"---------------------------------------------------"<<endl;
cout<<"Площадь ромба = "<<f->getArea()<<endl;
break;
}
}
}
delete f;
break;
}
case 2:
{
f = new Parallelepiped();
int input2=1;
while(input2!=0)
{
cout<<"---------------------------------------------------"<<endl;
cout<<"Выберете одно из действий:"<<endl;
cout<<"0. Вернуться назад"<<endl;
cout<<"1. Задать стороны Прааллелепипедa"<<endl;
cout<<"2. Вывести информацию о Прааллелепипедe"<<endl;
cout<<"3. Узнать площадь поверхности Прааллелепипедa"<<endl;
cout<<"4. Узнать объем Прааллелепипедa"<<endl;
cout<<"---------------------------------------------------"<<endl;
cin>>input2;
switch(input2)
{
case 1:
{
cout<<"---------------------------------------------------"<<endl;
f->read();
break;
}
case 2:
{
cout<<"---------------------------------------------------"<<endl;
f->print();
cout<<endl;
break;
}
case 3:
{
cout<<"---------------------------------------------------"<<endl;
cout<<"Площадь поверхности параллелепипеда = "<<f->getPerimeter()<<endl;
break;
}
case 4:
{
cout<<"---------------------------------------------------"<<endl;
cout<<"объем параллелепипеда = "<<f->getArea()<<endl;
break;
}
}
}
break;
}
case 3:
{
f = new Ellipse();
int input2=1;
while(input2!=0)
{
cout<<"---------------------------------------------------"<<endl;
cout<<"Выберете одно из действий:"<<endl;
cout<<"0. Вернуться назад"<<endl;
cout<<"1. Задать полуоси Эллипса"<<endl;
cout<<"2. Вывести информацию о Эллипсе"<<endl;
cout<<"3. Узнать периметр Эллипса"<<endl;
cout<<"4. Узнать площадь Эллипса"<<endl;
cout<<"---------------------------------------------------"<<endl;
cin>>input2;
switch(input2)
{
case 1:
{
cout<<"---------------------------------------------------"<<endl;
f->read();
break;
}
case 2:
{
cout<<"---------------------------------------------------"<<endl;
f->print();
cout<<endl;
break;
}
case 3:
{
cout<<"---------------------------------------------------"<<endl;
cout<<"Периметр эллипса = "<<f->getPerimeter()<<endl;
break;
}
case 4:
{
cout<<"---------------------------------------------------"<<endl;
cout<<"Площадь эллипса = "<<f->getArea()<<endl;
break;
}
}
}
break;
}
}
}
delete f;
return 0;
}