.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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д