Вычислить площадь и периметр прямоугольника в иерархии класса Прямоугольник.(Код есть) - C#

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

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

Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Drawing;
  6. namespace ConsoleApplication15
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. Tochka t = new Tochka(new Point (2,6));
  13. Rectangle rect1 = new Rectangle(new Point(4, 4), new Point(5, 5), new Point(6, 6), new Point(7, 7));
  14. IFigure ifig;
  15. ifig = t;
  16. double P_tr = ifig.P();
  17. double S_tr = ifig.S();
  18. foreach (var pt in ifig.Coordinates)
  19. Console.WriteLine("X={0}, Y={1}", pt.X, pt.Y);
  20. ifig = rect1;
  21. double P_rect = ifig.P();
  22. double S_rect = ifig.S();
  23. foreach (var pt in ifig.Coordinates)
  24. Console.WriteLine("X={0}, Y={1}", pt.X, pt.Y);
  25. Console.WriteLine("{0}, {1}", P_tr, S_tr);
  26. Console.WriteLine("{0}, {1}", P_rect, P_rect);
  27. Console.Read();
  28. }
  29. }
  30. //Класс фигура
  31. class Figure
  32. {
  33. public int X
  34. {
  35. get;
  36. private set;
  37. }
  38. public int Y
  39. {
  40. get;
  41. private set;
  42. }
  43. public Figure(int x, int y)
  44. {
  45. X = x;
  46. Y = y;
  47. }
  48. }
  49. //Класс точка
  50. class Tochka : Figure, IFigure
  51. {
  52. Point p1;
  53. Point[] points;
  54. public Tochka(Point pt1)
  55. : base(pt1.X, pt1.Y)
  56. {
  57. p1 = pt1;
  58. points = new Point[1];
  59. points[0] = p1;
  60. }
  61. public double P()
  62. {
  63. //Тут код просчета периметра точки
  64. return 1;
  65. }
  66. public double S()
  67. {
  68. //Тут код просчета площади точки
  69. return 1;
  70. }
  71. public Point[] Coordinates
  72. {
  73. get
  74. {
  75. return points;
  76. }
  77. set
  78. {
  79. points = value;
  80. }
  81. }
  82. }
  83. //Класс прямоугольник
  84. class Rectangle : Figure, IFigure
  85. {
  86. Point p1;
  87. Point p2;
  88. Point p3;
  89. Point p4;
  90. Point[] points;
  91. public Rectangle(Point pt1, Point pt2, Point pt3, Point pt4)
  92. : base(pt1.X, pt1.Y)
  93. {
  94. p1 = pt1;
  95. p2 = pt2;
  96. p3 = pt3;
  97. p4 = pt4;
  98. points = new Point[4];
  99. points[0] = p1;
  100. points[1] = p2;
  101. points[2] = p3;
  102. points[3] = p4;
  103. }
  104. public double P()
  105. {
  106. //Тут код просчета периметра прямоугольника p = 2 * (a + b); а как записать?
  107. return 2;
  108. }
  109. public double S()
  110. {
  111. //Тут код просчета площади прямоугольника S = a * b как записать?
  112. return 2;
  113. }
  114. public Point[] Coordinates
  115. {
  116. get
  117. {
  118. return points;
  119. }
  120. set
  121. {
  122. points = value;
  123. }
  124. }
  125. }
  126. //Интерфейс
  127. interface IFigure
  128. {
  129. double P();
  130. double S();
  131. Point[] Coordinates { get; set; }
  132. }
  133. }

Решение задачи: «Вычислить площадь и периметр прямоугольника в иерархии класса Прямоугольник.(Код есть)»

textual
Листинг программы
  1. using System;
  2.  
  3. namespace ConsoleApplication15
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             Point p = new Point(2, 6);
  10.             Rectangle rect1 = new Rectangle(p, 8, 5);
  11.             IFigure ifig = rect1;
  12.  
  13.             double perRec = ifig.Perimeter();
  14.             double squRec = ifig.Square();
  15.  
  16.             foreach (var pt in rect1.GetPoints())
  17.                 Console.WriteLine("X={0}, Y={1}", pt.X, pt.Y);
  18.  
  19.  
  20.             Console.WriteLine("{0}, {1}", perRec, squRec);
  21.  
  22.             Console.Read();
  23.  
  24.         }
  25.     }
  26.     //Интерфейс фигуры, эта фигура должна иметь периметр, площадь, и находиться в определенном месте
  27.     interface IFigure
  28.     {
  29.         double Perimeter(); //периметр
  30.         double Square();    //площадь
  31.         Point Location { get; set; }   //местоположение
  32.     }
  33.  
  34.     //Класс точка, у нее нет ни периметра, ни площади, на то она и точка.
  35.     class Point
  36.     {
  37.         public int X { get; set; }
  38.         public int Y { get; set; }
  39.         public Point(int x, int y)
  40.         {
  41.             this.X = x;
  42.             this.Y = y;
  43.         }
  44.     }
  45.     //Класс прямоугольник
  46.     class Rectangle : IFigure
  47.     {
  48.         public Point Location { get; set; } //Положение
  49.         public int Width { get; set; }      //Ширина
  50.         public int Height { get; set; }     //Высота
  51.  
  52.         public Rectangle(Point location, int width, int height)
  53.         {
  54.             Width = width;
  55.             Height = height;
  56.             Location = location;
  57.         }
  58.         public double Perimeter()
  59.         {
  60.             return 2 * Height * Width;
  61.         }
  62.  
  63.         public double Square()
  64.         {
  65.             return Height * Width;
  66.         }
  67.  
  68.         public Point[] GetPoints()
  69.         {
  70.             Point[] pts = new Point[4];
  71.             pts[0] = new Point(Location.X, Location.Y);
  72.             pts[1] = new Point(Location.X + Width, Location.Y);
  73.             pts[2] = new Point(Location.X + Width, Location.Y - Height);
  74.             pts[3] = new Point(Location.X, Location.Y - Height);
  75.             return pts;
  76.         }
  77.     }
  78. }

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


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

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

8   голосов , оценка 3.875 из 5

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

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

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