#直接按业务需求写代码就行了就是要细心
#不小心被图片坑了,初始化用了10,5,2,1的顺序,搞反了
#(1 元张数 -2 元张数 -5 元张数 -10 元张数)
import sys
class Mac():
def __init__(self, nums, coinnums):
self.goods = ["A1", "A2", "A3", "A4", "A5", "A6"]
self.prices = [2, 3, 4, 5, 8, 6]
self.goodsnums = list(map(int,nums))
self.cointype = [10, 5, 2, 1]
self.coinnums = list(map(int,coinnums[::-1]))
self.balance = 0
print("S001:Initialization is successful")
def pay(self, money):
money = int(money)
if money not in self.cointype:
print("E002:Denomination error")
elif money > 2 and money > self.cointype[2] * self.coinnums[2] + \
self.cointype[3] * self.coinnums[3]:
print("E003:Change is not enough, pay fail")
elif sum(self.goodsnums) == 0:
print("E005:All the goods sold out")
else:
self.balance += money
self.coinnums[self.cointype.index(money)] += 1
print("S002:Pay success,balance={}".format(self.balance))
def buy(self, good):
if good not in self.goods:
print("E006:Goods does not exist")
elif self.goodsnums[self.goods.index(good)] == 0:
print("E007:The goods sold out")
elif self.balance < self.prices[self.goods.index(good)]:
print("E008:Lack of balance")
else:
self.balance -= self.prices[self.goods.index(good)]
self.goodsnums[self.goods.index(good)] -= 1
print("S003:Buy success,balance={}".format(self.balance))
def quit(self):
if self.balance == 0:
print("E009:Work failure")
return
tuibi = [0,0,0,0]
index = 0
while self.balance > 0 and index <= 3:
num = self.balance // self.cointype[index]
if self.coinnums[index] >= num:
self.coinnums[index] -= num
else:
num = self.coinnums[index]
self.coinnums[index] = 0
tuibi[index] = num
self.balance -= tuibi[index] * self.cointype[index]
index += 1
cointype = self.cointype[::-1]
tuibi = tuibi[::-1]
for i in cointype:
print("{} yuan coin number={}".format(i, tuibi[cointype.index(i)]))
self.balance = 0
# print(self.coinnums)
def query(self, q_type):
if q_type == '0':
goods = []
for i in range(len(self.goods)):
goods.append([self.goods[i], self.prices[i], self.goodsnums[i]])
goods.sort(key = lambda x: x[2], reverse = True)
for g in goods:
print(" ".join(map(str, g)))
elif q_type == '1':
cointype = self.cointype[::-1]
coinnums = self.coinnums
for i in range(len(cointype)):
print("{} yuan coin number={}".format(cointype[i], coinnums[i]))
else:
print("E010:Parameter error")
while True:
try:
cmds = input().split(';')
init = cmds[0].split()
mac = Mac(init[1].split('-'), init[2].split('-'))
for cmd in cmds[1:]:
if 'p' in c***c.pay(cmd.split()[1])
elif 'b' in c***c.buy(cmd.split()[1])
elif 'c' in c***c.quit()
elif 'q' in cmd:
q = cmd.split()
if len(q) > 1:
mac.query(q[1])
else:
mac.query("error")
except:
# print(sys.exc_info())
break