作业python 内部小卖铺


项目逻辑    

导入员工账号      

员工结构        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")


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值