.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;

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


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

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

6   голосов , оценка 3.333 из 5