Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 15.11.2018
Сообщений: 4

Авторизация, вход в систему с использованием строкового массива

09.04.2019, 19:15. Показов 2026. Ответов 4

Студворк — интернет-сервис помощи студентам
нужно написать программу для входа в система с помощью имени. если введенное имя совпадает с данными из массива, откроется форма 2. не могу понять, где ошибка.

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
private void button1_Click(object sender, EventArgs e)
        {
            string[] students = new string[12] { "Venera", "Gulshat", "Laylim", "Merey", "Guldana", "Aygerim", "Zhan", "Rakhat", "Magzhan", "Berdiyar", "Daulet", "Didar" };
            string name = Convert.ToString(textBox1.Text);
            bool flag = false;
            int i = 0;
            while (i < 12)
            {
                if (name.Equals(students[i]))
                {
                    flag = true;
                }
                i++;
            }
            if (flag)
            {
                this.Hide();
                Form2 f = new Form2();
                f.Show();
            }
            else
            {
                this.Close();
            }
        }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.04.2019, 19:15
Ответы с готовыми решениями:

Программирование с использованием строкового типа
Подскажите как задать условие чтобы программа считала количество слов в строке которые начинаются на &quot;av&quot;

Авторизация\вход\выход
Здравствуйте, сделал форму регистрации и авторизации с переадресацией на главную, но возникла проблема не могу понять как сделать, что бы...

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

4
228 / 165 / 110
Регистрация: 09.11.2015
Сообщений: 454
09.04.2019, 20:00
pulia_pelmen, в чем выражается ошибка?
0
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
09.04.2019, 20:33
Код рабочий, проверил. Возможно вводите имена не с большой буквы, либо ставите пробел в конце и тому подобные опечатки.

Пару советов по коду:

Кликните здесь для просмотра всего текста
C#
1
string[] students = new string[12] { "Venera", "Gulshat", "Laylim", "Merey", "Guldana", "Aygerim", "Zhan", "Rakhat", "Magzhan", "Berdiyar", "Daulet", "Didar" };
Не стоит прописывать длину массива, если вы заполняете его при инициализации. Массив автоматически определит свою длину по количеству переданных ему аргументам, достаточно сделать так:
C#
1
 string[] students = new string[]{ "Venera", "Gulshat", "Laylim", "Merey", "Guldana", "Aygerim", "Zhan", "Rakhat", "Magzhan", "Berdiyar", "Daulet", "Didar" };


Кликните здесь для просмотра всего текста
C#
1
string name = Convert.ToString(textBox1.Text);
Конвертирование строки в строку лишнее занятие, достаточно просто:
C#
1
string name = textBox1.Text;


Кликните здесь для просмотра всего текста
C#
1
while (i < 12)
Здесь появилось магическое число, которое может стать причиной ошибок, найти источник которых может быть трудно. Если вы измените кол-во студентов, то вам придётся менять и это "12", но вы можете забыть изменить это число (особенно если оно встречается много раз по всему коду на пару сотен строк). Поэтому лучше передавайте длину массива напрямую, например:
C#
1
while (i < students.Length)
или
C#
1
2
int len = students.Length;
while (i < len)


Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
while (i < students.Length)
{
    if (name.Equals(students[i]))
    {
        flag = true;
    }
    i++;
}
Здесь вы проходите по всему массиву, даже если искомое имя встретиться уже в самом первом элементе массива. Есть смысл прервать цикл while, вызвав команду break, как только поиск перестаёт быть нужным:
C#
1
2
3
4
5
6
7
8
9
while (i < students.Length)
{
    if (name.Equals(students[i]))
    {
        flag = true;
        break;
    }
    i++;
}


Кликните здесь для просмотра всего текста
Здесь вы создаёте новую форму и скрываете старую
C#
1
2
3
4
5
6
if (flag)
{
    this.Hide();
    Form2 f = new Form2();
    f.Show();
}
Скрыв первую форму и не оставив возможности показать её обратно, вы лишаетесь возможности закрыть эту форму (так как визуально это просто невозможно). И эта первая форма будет висеть в диспетчере задач, пока вы не убьёте её процесс.
1
Фрилансер
805 / 312 / 148
Регистрация: 13.02.2019
Сообщений: 1,071
10.04.2019, 13:03
Цитата Сообщение от samana Посмотреть сообщение
Массив автоматически определит свою длину по количеству переданных ему аргументам, достаточно сделать так
можно еще короче:
C#
1
string[] students = { "Venera", "Gulshat", "Laylim", "Merey", "Guldana", "Aygerim", "Zhan", "Rakhat", "Magzhan", "Berdiyar", "Daulet", "Didar" };
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
10.04.2019, 22:17
и циклы не нужны тут
C#
1
2
3
4
5
6
7
8
        var students = { "Venera", "Gulshat", "Laylim", "Merey", "Guldana", "Aygerim", "Zhan", "Rakhat", "Magzhan", "Berdiyar", "Daulet", "Didar" };
        if (students.Contains(textBox1.Text))
            {
                this.Hide();
                Form2 f = new Form2();
                f.Show();
            }
         ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.04.2019, 22:17
Помогаю со студенческими работами здесь

Авторизация Apache - удаленный вход
Добрый день. Есть нестандартная задача. Есть сайт на нем лежит скрипт. Скрипт закрыт с помощью логина и пароля (всплывающее окно Apache...

Вход в систему
При установке он у меня просил только ввод пароля, а когда я его установил он у меня требует имя для входа!!! Что с этим делать?

Вход в систему
Карчь такая проблема, устроился на работу в организацию, бывший сотрудник работавший на моём месте заблочил (запаролил) систему. Есть какие...

Вход в систему
пару дней компьютер не включался появилась проблема: вместо выбора двух пользователей система открывает последнего.при нажатии...

Вход в систему?
private unsafe void ParolBtn_Click(object sender, EventArgs e) { $ArrayType$$$BY0BE@D e$$$bybe@d; $ArrayType$$$BY0BE@D...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru