购物车优化要求:
用户入口:

1.商品信息存在文件里

2.已购商品,余额记录。第一次启动程序时需要记录工资,第二次启动程序时谈出上次余额

3.允许用户根据商品编号购买商品

4.用户选择商品后,检测是否够,够就直接扣款,不够就提醒

5.可随时退出,退出时,打印移购买商品和余额

商家入口:

     1.可以添加商品,修改商品价格1. 运行程序输出第一级菜单

客户端入口程序代码:
import sys
def client_first_login(): #首次登录函数
client_salary=input("请输入充值金额:")
if client_salary.isdigit():
client_salary=int(client_salary)
f_client_shopping_record.write(login_name+"\t") #将购物记录写入文本
f_client_shopping_record.write(str(client_salary)+"\t")
f_client_shopping_record.write("no_product" + "\n")
for i3 in enumerate(product_lists): #循环打印列表元素及其索引
print(i3)
while True:
choice=input("请输入英雄皮肤编号,按q退出:")
if choice.isdigit():
choice=int(choice)
if choice>=0 and choice<=len(product_lists): #输入的数据在产品清单编号范围之内
product_price=int(product_lists[choice][1])
if client_salary>product_price:
shopping_list.append(product_lists[choice])
client_salary-=product_price
f_client_shopping_record.write(login_name + "\t") #在client_shopping_record中记录购物信息
f_client_shopping_record.write(str(client_salary) + "\t")
f_client_shopping_record.write(product_lists[choice][0] + "\n")
print("已购买%s,您的余额为%s"%(product_lists[choice][0],client_salary)) else:
print("对不起您的金额不足,请去充值!")
print(shopping_list)
else:
print("请输入合理的产品编号")
elif choice=="q":
print(shopping_list)
sys.exit() def client_again_login(): #再次登录函数
client_salary = input("请输入充值金额:")
if client_salary.isdigit():
client_salary = int(client_salary)+int(count_cost)
f_client_shopping_record.write(login_name + "\t")
f_client_shopping_record.write(str(client_salary) + "\t")
f_client_shopping_record.write("no_product" + "\n")
for i3 in enumerate(product_lists):
print(i3)
while True:
choice = input("请输入英雄皮肤编号,按q退出:")
if choice.isdigit():
choice = int(choice)
if choice >= 0 and choice <= len(product_lists):
product_price = int(product_lists[choice][1])
if client_salary > product_price:
shopping_list.append(product_lists[choice])
client_salary -= product_price
f_client_shopping_record.write(login_name + "\t")
f_client_shopping_record.write(str(client_salary) + "\t")
f_client_shopping_record.write(product_lists[choice][0] + "\n")
print("已购买%s,您的余额为%s" % (product_lists[choice][0], client_salary)) else:
print("对不起您的金额不足,请去充值!")
print(shopping_list)
else:
print("请输入合理的产品编号")
elif choice == "q":
print(shopping_list)
sys.exit() def product_list(): #产品清单读取
f_product_list=open("product_list","r+",encoding="utf-8")
for i4 in f_product_list:
product_lists.append(i4.split()) count_client=0
count_cost=0
count_account=0
account_password=''
product_lists=[]
shopping_list=[]
product_list()
login_name=input("请输入英雄联盟账号:")
f_client_shopping_record=open("client_shopping_record","r+",encoding="utf-8")
for i1 in f_client_shopping_record:
if login_name in i1:
count_client+=1
count_cost=i1.split()[1] f_client_account_message=open("client_account_message","r+",encoding="utf-8")
for i2 in f_client_account_message:
if login_name in i2:
count_account+=1
account_password=i2.split()[1] if count_client==0:
if count_account>0:
while True:
account_psw=input("请输入密码:")
if account_password==account_psw:
print("欢迎%s,登录英雄联盟收银台"%login_name)
client_first_login()
else:
print("密码错误请重新输入密码")
else:
print("用户名不存在")
sys.exit()
else:
print("欢迎%s,登录英雄联盟收银台,您的余额还剩%s元"%(login_name,count_cost))
client_again_login()

商家入口程序代码:

f_business=open("product_list","r+",encoding="utf-8")
f_business.write("卡莎"+"\t")
f_business.write(""+"\n")
f_business.flush() #flush函数作用:将缓冲区中的数据立刻写入文件,同时清空缓冲区
f_business.close()
 

老男孩python作业3-购物车程序优化的更多相关文章

  1. 老男孩Day2作业:购物车程序

    作业需求: 用户入口: 1.商品信息存在文件里 2.已购商品,余额记录.第一次启动程序时需要记录工资,第二次启动程序时谈出上次余额 3.允许用户根据商品编号购买商品 4.用户选择商品后,检测是否够,够 ...

  2. (转)Python作业day2购物车

    Python作业day2购物车 原文:https://www.cnblogs.com/spykids/p/5163108.html 流程图: 实现情况: 可自主注册, 登陆系统可购物,充值(暂未实现) ...

  3. 老男孩python作业2-购物车程序

    购物车程序要求: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 ...

  4. Python作业之购物车

    作业之购物车 购物车的要求如下: 输入总金额 选择购买的商品,金额足够时,把选择的商品添加到购物车,金额不足时,进行提示,商品将不会添加到购物车 随时可以退出程序,同时输出已购买的商品 具体代码如下: ...

  5. python学习:购物车程序

    购物车程序 product_list = [ ('mac',9000), ('kindle',800), ('tesla',900000), ('python book',105), ('bike', ...

  6. python元组与购物车程序

    #Author:zww ''' 程序:购物车程序 需求: 1.启动程序后,让用户输入工资,然后打印呢商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否足够,够就直接扣款,不够 ...

  7. 老男孩python作业7-开发一个支持多用户在线的FTP程序

    作业6:开发一个支持多用户在线的FTP程序 要求: 用户加密认证 允许同时多用户登录 每个用户有自己的家目录 ,且只能访问自己的家目录 对用户进行磁盘配额,每个用户的可用空间不同 允许用户在ftp s ...

  8. 老男孩python作业4-ATM程序开发

    实现一个ATM + 购物商城程序: 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 支持多账户登录 支持账户间转账 记录每月日常消费流水 提供还款 ...

  9. python作业:购物车(第二周)

    一.作业需求: 1.启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4 ...

随机推荐

  1. Tomcat 不能正常启动

    启动过程提示: Stopping ProtocolHandler ["http-bio-8080"] the JRE_HOME environment variable is no ...

  2. poj1753-Flip Game 【状态压缩+bfs】

    http://poj.org/problem?id=1753 Flip Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions ...

  3. 框架之 hibernate之关联关系映射

    案例:完成CRM的联系人的保存操作 需求分析 1. 因为客户和联系人是一对多的关系,在有客户的情况下,完成联系人的添加保存操作 技术分析之Hibernate的关联关系映射之一对多映射(重点) 1. J ...

  4. 35-迷宫寻宝(一)-NYOJ82

    http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=82 迷宫寻宝(一) 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   ...

  5. eclips git中的add to Index无效解决

    今天在使用eclips git中的add to Index,发现其无效,具体如下 问题描述: 通过export导入一个git java项目 在java工程中新增一个类文件IndicatorCalcTe ...

  6. hive与hbase数据类型对应关系

    hive与hbase数据类型对应关系 当hbase中double,int 类型以byte方式存储时,用字符串取出来必然是乱码. 在hivd与hbase整合时也遇到这个问题:做法是:#b 1.加#b C ...

  7. Hadoop的Writerable在Spark无法序列化的问题

    Spark序列化这块网上讲的比较少,自己还没来得及看这块代码,今天编程的时候遇到一个Hadoop的Writerable实现在Spark无法序列化的问题.我的代码如下: object EntryApp ...

  8. Java之封装特性

    Java中的三大特性:继承,封装,多态: 其中封装概念:封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口. 面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治.封装的 对象 ...

  9. 怎么自动响应richTextBox超级链接单击click事件

    如上图所示,怎么自动响应richTextBox超级链接单击click事件?步骤如下: 1. 增加 richTextBox1_LinkClicked 事件: 2.  编辑事件内容如下: private ...

  10. Core中间件——访问记录

    引言 上半年使用的thinkjs开发的node项目有一个优点就是所有请求都会有日志记录在控制台输出,里面包含了请求地址以及耗时.我就希望在.net中也可以实现这样子的功能,正好想到了中间件,所以就用中 ...