Добавил:
Оставь надежду всяк сюда поступивший Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
23
Добавлен:
13.01.2019
Размер:
7.41 Кб
Скачать
/*Написать программу,в которой описана иерархия классов: геометрические фигуры(ромб,праллелепипед,эллипс).
Реализовать методы вычисления площади и периметра фигуры.
Продемонстрировать работу всех методов классов, предоставив пользователю выбор типа фигуры для демонстрации.*/
#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;
}
Соседние файлы в папке 5,2
  • #
    13.01.20191.16 Кб23labClassMethodichka_var9.cbp
  • #
    13.01.2019928 б23labClassMethodichka_var9.depend
  • #
    13.01.20197.41 Кб23main.cpp