C# Кофемашина

Отменен
Заказ
4525140
Раздел
Программирование
Предмет
ООП - Объектно-ориентированное программирование
Антиплагиат
Не указан
Срок сдачи
20 Янв 2022 в 20:55
Цена
Договорная цена
Блокировка
10 дней
Размещен
14 Янв 2022 в 17:24
Просмотров
211
Описание работы

Реализовать следующую модель: имеется кофемашина (CoffeeMachine), позволяющая готовить различные варианты кофе.

В соответствующие ёмкости машины (контейнеры) в определённых количествах загружаются ресурсы: зёрна кофе, вода и молоко. Каждый контейнер вмещает ограниченное количество ресурса, имеет ёмкость (capacity). В любой момент времени в контейнер можно загрузить или извлечь из него определённое количество ресурса. Извлечь (метод GetResource) больше, чем осталось -- нельзя. Загрузить (метод LoadResource) больше, чем он может вместить (с учётом имеющихся остатков) -- нельзя. Такие ситуации должны сопровождаться запуском исключений.

Для приготовления кофе можно использовать несколько разных рецептов: эспрессо, фильтрованный, капучино. Каждый рецепт требует определённого количества ресурсов для приготовления, а также имеет название (в терминах исходного кода его удобно отразить перечислением RecipeName. Сопоставление рецепта и набора требуемых ресурсов можно выразить с помощью словаря (см. “Полезные советы” к предыдущей лабораторной работе в части перечислений)).

Перед тем, как машина будет готова к использованию, для неё нужно определить набор доступных рецептов (он определён производителем и не меняется). С помощью вызова метода приготовления кофе BrewCoffee машина будет принимать команду на приготовление указанного рецепта (в качестве параметра передаётся нужный элемент перечисления). Машина, имея в распоряжении ресурсы, будет забирать из контейнеров указанное в соответствующем рецепте количество воды, молока и зёрен. Если ресурсов недостаточно, должно запускаться исключение (см. ”Полезные советы”), говорящее о проблеме.

Поскольку устройство машины скрыто от пользователя, его также можно смоделировать с помощью, условно, двух частей: модуль помола (GrinderUnit) и модуль варки (BrewingUnit). Эти модули являются частью машины и пользователь не взаимодействует с ними напрямую. Т.е. при вызове метода приготовления кофе машина отдаёт нужное количество зёрен модулю помола, который возвращает помол (GroundCoffee), затем передаёт этот помол модулю варки, который и завершает работу по приготовлению напитка (Coffee) (см. “Модель предметной области” из “Полезных советов”).

Таким образом, результатом должно быть решение для Visual Studio, состоящее из следующих частей:

1) Проект с модульными тестами (тип проекта -- “Тестовый проект xUnit”), покрывающими фукнциональность контейнеров, модулей варки и помола, а также кофемашины. См. “Полезные советы”, раздел “Разработка через тестирование (TDD)”. Тестами должны быть покрыты составные части модели, требования к которым приведены выше.

2) Проект с моделью кофемашины (тип проекта -- “Библиотека классов”).

Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу 1 год
Средний балл 4.54
Стоимость Назначаете сами
Эксперт Выбираете сами
Уникальность работы от 70%
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Темы журнала
Показать ещё
Прямой эфир