博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
作业-购物车程序
阅读量:5339 次
发布时间:2019-06-15

本文共 3606 字,大约阅读时间需要 12 分钟。

# 购物车程序: # 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("输入用户名不存在")

 

转载于:https://www.cnblogs.com/1dreams/p/6883789.html

你可能感兴趣的文章
Extensible Messaging and Presence Protocol (XMPP): Core
查看>>
Java多线程共享变量控制
查看>>
列表(list)小总结
查看>>
RabbitMQ消息机制广播分发
查看>>
requestAnimationFrame兼容性扩展
查看>>
调用图灵机器人做一个简单的机器人聊天
查看>>
Redis配置文件分析
查看>>
uniapp 检测android 是否开启GPS功能
查看>>
Valgrind工具简介
查看>>
几句话总结一个算法之Policy Gradients
查看>>
搬家来博客园了
查看>>
Asp.net MVC Global.asax文件
查看>>
Tomcat工作原理
查看>>
中石油 1380 森林扩张
查看>>
为什么研发团队不适合量化KPI的绩效考核?
查看>>
HDU - 4725 The Shortest Path in Nya Graph(拆点+Dijkstra)
查看>>
不要完全相信Chrome控制台打印的信息
查看>>
1.openshift搭建
查看>>
实例探索Class文件
查看>>
hdu 3466 Proud Merchants
查看>>