zoukankan      html  css  js  c++  java
  • 购物车程序

    作业需求:

    数据结构:
    goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},
    ......
    ]
    
    功能要求:
    基础要求:
    
    1、启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表
    
    2、允许用户根据商品编号购买商品
    
    3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
    
    4、可随时退出,退出时,打印已购买商品和余额
    
    5、在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示
    
    
    扩展需求:
    
    1、用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买
    
    2、允许查询之前的消费记录

    踩分点:
      基础要求完成每条15分;
      扩展需求完成每条10分;
      代码结构足够好,可以酌情加分。

    代码如下:
     1 import os,pickle
     2 
     3 #定义高亮显示函数
     4 def highlight(p):
     5     print('33[1;31;47m%s33[0m'%p)
     6 
     7 goods = [
     8 {"name": "电脑", "price": 1999},
     9 {"name": "鼠标", "price": 10},
    10 {"name": "游艇", "price": 20},
    11 {"name": "美女", "price": 998},
    12 ]
    13 #判断并创建一个消费记录的文件
    14 if not os.path.isfile('shopping_record'):
    15     f = open('shopping_record','wb')
    16     f.close()
    17 
    18 Usermsg = ['zwj','abc123']
    19 bought = []         #列表存储已购买商品
    20 highlight('-----输入编号以购买商品,如果要退出请输入q,如果要查询消费记录请输入c-----')
    21 while True:
    22     # 用户登录
    23     in_username = input("请输入用户名:")
    24     in_password = input("请输入密码:")
    25     if in_username == Usermsg[0] and in_password == Usermsg[1]:
    26         in_salary = int(input("请输入工资:"))
    27         while True:
    28             for index,i in enumerate(goods):
    29                 print(index,i.get('name'),i.get('price'))
    30             choice = input('请选择要购买的商品编号(如果要退出,请输入q):')
    31             #用户选择购买商品编号
    32             if choice in ['0','1','2','3']:
    33                 if in_salary >= int(goods[int(choice)].get('price')):
    34                     bought.append(goods[int(choice)].get('name'))
    35                     in_salary -= int(goods[int(choice)].get('price'))
    36                 else:
    37                     print('余额不足,仅剩%s' %in_salary)
    38                 continue
    39 
    40             # 用户选择退出
    41             elif choice.lower() == 'q':
    42                 highlight(bought)
    43                 highlight('所剩余额:%s' %in_salary)
    44                 f = open('shopping_record','wb')
    45                 pickle.dump(bought,f)
    46                 pickle.dump(in_salary,f)
    47                 f.close()
    48                 exit()
    49 
    50             # 用户选择查询历史购买记录
    51             elif choice.lower() == 'c':
    52                 print('------上次所买商品如下-------')
    53                 f = open('shopping_record','rb')
    54                 b = pickle.load(f)
    55                 print(b)
    56                 print('------接下来请继续选择-------')
    57                 f.close()

    搞定!欢迎评论交流。

  • 相关阅读:
    Myeclipse 安装svn插件
    Http状态码详解
    myeclipse中的js文件报错
    eclipse 反编译插件安装
    ecshop绕过验证码暴力破解
    Myeclipse中全部文件设置成UTF-8
    WampServer phpadmin apache You don't have permission to access
    如何在Win8系统上建立WIFI热点
    记录远程桌面登录者的IP和MAC
    数据库总结
  • 原文地址:https://www.cnblogs.com/NuoMiGao/p/9856808.html
Copyright © 2011-2022 走看看