Условия задачи:
Класс CashRegister. Это упражнение предполагает создание класса Retailitem из упражнения 5 по программированию. Создайте класс CashRegister (Кассовый аппарат), который может использоваться вместе с классом Retailitem. Класс CashRegister должен
иметь внутренний список объектов Retailitem, а также приведенные ниже методы.
• Метод purchase_i tem ( ) (приобрести товар) в качестве аргумента принимает объект Retailitem. При каждом вызове метода purchase _ item () объект Retailitem, переданный в качестве аргумента, должен быть добавлен в список.
• Метод get _ total () (получить сумму покупки) возвращает общую стоимость всех объектов Retailitem, хранящихся во внутреннем списке объекта CashRegister.
• Метод show_ items () (показать товары) выводит данные об объектах Retailitem, хранящихся во внутреннем списке объекта CashRegister.
• Метод clear () (очистить) должен очистить внутренний список объекта CashRegister.
Продемонстрируйте класс CashRegister в программе, которая позволяет пользователю выбрать несколько товаров для покупки. Когда пользователь готов рассчитаться за покупку, программа должна вывести список всех товаров, которые он выбрал для покупки, а также их общую стоимость.
Решение задачи:
class RetailItem:
def __init__(self, description, quantity, cost ):
self.__description = description
self.__quantity = quantity
self.__cost = cost
def set_description(self,description):
self.__description = description
def set_quantity(self, quantity):
self.__quantity = quantity
def set_cost(self, cost):
self.__cost = cost
def get_desckription(self):
return self.__description
def get_quantity(self):
return self.__quantity
def get_cost(self):
return self.__cost
def __str__(self):
return f'описание:{self.__description} \nколичество:{self.__quantity}\nцена: {self.__cost}'
class CashRegister(RetailItem):
def __init__(self): #description, quantity, cost):
self.__list_items = []
#RetailItem.__init__(self, description, quantity, cost)
def purchase_item(self, item):
self.__list_items.append(item)
return self.__list_items
def get_totall(self):
totall = 0
for i in self.__list_items:
totall += i.get_cost() * i.get_quantity()
return totall
def show_items(self):
for i in self.__list_items:
print(i.get_desckription())
def clear(self):
self.__list_items.clear()
print('Корзина очищена')
answer = 'д'
my_korzina = CashRegister()
while answer == 'д':
description = input('Укажите наименование товара: ')
quantity = int(input('Укажите количество товара: '))
cost = float(input('Укажите стоимость товара: '))
item = RetailItem(description, quantity, cost)
my_korzina.purchase_item(item)
answer = input('Если желаете продолжить покупки выберите - д: ')
print(f'Список покупок: {my_korzina.show_items()}, Общая стоимость: {my_korzina.get_totall()}')