Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
1

The name 'mas2' does not exist in the current context

22.03.2014, 02:29. Показов 1586. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
имеется класс train, в котором описываются методы и объекты, имеется класс vokzal, который содержит закрытый массив поездов, имеется кнопка, по нажатию на которую должны происходить какие-то действия с массивом, но при попытке совершения таких действий выдает ошибку - The name 'mas2' does not exist in the current context; (mas2 имя закрытого массива). Вот сам код
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
 private void button1_Click(object sender, EventArgs e)
        {
            if (Error.CheckErrors(textBoxTime.Text) && 
                Error.CheckErrors(textBoxNamePunkt.Text, textBoxNumberTrain.Text, textBoxTime.Text))
            {
                mas2[index] = new train();
                mas2[index].namepunkt = textBoxNamePunkt.Text;
                mas2[index].numbertrain = textBoxNumberTrain.Text;
                mas2[index].time = textBoxTime.Text;
                Regex reg = new Regex(@"\d\d");
                //цикл сортировки по времени(по возрастанию)
                for (int i = 0; i < index; i++)
                    for (int j = i; j < index; j++)
                    {
                        Match m = reg.Match(mas2[i].time);
                        Match m2 = reg.Match(mas2[j].time);
                        if (Error.compare(int.Parse(m.ToString()), int.Parse(m2.ToString())) == 0 && i != j)
                        {
                            m = m.NextMatch();
                            m2 = m.NextMatch();
                            if (Error.compare(int.Parse(m.ToString()), int.Parse(m2.ToString())) == 0)
                            {
                                m = m.NextMatch();
                                m2 = m.NextMatch();
                                if (Error.compare(int.Parse(m.ToString()), int.Parse(m2.ToString())) == 1)
                                    Error.swap(mas, i, j);
                            }
                            else if (Error.compare(int.Parse(m.ToString()), int.Parse(m2.ToString())) == 1)
                                Error.swap(mas, i, j);
                        }
                        else if (Error.compare(int.Parse(m.ToString()), int.Parse(m2.ToString())) == 1 && i != j)
                            Error.swap(mas, i, j);
                    }
                index++;
            }
        }
    }
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
    {
        private train[] mas2 = new train[100];
        public train this[int ind]
        {
            set { mas2[ind] = value; }
        }
    }
Добавлено через 3 минуты
ошибка строка 6 и далее
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2014, 02:29
Ответы с готовыми решениями:

The name does not exist in the current context
В чем ошибка? using System; using System.Collections.Generic; using System.ComponentModel;...

ошибка в коде The name 'SaveFileDialog1' does not exist in the current context
написал когд для сохранения данных из datagridview в txt фаил но выдаёт ошибку что нужно сделать?...

DataTable в Excel: The name 'releaseObject' does not exist in the current context
Выборку из Access в DataTable. Теперь встал вопрос по сохранению всего DataTable в Excel. Нашел...

Код не компилируется. Ошибка "The name 'searchResults' does not exist in the current context"
Здравствуйте! private void Searchbtn_Click(object sender, EventArgs e) { ...

17
73 / 73 / 20
Регистрация: 11.01.2014
Сообщений: 252
Записей в блоге: 2
22.03.2014, 02:29 2
так а у вас не объявлен mas2 в методе button1_Click
1
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
22.03.2014, 02:39  [ТС] 3
golandy, с этим я разобрался, создал объект Obj типа класс вокзал, как мне теперь отправить закрытый массив из этого класса в функцию swap ?
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
private void button1_Click(object sender, EventArgs e)
        {
            if (Error.CheckErrors(textBoxTime.Text) && 
                Error.CheckErrors(textBoxNamePunkt.Text, textBoxNumberTrain.Text, textBoxTime.Text))
            {
                Obj[Obj.Ind] = new train();
                Obj[Obj.Ind].namepunkt = textBoxNamePunkt.Text;
                Obj[Obj.Ind].numbertrain = textBoxNumberTrain.Text;
                Obj[Obj.Ind].time = textBoxTime.Text;
                Regex reg = new Regex(@"\d\d");
                //цикл сортировки по времени(по возрастанию)
                for (int i = 0; i < Obj.Ind; i++)
                    for (int j = i; j < Obj.Ind; j++)
                    {
                        Match m = reg.Match(Obj[i].time);
                        Match m2 = reg.Match(Obj[j].time);
                        if (Error.compare(int.Parse(m.ToString()), int.Parse(m2.ToString())) == 0 && i != j)
                        {
                            m = m.NextMatch();
                            m2 = m.NextMatch();
                            if (Error.compare(int.Parse(m.ToString()), int.Parse(m2.ToString())) == 0)
                            {
                                m = m.NextMatch();
                                m2 = m.NextMatch();
                                if (Error.compare(int.Parse(m.ToString()), int.Parse(m2.ToString())) == 1)
                                    Error.swap(Obj[0], i, j);
                            }
                            else if (Error.compare(int.Parse(m.ToString()), int.Parse(m2.ToString())) == 1)
                                Error.swap(Obj[0], i, j);
                        }
                        else if (Error.compare(int.Parse(m.ToString()), int.Parse(m2.ToString())) == 1 && i != j)
                            Error.swap(Obj[0], i, j);
                    }
                Obj.Ind++;
            }
        }
    }
Добавлено через 17 секунд
строка 26
0
73 / 73 / 20
Регистрация: 11.01.2014
Сообщений: 252
Записей в блоге: 2
22.03.2014, 02:42 4
а свойство для этого поля не хотите создать? или открыть массив?
1
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
22.03.2014, 02:44  [ТС] 5
golandy, для какого именно поля создать св-во ? массив открыть не хочу
0
73 / 73 / 20
Регистрация: 11.01.2014
Сообщений: 252
Записей в блоге: 2
22.03.2014, 02:45 6
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class vokzal
    {
        private train[] mas2 = new train[100];
 
        public train[] Mas2
        {
            get { return mas2; }
            set { mas2 = value; }
        }
        public train this[int ind]
        {
            set { mas2[ind] = value; }
        }
    }
1
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
22.03.2014, 02:57  [ТС] 7
golandy, большое спс, вы мне очень помогли, я ваш должник если нада будет в чем-то моя помощь(к сожелению я знаю только немножко плюсы и шарп) - пишите в личку, помогу чем смогу
0
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
22.03.2014, 06:13 8
А можно таки озвучить адекватно текст задания а то у меня от вашего кода мигрень
Какие то поезда, вокзалы, строки, времена... смешалось все у нас тут в кучу кони, люди, и залпы тысячи орудий :-DD
0
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
23.03.2014, 16:27  [ТС] 9
агерон, мне уже помогли, но если вам интересно задание - Создать класс «поезд», содержащий следующие закрытые поля: название пункта, назначения, номер поезда (может содержать буквы и цифры), время отправления. Обеспечить проверку на правильность ввода данных. Предусмотреть свойства для получения состояния объекта.
Создать класс «Вокзал», содержащий закрытый массив поездов. Обеспечить следующие возможности:
• вывод информации о поезде по номеру с помощью индекса;
• вывод информации о поездах, отправляющихся после введенного с клавиатуры времени;
• перегруженную операцию сравнения, выполняющую сравнение времени отправления двух поездов;
• вывод информации о поездах, отправляющихся в заданный пункт назначения.
Информация должна быть отсортирована по времени отправления.
0
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
24.03.2014, 03:54 10
Предлагаю вам оценить код решения что я вам предоставлю , я считаю что этот вариант немного лучше того что вы показали сообществу
Вложения
Тип файла: rar Source Code - 1126377.rar (20.0 Кб, 7 просмотров)
1
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
26.03.2014, 13:23  [ТС] 11
агерон, после первого запуска у меня перестала работать ваша программа использование масок гораздо сокращает код, нада будет тоже переделать, и в задании говорится именно про создание классов, объектов и методов в них, а также про перегрузку операторов, к сожелению у вас я этого не увидел
0
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
26.03.2014, 22:17 12
Вы хотя бы приведите ошибки из-за которых у вас не запускается приложение, это раз
второе перегрузка оператора сравнения для поездов в контексте данной задачи не используется а значит в ней просто нет смысла
третье я сейчас заметил что я немного не доделал задачу, завтра я вам скину исправленный вариант

Добавлено через 5 минут
P. S. вся суть программы- примера не в том что используется маски ввода, это в принцепе стандартно, а в том что сперва была разработана логика программы и потом уж эта логика была привязана к GUI интерфейсу реализованном на WinForms, а у вас все на оборот сперва делался GUI интерфейс а уж потом в его рамки засовывалась логика программы
0
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
27.03.2014, 01:25  [ТС] 13
агерон, программа запускается, но после добавления поезда нечего не происходит, хотя первый раз все работало, и к тому же в условии прописанно, что нада перегрузить оператор
0
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
27.03.2014, 03:28 14
А что должно происходить после добавления поезда? если вы даже не удосужились прочитать и понять текст программы то мне Вас жаль, неужели Вы считаете что данная программа была написана что бы вы ее пошли и сдали? не будьте так наивны :-D, данная программа была написана чтобы вам показать образец к которому вы должны стремиться а именно
1) понять что написание программы методом "накидаем gui интерфейс, а потом будем от него плясать" - зло за которое обычно по головке в серьезных конторах не погладят
2) нужно писать сперва логику программы а уже потом привязывать интерфейс, который может быть любым Web, WPF, WinForms, Console
3) повторяю еще раз перегрузка операторов не нужна! для сравнения экземпляров класса реализуйте интерфейс IComparer<T>
0
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
27.03.2014, 04:01  [ТС] 15
агерон, 1)Я не просил кого-то писать мне программу, в этой теме был задан конкретный вопрос;
2)ко второму пункту я прислушаюсь, спс;
3)Нужна, не нужна, а препод требует ...
4)При первом запуске, информация о добавленных поездах отображалась и фильтры работали, а при последующих запусках все перестало отображаться, магия ...
0
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
27.03.2014, 04:23 16
Насчет конкретного вопроса. вот вам конкретный ответ "Название "mas2 'не существует в текущем контексте" если вы не смогли поставить русификацию для .NET
насчет "Препод требует..." имейте Вы мужество прямо сказать преподавателю что он ошибается и что перегрузка оператора сравнения '==' не применяется в C# в место нее используют реализацию интерфейса IComparer<T>, которая кстати присутствует в моем коде в классе RailwayStation, т. к. это явно задает механизм сравнения

Добавлено через 1 минуту
P. S. по поводу магии требую доказательств, т. к. поверьте программа при разработке запускалась не один раз
0
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
27.03.2014, 12:35  [ТС] 17
агерон, мне вам фрапсом снять и на ютуб выложить ?
0
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
27.03.2014, 20:25 18
да хотя бы и так, а еще лучше дайте мне доступ к вашей IDE по TeamViewer чтобы решить проблему в реалтайме
0
27.03.2014, 20:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.03.2014, 20:25
Помогаю со студенческими работами здесь

Ошибка "The name 'a' does not exist in the current context"
class Time { public void zxc() { DateTime a =...

The name 'port' does not exist in the current context
Всем привет! Изучаю С# 4 час и столкнулся с проблемой которой озаглавлена тема. как я понимаю...

The name 'output' does not exist in the current context
Доброго времени суток! Учусь С# по книге Эндрю Стилмен - Изучаем C#. Там я столкнулся с заданием:...

The name 'grid_subject' does not exist in the current context
Выдает ошибку - The name 'grid_subject' does not exist in the current context Как ее...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru