购物车程序需求:用户信息为:
{'wyf':{'password': '12', 'role': '2', 'money': '100000', 'carts': ['iphone6', 'mi5']},
'fei': {'password': '12', 'role': '2', 'money': '100000', 'carts': ['iphone6', 'mi5']}}
用户角色role:1代表管理员,2,代表普通用户
普通用户的权限有:
1.查看所有商品;
2.输入商品名称购买商品,购买后加入到购物车里面,钱要减去.购买后的商品追加到购物车里面。
3.可以查看自己的余额,和 购物车商品
4.退出
管理员用户:
1.添加商品,输入商品名称和余额
2.充值,输入用户名,给他价钱
3.退出
思路解析:把每一个小的操作分枝封装成一个小函数,最后用户调用即可。本次运用到的知识点有:函数,文件修改,菜单。当前程序还有不足的地方,代码如下
def op_file(file_name,content=None): f = open(file_name, 'a+') f.seek(0) if content: f.truncate() f.write(str(content)) f.flush() res = None else: res = eval(f.read()) f.close() return res def user_balance(name):#查询用户余额,以及购物车内商品 # open_file("user.txt") op_file("user.txt",content=None) name = username print("您当前的余额为: " + str(user_info[name]["money"])) carts_list = user_info[name]["carts"] # print("购车内的商品有: " + str(user_info[name]["carts"])) print("您购物车包含的商品为:%s" % ','.join(carts_list)) def use_user_balance(): name = username user_balance(name) def add_product(inp_product,inp_price): #已存在的商品修改价格,不存在的商品以及价格直接添加. product_dict = op_file("product.txt") product_dict[inp_product] = {'price':inp_price} print(product_dict) product_list = list(product_dict) print("店铺商品共有:" + " , ".join(product_list)) content = str(product_dict) def use_add_product(): inp_product = input("请输入您要添加的商品:") inp_price = input("请输入您的商品价格:") add_product(inp_product,inp_price) def all_product(): # product_list = open_file("product.txt") product_list = op_file("product.txt",content=None) print("店铺商品共有:" + " , ".join(product_list)) print("商品&价格:" + str(product_list)) def buy_product(inp_product,name): #用户购买商品,购买成功后写入购物车里面 # f = open("user.txt","r+") # fw = open('product.txt') # user_info = eval(f.read()) product_list = op_file('product.txt') user_info = op_file('user.txt') if inp_product not in product_list: print("对不起,您输入的商品不存在,请输入正确的商品") else: user_money = int(user_info[name]["money"]) product_price = int(product_list[inp_product]["price"]) if user_money >= product_price: print("购买成功!") balance = user_money - product_price # f.seek(0) user_info[name]['money'] = balance carts_list = user_info[name]['carts'] carts_list.append(inp_product) print("您购物车包含的商品为:%s"% ','.join(carts_list)) print("欢迎下次光临") # f.truncate() # f.write(str(user_info)) # f.flush() content = str(user_info) # op_file(product.txt,content) else: print("对不起,您的账户余额不足,请联系管理员充值!") def use_buy_product(): name = username all_product() inp_product = input("请输入您要购买的商品名称:") buy_product(inp_product, name) def user_add_money(name,inp_money):#输入用户名给用户充值 f = open('user.txt','r+') f.seek(0) user_info = eval(f.read()) # print(user_info) if name in user_info: new_money = int(user_info[name]['money']) + int(inp_money) user_info[name]['money'] = new_money print("当前用户余额为:",new_money) f.seek(0) f.truncate() f.write(str(user_info)) f.flush() else: print("您输入的用户名不存在,请输入正确的用户名进行充值!") def use_user_add_money(): name = input("需要充值的用户:").strip() # inp_money = input("本次充值多少元(请输入整数):") while True: inp_money = input("本次充值多少元:").strip() if inp_money.isdigit(): break else: print("充值的金额必须为整数哦~") user_add_money(name, inp_money) def exit_sys(): exit('退出程序') def admin_menu(): admin_choice = input('请选择您的操作:【1】.添加商品 【2】.用户充值 【3】.退出 请选择:') if admin_choice == '1': use_add_product() print("***************添加商品成功,即将返回上一级菜单***************") elif admin_choice == '2': use_user_add_money() print("**************用户充值成功,即将返回上一级菜单***************") elif admin_choice == '3': exit_sys() else: print("请选择正确的操作!") admin_menu() def user_menu(): user_choice = input('请选择您的操作:【1】.查看所有商品 【2】.购买商品 【3】.查看余额以及已购商品 【4】.退出 请选择:') if user_choice == '1': all_product() print("**************查看商品完毕,即将返回上一级菜单***************") elif user_choice == '2': use_buy_product() print("**************购买商品成功,即将返回上一级菜单***************") elif user_choice == '3': use_user_balance() print("**************账户信息查询成功,即将返回上一级菜单***************") elif user_choice == '4': exit_sys() else: print("操作异常,请选择正确的操作!") user_menu() # user_info = open_file('user.txt') user_info = op_file('user.txt',content=None) username = input("请输入您的用户名:").strip() password = input("请输入您的密码:").strip() if username not in user_info: print("用户名不正确,请重试") else: if password == user_info[username]["password"]: print("欢迎 " + username + " 进入店铺") if user_info[username]["role"] == '1': print("您好,您是管理员") admin_choice = input('请选择您的操作:【1】.添加商品 【2】.用户充值 【3】.退出 请选择:') if admin_choice == '1': use_add_product() print("***************添加商品成功,即将返回上一级菜单***************") admin_menu() elif admin_choice == '2': use_user_add_money() print("**************用户充值成功,即将返回上一级菜单***************") admin_menu() elif admin_choice == '3': exit_sys() else: print("请选择正确的操作!") else: print("您好,您是普通用员") user_choice = input('请选择您的操作:【1】.查看所有商品 【2】.购买商品 【3】.查看余额以及已购商品 【4】.退出 请选择:') if user_choice == '1': all_product() print("**************查看商品完毕,即将返回上一级菜单***************") user_menu() elif user_choice == '2': use_buy_product() print("**************购买商品成功,即将返回上一级菜单***************") user_menu() elif user_choice == '3': use_user_balance() print("**************账户信息查询成功,即将返回上一级菜单***************") user_menu() elif user_choice == '4': exit_sys() else: print("操作异常,请选择正确的操作!") else: print("密码不正确!请重试")