Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2022, 15:35   #11
Qbinik
Пользователь
 
Регистрация: 08.10.2022
Сообщений: 25
По умолчанию

Код:
namespace Seti_lab_3
{
    public partial class Form1 : Form
    {
        private string[] communicationLine = {"Проводная", "Беспроводная", "Витая пара"};
        //private string[] cabelType = { "wifi 2.4", "wifi 5", "cat 5", "cat 5e", "cat 6", "cat 6e", "cat 7", "om1", "om2", "om3", "om4", "os1", "os2" };
        private enum CommunicationLine
        {
            Wired,
            Wireless,
            TwistedPair
        }
        private enum CabelType 
        {
           wifi24,
           wifi5,
           cat5,
           cat5e,
           cat6,
           cat6e,
           cat7,
           om1,
           om2,
           om3,
           om4,
           os1,
           os2
        }
        
        private int cabelTypeFind(CabelType cabelTypeV) // возвращает тип связи в зависимости от вида кабеля
        {
            switch (cabelTypeV)
            {
                case CabelType.wifi24:
                    return 1;
                case CabelType.wifi5:
                    return 1;
                case CabelType.cat5:
                    return 2;
                case CabelType.cat6:
                    return 2;
                case CabelType.cat6e:
                    return 2;
                case CabelType.cat7:
                    return 2;
                case CabelType.om1:
                    return 0;
                case CabelType.om2:
                    return 0;
                case CabelType.om3:
                    return 0;
                case CabelType.om4:
                    return 0;
                case CabelType.os1:
                    return 0;
                case CabelType.os2:
                    return 0;
            }
            return -1;
        }
        private int cabelSpeed(CabelType cabelType)
        {
            switch (cabelType)
            {
                case CabelType.wifi24:
                    return 450;//
                case CabelType.wifi5:
                    return 1300;//
                case CabelType.cat5:
                    return 1;
                case CabelType.cat6:
                    return 10000;
                case CabelType.cat6e:
                    return 10000;
                case CabelType.cat7:
                    return 10000;
                case CabelType.om1:
                    return 10000;
                case CabelType.om2:
                    return 10000;
                case CabelType.om3:
                    return 2000; //     
                case CabelType.om4:
                    return 10000;
                case CabelType.os1:
                    return 40000;
                case CabelType.os2:
                    return 40000;
            }
            return -1;
        }


        private int cabelLenght(CabelType cabelType)
        {
            switch (cabelType)
            {
                case CabelType.wifi24:
                    return 150;
                case CabelType.wifi5:
                    return 50;
                case CabelType.cat5:
                    return 100;
                case CabelType.cat6:
                    return 55;
                case CabelType.cat6e:
                    return 55;
                case CabelType.cat7:
                    return 55;
                case CabelType.om1:
                    return 2000;//
                case CabelType.om2:
                    return 2000;//
                case CabelType.om3:
                    return 2000;//
                case CabelType.om4:
                    return 550;
                case CabelType.os1:
                    return 500000;
                case CabelType.os2:
                    return 500000;
            }
            return -1;
        }
        public Form1()
        {
            InitializeComponent();
            // comboBoxCabelType.Items.AddRange(cabelType);
            comboBoxCommunicationLine.Items.AddRange(communicationLine);
        }

        private bool isConnectionPosible(CommunicationLine comunicationLineV, CabelType cabelTypeV, int lenght, int speed)
        {
            if (comunicationLineV == (CommunicationLine)cabelTypeFind(cabelTypeV) && lenght <= cabelLenght(cabelTypeV) && speed <= cabelSpeed(cabelTypeV))
                return true;
            else
                return false;
        }
        private void buttonSubmit_Click(object sender, EventArgs e)
        {
            CommunicationLine communicationLineV = (CommunicationLine)comboBoxCommunicationLine.SelectedIndex;
            CabelType cabelTypeV = (CabelType)comboBoxCabelType.SelectedIndex;
            int lenght = int.Parse(textBoxCabelLenght.Text);
            int speed = int.Parse(textBoxCabelSpeed.Text);
            if (isConnectionPosible(communicationLineV, cabelTypeV, lenght, speed))
            {
                labelResultValue.Text = "Да";
                
            }
            else
            {
                labelResultValue.Text = "Нет";
                
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void comboBoxCabelType_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void comboBoxCommunicationLine_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (comboBoxCommunicationLine.SelectedIndex == 0)
            {
                // cabelType = { "wifi 2.4", "wifi 5", "cat 5", "cat 5e", "cat 6", "cat 6e", "cat 7", "om1", "om2", "om3", "om4", "os1", "os2" };

                comboBoxCabelType.Items.Clear();

                comboBoxCabelType.Items.Add("cat 5");
                comboBoxCabelType.Items.Add("cat 5e");
                comboBoxCabelType.Items.Add("cat 6");
                comboBoxCabelType.Items.Add("cat 6e");
                comboBoxCabelType.Items.Add("cat 7");
             }
            if (comboBoxCommunicationLine.SelectedIndex == 1)
            {
                //comboBoxCabelType.Items.AddRange(cabelType);
                comboBoxCabelType.Items.Clear();

                comboBoxCabelType.Items.Add("wifi 5");
                comboBoxCabelType.Items.Add("wifi 2.4");
            }
            if (comboBoxCommunicationLine.SelectedIndex == 2)
            {
                comboBoxCabelType.Items.Clear();

                comboBoxCabelType.Items.Add("om1");
                comboBoxCabelType.Items.Add("om2");
                comboBoxCabelType.Items.Add("om3");
                comboBoxCabelType.Items.Add("om4");
            }
            // comboBoxCabelType
        }
    }
}
оказалось все очень просто
))))
Qbinik вне форума Ответить с цитированием
Старый 19.12.2022, 15:48   #12
Valick
Форумчанин
 
Регистрация: 27.04.2022
Сообщений: 483
По умолчанию

Цитата:
Сообщение от Qbinik Посмотреть сообщение
оказалось все очень просто
Да говнокодить всегда легко, не зависимо от языка и платформы
Вы знакомы с понятием DTO? Оно тут просто напрашивается.

Добаление нового вида связи должно сводиться к чему-то подобному

Код:
LinkCollection.add(new Link("os3", "Проводная", 50000, 500000));
Хотя видимо я загоняюсь, для лабораторной работы и так сойдёт.

Последний раз редактировалось Valick; 19.12.2022 в 16:08.
Valick на форуме Ответить с цитированием
Старый 20.12.2022, 09:51   #13
Qbinik
Пользователь
 
Регистрация: 08.10.2022
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Valick Посмотреть сообщение
Хотя видимо я загоняюсь, для лабораторной работы и так сойдёт.
ну да
Qbinik вне форума Ответить с цитированием
Старый 20.12.2022, 13:55   #14
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Цитата:
Сообщение от Valick Посмотреть сообщение
pu4koff, спасибо. Пока абсолютно нет времени с этим разбираться. Если кто-то подскажет с минимальным каркасом форм для линуха (без ASP.NET, так как подозреваю, что это как из пушки по воробьям), буду благодарен.
Так ASP.NET - это веб-сервер. Десктопное приложение на нём делается только если Electron какой притащить. Подобным образом сделан VS Code, только там в недрах не .NET, а что-то другое.
Для тесктопа под линуксами есть Avalonia, Uno Platform, MAUI.
Ни одна из этих штук мне не нравится, сыро, сам подход пагубен. Avalonia идеологически нормальная. По сути сторонняя кроссплатформенная реализация WPF, но там версия далека от релиза.
Есть ещё вроде обёртки для GTK, Qt и т.п. но это я в глаза не видел.
pu4koff вне форума Ответить с цитированием
Старый 20.12.2022, 13:59   #15
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Цитата:
Сообщение от Valick Посмотреть сообщение
Да говнокодить всегда легко, не зависимо от языка и платформы
Вы знакомы с понятием DTO? Оно тут просто напрашивается.
DTO тут вообще никаким боком. Model, ViewModel (если на MVVM замахиваться) и т.п.
DTO - это про передачу данных, а не про отображение на форме.
pu4koff вне форума Ответить с цитированием
Старый 20.12.2022, 14:12   #16
Valick
Форумчанин
 
Регистрация: 27.04.2022
Сообщений: 483
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
это про передачу данных
как ни странно, но мы передаём объект в другой объект (и передаём как раз совокупность параметров)

Цитата:
DTO — это класс с данными, но без логики. Он используется для передачи данных между слоями приложения и между приложениями, для сериализации и аналогичных целей.

Примером DTO является любой класс, который содержит только поля и свойства. Он не должен содержать методов для получения и изменения данных.

Последний раз редактировалось Valick; 20.12.2022 в 14:16.
Valick на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выпадающие списки Aqil_f Microsoft Office Excel 7 19.05.2014 00:08
Выпадающие списки alexssses PHP 7 09.09.2013 22:59
Выпадающие списки Доктор Microsoft Office Excel 4 07.01.2012 00:33
Выпадающие списки. Ras2im Microsoft Office Excel 13 08.03.2011 13:00
Выпадающие списки Доктор Microsoft Office Excel 14 17.08.2010 19:41