Составить описание класса прямоугольника со сторонами, параллельными осям координат - C# (181594)

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

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

Помогите исправить. Задание:Составить описание класса прямоугольника со сторонами, параллельными осям координат. Предусмотреть возможность перемещения прямоугольника на плоскости, изменение размеров, построение наименьшего прямоугольника, содержащего 2 заданных прямоугольника и прямоугольник, являющегося общей частью(пересечением) 2-х прямоугольников. Написать программу, демонстрирующую все разработанные элементы класса. Есть код, но надо сделать так,чтобы координаты прямоугольника можно было вводить самому.
Листинг программы
  1. public class rectangle
  2. { public static bool brake =false;
  3. int x, y, shirina, visota;
  4. public rectangle(int x,int y,int shirina,int visota)
  5. {
  6. this.x = x;
  7. this.y = y;
  8. this.shirina = shirina;
  9. this.visota = visota;
  10. }
  11. public void perem(int l,int h,ref int x,ref int y)
  12. {
  13. x -= l;
  14. y -= h;
  15. }
  16. public void sovm(int x1,int x2,int y1,int y2,int shirina1,int shirina2, int visota1, int visota2)
  17. {
  18. if (x1 > x2)
  19. {
  20. int buf=x1;
  21. x1=x2;
  22. x2=buf;
  23. }
  24. if (x1 + shirina1 < x2 + shirina2)
  25. {
  26. x = x1;
  27. shirina = x2 - x1 + shirina2;
  28. }
  29. else
  30. {
  31. x = x1;
  32. shirina =shirina2;
  33. }
  34. ////////////////////////
  35. if (y1 > y2)
  36. {
  37. int buf = y1;
  38. y1 = y2;
  39. y2 = buf;
  40. }
  41. if (y1 + visota1 < y2 + visota2)
  42. {
  43. y = y1;
  44. visota = y2 - y1 + visota2;
  45. }
  46. else
  47. {
  48. y = y1;
  49. visota = visota2;
  50. }
  51. Console.WriteLine("x={0},y={1},shirina={2},visota={3}",x,y,shirina,visota);
  52. }
  53.  
  54. public void izm(int x,int y,ref int shirina,ref int visota)
  55. {
  56. shirina -= x;
  57. visota -= y;
  58. }
  59. public void show(int x,int y,int shirina,int visota)
  60. {
  61. Console.WriteLine("{0} {1} {2} {3}", x, y, shirina, visota);
  62. }
  63. }
  64. //-----------------------------------------------------------------------------------------------------------------------
  65. class Go
  66. {
  67. static void Main(string[] args)
  68. {
  69. Console.WriteLine("Строим по левой нижней точке, высоте и длине");
  70. Console.WriteLine("Варианты команд:\n Perem Izm Show Sovm Exit");
  71. int x = 0, y = 0, shirina = 1, visota = 1;
  72. int x2=3, y2=2,shirina2=3, visota2=2;
  73. rectangle rect1 = new rectangle(x,y,shirina,visota);
  74. // Здесь менять на сколько перемещать и изменять.
  75. int izmx=1, izmy=1;
  76. int perx=1, pery=1;
  77. //
  78. Console.WriteLine("Введите комманду");
  79. do {
  80. switch (Console.ReadLine())
  81. {
  82. case "Perem": rect1.perem(perx, pery,ref x, ref y); break;
  83. case "Izm": rect1.izm(izmx, izmy,ref shirina,ref visota); break;
  84. case "Show": rect1.show(x,y,shirina,visota); break;
  85. case "Sovm": rect1.sovm( x,x2,y, y2,shirina, shirina2, visota,visota2);break;
  86. case "Exit": rectangle.brake=true; break;
  87. default: Console.WriteLine("Не, ну это не серьёзно, вводи!"); break;
  88. }
  89. } while (!rectangle.brake);

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

textual
Листинг программы
  1. class Go
  2. {
  3. static void Main(string[] args)
  4. {
  5.  
  6. Console.WriteLine("Строим по левой нижней точке, высоте и длине");
  7. Console.WriteLine("Варианты команд:\n Perem Izm Show Sovm Exit");
  8. Console.WriteLine("Введите x");
  9. int x = Convert.ToInt32(Console.ReadLine());
  10. Console.WriteLine("Введите y");
  11. int y = Convert.ToInt32(Console.ReadLine());
  12. Console.WriteLine("Введите ширину");
  13. int shirina = Convert.ToInt32(Console.ReadLine());
  14. Console.WriteLine("Введите высоту");
  15. int visota = Convert.ToInt32(Console.ReadLine());

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


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

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

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

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

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

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