**Требования:** 1. Придерживайтесь принципа DRY (Don’t repeat yourself). 2. Обработка и генерация исключительных ситуаций на ваше усмотрение. Доработайте интерактивное консольное приложение для терминала формирования ассортимента товаров (витрины). Предусмотреть вывод информации по ассортименту, каждый экземпляр товара имеет свой уникальный код. Код представляет собой числовое значение и его строковый вид в формате штрихкода. Витрина представлена в виде последовательности ячеек (полок) для хранения. В каждой ячейке может храниться максимум один экземпляр товара. При старте программы ассортимент заполнен товаром частично. **Терминал позволяет:** - Выставлять/снимать товар на витрины; - Выводить информацию по товару, в отсортированном виде и по позиции; - Менять товары местами, заменять и выставлять новый; Пример интерфейса программы: ![Интерфейс программы](../../Pictures/ЛБ05_01.%20Интерфейс%20программы.png) **Требования:** 1. Визуализация 2-3 разных витрин: - Витрина должна отображать визуально свой ID, и ID каждого товара в своей позиции; - Можно выбирать как саму витрину, так и просматривать конкретный товар в позиции (путем перемещения указателя на WASD); - Добавить команды для сортировки, очистки витрины; - Добавить команду очистки ячейки витрины; - Добавить команду добавления новых товаров на витрину; - Добавить команду сохранения выбранного товара в хранилище; - Добавить команду вставки в пустую позицию витрины из хранилища и замены товара в случае, если позиция не пустая; - По желанию, визуализировать поиск по ID или Наименованию. 2. Визуализация информации по выбранному товару: - Отображение штрих-кода; - Отображение остальных характеристик; 3. Визуализация информации по сохраненному товару: - Отображение базовой информации, хотя бы ID. 4. Повторять все как на рисунке с примером не обязательно. **Пример добавления товара:** ![Пример добавления товара](../../Pictures/ЛБ05_02.%20Пример%20добавления%20товара.png) ![Пример добавления товара](../../Pictures/ЛБ05_03.%20Пример%20добавления%20товара.png)