Создать класс Rectangle, содержащий следующие члены класса - C#

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

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

VS 2010. Компилятор выдает ошибки, Предложение using должно предшествовать любым другим элементам пространства имен кроме объявлений внешних псевдонимов. Переношу Using ввер к остальным, ошибок становится больше. Как это исправить? Создать класс Rectangle, содержащий следующие члены класса: Классы и объекты 1. Поля: • int a, b; 2. Конструктор, позволяющий создать экземпляр класса с заданными длинами сторон. 3. Методы, позволяющие: • вывести длины сторон прямоугольника на экран; • расчитать периметр прямоугольника; • расчитать площадь прямоугольника. 4. Свойства, позволяющие: • получить и установить длины сторон прямоугольника (доступные для чтения и записи); • установить, является ли данный прямоугольник квадратом (доступное только для чтения). 5. Индексатор, позволяющий по индексу 0 обращаться к полю a, по индексу 1 – к полю b; при других значениях индекса должно выдаваться сообщение об ошибке. 6. Перегруженные операции и константы, позволяющие: • одновременно увеличить (уменьшить) значение полей a и b на 1 (операции ++ и --); • узнать, является ли прямоугольник квадратом (константы true и false); • одновременно умножить поля a и b на скаляр (операция *). Продемонстрировать работу класса.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace Study
  7. {
  8. class Rectangle
  9. {
  10. int a, b;
  11. int [] array = new int [2];
  12.  
  13. public Rectangle(int a, int b)
  14. {
  15. this.a = a;
  16. this.b = b;
  17. }
  18. public void Show ()
  19. {
  20. Console.WriteLine("Storony " + a +" x " + b);
  21. }
  22. public int Perimetr ()
  23. {
  24. return a * 2 + b * 2;
  25. }
  26. public int Square()
  27. {
  28. return a * b;
  29. }
  30. public int A
  31. {
  32. get { return a; }
  33. set { a = value; }
  34. }
  35. public int B
  36. {
  37. get { return b; }
  38. set { b = value; }
  39. }
  40. public bool K //kvadrat?
  41. {
  42. get { if (a == b) return true; else return false; }
  43. }
  44. public int this[int i]
  45. {
  46. get
  47. {
  48. if (i == 0)
  49. return a;
  50. else
  51. return 0;
  52. if (i == 1)
  53. return 1;
  54. else
  55. return 0;
  56. }
  57. set
  58. {
  59. if (i == 0)
  60. array[i] = a;
  61. if (i == 1)
  62. array[i] = b;
  63. }
  64. }
  65. public static Rectangle operator ++(Rectangle ob)
  66. {
  67. Rectangle ob1 = new Rectangle(ob.a, ob.b);
  68. ob1.a = ob.a + 1;
  69. ob1.b = ob.b + 1;
  70. return ob1;
  71. }
  72. public static Rectangle operator --(Rectangle ob)
  73. {
  74. Rectangle ob1 = new Rectangle(ob.a, ob.b);
  75. ob1.a = ob.a - 1;
  76. ob1.b = ob.b - 1;
  77. return ob1;
  78. }
  79. public static bool operator true(Rectangle ob)
  80. {
  81. if (ob.a == ob.b)
  82. return true;
  83. else return false;
  84. }
  85. public static bool operator false(Rectangle ob)
  86. {
  87. if (ob.a != ob.b)
  88. return true;
  89. else
  90. return false;
  91. }
  92. public static Rectangle operator *(Rectangle ob, int skal)
  93. {
  94. Rectangle ob1 = new Rectangle(ob.a, ob.b);
  95. ob1.a = ob.a * skal;
  96. ob1.b = ob.b * skal;
  97. return ob1;
  98. }
  99. public static implicit operator Rectangle (string a) //неявное преобразование типа int [] в DemoArray
  100. {
  101. return new Rectangle(a);
  102. }
  103.  
  104. public static implicit operator int [](Rectangle a) //неявное преобразование типа DemoArray в int []
  105. {
  106. int []temp=new int[a.LengthArray];
  107. for (int i = 0; i < a.LengthArray; ++i)
  108. temp[i] = a[i];
  109. return temp;
  110. }
  111. }
  112. }
  113. using System;
  114. using Study;
  115. class MyClass
  116. {
  117. static void Main()
  118. {
  119. Rectangle ob = new Rectangle(3,5);
  120. ob.Show();
  121. Console.WriteLine("Perimentr = " + ob.Perimetr());
  122. Console.WriteLine("Ploshad = " + ob.Square());
  123. ob.A++;
  124. ob.B++;
  125. ob.Show();
  126. ob.A--;
  127. ob.B--;
  128. ob.Show();
  129. ob = ob * 2;
  130. ob.Show();
  131. ob.A = 15;
  132. ob.B = 15;
  133. ob.Show();
  134. if (ob)
  135. {
  136. Console.WriteLine("Eto kvadrat!");
  137. }
  138. Console.ReadKey();
  139. }
  140. }

Решение задачи: «Создать класс Rectangle, содержащий следующие члены класса»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace ConsoleApplication1
  7. {
  8.     namespace Study
  9.     {
  10.         class Rectangle
  11.         {
  12.             int a, b;
  13.  
  14.             public Rectangle(int a, int b)
  15.             {
  16.                 this.a = a;
  17.                 this.b = b;
  18.             }
  19.  
  20.             public void Show() { Console.WriteLine("Стороны {0} x {1}", a, b); }
  21.  
  22.             public int Perimetr() { return a + a + b + b; }
  23.  
  24.             public int Square() { return a * b; }
  25.  
  26.             public int A
  27.             {
  28.                 get { return a; }
  29.                 set { a = value; }
  30.             }
  31.  
  32.             public int B
  33.             {
  34.                 get { return b; }
  35.                 set { b = value; }
  36.             }
  37.  
  38.             public bool K { get { return a == b; } }
  39.  
  40.             public int this[int i]
  41.             {
  42.                 get
  43.                 {
  44.                     switch (i)
  45.                     {
  46.                         case 0: return a;
  47.                         case 1: return b;
  48.                         default: throw new Exception("Некорректный индекс");
  49.                     }
  50.                 }
  51.                 set
  52.                 {
  53.                     switch (i)
  54.                     {
  55.                         case 0: a = value; break;
  56.                         case 1: b = value; break;
  57.                         default: throw new Exception("Некорректный индекс");
  58.                     }
  59.                 }
  60.             }
  61.  
  62.             public static Rectangle operator ++(Rectangle ob)
  63.             {
  64.                 return new Rectangle(ob.a + 1, ob.b + 1);
  65.             }
  66.  
  67.             public static Rectangle operator --(Rectangle ob)
  68.             {
  69.                 return new Rectangle(ob.a - 1, ob.b - 1);
  70.             }
  71.  
  72.             public static bool operator true(Rectangle ob) { return ob.K; }
  73.  
  74.             public static bool operator false(Rectangle ob) { return !ob.K; }
  75.  
  76.             public static Rectangle operator *(Rectangle ob, int skal) { return new Rectangle(ob.a * skal, ob.b * skal); }
  77.         }
  78.  
  79.         class Program
  80.         {
  81.             static void Main(string[] args)
  82.             {
  83.                 Rectangle ob = new Rectangle(3, 5);
  84.                 ob.Show();
  85.  
  86.                 Console.WriteLine("Периметр = " + ob.Perimetr());
  87.                 Console.WriteLine("Площадь = " + ob.Square());
  88.  
  89.                 ++ob; ob.Show();
  90.                 --ob; ob.Show();
  91.                
  92.                 ob *= 2; ob.Show();
  93.                
  94.                 ob.A = 15;
  95.                 ob.B = 15;
  96.                 ob.Show();
  97.                
  98.                 if (ob) Console.WriteLine("Это квадрат! ");
  99.                 else Console.WriteLine("Это не квадрат! ");
  100.  
  101.                 ob[0] = 20;
  102.                 ob[1] = 10;
  103.                 ob.Show();
  104.  
  105.                 try { ob[2] = 20; } catch (Exception e) { Console.WriteLine(e.Message); }
  106.  
  107.                 Console.ReadKey();
  108.             }
  109.         }
  110.     }
  111. }

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


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

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

13   голосов , оценка 3.923 из 5

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

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

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