Создать класс Angle для работы с углами на плоскости - C#

Узнай цену своей работы

Формулировка задачи:

Создать класс Angle для работы с углами на плоскости. Предусмотреть перевод из градусной меры в радианную, сложение и вычитание углов с учётом приведения к диапазону 0-360. На основе класса Angle создать класс Triangle для работы с прямоугольным треугольником. Предусмотреть нахождение его площади.

Решение задачи: «Создать класс Angle для работы с углами на плоскости»

textual
Листинг программы
class Angle
    {
        double VALUE;
        bool isGrad = true;
 
        public bool IsGrad
        {
            get { return isGrad; }
            set { isGrad = value; }
        }
 
        public double Gradus
        {
            get { return VALUE; }
            set
            {
                if (value > 360)
                    VALUE = value - 360;
                else VALUE = value;
            }
        }
 
        public double RadToGrad()
        {
            if (isGrad == true)
            {
                Console.WriteLine("Невозможно перевести в градусы");
                return 0;
            }
            else
            {
                isGrad = true;
                return VALUE * 180 / 3.14;
            }
            
        }
 
        public double GradToRad()
        {
            if (isGrad == true)
            {
                isGrad = false;
                return VALUE * 3.14 / 180;
            }
            else
            {
                Console.WriteLine("Невозможно перевести в радианны");
                return 0;
            }
        }
 
        public static double operator +(Angle obj1, Angle obj2)
        {
            double Result = 0;
            if (obj1.isGrad == true && obj2.isGrad == true)
            {
                if ((obj1.Gradus + obj2.Gradus) > 360)
                {
                    Result = Math.Abs(360 - (obj1.Gradus + obj2.Gradus));
                }
                else Result = obj1.Gradus + obj2.Gradus;
            }
            else
            {
                Console.WriteLine("Для сложения углов, для начала переведите их в градусы");
            }
 
            return Result;
        }
 
        public static double operator -(Angle obj1, Angle obj2)
        {
            double Result = 0;
            if (obj1.isGrad == true && obj2.isGrad == true)
            {
                if ((obj1.Gradus - obj2.Gradus) < 0)
                {
                    Result = 360 - Math.Abs((obj1.Gradus - obj2.Gradus));
                }
                else Result = obj1.Gradus - obj2.Gradus;
            }
            else
            {
                Console.WriteLine("Для вычитания углов, для начала переведите их в градусы");
            }
 
            return Result;
        }
    }

Оцени полезность:

11   голосов , оценка 4 из 5
Похожие ответы