Класс Призма
Описать класс призма: объём, высота, количество граней, длинна сторон, площадь основания. Реализовать 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, прочитайте статью Кириллица в консоли.
Комментарии:
Нету комментариев для вывода...