10.2. Практикум¶
Примечание
При выполнении заданий используйте заготовки решений: ->
Репозиторий.
Подробнее: см. Цикл выполнения и защиты заданий.
Предупреждение
В данном разделе НЕ должны использоваться сторонние модули для реализации заданной функциональности. Например, при реализации класса РимскоеЧисло
не нужно использовать модуль py-romanify
и т.д.
10.2.1. Римское число¶
Создайте класс Roman
(РимскоеЧисло
), представляющий римское число и поддерживающий операции +
, -
, *
, /
.
Совет
При реализации класса следуйте рекомендациям:
операции
+
,-
,*
,/
реализуйте как специальные методы (__add__
и др.);методы преобразования имеет смысл реализовать как статические методы, позволяя не создавать экземпляр объекта в случае, если необходимо выполнить только преобразования чисел.
10.2.2. Пиццерия¶
Пиццерия предлагает клиентам три вида пиццы: Пепперони
, Барбекю
и Дары Моря
, каждая из которых определяется тестом, соусом и начинкой.
Требуется спроектировать и реализовать приложение для терминала, позволяющее обеспечить обслуживание посетителей.
Дополнительная информация
В бизнес-процессе работы пиццерии в контексте задачи можно выделить 3 сущности (объекта):
Терминал
: отвечает за взаимодействие с пользователем:вывод меню на экран;
прием команд от пользователя (выбор пиццы, подтверждение заказа, оплата и др.);
Заказ
: содержит список заказанных пицц, умеет подсчитывать свою стоимость;Пицца
: содержит заявленные характеристики пиццы, а также умеет себя подготовить (замесить тесто, собрать ингредиенты и т.д.), испечь, порезать и упаковать.
Т.к. пиццерия реализует несколько видов пиццы, которые различаются характеристиками, логично будет сделать общий класс Пицца
, а в дочерних классах (например, классе ПиццаБарбекю
) уточнить характеристики конкретной пиццы.
Диаграмма указанных классов в нотации UML приведена на Рисунке 10.2.1.

Рисунок 10.1.1 - UML-диаграмма классов приложения¶
Алгоритм работы пользователя с терминалом может выглядеть следующим образом:
Терминал отображает список меню.
Терминал создает новый заказ.
Клиент вводит номер пиццы из меню.
Заказ добавляет в список выбранную пиццу.
Действия 3-4 повторяются до подтверждения или отмены.
Клиент подтверждает заказ (или отменяет).
Терминал выставляет счет, отображая информацию о заказе.
Терминал принимает оплату.
Заказ отдается на выполнение.
10.2.3. Банковские вклады¶
Банк предлагает ряд вкладов для физических лиц:
Срочный вклад: расчет прибыли осуществляется по формуле простых процентов;
Бонусный вклад: бонус начисляется в конце периода как % от прибыли, если вклад больше определенной суммы;
Вклад с капитализацией процентов.
Реализуйте приложение, которое бы позволило подобрать клиенту вклад по заданным параметрам.