11 / 11 / 2
Регистрация: 15.07.2016
Сообщений: 132
|
||||||
1 | ||||||
Работа с разными колекциями14.06.2017, 02:58. Показов 1354. Ответов 5
Метки нет (Все метки)
Строю по задачке модель магазина. В классе "Store" метод "sell_product" нужно сделать по принципу:
1. Берем первого клиента из очереди "queue". 2. Залазим в его список покупок "shopping_list ", берем первый. По имени товара проверяем есть ли товар на складе магазина "products_list". 3. Проверяем хватает ли товара на складе "quantity". Пример: у клиента в списке - "морковка 10 шт." а на складе есть только 5 шт. 4. Проверяем хватит ли у клиента денег "money" на покупку. (price * quantity). 5. Продаем товар, идем дальше по списку покупок. У меня возникли проблемы с этими коллекциями. У них нет индексирования. В одном foreach нельзя получить ссылки на объекты сразу 2-х коллекций. Не получается одновременно доступатся до полей 2-х объектов разных коллекций, чтобы проводить поиск из пункта 2 и проверку полей из пункта 3. У коллекции SortedSet есть метод Contains(), но он не возвращает объект который нашел. Нужно писать поиск в ручную? или найдется решение по изящнее? Подскажите как это сделать.
0
|
14.06.2017, 02:58 | |
Ответы с готовыми решениями:
5
работа с разными АК Работа с разными пакетами Работа с разными базами данных Работа с потоками с разными приоритетами |
34 / 34 / 16
Регистрация: 04.06.2017
Сообщений: 158
|
||||||
14.06.2017, 10:04 | 2 | |||||
Сообщение было отмечено Pavel Rem как решение
Решение
Ну у меня получилось примерно это
Добавлено через 7 минут Ну там соответственно еще по логике нужно добавить уменьшение товара на складе и уменьшение денег у клиента при удачной покупке Добавлено через 5 минут да и клиента я бы удалял уже после совершения всех покупок, вдруг он в связи с нехваткой денег или отсутствием товара, решит изменить список покупок И да я еще не проверял, на то что если о товаре из списка покупателя на складе вообще ничего не знают... тоже обработать нужно..
1
|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
||||||
14.06.2017, 10:26 | 3 | |||||
Pavel Rem, зачем тут SortedSet, Queue и Stack? По моему они тут не нужны. Если конечно они не по заданию... Я бы сделал так:
0
|
34 / 34 / 16
Регистрация: 04.06.2017
Сообщений: 158
|
|
14.06.2017, 10:35 | 4 |
Зачем? зачем?... Что бы жизнь медом не казалась
0
|
11 / 11 / 2
Регистрация: 15.07.2016
Сообщений: 132
|
|
14.06.2017, 14:25 [ТС] | 5 |
Спасибо! Объясните пожалуйста что происходит в этой строке.
А насчет: Клиент удаляется из очереди в этой строке
0
|
34 / 34 / 16
Регистрация: 04.06.2017
Сообщений: 158
|
|
14.06.2017, 23:49 | 6 |
Получаем коллекцию элементов(конкретно в данном случае из одного элемента) типа Product из элементов (Продуктов) списка product_list в котором название( Product.Name из product_list(n.Name)) продукта совпадает с названием текущего(Product.Name из shopping_list (i.Name)) продукта из листа клиента.
Добавлено через 24 минуты Вот именно что здесь У Вас клиент удаляется на кассе. Тобишь перед тем как начинается сверка листов(перед циклом). А по хорошему он должен удаляться после оплаты покупки или отказа от покупки тобишь после выхода из цикла. P.S. Кстати, реализация Dark Byte метода будет более правильная, нежели моя. Правда походу он вообще забыл клиента из очереди удалить. Так что на его кассе очередь будет вечной, и покупатель все купив так и останется стоять у кассы
1
|
14.06.2017, 23:49 | |
14.06.2017, 23:49 | |
Помогаю со студенческими работами здесь
6
Работа с разными типами данных Работа с разными версиями Outlook Работа с разными конфигурациями наполнения формы Работа с TStringList между разными формами Работа с разными объектами в одной процедуре Работа с Access с разными версиями .NET Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Использование связки C# и PHP в корпоративной разработке и микросервисной архитектуре
InfoMaster 16.01.2025
Введение в интеграцию C# и PHP
В современной корпоративной разработке все чаще возникает потребность в создании гибких и масштабируемых решений, способных эффективно решать широкий спектр. . .
|
Как использовать Kerio дома для управления сетью и пользователями
InfoMaster 16.01.2025
Использование технологий для улучшения повседневной жизни стало неотъемлемой частью современного быта. Одной из таких технологий является Kerio — мощный инструмент для управления сетью и. . .
|
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
|
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
|
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
|
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
|
Параллельное программирование: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование
Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
|
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
|
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке
В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
|
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
|
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins
В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
|
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang
Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
|