using System;
namespace Lab13_Variant18_Cube
{
// Класс для представления объекта «Куб»
class Cube
{
// Закрытое поле данных — длина ребра куба
private double edge;
// Конструктор по умолчанию
public Cube()
{
edge = 0;
}
// Конструктор с параметром
public Cube(double edge)
{
this.edge = edge;
}
// Метод для ввода поля данных (ребра)
public void InputEdge()
{
Console.Write("Введите длину ребра куба: ");
double input;
while (!double.TryParse(Console.ReadLine(), out input) || input <= 0)
{
Console.Write("Ошибка! Введите положительное число: ");
}
edge = input;
}
// Метод для вывода поля данных (ребра)
public void OutputEdge()
{
Console.WriteLine($"Длина ребра куба: {edge}");
}
// Метод для установки значения ребра
public void SetEdge(double edge)
{
if (edge > 0)
this.edge = edge;
else
Console.WriteLine("Ошибка: ребро куба должно быть положительным.");
}
// Метод для получения значения ребра
public double GetEdge()
{
return edge;
}
// Метод вычисления объёма куба
public double CalculateVolume()
{
return Math.Pow(edge, 3);
}
// Метод вычисления площади поверхности куба
public double CalculateSurfaceArea()
{
return 6 * Math.Pow(edge, 2);
}
// Метод вычисления длины диагонали куба
public double CalculateDiagonal()
{
return edge * Math.Sqrt(3);
}
// Метод вывода полной информации об объекте в консоль
public void PrintInfo()
{
Console.WriteLine("\n=== Информация о кубе ===");
Console.WriteLine($"Длина ребра: {edge}");
Console.WriteLine($"Объём: {CalculateVolume():F2}");
Console.WriteLine($"Площадь поверхности: {CalculateSurfaceArea():F2}");
Console.WriteLine($"Длина диагонали: {CalculateDiagonal():F2}");
Console.WriteLine("==========================\n");
}
}
// Демонстрация использования класса Cube
class Program
{
static void Main(string[] args)
{
Console.WriteLine("=== Работа с классом Куб ===\n");
// Создание объекта с помощью конструктора по умолчанию
Cube cube1 = new Cube();
cube1.InputEdge();
cube1.OutputEdge();
Console.WriteLine($"Объём: {cube1.CalculateVolume():F2}");
Console.WriteLine($"Площадь поверхности: {cube1.CalculateSurfaceArea():F2}");
Console.WriteLine($"Диагональ: {cube1.CalculateDiagonal():F2}");
cube1.PrintInfo();
// Создание объекта с помощью конструктора с параметром
Cube cube2 = new Cube(5);
Console.WriteLine("Куб со стороной 5:");
cube2.PrintInfo();
// Использование методов Set и Get
Cube cube3 = new Cube();
cube3.SetEdge(3);
Console.WriteLine($"Ребро куба 3: {cube3.GetEdge()}");
Console.WriteLine($"Объём куба 3: {cube3.CalculateVolume():F2}");
Console.ReadLine();
}
}
}