Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242

Перегрузка оператора >

23.03.2014, 16:23. Показов 2431. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
хочу перегрузить оператор >, но не получается ...
вот часть кода:
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
public train Error = new train();
public vokzal Obj = new vokzal();
private void button3_Click(object sender, EventArgs e)
        {
            listBox4.Items.Clear();
            int indFirst = 0, indSecond = 0;
            for (int i = 0; i < Obj.Ind; i++)
            {
                if (Obj[i].numbertrain == textBox6.Text)
                    indFirst = i;
                if (Obj[i].numbertrain == textBox7.Text)
                    indSecond = i;
            }
            if (Obj[indFirst].time > Obj[indSecond].time)
                listBox4.Items.Add("1 поезд раньше");
            else
                listBox4.Items.Add("2 поезд раньше");
        }
 
public class train
    {
        public train() { }
        public train(string NamePunkt, string NumberTrain, string Time)
        {
            this.NamePunkt = NamePunkt;
            this.NumberTrain = NumberTrain;
            this.Time = Time;
        }
        ~train() { }
        public string namepunkt
        {
            get { return NamePunkt; }
            set { NamePunkt = value; }
        }
        public string numbertrain
        {
            get { return NumberTrain; }
            set { NumberTrain = value; }
        }
        public string time
        {
            get { return Time; }
            set { Time = value; }
        }
        public int compare(int x, int y)
        {
            if (x > y)
                return 1;
            if (x < y)
                return -1;
            if (x == y)
                return 0;
            return 2;
        }
 
        public void swap(train []mas, int index1, int index2)
        {
            string buf;
            buf = mas[index1].Time;
            mas[index1].Time = mas[index2].Time;
            mas[index2].Time = buf;
 
            buf = mas[index1].NamePunkt;
            mas[index1].NamePunkt = mas[index2].NamePunkt;
            mas[index2].NamePunkt = buf;
 
            buf = mas[index1].NumberTrain;
            mas[index1].NumberTrain = mas[index2].NumberTrain;
            mas[index2].NumberTrain = buf;
        }
 
        public bool CheckErrors(string count1, string count2, string count3)
        {
            bool flag = true;
            if (count1.Length == 0)
            {
                MessageBox.Show("Вы не заполнили первое поле");
                flag = false;
            }
            if (count2.Length == 0)
            {
                MessageBox.Show("Вы не заполнили второе поле");
                flag = false;
            }
            if (count3.Length == 0)
            {
                MessageBox.Show("Вы не заполнили третее поле");
                flag = false;
            }
            return flag;
        }
        public bool CheckErrors(string count)
        {
            bool flag = true;
            if (count.Length > 8)
            {
                MessageBox.Show("Неверное кол-во символов в строке"+'\n'+"Строка должна иметь вид:"+'\n'+"??:??:??");
                flag = false;
            }
            Regex reg = new Regex(@"\d\d:\d\d:\d\d");
            if (!reg.IsMatch(count))
            {
                MessageBox.Show("Неверно введено время" + '\n' + "Строка должна иметь вид:" + '\n' + "??:??:??");
                flag = false;
            }
            reg = new Regex(@"\d\d");
            Match m = reg.Match(count);
            if (int.Parse(m.ToString()) > 23)
            {
                MessageBox.Show("Неверно введено время(часы)" + '\n' + "Строка должна иметь вид:" + '\n' + "??:??:??");
                flag = false;
            }
            m = m.NextMatch();
            if (int.Parse(m.ToString()) > 59)
            {
                MessageBox.Show("Неверно введено время(минуты)" + '\n' + "Строка должна иметь вид:" + '\n' + "??:??:??");
                flag = false;
            }
            m = m.NextMatch();
            if (int.Parse(m.ToString()) > 59)
            {
                MessageBox.Show("Неверно введено время(секунды)" + '\n' + "Строка должна иметь вид:" + '\n' + "??:??:??");
                flag = false;
            }
            return flag;
        }
 
        private string NamePunkt;
        private string NumberTrain;
        private string Time;
    }
 
    public class vokzal
    {
        public vokzal() { }
        public vokzal(string time1, string time2) { Time1 = time1; Time2 = time2; }
        ~vokzal() { }
        private train[] mas2 = new train[100];
        private int index;
        public int Ind
        {
            get { return index; }
            set { index = value; }
        }
        public train[] Mas2
        {
            get { return mas2; }
            set { mas2 = value; }
        }
        public train this[int ind]
        {
            get { return mas2[ind]; }
            set { mas2[ind] = value; }
        }
        private static string Time1;
        private static string Time2;
        public static bool operator>(vokzal ime1, vokzal ime2)
        {
            Regex reg1 = new Regex(@"\d\d");
            Regex reg2 = new Regex(@"\d\d");
            Match m1 = reg1.Match(Time1);
            Match m2 = reg2.Match(Time2);
            if (m1 == m2)
            {
                m1.NextMatch();
                m2.NextMatch();
                if (m1 == m2)
                {
                    if (int.Parse(m1.ToString()) > int.Parse(m2.ToString()))
                        return true;
                    else if (int.Parse(m1.ToString()) < int.Parse(m2.ToString()))
                        return false;
                    else return true;
                }
                else if (int.Parse(m1.ToString()) > int.Parse(m2.ToString()))
                    return true;
                else
                    return false;
            }
            else if (int.Parse(m1.ToString()) > int.Parse(m2.ToString()))
                return true;
            else
                return false;
 
        }
 
        public static bool operator <(vokzal ime1, vokzal ime2)
        {
            Regex reg1 = new Regex(@"\d\d");
            Regex reg2 = new Regex(@"\d\d");
            Match m1 = reg1.Match(Time1);
            Match m2 = reg2.Match(Time2);
            if (m1 == m2)
            {
                m1.NextMatch();
                m2.NextMatch();
                if (m1 == m2)
                {
                    if (int.Parse(m1.ToString()) < int.Parse(m2.ToString()))
                        return true;
                    else if (int.Parse(m1.ToString()) > int.Parse(m2.ToString()))
                        return false;
                    else return true;
                }
                else if (int.Parse(m1.ToString()) < int.Parse(m2.ToString()))
                    return true;
                else
                    return false;
            }
            else if (int.Parse(m1.ToString()) < int.Parse(m2.ToString()))
                return true;
            else
                return false;
        }
 
    }
Добавлено через 2 минуты
ошибка
Error 1 Operator '>' cannot be applied to operands of type 'string' and 'string'
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.03.2014, 16:23
Ответы с готовыми решениями:

Перегрузка оператора +
Есть три класса: HallValue, FilmValue, Session. В HallValue есть поле Start (в нем время начала сеанса &quot;00:00&quot;). В FilmValue есть...

Перегрузка оператора <<
Здравствуйте, форумчане. Нужно в классе перегрузить оператор &lt;&lt;. Так не получается. В чем проблема? public void operator&lt;&lt; (int...

Перегрузка оператора
public Set operator &lt; (Set ob1, Set ob2) { if(ob1.len &gt; ob2.len) return false; //если множество ob1 содержит больше...

23
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
25.03.2014, 14:34  [ТС]
Студворк — интернет-сервис помощи студентам
golandy, у меня еще вопрос, мб поможете когда добавляем третий поезд, и если у него написать время 21:21:22, то m2 = m.NextMatch(); почему-то перескакивает лишний раз, в результате чего возникает ошибка, проблема только при добавлении 3 поезда, если добавлять четвертый поезд с таким временем, то все норм ...
0
 Аватар для golandy
73 / 73 / 20
Регистрация: 11.01.2014
Сообщений: 252
Записей в блоге: 2
25.03.2014, 15:04
а что значит перескочит у вас же написано m = m.NextMatch(); m2 = m.NextMatch(); соотвественно перскочит по m 2 раза. А ошибка у вас получается, т.к. вы получаете список похожи записей и выходите за рамки. Например если у вас в 21:21:22 и m = 22, то
C#
1
m2 = m.NextMatch();
будет пусто, а у вас там дальше идет Parse, то соответсвенно даст ошибку.
0
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
25.03.2014, 20:33  [ТС]
golandy, но ведь m2 обрабатывает другую строку, не ту, что и m

Добавлено через 5 часов 8 минут
golandy, что самое интересное, на ноуте такой проблемы не возникает но раз проблема есть, то ее нельзя игнорировать
0
 Аватар для golandy
73 / 73 / 20
Регистрация: 11.01.2014
Сообщений: 252
Записей в блоге: 2
25.03.2014, 21:42
У вас в коде m2 обрабатывает ту что и m. Замените.
C#
1
2
m = m.NextMatch();
m2 = m.NextMatch();
на

C#
1
2
m = m.NextMatch();
m2 = m2.NextMatch();
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.03.2014, 21:42

Перегрузка оператора %
Здравствуйте! Уже задавала похожий вопрос. Как переопределить оператор %, для нахождения процента чисел. Причем оба объекта должны быть...

Перегрузка оператора
Здравствуйте! Есть класс Fraction(дробь), хочу перегрузить оператор + для массива таких дробей... Внутри класса объявляю: public...

Перегрузка оператора +
Привет форумчане! Имеется следующий класс: public sealed class Point { private int x = 1; ...

Перегрузка оператора *
Надо перегрузить оператор * найти площадь треугольника по формуле герона Сделал все что смог using System; namespace нс2...

Перегрузка оператора
Здравствуйте. У меня проблема, не могу сделать перегрузку оператора &quot;!&quot;, надо подсчитать факториал числа. class Factorial { ...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru