Readme:
购物车程序:(by George.) 1、启动程序后,输入用户名密码后,如果是第一次登录,让用户输入工资,然后打印商品列表 2、允许用户根据商品编号购买商品 3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4、可随时退出,退出时,打印已购买商品和余额 5、在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示 6、用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买 7、允许查询之前的消费记录
几个关键的逻辑处理思路:
1.用户登录时查看:历史记录
2.用户退出时查看:本次购买记录、历史记录
1.先将列表中临时信息append写入文件中;
2.用户退出时打印列表信息;
3.用户登录、退出时有选项可查看历史记录,此时打印文件信息;
3.余额修改
1.登录时读取文件中余额;
2.程序执行过程中完成扣款后将文件内容更新(新文件替换旧文件方式)
3.程序退出时余额可直接从内存中读取
程序文件:
user_passwd文件:
George 123 Tony 456 Julius 12345
balance文件:
Julius 900 Tony 500 George 681#每次用户完成购买后会出现在底部,因为操作文件是以.append方法实现,同时需要说明的是如果George用户未出现在该文件中,但在user_passwd文件中存在,在登录时会视为新可登录用户,则需要输入工资,下次则无需再次输入。
balance_tmp文件 :
Julius 900 Tony 500 George 681
commadity_price文件:
[("电视机_PANASONIC_55DR600C",9999), ("冰箱_SIEMENS_KA92NV41TI",10409), ("空调_HITACHI_C50FVY",6899), ("笔记本电脑_MAC_PRO250G",13000), ("热水壶_MIDEA_WFS5017TM",319), ("运动鞋_NICK_AIR",900), ("手机_MAC_IPHONE8X",6688)]
purchase_history文件:
('热水壶_MIDEA_WFS5017TM', 319) |2017-12-25 17:10:08|Julius ('运动鞋_NICK_AIR', 900) |2017-12-25 17:10:09|Julius ('热水壶_MIDEA_WFS5017TM', 319) |2017-12-25 17:11:25|George ('热水壶_MIDEA_WFS5017TM', 319) |2017-12-25 17:12:47|George ('热水壶_MIDEA_WFS5017TM', 319) |2017-12-25 17:13:03|Tony ('热水壶_MIDEA_WFS5017TM', 319) |2017-12-25 17:13:24|Tony ('热水壶_MIDEA_WFS5017TM', 319) |2017-12-25 17:23:36|George
shopping.py文件(主程序):
# -*-coding:utf-8-*- # _Author_:George import os,sys,time #用户名密码格式化字典 dict_user_pass = {} #余额信息格式化字典 dict_balance = {} #用户购买历史信息格式列表 list_pruchase_history = [] #用户登录欢迎信息 msg = ''' ############################################ 欢迎登录 京东商城 ############################################ 登录用户: 33[34;1m%s 33[0m 您的余额: 33[34;1m%s 33[0m''' #用户密码文件处理 def user_pass_info(): with open("user_passwd.txt","r") as f1: for i in f1: line = i.strip() dict_user_pass[i.split(" ")[0]] = i.split(" ")[1] # 余额文件处理 def balance_info(): with open("balance.txt", "r", encoding="utf-8") as f3: for i in f3: if not i.startswith(" "): line = i.strip() dict_balance[i.split(" ")[0]] = i.split(" ")[1] #用户本次购买清单函数 (历史购买记录应该从文件里读,而不能从该列表中读) def pruchase_history(): print("