Предмет: Информатика, автор: Buingocchi

помогите написать код на Python. срочно надо, отдам 20 балов.
Создайте абстрактный класс Dish, который определяет общий интерфейс для всех блюд, и классы Starter, MainCourse и Dessert, которые наследуются от Dish и предоставляют конкретную реализацию для каждого типа блюд. Кроме того, можно создать абстрактный класс Order, который определяет общий интерфейс для заказов, и классы TableOrder и DeliveryOrder, которые наследуются от Order и предоставляют конкретную реализацию для заказов в ресторане и на доставку соответственно.

Ответы

Автор ответа: pk5900440
1

Ответ:

from abc import ABC, abstractmethod

class Dish(ABC):

   @abstractmethod

   def get_description(self):

       pass

   

   @abstractmethod

   def get_price(self):

       pass

class Starter(Dish):

   def __init__(self, description, price):

       self.description = description

       self.price = price

   def get_description(self):

       return self.description

   

   def get_price(self):

       return self.price

class MainCourse(Dish):

   def __init__(self, description, price):

       self.description = description

       self.price = price

   def get_description(self):

       return self.description

   

   def get_price(self):

       return self.price

class Dessert(Dish):

   def __init__(self, description, price):

       self.description = description

       self.price = price

   def get_description(self):

       return self.description

   

   def get_price(self):

       return self.price

class Order(ABC):

   @abstractmethod

   def add_dish(self, dish):

       pass

   

   @abstractmethod

   def remove_dish(self, dish):

       pass

   

   @abstractmethod

   def calculate_total(self):

       pass

class TableOrder(Order):

   def __init__(self):

       self.dishes = []

   def add_dish(self, dish):

       self.dishes.append(dish)

   

   def remove_dish(self, dish):

       self.dishes.remove(dish)

   

   def calculate_total(self):

       total = 0

       for dish in self.dishes:

           total += dish.get_price()

       return total

class DeliveryOrder(Order):

   def __init__(self):

       self.dishes = []

   def add_dish(self, dish):

       self.dishes.append(dish)

   

   def remove_dish(self, dish):

       self.dishes.remove(dish)

   

   def calculate_total(self):

       total = 0

       for dish in self.dishes:

           total += dish.get_price()

       return total

Объяснение:

Похожие вопросы
Предмет: Информатика, автор: radeckijbogdan00
Срочно! умова задачі що в моэму рішенні не так!
Програмування Python



Одного літнього вечора Змій Горинич та Баба-Яга дивились по супутниковому

телебаченні чемпіонат світу з автоперегонів “Формула-1”. Обговорення результатів

перейшло в дискусію: хто з них літає швидше. Для визначення переможця вирішили

влаштувати змагання.

Наступного ранку гонщики зібрались біля стартового каменя. Домовились, що змагання

триватиме T годин, і полетіли навипередки. Змій Горинич летів зі швидкістю V1 км/год, а

Баба-Яга на ступі долала V2 км/год. Хто з юних гонщиків переміг, і яка відстань була між

ними на кінець змагання (через T год)?

T

V1

V2

S1

S2

if

porivnanya=

print(

elif

porivnanya=

print(

else:



Моє рішення:

T = ... # час змагання в годинах

V1 = ... # швидкість Змія Горинича в км/год

V2 = ... # швидкість Баби-Яги в км/год



# Обчислюємо відстань, яку подолали учасники



S1 = V1*T

S2 = V2*T



# Порівнюємо відстані

if S1 > S2:

print("Переміг Змій Горинич, відстань між ними: ", S1 - S2, "км")

elif S1 < S2:

print("Перемігла Баба-Яга, відстань між ними: ", S2 - S1, "км")

else:

print("Нічия, вони пролетіли однакову відстань")