Added tasks for the control work

This commit is contained in:
Dmitry Belan
2026-07-14 12:20:34 +03:00
parent c468dc39a8
commit 7bac20b5bd
8 changed files with 301 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
### Задача 6. Магазин (ООП - Агрегация)
**Постановка**
* **Товар:** Имеет название и цену.
* **Корзина:** Содержит список товаров. Может добавлять товар и считать общую стоимость.
* **Покупатель:** Имеет имя, баланс и корзину. Может оплачивать корзину.
**Задание**
**Класс `Product`:**
1. Создайте класс `Product`.
2. Создайте метод `__init__(self, name, price)`.
**Класс `Cart`:**
1. Создайте класс `Cart`.
2. В `__init__(self)` создайте пустой список `products`.
3. Создайте метод `add_product(self, product)`, добавляющий товар в список.
4. Создайте метод `get_total(self)`, возвращающий сумму цен всех товаров.
**Класс `Customer`:**
1. Создайте класс `Customer`.
2. В `__init__(self, name, balance, cart)` сохраните переданные параметры.
3. Создайте метод `pay(self)`, который проверяет, хватает ли баланса для оплаты корзины. Если хватает — вычитает сумму из баланса и очищает корзину. Если нет — выводит предупреждение.
**Тесты:**
1. Создайте несколько товаров.
2. Создайте корзину и добавьте в нее товары.
3. Создайте покупателя, передав ему корзину и баланс.
4. Заставьте покупателя оплатить товары в корзине.