Загрузка данных


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();
        }
    }
}