C++

Класс Призма

Описать класс призма: объём, высота, количество граней, длинна сторон, площадь основания. Реализовать get- и set-методы для работы с элемент-данными класса. Организовать выбор (меню) входные и выходные данные. Защитить элемент-данные призмы от внешних кодов.
#include <iostream>
 
using namespace std;
 
class Prism
{
   private:
    double high, // высота призмы
           vol, // объём призмы V = high * Sосн
           length_side, // длинна сторон(граней) призмы
           space_base; // площадь основания
    int number_grain; // число боковых граней
public:
    Prism(double h = 1, double lside = 1, int num = 3, double sbase = 10); // конструктор по умолчанию
    void Sethigh(const double & ); // установить высоту призмы
    void setLengthSide(const double & ); // установить длинну граней
    void setGrain(const int & );  // установить количество боковых граней призмы
    void setSpaceBase(const double &);  // задать площадь основания призмы
 
    double getHigh() const;
    int getGrain() const; // вернуть количество боковых граней призмы
    double getSpaceBase() const; // вернуть значение площади основания призмы
    double getLengthSide() const; // вернуть значение длинны сторон призмы
    double getVol(); // вернуть V призмы
};
 
int main()
{
    Prism obj1; // создаём объект призма, активируется конструктор по умолчанию
 
    int key; // выбор в меню
    bool exit = false; //переменная-флаг цикла while
 
    while (!exit) // начало while
    {
        cout << "Сделайте выбор:\n0 - выход;  1 - показать высоту призмы;\n2 - показать колличество боковых граней;"
             << "  3 - показать площадь основания;\n4 - показать длинну сторон призмы;  5 - показать объём призмы;\n"
             << "6 - установить высоту призмы;  7 - установить длинну сторон призмы; \n8 - установить количество граней;  9 - задать площадь основания\n>> ";
        cin >> key;
 
        double temp; // временная переменная для хранения аргументов
 
        switch (key) // выбор действия
        {
        case 0: {exit = true; break;}
        case 1: {cout << "Высота призмы = " << obj1.getHigh() << endl << endl; break;}
        case 2: {cout << "Количество боковых граней = " << obj1.getGrain() << endl << endl; break;}
        case 3: {cout << "Площадь основания = " << obj1.getSpaceBase() << endl << endl; break;}
        case 4: {cout << "Длинна сторон призмы = " << obj1.getLengthSide() << endl << endl; break;}
        case 5: {cout << "Объём призмы = " << obj1.getVol() << endl << endl; break;}
        case 6: {cout << ":= "; cin >> temp; obj1.Sethigh(temp); break;}
        case 7: {cout << ":= "; cin >> temp; obj1.setLengthSide(temp); break; }
        case 8: {cout << ":= "; cin >> temp; obj1.setGrain(temp); break;}
        case 9: {cout << ":= "; cin >> temp; obj1.setSpaceBase(temp);break;}
        default: {cout << "Не верный выбор\n";}
        } // конец выбора
 
    } // конец while
 
    return 0;
}
 
Prism::Prism(double h, double lside, int num, double sbase) // конструктор по умолчанию
    : high(h), length_side(lside), number_grain(num), space_base(sbase), vol(h * sbase) //  инициализаторы элемент-данных класса
{
    // пустое тело конструктора
}
 
/// set-методы класса
void Prism::Sethigh(const double & h) // установить высоту призмы
{
    high = (h > 0 ? h : 1); // если h не нулевое положительное число, то инициализировать высоту значением h, иначе единицей
}
 
void Prism::setLengthSide(const double & d) // установить длинну граней
{
    length_side = (d > 0 ? d : 1); // если h не нулевое положительное число, то инициализировать высоту значением h, иначе единицей
}
 
void Prism::setGrain(const int & number)  // установить количество боковых граней призмы
{
 number_grain = (number > 0 ? number : 3); // минимальное количество граней - 3
}
 
void Prism::setSpaceBase(const double &number)  // задать площадь основания призмы
{
 space_base = (number > 0 ? number : 10); // пусть по умолчанию площадь равна 10
}
 
/// get-методы класса
double Prism::getHigh() const // вернуть значение высоты призмы
{
 return high;
}
 
int Prism::getGrain() const // вернуть количество боковых граней призмы
{
 return number_grain;
}
 
double Prism::getSpaceBase() const // вернуть значение площади основания призмы
{
 return space_base;
}
 
double Prism::getLengthSide() const // вернуть значение длинны сторон призмы
{
 return length_side;
}
 
double Prism::getVol()  // вернуть V призмы
{
 return vol = space_base * high;
}


Программа написана в ОС Linux. Для корректного отображения русского текста в Windows, прочитайте статью Кириллица в консоли.
Теги:
Класс, Призма
Добавлено: 07 Апреля 2018 21:57:09 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...