Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.91/35: Рейтинг темы: голосов - 35, средняя оценка - 4.91
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468

Приложение MVVM. VMs и навигация

08.02.2023, 19:59. Показов 9722. Ответов 134
Метки mvvm, wpf (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Имеются следующие вопросы.
Как при соблюдении mvvm передать в VM свойства view такие как SelectedItem? Знаю, что можно передавать через параметр команды, но в моем случае за раз в VM нужно отправить 2 объекта - логин и пароль (в модели у меня нет этих свойств, соответственно, я не должен определять их в VM. Хотя многие так делают, но это всё-таки нарушение). Нашёл решение с помощью применения MultiBinding для параметра, но мне кажется, что это слишком громоздко, так как при таком подходе каждый раз придется реализовывать конвертер. Вообще, говоря, очень трудно приходится, когда в VM нет нужных свойств, от этого обстоятельства не выходит отключать кнопку (альтернативой может служить триггер на свойство IsEnabled во view, но от этого снова приходится прикладывать больше усилий из-за описания стиля и, возможно, конвертера. Элд Хасп подсказывал, что для этих целей можно сделать прокси класс, но я недоумеваю как и где. Было бы удобно, если бы по правилам mvvm в VM допускалось хранить все необходимые свойства, а не только те, которые имеются в модели.

По той же причине не стал помещать в VM команду для кнопки, которая предназначена для входа в роли гостя. Пока что в коде view подписал хелпера на щелчок по ней. В результате просто должен произойти переход к другому view, это не логика модели. Сама навигация вызывает дополнительный вопрос, нужны рекомендации по её реализации.

Также можно отдельно рассмотреть модель. Правда там пока что немного кода. Важны все замечания.

Ещё имеется dll библиотека с вспомогательными классами, применимыми к mvvm. По ней тоже можно сделать замечания.

Вот ссылка на репозиторий https://github.com/INexteR/NewTrade/tree/Trial. В нем также содержится документ с заданием.

Связанные темы
  1. Приложение MVVM, VMs и навигация: Создание Модели Авторизация.
  2. Приложение MVVM. VMs и фильтрация по значению свойства (выбрать по производителю).
  3. Приложение MVVM. VMs и поиск (фильтрация по текстовому значению).
  4. Приложение MVVM. Ограничение пользовательского ввода для численных свойств.
  5. Приложение MVVM. Представление авторизации - Валидация.
  6. Приложение MVVM. Контекстное меню (удаление, редактирование) для элемента (Товара) в ListBox.
  7. Приложение MVVM. Диалог добавления/редактирования товара: получение данных, вызов, взаимодействие с VM и прочее.


Техническое ЗаданиеАвторизация
При запуске приложения окно входа – первое, что видит пользователь. На ней пользователю предлагается ввести свой логин и пароль или есть возможность перейти на экран просмотра товаров в роли гостя.
Только после удачной авторизации пользователь получает доступ к остальным модулям системы:
• авторизованный клиент может просмотреть товары;
• менеджер может просматривать товары;
• администратор может добавлять/редактировать/удалять товары.
Реализуйте необходимые интерфейсы для всех пользователей системы. После входа в любую учетную запись должна быть реализована возможность выхода на главный экран – окно входа. При переходе в любую учетную запись в интерфейсе (правый верхний угол) должны отображаться ФИО пользователя.
После первой попытки неуспешной авторизации система выдает сообщение о неуспешной авторизации, а затем помимо ввода логина и пароля просит ввести captcha, состоящую из 4 символов (цифры и буквы латинского алфавита) и графического шума.
CAPTCHA - должна содержать минимум 4 символа (буква или цифра), которые выведены не в одной линии. Символы должны быть либо перечеркнуты либо наложены друг на друга.
После попытки неудачной авторизации с вводом captcha, система блокирует возможность входа на 10 секунд.

Список товаров
Очень важно постоянно получать актуальную информацию об остатках товаров на складах, поэтому необходимо реализовать вывод товаров, которые хранятся в базе данных, согласно предоставленному макету. При отсутствии изображения необходимо вывести картинку-заглушку из ресурсов (picture.png) .
Вывод должен осуществляться списком.

Обратите внимание, должна выводится вся информация о товаре из базы данных.
Товары, которых нет на складе, должны отображаться на сером фоне.
Пользователь должен иметь возможность искать товары, используя поисковую строку. Поиск должен осуществляться по всем доступным данным, в том числе по нескольким атрибутам одновременно.
Пользователь должен иметь возможность отсортировать товары (по возрастанию и убыванию) по стоимости.
Кроме этого, пользователь должен иметь возможность отфильтровать данные по производителю. Выбор производителя должен быть из выпадающего списка. Первым элементом в выпадающем списке должен быть “Все производители”, при выборе которого настройки фильтра сбрасываются.
Поиск, сортировка и фильтрация должны происходить в реальном времени, без необходимости нажатия кнопки “найти”/ ”отфильтровать” и т.п. Фильтрация и поиск должны применяться совместно. Параметры сортировки, выбранные ранее пользователем, должны сохраняться и во время фильтрации с поиском.
В верхней части окна необходимо показывать количество выведенных данных и общее количество записей в базе. Например, 15 из 37 . В случае, если данные в таблицу выводятся после фильтрации или поиска, количество выведенных данных необходимо обновить исходя из размера выборки.
Реализуйте удаление товара. Товар, который присутствует в заказе, удалить нельзя. Товар, у которого есть дополнительные товары, удаляется из базы данных вместе с информацией о дополнительных товарах, если ни один из товаров (даже дополнительный) не заказан.
Реализуйте переход на окно добавления товара и окно редактирования выбранного товара.

Добавление/ редактирование товаров
Необходимо реализовать возможность добавления и редактирования исходных товаров (сырья) для всей продукции компании. Редактировать данные может только администратор.
Необходимо добавить возможность редактирования данных существующего товара, а также добавление нового товара в новом окне - форме для добавления/ редактирования товара. Переходы на данное окно должны быть реализованы из формы списка: для редактирования - при нажатии на конкретный элемент, для добавления - при нажатии кнопки “Добавить товар”.
На форме должны быть предусмотрены следующие поля: наименование, категория (выпадающий список), количество на складе, единица измерения, поставщик, стоимость за единицу, изображение и подробное описание (с возможностью многострочного ввода) . Стоимость товара может включать сотые части, а также не может быть отрицательной. Минимальное количество также не может принимать отрицательные значения.
При открытии формы для редактирования все поля выбранного объекта должны быть подгружены в соответствующие поля из базы данных, а таблица заполнена актуальными значениями.
ID товара при добавлении не отображается, автоматически вычисляется +1 к имеющемуся в БД, при редактировании ID доступно только для чтения.
Пользователь может добавить/ заменить изображение у товара. Изображение, которое загружает пользователь при добавлении или редактировании, должно сохраняться в папку с приложением. Для оптимального объема реализуйте ограничение на размер фото: 300Х200 пикселей. В базе данных необходимо хранить путь к изображению. При замене изображения, старое фото из папки должно быть удалено.
Для того, чтобы администратор случайно не изменял несколько товаров, предусмотрите невозможность открытия более одного окна редактирования.
После редактирования/добавления/удаления товаров данные в окне списка товаров должны быть обновлены.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.02.2023, 19:59
Ответы с готовыми решениями:

Приложение MVVM, VMs и навигация: Создание Модели Авторизация.
Здравствуйте. Имеются следующие вопросы. Как при соблюдении mvvm передать в VM свойства view такие как SelectedItem? Знаю, что можно...

Приложение MVVM. VMs и поиск (фильтрация по текстовому значению)
Пользователь должен иметь возможность искать товары, используя поисковую строку. Поиск должен осуществляться по всем...

Приложение MVVM. VMs и фильтрация по значению свойства (выбрать по производителю)
Да, понятно, разобрался, отличное решение. Сейчас работаю над фильтрацией и поиском. Возникают вопросы. Фильтрация: пользователь ...

134
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
02.03.2023, 17:02  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Элд Хасп Посмотреть сообщение
А где мы будем эту БД хранить?
Ну так мы же тасуем её как отдельный файл sqliteTest.db наравне с папкой решения. Это ли не хранение?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
02.03.2023, 17:16
Цитата Сообщение от INexteR Посмотреть сообщение
Ну так мы же тасуем её как отдельный файл sqliteTest.db наравне с папкой решения.
Не путайте Решение и Сборку.
Файл sqliteTest.db не включён в проект и не является частью сборки.
Кроме того, константное имя БД - это временное решение.
Потом можно будет задавать его из App или, вообще, из внешних настроек.

Так же - да, можно SQLite включить в сборку и дублировать его.
Но если вы будете использовать серверную бд?
Тогда вместо названия файла будет строка подключения.
А Code First для любой БД правильно создаст начальную базу.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
02.03.2023, 17:45  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Так же - да, можно SQLite включить в сборку и дублировать его.
Просто я думал что мы используем SQLite для того чтобы избавиться от классов с тестовыми данными

Добавлено через 36 секунд
Ну хорошо, пусть будут
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
02.03.2023, 18:08
Цитата Сообщение от INexteR Посмотреть сообщение
мы используем SQLite для того чтобы избавиться от классов с тестовыми данными
Не...
Это временное решение, ввиду того что без сервера я не могу проверять работу контекста БД.
Потом вы замените SQLite на нужную вам БД, и текстовые данные будут так же использоваться для её инициализации.

Добавлено через 2 минуты
Вариант с парсингом коллекций был неудобен тем, что требовал разного кода для работы с коллекциями и работой с БД.
Поэтому "простого переключения" от одного к другому не получалось.
Я бы отлаживал один код, а вы запускали другой - и неизвестно было бы где и как искать ошибку, если бы она возникла.
С SQLite снимается эта неопределённость.
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
03.03.2023, 00:10
Цитата Сообщение от INexteR Посмотреть сообщение
Microsoft.Data.Sqlite.SqliteException: "SQLite Error 19: 'FOREIGN KEY constraint failed'."
Не учёл, что может быть два разделителя подряд для пустого поля.
В результате пропускались поля инициализации.
Фиксацию отправил.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
03.03.2023, 10:07  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Не учёл, что может быть два разделителя подряд для пустого поля.
В результате пропускались поля инициализации.
Фиксацию отправил.
Спасибо.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
03.03.2023, 22:26
INexteR, я там пару фиксаций отправил.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
04.03.2023, 21:43  [ТС]
Элд Хасп, отправил фиксацию! Добавил необходимые интерфейсы типа ISuppliersSource, ICategoriesSource, но они только с одним методом получения коллекции, без события, так как счел его ненужным. Они загружаются только один раз перед товарами, а когда дело доходит до товаров, то все эти ранее загруженные коллекции прикрепляются к контексту. То есть ещё прикрепление реализовано в тривиальной манере. Также добавил окно AddOrUpdateDialog для соответствующих действий, но пока пустое. И ещё теперь есть команда удаления товара.

Возникли такие вопросы. Почему Вы в методах Add/Update передаете в контекст копию товара? Почему не сам объект? И почему в ProductsView в ListBox является выбранным первый элемент? У выделенного ListBoxItem фон обычно голубой, а тут он светло-серый. Я опознал этот элемент выбранным по тому, что при переходе к каталогу кнопка удаления включена. В разметке выбранный элемент не задан
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
05.03.2023, 10:27
Цитата Сообщение от INexteR Посмотреть сообщение
Почему Вы в методах Add/Update передаете в контекст копию товара?
Потому что у нас приходит IProduct, а для CatalogContext нужен internal partial class Product, который может создать только сама Модель.

Добавлено через 3 минуты
Я сейчас доделаю маппер чтобы облегчить копирование и создание копий.
Потом дальше продолжу. А то появляется много дублирующего кода.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
05.03.2023, 10:56  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Потому что у нас приходит IProduct, а для CatalogContext нужен internal partial class Product, который может создать только сама Модель.
А нельзя выполнить downcast?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
05.03.2023, 13:31
INexteR, я вроде закончил с маппером.
Теперь можно будет приступить к созданию страницы редактрования-добавления товара.
Посмотрите внесённые изменения. и обратите внимание на изменения в интерфейсе IProductsViewModel.
Его команды в ProductsViewModel нужно реализовать.
Так же в IProductsViewModel стоит добавить все интерфейсы источников.

Добавлено через 3 минуты
Цитата Сообщение от INexteR Посмотреть сообщение
А нельзя выполнить downcast?
Каким образом?
Мы же в View или VM будем создавать НОВЫЕ экземпляры товаров, с новыми данными.
Их объединяет с Товаром репозитория, только общий интерфейс. Я для downcast нужно чтобы "Товар Представления" был производным от "Товара Репозитория."

Добавлено через 1 минуту
Посмотрите пример в Shop.cs:
C#
12
13
14
15
        public Shop(bool recreate = false)
        {
            // Тест создания маппером
            var pr = Mapping.Mapper.Create<Product>(new {Name = "Проверка"});
Маппер может создать экземпляр даже из анонимного класса.

Добавлено через 4 минуты
Цитата Сообщение от INexteR Посмотреть сообщение
но они только с одним методом получения коллекции, без события, так как счел его ненужным.
У нас же асинхронная загрузка всех коллекций.
Как VM узнает что она завершилась?
Если загрузка завершается для всех одновременно, то можно сделать один общий интерфейс (переделать IManufacturersSource) с одним событием и несколькими источниками. Событие будет означать что нужно обновить ВСЕ источники.

Добавлено через 1 час 4 минуты
INexteR, добавил диалоги редактирования-просмотра.
Посмотрите последнюю фиксацию.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
05.03.2023, 18:00  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Каким образом?
Вот это
C#
1
context.Products.Add(product.Create());
Заменить на
C#
1
context.Products.Add((Product)product);
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Маппер может создать экземпляр даже из анонимного класса.
Здорово
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Как VM узнает что она завершилась?
В каталоге используются только коллекции производителей/товаров. Остальные коллекции будут нужны только в диалоге добавления и редактирования. А к тому времени они уже будут загружены, так как я написал так, что поставщики, категории и т. д. загружаются до товаров. И когда товары загружаются, они используют ранее загруженные коллекции, то есть они прикрепляются к контексту

Добавлено через 1 час 12 минут
Цитата Сообщение от INexteR Посмотреть сообщение
И почему в ProductsView в ListBox является выбранным первый элемент? У выделенного ListBoxItem фон обычно голубой, а тут он светло-серый. Я опознал этот элемент выбранным по тому, что при переходе к каталогу кнопка удаления включена. В разметке выбранный элемент не задан
А вот это не знаете?

Добавлено через 2 часа 33 минуты
Элд Хасп, я посмотрел вашу фиксацию.
Хочу сказать, что давайте не будем добавлять режимы дизайнера. У нас и так много кода получается. До этого я задавал вопрос по этому поводу просто из интереса.
И вот ещё насчет диалога. Для чего Вы описываете базовый класс для разных типов? Требуется же только добавление и редактирование товара. И зачем в диалоге режим View? Я его убрал, он по заданию не нужен
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
05.03.2023, 20:42
Цитата Сообщение от INexteR Посмотреть сообщение
Заменить на
Для этого нужно чтобы product был объектом производным от Product из Модели (Репозитория).
Для удаления, это ещё может быть так.
А для обновления и добавления это точно не будет так.

Цитата Сообщение от INexteR Посмотреть сообщение
Остальные коллекции будут нужны только в диалоге добавления и редактирования. А к тому времени они уже будут загружены,
Нельзя рассчитывать на то что к тому времени....
Вот вам приспичит изменить представление и показать сразу список производителей и чего-то там ещё.
И теперь из-за изменений представления менять Модель? Такого быть не должно.
Если событие загрузки у них единое, то и нужно их всех объединить в одном интерфейсе с одним событием.

Цитата Сообщение от INexteR Посмотреть сообщение
А вот это не знаете?
Пока не было времени посмотреть.

Добавлено через 2 минуты
INexteR, на данный момент у вас уже всё есть для создания формы редактирования-добаления.
В основное Окно нужно только добавить кликер или команду для вызова диалога редактирования.

Добавлено через 10 минут
INexteR, интерфейс IProductsViewModel это уровень VM и он может "легально" использовать библиотечные классы VM.
Поэтому лучше в нём использовать RelayCommand с нужным типом. ICommand только добавляет лишнего кода.

Добавлено через 3 минуты
Цитата Сообщение от Элд Хасп Посмотреть сообщение
C#
65
66
67
68
69
70
71
72
73
74
75
        private void RemoveProductExecute(IProduct product)
        {
            try
            {
                _shop.Remove(product);
            }
            catch (InvalidOperationException e)
            {
                MessageBox.Show(e.Message);
            }
        }
В VM не может быть вызовов методов UI. В том числе MessageBox или консоли.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
05.03.2023, 20:49  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Поэтому лучше в нём использовать RelayCommand с нужным типом. ICommand только добавляет лишнего кода.
Я подсмотрел тип команды в IAuthorizationViewModel. Там указан ICommand. Поэтому и тут так сделал
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
05.03.2023, 20:50
Цитата Сообщение от INexteR Посмотреть сообщение
Остальные коллекции будут нужны только в диалоге добавления и редактирования.
C#
52
        public ObservableCollection<IManufacturer> Manufacturers { get; } = new();
Тоже лишнее.
Вы же сами пишите что эти коллекции иммутабельные.
Достаточно IEnumerable<IManufacturer>.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
05.03.2023, 20:54  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
В VM не может быть вызовов методов UI. В том числе MessageBox или консоли.
Ну это просто пока так на время)))) Я там сильно не задумывался
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
05.03.2023, 20:54
Цитата Сообщение от INexteR Посмотреть сообщение
Я подсмотрел тип команды в IAuthorizationViewModel. Там указан ICommand.
Там у нас ещё не было разделения на библиотеки разных уровней.
И ссылка на RelayCommand была бы циклической, что создало бы ошибку во время сборки.
Сейчас мы ужу разделили интерфейсы, поэтому можно безопасно использовать RelayCommand.
1
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
05.03.2023, 20:56  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
И ссылка на RelayCommand была бы циклической, что создало бы ошибку во время сборки.
Ах вот оно что
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 2
05.03.2023, 20:59
Цитата Сообщение от INexteR Посмотреть сообщение
это просто пока так на время)))
Да.
Для нестрого MVVM или тестирования - чёрт с ним.
А так у нас задан отлов исключений в App.
Если всё правильно вызывается, то исключения будут отловлены там.
0
 Аватар для INexteR
17 / 16 / 1
Регистрация: 25.01.2023
Сообщений: 468
05.03.2023, 21:10  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Пока не было времени посмотреть.
Вроде это случается из-за того, что по умолчанию в представлении коллекции первый элемент установлен в качестве CurrentItem

Добавлено через 5 минут
Цитата Сообщение от Элд Хасп Посмотреть сообщение
А так у нас задан отлов исключений в App.
Но что-то они как-то не ловятся. Быть может, Вы видели эти строки:
C#
1
2
3
4
5
6
7
8
9
10
11
public Task LoadDataAsync() => Task.Run(() =>
{
    _ = GetUnits();
    _ = GetManufacturers();
    _ = GetSuppliers();
    _ = GetCategories();
    _ = GetProducts();
    _ = GetOrders();
    //почему-то не перехватывается ↓
    //throw new Exception("Тестовое исключение");
});
Добавлено через 4 минуты
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Нельзя рассчитывать на то что к тому времени....
Вот вам приспичит изменить представление и показать сразу список производителей и чего-то там ещё.
Да, согласен, требования могут варьироваться в течение времени. Но в этом задании, честно сказать, ничего не будет меняться
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.03.2023, 21:10

Навигация по страницам wpf и mvvm
Здравствуйте Подскажите, плиз, есть ли способ , в рамках паттерна mvvm, вернутся на исходную страницу, без использования кнопок...

Навигация страниц UWP MVVM
Добрый день! Мой проект состоит из 3х страниц: 1. Загрузка данных с сервера; 2. Расчётные операции на основе этих данных; 3....

Приложение MVVM. Быстрая "Нестрогая MVVM" реализация
В этой теме будет размещена простая и быстрая реализация. Основная тема:...

MVVM первое приложение
Здравствуйте. Пишу курсовую по БД, и почитав в инете разные ссылки решил сделать по шаблону MVVM. идея шаблона понятна, но сама...

WPF приложение с паттерном MVVM
Добрый день Всем! Хочу сделать небольшое приложение с формулами, но нужна помощь в освоении, опыт программирования имею только на языке...


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

Или воспользуйтесь поиском по форуму:
100
Ответ Создать тему
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru