博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3.实现购物车程序
阅读量:4454 次
发布时间:2019-06-07

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

需求:

1.用户接口

#1.启动程序后,让用户输入工资,然后打印商品列表 #2.商品信息,工资余额写在文件里 #3.允许用户根据上编号购买商品。 #4.用选择上商品,检测与额是否够,够就直接扣款,不够就提醒 #5.可随时退出,退出时,打印已购买商品和余额
 

2.商家接口

#1.商家可用添加商品 #2.修改商品价格

 
1 # -*- coding:utf-8 -*- 2 # Author: JACK ZHAO 3  4 #程序:购物车程序 5 #需求: 6 #1.启动程序后,让用户输入工资,然后打印商品列表 7 #2.商品信息,工资余额写在文件里 8 #3.允许用户根据上编号购买商品。 9 #4.用选择上商品,检测与额是否够,够就直接扣款,不够就提醒10 #5.可随时退出,退出时,打印已购买商品和余额11 #salary_residue:工资余额记录文件12 #produce_list:商品列表文件13 #cart_list:购物车列表文件14 15 import os16 import time17 import linecache18 19 if os.path.exists("salary_residue"): #判断工资记录文件是否存在20     with open("salary_residue", "rU", encoding="utf-8") as salary_residue:21         count = len(salary_residue.readlines()) #统计文件行数22         salary=linecache.getline("salary_residue", count) #linecache模块读取文件最后一行23         salary=int(salary.split("=")[1]) #匹配出工资余额24 else:25     with open("salary_residue","a+",encoding="utf-8") as salary_residue:26         salary = input("第一次登陆,请输入工资:")27         if salary.isdigit():28             salary=int(salary)29         else:30             print("请输入一个正整数.")31             exit()32 produce_list=[]33 with open("produce_list","r",encoding="utf-8") as produce: #读取商品列表文件34     for line in produce.readlines(): #每读取一行添加到列表35         produce_list_item=[line.split()[0],line.split()[1]]36         produce_list.append(produce_list_item)37 while True:38     print("欢迎来我的购物商城".center(50,'#'))39     for index,i in  enumerate(produce_list): #遍历列表40         print(index,i)41     choice = input("请选择商品对应的数字编号(或q退出):")42     if  choice.isdigit():43         choice = int(choice)44         if choice >=0 and choice < len(produce_list):45             produce_price = int(produce_list[choice][1])46             if salary >= produce_price:47                 with open("cart_list", "a+", encoding="utf-8") as cart_list:48                     cart_list.write("%s\n" % produce_list[choice]) #将购买商品写入到购物车文件49                 salary = salary - produce_price50                 with open("salary_residue", "a+", encoding="utf-8") as salary_residue:51                     time_format = '%Y-%m-%d %X' #格式化时间52                     time_current = time.strftime(time_format)53                     salary_residue.write("%s\n"%time_current) # 记录消费时间54                     salary_residue.write("salary=%s\n" % salary) #记录工资余额55                 print("%s 已添加到购物车.工资余额:\033[32;1m%s\033[0m" % (produce_list[choice][0], salary))56             else:57                 print("你的余额不足, 工资余额:\033[31;1m%s\033[0m" % salary)58         else:59             print("你选择的商品编号不在列表内,请重新选择.")60     elif choice == "q":61         print("你已经退出,购物车清单".center(50, "#"))62         with open("cart_list", "r", encoding="utf-8") as cart_list:63             for index,line in enumerate(cart_list.readlines()): #遍历购物车清单64                 print(index,line.strip())65         print("工资余额:\033[31;1m%s\033[0m" % salary)66         exit()67     else:68         print("请商品列表中的对应的数字.")
1 # -*- coding:utf-8 -*- 2 # Author: JACK ZHAO 3 #1.用户可用添加商品 4 #2.修改商品价格 5  6 #produce_list:商品列表文件 7 # 获取已有商品列表 8 produce_list = [] 9 with open("produce_list", "r", encoding="utf-8") as produce:  # 读取商品列表文件10     for line in produce.readlines():  # 每读取一行添加到列表11         produce_list.append(line.split()[0])12 13 menu = '''14 **********后台添加商品接口**********15 1.添加商品16 2.修改商品价格17 '''18 19 status_flag = False20 while not status_flag:21     print(menu)22     choice = input("请选择对应数字操作:")23     if choice.isdigit():24         choice = int(choice)25         if choice == 1:26             #####用户添加商品#####27             while not status_flag:28                 produce_name = input("请输入添加商品的名称【b|返回,q|退出】:")29                 if produce_name in produce_list:30                     print("\033[31;1m%s添加失败,此商品已存在\033[0m" % produce_name)31                     continue32                 if produce_name == "b":33                     break34                 elif produce_name == "q":35                     print("你已经退出.")36                     status_flag = True37                     break38                 produce_price = input("请输入添加商品的价格【b|返回,q|退出】:")39                 if produce_price.isdigit():40                     produce_price = int(produce_price)41                     with open("produce_list", "a+", encoding="utf-8") as produce_list1:42                         produce_list1.write("\n{_produce_name}\t{_produce_price}".format(_produce_name=produce_name,43                                                                                          _produce_price=produce_price))44                         produce_list.append(produce_name)45                         print("\033[32;1m%s添加成功.\033[0m" % produce_name)46                         produce_list1.close()47                 elif produce_price == "q":48                     print("你已经退出.")49                     status_flag = True50                     break51                 elif produce_price == "b":52                     break53                 else:54                     print("商品的价格只能是一个整数.")55         elif choice ==2:56             #####用户修改密码#####57             while not status_flag:58                 produce_name = input("请输入要修改价格商品的名称【b|返回,q|退出】:")59                 if produce_name == "b":60                     break61                 if produce_name == "q":62                     print("你已经退出.")63                     status_flag = True64                     break65                 if produce_name not in produce_list:66                     print("\033[31;1m%s修改失败,此商品不存在\033[0m" % produce_name)67                     continue68                 produce_price = input("请输入修改后的价格【b|返回,q|退出】:")69                 if produce_price.isdigit():70                     produce_price = int(produce_price)71                     # 将文件读取到内存中72                     with open("produce_list", "r", encoding="utf-8") as produce_r:73                         lines = produce_r.readlines()74                     # 写的方式打开文件75                     with open("produce_list", "w", encoding="utf-8") as produce_w:76                         for line in lines:77                             if produce_name in line:78                                 # 替换79                                 line = "{name}\t {price}\n".format(name=produce_name,price=produce_price)80                             produce_w.write(line)81                         print("\033[32;1m%s修改成功.\033[0m" % produce_name)82                 elif produce_price == "q":83                     print("你已经退出.")84                     status_flag = True85                 elif produce_price == "b":86                     break87                 else:88                     print("商品的价格只能是一个整数.")89         else:90             print("只能选择1或者2.")91             continue92     elif choice == "q":93         print("你已经退出.")94         status_flag = True95     else:96         print("必须输入一个数字.")

 

转载于:https://www.cnblogs.com/changmingzhao/p/7824883.html

你可能感兴趣的文章
c++学习-继承
查看>>
[转]SQL Server 性能调优(io)
查看>>
设计模式学习-每日一记(6.原型模式)
查看>>
不已0开头的数字正则
查看>>
HTML撑起浮动子元素得父元素高度
查看>>
LeetCode--018--四数之和(java)
查看>>
Redis消息队列
查看>>
电商网站架构设计
查看>>
http://jingyan.baidu.com/article/4dc40848e7b69bc8d946f127.html
查看>>
WCF netTcp配置
查看>>
数据类型转换
查看>>
Nodejs学习笔记(2) 阻塞/非阻塞实例 与 Nodejs事件
查看>>
什么是FreeMaker
查看>>
设计模式学习笔记(总结篇:模式分类)
查看>>
TCP的三次握手/建立连接
查看>>
Python 教程阅读笔记(一):使用解释器
查看>>
运算符重载
查看>>
SDWebImage 新版接口使用方法
查看>>
DataTable导出为word,excel,html,csv,pdf,.txt
查看>>
android ListView详解
查看>>