Блог для маленьких школьников и их родителей
ШколаЛа

Помогите написать код на Python. срочно надо, отдам 20 балов. Создайте абстрактный класс Dish, который…

Автор:
Предмет: Информатика
Уровень: студенческий

помогите написать код на Python. срочно надо, отдам 20 балов.

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

Ответов к вопросу: 1
  • dilya1708
    29.09.2024 | 00:13

    Ответ:
    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
    Объяснение:

Ответить на вопрос:
:p :-p 8) 8-) :lol: =( :( :-( :8 ;) ;-) :(( :o:
Нажимая на кнопку я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.