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

Вопрос по архитектуре программы

08.06.2017, 00:43. Показов 1524. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
вопрос в том как лучше написать, обрабатывать исключение и правильно ли делать подобным образом запись и чтение
Вложения
Тип файла: rar Группа 164-1 МОАИС №22.rar (89.8 Кб, 2 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.06.2017, 00:43
Ответы с готовыми решениями:

Программа-тестировщик, вопрос по архитектуре
Привет. Мне по учебе нужно написать программу-тестировщик для оценки знаний студентов. ...

Совет по архитектуре программы
Задание: Смоделировать экосистему Аквариум. В нем существуют травоядные рыбы, хищники, препятствия,...

нужен совет по архитектуре программы
В офисе работает 10 - 100 сотрудников (задается случайно), каждый из них имеет одну или более одной...

Ответ на вопрос программы (Y\N)
Помогите пожалуйста. не получается сделать что бы программа считывала ответ Да\Нет (Y\N). Т.е....

2
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
08.06.2017, 08:11 2
Лучший ответ Сообщение было отмечено MerrinZ как решение

Решение

Сначала ознакомиться с Архитектура ПО в WinForms (FAQ & HowTo)
  1. Если принимается ввод от пользователя, то всё нужно проверять (события Validating/Validated). Я предпочитаю деактивировать контролы, если вызываемое ими действие требует введённые данные, а они ещё не введены.
  2. Убрать абсолютные пути из кода.
  3. Использовать using или прямой вызов Dispose() для объектов, реализующих IDisposable. В частности, там где ты создаёшь каптчу, объект графикс у тебя висит. Уборщик его, конечно, уберёт после использования, но это небрежность. Вот так было бы лучше:
    C#
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    //область для рисования
    using (Graphics g = Graphics.FromImage((Image) result)) {
        g.Clear(Color.Gray);
        string textCaptchaSymbol = "";
        string alphabet = "1234567890QWERTYUIOPASDFGHJKLZXCVBNM";
        for (int i = 0; i < 5; ++i)
            textCaptchaSymbol += alphabet[rnd.Next(alphabet.Length)];
        g.DrawString(textCaptchaSymbol,
            new Font("Arial", 15), colors[rnd.Next(colors.Length)], new PointF(Xpos, Ypos));
        //помехи и линии
        g.DrawLine(Pens.Black,
            new Point(0, 0), new Point(Width - 1, Height - 1));
        g.DrawLine(Pens.Black, new Point(0, Height - 1), new Point(Width - 1, 0));
    }
  4. Пароли нельзя хранить явно. Для сравнения паролей проще всего использовать хэши и сравнивать их.
  5. Если в форме что-то создаётся, то она об этом должна сообщать тому, кто её вызывал
    C#
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    private void button1_Click(object sender, EventArgs e)
    {
        RegisterName RegName = new RegisterName();
        RegName.Closed += (_sender, _e) =>
        {
            Show();
            RegName.Dispose();
        };
        RegName.Show();
    }
    Тут вызывается форма регистрации нового имени. ОК. А как понять, чем завершился процесс? Зарегистрировался или нет?
0
0 / 0 / 5
Регистрация: 23.09.2016
Сообщений: 254
09.06.2017, 19:41  [ТС] 3
постоянно выводит сообщение о несовпадении, в чем ошибка?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        private void RegIsEnd_Click(object sender, EventArgs e)
        {
            bool userRegParolRes = false, captchaRegRes = false;
 
            if (userParolAlpha.Text == userParolVita.Text)
                userRegParolRes = true;
            else MessageBox.Show("пароли не совпадают");
            if (captcha.Text == textCaptchaSymbol)
                captchaRegRes = true;
            else MessageBox.Show("капча не совпадает");
            if (User.checkNick(userName.Text, userMail.Text, Data.ReadList(Data.dirPath+Data.fileInitPath)) && userRegParolRes && captchaRegRes)
            {
                MessageBox.Show("регистрация завершена");
                joinInUserList(userName.Text, userMail.Text, userMail.Text);
                //calcByo.Show();
                //Hide();
            }
            else MessageBox.Show("пользователь с таким именем или почтой уже существует");
        }
Добавлено через 21 час 5 минут
помогите, может в дизайнере ошибка?
0
09.06.2017, 19:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2017, 19:41
Помогаю со студенческими работами здесь

вопрос по дизайну программы
Здравствуйте! Пишу сетевую программу. Хочу сделать особенный дизайн. Наподобие вот этого. Смотрел...

Вопрос по коду программы
Задание: Даны числа a,b,c (a не равно 0). Выяснить,имеет ли уравнение ax^2+bx+c=0 действительные...

Вопрос оптимизации программы
Программу сообрал, но как показывает практика, она после некоторой стабильной работты начинает...

Вопрос по автообновлению программы
Доброго времени суток уважаемые пользователи ! Нуждаюсь очень сильно в вашей помощи ! Пишу...


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

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