Для работы небольшого магазинчика вас попросили сделать небольшой набор функций, обеспечивающих работу с чеками. в качестве пробной версии вам нужно реализовать всего два действия: добавление покупки к набору покупаемых товаров, и печать чека. после того как чек напечатан должно быть возможно вводить новый список товаров.
по правилам оформления документов в каждом чеке вы должны напечатать сначала номер чека (нумерация начинается с единицы) и число товаров, затем список товаров с ценами и в конце — итоговую стоимость. из-за того, что вы не знаете число товаров, пока кассир не «пробьет» последний товар, нельзя печатать чек по мере ввода товаров. приходится сначала добавить все необходимые товары и только затем печатать весь чек целиком. в конце чека печатается черта (состоящая из пяти знаков минус), по которой он отрывается от ленты.
организуйте две функции: add_item(itemname, itemcost) и которые реализуют указанный функционал. форматирование сделайте по шаблону в примере.
в случае, когда чек пуст, print_receipt не должна печатать чек. не забудьте, что после того как чек напечатан, набор выбранных товаров должен обнулиться, чтобы можно было вводить товары для нового чека.
пример
ввод вывод
add_item('блокнот', 100)
print_receipt()
add_item('ручка', 70)
print_receipt()
print_receipt()
add_item('булочка', 15)
add_item('булочка', 15)
add_item('чай', 5)
print_receipt()
add_item('булочка', 15)
add_item('булочка', 15)
# (отменить чек) - этот чек не печатаем
вывод:
чек 1. всего предметов: 1
блокнот - 100
итого: 100
чек 2. всего предметов: 1
ручка - 70
итого: 70
чек 3. всего предметов: 3
булочка - 15
булочка - 15
чай - 5
итого: 35
примечания:
это относится к большинству , но не лишним будет напомнить, что решить можно несколькими способами.
Ответы на вопрос:
class receipt:
def ):
self.number = 1
self.amount = 0
self.cost = 0
self.lines = []
def add_item(self, item, cost):
self.amount += 1
self.lines.append("%s - %s" % (item, str(
self.cost += cost
def new(self):
self.number += 1
self.amount = 0
self.cost = 0
self.lines = []
def print(self):
if self.amount ! = 0:
print("чек %s. всего предметов: %s" % (self.number, self.amount))
for line in self.lines:
print(line)
print("итого: %s" % self.cost)
print("")
self.new()
r = receipt()
def add_item(item, cost, receipt = r):
receipt.add_item(item, cost)
def print_receipt(receipt = r):
r.print()
add_item('блокнот', 100)
print_receipt()
add_item('ручка', 70)
print_receipt()
print_receipt()
add_item('булочка', 15)
add_item('булочка', 15)
add_item('чай', 5)
print_receipt()
add_item('булочка', 15)
add_item('булочка', 15)
# (отменить чек) - этот чек не печатаем
этот код печатает следующее:
чек 1. всего предметов: 1
блокнот - 100
итого: 100
чек 2. всего предметов: 1
ручка - 70
итого: 70
чек 3. всего предметов: 3
булочка - 15
булочка - 15
чай - 5
итого: 35
var
i:integer;
begin
i:=10;
while (i+7<100) do begin
inc(i,7);
write(i,' ');
end;
end.
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Karukart29.01.2022 01:09
-
Рауза195107.07.2020 10:12
-
Vasilisa0070028.09.2020 07:14
-
Виктория22222211101.01.2022 13:50
-
lizakiki106.06.2022 00:22
-
foton22817.10.2021 22:50
-
KarinATseGeLnyK24.03.2021 08:18
-
44444kobzarr105.06.2022 16:34
-
adebora08.05.2023 10:28
-
sashe12306.02.2023 21:14
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.