项目逻辑
导入员工账号
员工结构 user.txt结构
账号 密码 余额 月薪
导入 商品
商品结构 commodity.txt
id 名称 价位
初始化完成之后 开始接收输入 对比账号密码是否正确
然后加载商品 通过 id 或者名称选择购买
如果钱不够的话 退出购物 并计算出多少天。。。
实现源码
'''
作业
内部小卖铺
登陆
账号 密码
员工结构
账号 密码 余额 月工资
买东西
选择 id 或者 名字
有钱 扣费
无钱 告诉多少天能买
商品结构
id 名称 价位
'''
#加载txt 然后保存 返回一个字典
def LoadFile(pathfilename):
myFile = open(pathfilename)
myDict = {}
while True:
user = myFile.readline() # 获取一行
if user =='' :break
mylist = user.split() # 分割
mylist[2] =int( mylist[2])
myDict[mylist[0]]=mylist # 添加进去
myFile.close()
return myDict
#登陆 成功返回list 失败 返回false
def Longin(dictUser):
count = 3
while count > 0:
count -= 1;
user = input("请输入用户名:")
password = input("请输入密码:")
userinfo = dictUser.get(user,False)
if userinfo != False :
if userinfo[0]==user and userinfo[1] ==password:
print("欢迎登陆,尊敬的内部会员",user,"您当前的余额是:",userinfo[2],)
return userinfo
print("账号密码错误!!")
else:
print("三次机会已经用尽....")
return False
#计算商品 返回修改的list
def CalcGoods(user, goods):
flag =False
if goods[2] <= user[2]:
user[2] -= goods[2];
print("成功购买:", goods[1], "扣除", goods[2], "账号余额:", user[2])
if input("是否继续购买,需要请按1 否则请按任意键结束")=='1':
flag =True
else:
user[3] = int(user[3]) # 转换一下
rem = (goods[2] - user[2]) % (user[3] / 30) # 求一下余数
if rem > 0:
rem = 1
print("钱不够,您还差", goods[2] - user[2], "元,您当前的月薪是"
, userInfo[3], "需要打工", int((goods[2] - user[2]) / (user[3] / 30) + rem), "天")
return user,flag
#保存 数据 没有返回值
def SaveFile(updateuser, pathfilename):
data = ''
f =open(pathfilename)
for line in f.readlines():
if line.find(updateuser[0])==0 and line.find(updateuser[1])==0:#查找相同的名称。。。和密码 跳过
for a in updateuser:
data+=str(a)+' '
data +='\n'
else:
data+=line
f.close()
#覆盖
f=open(pathfilename,'w')
f.writelines(data)
f.close()
# main
print("欢迎使用内部商店管理系统")
print("请登陆")
dictUser =LoadFile("user.txt") #加载账号
dictGoods = LoadFile("commodity.txt")#加载商品
userInfo = Longin(dictUser)#登陆
if userInfo != False:
print("选择需要购买的商品")
for a in dictGoods.values():
print(a)
bFlag =True
while bFlag:
key = input("请输入需要购买的商品的名称或者id:")
listGoods = dictGoods.get(key, False)
if listGoods != False:
userInfo, bFlag = CalcGoods(userInfo, listGoods)
else:
for a in dictGoods.values():
if key== a[1]:
userInfo, bFlag = CalcGoods(userInfo, a)
#保存一下数据
else:
SaveFile(userInfo,"user.txt")