客户端
大概流程 :
买家系统 首先输入买家他的余额,之后会进行,通过文件里的来余额判断他是否上次消费过。如果有信息,就按照文件里的余额计算,替换掉买家输入的余额,如果没有信息
证明客户是第一次来,就用买家输入的余额。 然后循环输出商品下标,和商品信息。客户通过下标来选择商品。选择的商品会被加入到 购物车列表 中,然后通过下标[1]得到商品的
金额。计算出消费金额,这个消费金额 如果大于余额 那么 从购物车列表里删除这个商品 告知 余额不足,并提示买多少钱以内的商品。每加进一个商品,都会计算购物车的总金额
并和余额进行对比。
最后选择 “q” 退出。 购物车列表 和 余额 会被保存在两个文件当中。
商品信息文件内容
['Iphone', 5800],['Mac Pro', 9800],['Bike', 800],['Watch', 10600],['Coffee', 31],('pro', 1899), ,
购物车文件内容
['Iphone', 5800],['Iphone', 5800],['Iphone', 5800], ,
余额文件内容
17000
正式代码:
f = open('s1.txt','r',encoding='utf-8')
first_line = f.readline()
str2=first_line[0:-3]
b=eval(str2)
#一个空列表,当做购物车
shopping_cart=[]
#计算购物金额
money=0
money2=0
money3=0
pd=True
#客户输入工资 转化成int类型
sallry=int(input("请输入余额 >>>"))
#读取存有余额的文件
sallry_txt = open("Balance.txt","r")
sallry_txt_line=sallry_txt.readline()
sa=sallry_txt_line[0:]
#如果读取的是整数 就把值给 工资
if sa.isdigit():
sallry=int(sa)
print("您之前已经登录,余额是:",sallry)
else:
#占位符什么都不做的意思
pass
while pd:
#打印商品列表
for id,item in enumerate(b):
print(id+1,item)
ID=input('请输入选择的商品编号 >>')
#如果输入q就退出
if ID=="q" :
break
# 否则如果 输入的是整数 并且 大于0,小于 购物清单的最大编号 就加进购物车里
elif ID.isdigit() and int(ID) > 0 and int(ID) < len(b)+1:
#加进购物车
shopping_cart.append(b[int(ID) - 1])
#循环购物车
for i in shopping_cart:
money += i[1]
#如果刚加入的
if money > sallry:
shopping_cart.pop()
for i2 in shopping_cart:
money2 += i2[1]
print("消费",money," 元 您的余额不足,请选购金额不超过",sallry-money2,"的商品")
money2=0
money=0
else:
for i3 in shopping_cart:
money3 += i3[1]
print("bug>>",i3)
sallry1 =sallry-money3
print("消费",money3,"元,剩余",sallry1,"元")
money3=0
money = 0
#最终余额
Balance=sallry1
sallry1=20000
else:
print("输入错误,重新输入")
print("本次购物结束,欢迎下次光临")
#将购物清单写入
files = open("shopping_cart.txt","w") # "w"
shopping_cart.append(" ")
for i in shopping_cart:
files.write(str(i))
files.write(",")
files.close()
#将余额写入
files2 = open("Balance.txt","w")
files2.write(str(Balance))
files2.close()