首页 > 代码库 > 作业-购物车程序

作业-购物车程序

# 购物车程序:
# 1、启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表
# 2、允许用户根据商品编号购买商品
# 3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
# 4、可随时退出,退出时,打印已购买商品和余额
# 5、在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示
# 6、用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买
# 7、允许查询之前的消费记录

保存用户、密码、余额的文件(user1.txt)
{‘alex‘: [‘zs123‘, 0], ‘zs‘: [‘zs123‘, 0], ‘ls‘: [‘zs123‘, 0]}

保存已购商品信息的文件(shopping_car.txt)
{‘alex‘: [], ‘zs‘: [], ‘ls‘: []}

技术分享





代码如下:
#定义商品列表
product=[
    ("Iphone 7 Plus","6500"),
    ("MacBook ","9900"),
    ("Apple Watch","3500"),
    ("BOOK","110"),
    ("1T hard disk","360"),
]
#打开两个文件1、存放用户名、密码、余额的文件,2、存放已购商品列表文件
with open("user1.txt","r+",encoding="gbk") as user1,        open("shopping_car.txt","r+",encoding="gbk") as shopping_car:
    user1_str = user1.readline()     #将用户密码文件转换为字符串
    user1_dic = eval(user1_str)       #将用户密码的字符串转换为字典
    shopping_car_str = shopping_car.readline()   #将购物车文件转换为字符串
    shopping_car_dic = eval(shopping_car_str)    #将购物车的字符串转换为字典
    #定义一个空的购物车
    shopping_new = []
    #输入用户名:
    user = input("请输入用户名:>")
    #如果用户名在保存用户的字典中,则执行下面代码:
    if user in user1_dic:
        passwd = input("请输入密码:>>")
        #如果密码输入正确则执行下列代码:
        if passwd == user1_dic[user][0]:
            if shopping_car_dic[user]: #列表有数据就是True,然后执行下面内容:
                salary = user1_dic[user][1]
                shopping_list = shopping_car_dic[user]
                print("您的余额为:\033[31;1m%s\033[0m"%salary)
                #查询之前的消费记录
                print_list = input("选择是否查询消费记录y/n")
                if print_list == "y":
                    print("----上次消费记录----")
                    print(shopping_list)
                    user_list = shopping_car_dic[user]
                    sum = 0
                    for i in user_list:
                        num = i[1]
                        sum += int(num)
                    print("上次总计消费金额:\033[31;1m%s\033[0m"%sum)
                else:
                    pass
                wages = int(input("请输入工资:>>>"))
            else:                               #列表无数据就是False,
                wages = int(input("请输入工资:>>>"))
            while True:
                for index,product_list in enumerate(product):
                    print(index,product_list)
                choice = input("请选择购买商品编号>>>")
                if choice.isdigit():
                    choice = int(choice)
                    if choice <=4 and choice >=0:
                        shopping_new.append(product[choice])
                        if wages >= int(product[choice][1]):
                            wages -= int(product[choice][1])
                            print("您的余额为:>>>\033[31;1m%s\033[0m"%wages)
                        elif wages < int(product[choice][1]):
                            print("您的余额不足,余额为:>>>\033[31;1m%s\033[0m"%wages)
                    else:
                        print("您输入的编号超出范围")
                elif choice == "q":
                    print("----购买商品列表----")
                    print(shopping_new)
                    print("您的余额为:>>>\033[31;1m%s\033[0m"%wages)
                    #将购物列表写入文件中。
                    shopping_car_dic[user].extend(shopping_new)
                    shopping_car.seek(0)
                    shopping_car.write(str(shopping_car_dic))
                    #将余额写入文件中。
                    user1.seek(0)
                    user1_dic[user][1]=wages
                    user1.write(str(user1_dic))
                    print("\033[31;1m商品已经放入购物车\033[0m")
                    exit()
        #如果密码输入不正确则显示密码错误:
        else:        #密码不匹配
            print("输入密码错误")
    #如果用户名不在用户的字典中,则执行下面代码:
    elif user not in user1_dic:
        print("输入用户名不存在")

 

作业-购物车程序