Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
 Аватар для Voulenz
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 3

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

15.11.2012, 19:58. Показов 2176. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, уважаемые участники форума. Есть поставленная задача с наследованием:
Она в некотором роде не дописана (последние два задания), но суть не в этом.
К этому заданию есть дополнение. Меня интересует такой вопрос: Что есть "параметризованные коллекции", интерфейс IComparable и как перегрузить операции отношения для реализации значимой семантики сравнения объектов по какому-либо полю, в рамках данной задачи.

Задача
Создать класс Point (точка). На его основе создать классы ColoredPoint и Line
(линия). На основе класса Line создать классы ColoredLine и PolyLine (многоугольник).
В классах описать следующие элементы:
• конструкторы с параметрами и конструкторы по умолчанию;
• свойства для установки и получения значений всех координат, а также для
изменения цвета и получения текущего цвета;
• для линий — методы изменения угла поворота линий относительно первой
точки;
• для многоугольника — метод масштабирования.


Дополнение
Выполните задание,используя для хранения экземпляров
разработанных классов стандартные параметризованные коллекции. Во всех классах реализовать интерфейс IComparable и перегрузить операции отношения для реализации значимой семантики сравнения объектов по какому-либо полю на ваше усмотрение.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
class Point 
        {
 
            public Point() //конструктор по умолчанию
            {
            }
            public Point(int x, int y) //конструктор
            {
                this.X = x;
                this.Y = y;
            }
 
            private int _X;
            public int X
            {
                get //способ пролучения свойства
                {
                    return this._X;
                }
                set //способ задания свойства
                {
                    _X = value;
                }
            }
 
            private int _Y;
            public int Y
            {
                get
                {
                    return this._Y;
                }
                set
                {
                    _Y = value;
                }
            }
        }
 
        class ColoredPoint : Point
        {
            public ColoredPoint()
            { }
 
            public ColoredPoint(int x, int y, int color)
                : base(x, y)
            {
                this.Color = color;
            }
 
            private int _Color;
            public int Color
            {
                get
                {
                    return this._Color;
                }
                set
                {
                    _Color = value;
                }
            }
        }
 
        class Line
        {
            public Line()
            { }
 
            public Line(Point start, Point end)
            {
                this.Start = start;
                this.End = end;
            }
 
            public Line (int x1, int y1, int x2, int y2)
                : this(new Point(x1, y1), new Point(x2,y2))
            { }
 
           
            
            private Point _Start;
            public Point Start
            {
                get { return _Start; }
                set { _Start = value; }
            }
 
            private Point _End;
            public Point End
            {
                get { return _End; }
                set { _End = value; }
            }
        }
 
        class ColoredLine : Line 
        {
            public ColoredLine(Point start, Point end, int color)
                : base(start, end)
            {
                this.Color = color;
            }
 
            public ColoredLine(int x1, int y1, int x2, int y2, int color)
                : this(new Point(x1, y1), new Point(x2,y2), color)
            { }
            
            private int _Color;
            public int Color
            {
                get
                {
                    return this._Color;
                }
                set
                {
                    _Color = value;
                }
            }
        }
 
        class Polygon  
        {
            public Polygon()
            {}
 
            public Polygon(List<Line> frieng)
            {
                this.Frieng = frieng;
            }
            
            private List<Line> _Frieng;
            public List<Line> Frieng
            {
                get { return _Frieng; }
                set { _Frieng = value; }
            }
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.11.2012, 19:58
Ответы с готовыми решениями:

Реализовать интерфейс IComparable и перегрузить операции отношения для реализации семантики
Нужно в программу добавить реализацию интерфейса IComparable и перегрузить операции отношения для реализации семантики. using System; ...

Как перегрузить методы Equals() и GetHashCode(), для сравнения свойств объектов?
Есть два объекта класса Квадрат.Необходимо сравнить их по площади заданной свойством. Для этого необходимо перегрузить операторы == и !=....

Как реализовать интерфейс IComparable и перегрузить операции отношения?
помогите, прошу очень-очень, суть вопроса внизу Задание, на основе которого написан код: Строки данного класса могут содержать...

2
 Аватар для Voulenz
0 / 0 / 0
Регистрация: 15.11.2012
Сообщений: 3
19.11.2012, 22:38  [ТС]
Нету никаких идей?
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
20.11.2012, 07:46
Цитата Сообщение от Voulenz Посмотреть сообщение
Что есть "параметризованные коллекции"
Обычные обобщенные коллекции. Например List<T> и его закрытые типы: List<int>, List<string>, ...

Цитата Сообщение от Voulenz Посмотреть сообщение
интерфейс IComparable
Интерфейс IComparable<T> - интерфейс с одним методом
C#
1
int CompareTo(T other)
Используется при сравнении(при сортировке, например) элементов типа, которые реализует этот интерфес.

Как перегружать операторы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.11.2012, 07:46
Помогаю со студенческими работами здесь

Как реализовать интерфейс IComparable и перегрузить операции отношения?
Здравствуйте! Помогите, пожалуйста, с заданием: Выполнить задание 9, используя для хранения экземпляров разработанных классов...

Во всех классах реализовать интерфейс IComparable и перегрузить метод CompareTo для сравнения объектов
В программах требуется описать базовый класс (возможно, абстрактный), в котором задается интерфейс для производных классов. Во всех классах...

Реализовать интерфейс IComparable и перегрузить операции отношения
Задание (лаб. 9): 1. Создать абстрактный класс Persona с методами, позволяющим вывести на экран информацию о персоне, а также определить...

Перегрузить операции сравнения комплексных чисел и операции потокового вывода
Создать класс комплексное число. Перегрузить операции сравнения комплексных чисел! =, ==,&gt;, &lt;,&gt; =, &lt;= И операции потокового...

Для класса Vector перегрузить операторы присваивания, сравнения, ввода и вывода
срочно помогите написать программу, желательно с комментариями если можно)) Для класса Vector перегрузить операторы присваивания, ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru