.NET 4.x Создать класс Point - C#
Формулировка задачи:
Здравствуйте уважаемые! Помогите выяснить почему программа не работает так как нужно!
Создать класс Point, содержащий следующие члены класса:
1. Поля: int x, y;
2. Конструкторы, позволяющие создать экземпляр класса:
• с нулевыми координатами;
• с заданными координатами.
3. Методы, позволяющие:
• вывести координаты точки на экран;
• рассчитать расстояние от начала координат до точки;
• переместить точку на плоскости на вектор (a, b).
4. Свойство:
• позволяющее получить-установить координаты точки (доступное для чтения и
записи);
• позволяющее умножить координаты точки на скаляр (доступное только для
записи).
5. Индексатор, позволяющий по индексу 0 обращаться к полю x, по индексу 1 – к
полю y, при других значениях индекса выдается сообщение об ошибке.
6. Перегрузку:
• операции ++ (--): одновременно увеличивает (уменьшает) значение полей х и у
на 1;
• констант true и false: обращение к экземпляру класса дает значение true, если
значение полей x и у совпадает, иначе false;
• операции бинарный +: одновременно добавляет к полям х и у значение скаляра.
Листинг программы
- using static System.Console;
- namespace array
- {
- class Program
- {
- static void Main()
- {
- Point one = new Point(); // Вызов конструктора нулевых координат
- Point two = new Point(); // Вызов конструктора произвольных координат
- Point three = new Point(); // Вызов конструктора задания скаляра
- Point foor = new Point(); // Вызов конструктора бинарного оператора " * "
- Point five = new Point(); // Вызов конструктора бинарного оператора " * "
- one.Show();
- two[0] = 5;
- two[1] = 5;
- two.Show();
- three[2] = 1;
- three.Skalar();
- double res = one.Distance(two);
- foor = one * three;
- five = two * three;
- // Вывод результата расчета растояния между точками
- WriteLine($"Растояние между точками: {res}");
- //Вывод результата расчета координат на скаляр
- WriteLine($"Умножение первых координат на скаляр: {foor}");
- WriteLine($"Умножение вторых координат на скаляр: {five}");
- //выход из программы
- WriteLine();
- WriteLine("Нажмите любую клавишу для выхода...");
- ReadKey(true);
- }
- }
- }
Листинг программы
- using static System.Console;
- using static System.Math;
- namespace array
- {
- class Point
- {
- // Закрытое поле х - инициализация координыты х
- private double x;
- // Закрытое поле у - инициализация координыты у
- private double y;
- // Закрытое поле scalar - инициализируя скаляр
- private double scalar;
- // Конструктор 1 - задающий нулевые координаты
- public Point() : this(0, 0) { }
- // Конструктор 2 - инициализирующий закрытые поля х и у
- public Point(double x, double y)
- {
- this.x = x;
- this.y = y;
- }
- // Конструктор 3 - инициализирующий закрытое поле scalar
- public Point(double scalar)
- {
- this.scalar = scalar;
- }
- // Метод Show выводит координаты точек на экран
- public void Show()
- {
- WriteLine($"Координаты точки: х = {x}, у = {y}");
- }
- // Метод Distancе расчитывает растояние между точками
- public double Distance(Point p)
- {
- return Sqrt(Pow(p.x - x, 2) + Pow(p.y - y, 2));
- }
- // Метод Skalar выводит скалрное значение
- public void Skalar()
- {
- WriteLine($"Скалярное значение: {scalar}");
- }
- // Свойство позволяющее получить-установить координаты точки х
- private double X
- {
- get { return this.x; }
- set { if (this.x != value) this.x = value; }
- }
- // Свойство позволяющее получить-установить координаты точки у
- private double Y
- {
- get { return this.y; }
- set { if (this.y != value) this.y = value; }
- }
- // Свойство позволяюшее получить-установить скаляр
- public double Scalar
- {
- get { return this.scalar; }
- set { if (this.scalar != value) this.scalar = value; }
- }
- // Индексатор для обращения свойствам
- public double this[int i]
- {
- get
- {
- if (i == 0) return X;
- else if (i == 1) return Y;
- else if (i == 2) return Scalar;
- else
- {
- WriteLine("Недопустимый индекс");
- return 0;
- }
- }
- set
- {
- if (i == 0) X = value;
- else if (i == 1) Y = value;
- else if (i == 2) Scalar = value;
- else WriteLine("Недопустимый индекс");
- }
- }
- // Перегрузк бинарног оператор " * "
- public static Point operator * (Point p1, Point p2)
- {
- Point result = new Point();
- result.x = p1.x * p2.scalar;
- result.y = p1.y * p2.scalar;
- return result;
- }
- // Перегрузк бинарног оператор " + "
- public static Point operator + (Point m)
- {
- Point xx = new Point(m);
- return xx =+ 1;
- }
- // Перегрузк бинарног оператор " - "
- public static Point operator - (Point m)
- {
- Point xx = new Point(m);
- return xx =-1;
- }
- // Перегрузк унарного оператор " ++ "
- public static Point operator ++ (Point o)
- {
- Point xx = new Point(o);
- return xx++;
- }
- // Перегрузк унарного оператор " ++ "
- public static Point operator -- (Point y)
- {
- Point yy = new Point(y);
- return yy--;
- }
- }
- }
Решение задачи: «.NET 4.x Создать класс Point»
textual
Листинг программы
- class Point
- {
- private double _x;
- private double _y;
- public Point(double x, double y)
- {
- _x = x;
- _y = y;
- }
- public double MultiplyScalar { set { _x *= value; _y *= value; } }
- }
- .....
- Point p = new Point(2, 5);
- p.MultiplyScalar = 3;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д