Операторы для класса 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
Листинг программы
  1. using System;
  2. usingSystem.Collections.Generic;
  3. usingSystem.Linq;
  4. usingSystem.Text;
  5.  
  6. namespace ConsoleApplication1
  7. {
  8. classTriangle
  9.     {
  10. int a, b, c;
  11. publicint A
  12.         {
  13. get
  14.             {
  15. return a;
  16.             }
  17. set
  18.             {
  19.                 a = value;
  20.             }
  21.         }
  22. publicint B
  23.         {
  24. get
  25.             {
  26. return b;
  27.             }
  28. set
  29.             {
  30.                 b = value;
  31.             }
  32.         }
  33. publicint C
  34.         {
  35. get
  36.             {
  37. return c;
  38.             }
  39. set
  40.             {
  41.                 c = value;
  42.             }
  43.         }
  44. publicboolisTriangle
  45.         {
  46. get
  47.             {
  48. if (a + b > c && a + c > b && b + c > a)
  49.                 {
  50. returntrue;
  51.                 }
  52. returnfalse;
  53.             }
  54.  
  55.         }
  56. public Triangle(int a_, int b_, int c_)
  57.         {
  58. isCorrect(a_, b_, c_);
  59.             A = a_;
  60.             B = b_;
  61.             C = c_;
  62.         }
  63. publicvoidPrintSides()
  64.         {
  65. Console.WriteLine("a = {0}, b = {1}, c = {2}", a, b, c);
  66.         }
  67. publicintPerimetr()
  68.         {
  69. return a + b + c;
  70.         }
  71. publicdouble Square()
  72.         {
  73. returnMath.Sqrt(halfper(this) * (halfper(this) - a) * (halfper(this) - b)
  74. * (halfper(this) - c));
  75.         }
  76. staticdoublehalfper(Triangle Ob)
  77.         {
  78. returnOb.Perimetr() / 2.0;
  79.         }
  80. staticvoidisCorrect(int a, int b, int c)
  81.         {
  82. if (a < 0 || b < 0 || c < 0)
  83. thrownewException("Sides of triangle can` t be negative");
  84.         }
  85. publicstaticTriangleoperator ++(Triangle Ob)
  86.         {
  87. returnnewTriangle(++Ob.a, ++Ob.b, ++Ob.c);
  88.         }
  89. publicstaticTriangleoperator --(Triangle Ob)
  90.         {
  91. returnnewTriangle(--Ob.a, --Ob.b, --Ob.c);
  92.         }
  93. publicstaticTriangleoperator *(Triangle Ob, intmult)
  94.         {
  95. returnnewTriangle(Ob.a * mult, Ob.b * mult, Ob.c * mult);
  96.         }
  97. publicoverridestringToString()
  98.         {
  99. return"Стороны: " + "a = " + A + " b = " + B + " c = " + C;
  100.         }
  101. publicintthis[intidx]
  102.         {
  103. get
  104.             {
  105. if (idx == 1)
  106. return a;
  107. elseif (idx == 2)
  108. return b;
  109. elseif (idx == 3)
  110. return c;
  111. else
  112. thrownewException("idx can be only 1, 2 and 3");
  113.             }
  114. set
  115.             {
  116. if (idx == 1)
  117.                     a = value;
  118. elseif (idx == 2)
  119.                     b = value;
  120. elseif (idx == 3)
  121.                     c = value;
  122. else
  123. thrownewException("idx can be only 1, 2 and 3");
  124.             }
  125.         }
  126. publicstaticbooloperatortrue(Triangle t)
  127. {
  128. returnt.isTriangle;
  129.         }
  130. publicstaticbooloperatorfalse(Triangle t)
  131.         {
  132. returnt.isTriangle;
  133.         }
  134.     };
  135.  
  136. classProgram
  137.     {
  138. staticvoid Main(string[] args)
  139.         {
  140. try
  141.             {
  142. Triangle Ob = newTriangle(3, 3, 3);
  143. if (Ob)
  144. Ob.PrintSides();
  145. else
  146. thrownewException("There is no triangle with such sides");
  147. Console.WriteLine("Perimetr={0}", Ob.Perimetr());
  148. Console.WriteLine("Sqaure={0}", Ob.Square());
  149.                 Ob++;
  150. Ob.PrintSides();
  151.                 --Ob;
  152. Ob.PrintSides();
  153.                 Ob *= 5;
  154. Ob.PrintSides();
  155. Console.WriteLine(Ob);
  156. Console.WriteLine(Ob[1]);
  157. Ob[2] = 30;
  158. Console.WriteLine(Ob);
  159.             }
  160. catch (Exception e)
  161.             {
  162. Console.WriteLine(e.Message);
  163.             }
  164. finally
  165.             {
  166. Console.ReadKey();
  167.             }
  168.         }
  169.     }
  170. }

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


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

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

14   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы