Операторы для класса Triangle - C#

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

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

В класс Triangle добавить: a. Индексатор, позволяющий по индексу 0 обращаться к полю a, по индексу 1 – к полю b, по индексу 2 – к полю c, при других значениях индекса выдается сообщение об ошибке. b. Перегрузку:  операции ++ (--): одновременно увеличивает (уменьшает) значение полей a, b и c на 1;  констант true и false: обращение к экземпляру класса дает значение true, если треугольник с заданными длинами сторон существует, иначе false;  операции *: одновременно домножает поля a, b и c на скаляр;  преобразования типа Triangle в string (и наоборот)

Решение задачи: «Операторы для класса Triangle»

textual
Листинг программы
using System;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
 
namespace ConsoleApplication1
{
classTriangle
    {
int a, b, c;
publicint A
        {
get
            {
return a;
            }
set
            {
                a = value;
            }
        }
publicint B
        {
get
            {
return b;
            }
set
            {
                b = value;
            }
        }
publicint C
        {
get
            {
return c;
            }
set
            {
                c = value;
            }
        }
publicboolisTriangle
        {
get
            {
if (a + b > c && a + c > b && b + c > a)
                {
returntrue;
                }
returnfalse;
            }
 
        }
public Triangle(int a_, int b_, int c_)
        {
isCorrect(a_, b_, c_);
            A = a_;
            B = b_;
            C = c_;
        }
publicvoidPrintSides()
        {
Console.WriteLine("a = {0}, b = {1}, c = {2}", a, b, c);
        }
publicintPerimetr()
        {
return a + b + c;
        }
publicdouble Square()
        {
returnMath.Sqrt(halfper(this) * (halfper(this) - a) * (halfper(this) - b)
* (halfper(this) - c));
        }
staticdoublehalfper(Triangle Ob)
        {
returnOb.Perimetr() / 2.0;
        }
staticvoidisCorrect(int a, int b, int c)
        {
if (a < 0 || b < 0 || c < 0)
thrownewException("Sides of triangle can` t be negative");
        }
publicstaticTriangleoperator ++(Triangle Ob)
        {
returnnewTriangle(++Ob.a, ++Ob.b, ++Ob.c);
        }
publicstaticTriangleoperator --(Triangle Ob)
        {
returnnewTriangle(--Ob.a, --Ob.b, --Ob.c);
        }
publicstaticTriangleoperator *(Triangle Ob, intmult)
        {
returnnewTriangle(Ob.a * mult, Ob.b * mult, Ob.c * mult);
        }
publicoverridestringToString()
        {
return"Стороны: " + "a = " + A + " b = " + B + " c = " + C;
        }
publicintthis[intidx]
        {
get
            {
if (idx == 1)
return a;
elseif (idx == 2)
return b;
elseif (idx == 3)
return c;
else
thrownewException("idx can be only 1, 2 and 3");
            }
set
            {
if (idx == 1)
                    a = value;
elseif (idx == 2)
                    b = value;
elseif (idx == 3)
                    c = value;
else
thrownewException("idx can be only 1, 2 and 3");
            }
        }
publicstaticbooloperatortrue(Triangle t)
{
returnt.isTriangle;
        }
publicstaticbooloperatorfalse(Triangle t)
        {
returnt.isTriangle;
        }
    };
 
classProgram
    {
staticvoid Main(string[] args)
        {
try
            {
Triangle Ob = newTriangle(3, 3, 3);
if (Ob)
Ob.PrintSides();
else
thrownewException("There is no triangle with such sides");
Console.WriteLine("Perimetr={0}", Ob.Perimetr());
Console.WriteLine("Sqaure={0}", Ob.Square());
                Ob++;
Ob.PrintSides();
                --Ob;
Ob.PrintSides();
                Ob *= 5;
Ob.PrintSides();
Console.WriteLine(Ob);
Console.WriteLine(Ob[1]);
Ob[2] = 30;
Console.WriteLine(Ob);
            }
catch (Exception e)
            {
Console.WriteLine(e.Message);
            }
finally
            {
Console.ReadKey();
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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