网站优化自已做还是请人做,接做图网站,wordpress调用栏目名称,上海找人做网站1.功能简介此程序模拟用户登陆商城后购买商品操作。可实现用户登陆、商品购买、历史消费记查询、余额和消费信息更新等功能。首次登陆输入初始账户资金#xff0c;后续登陆则从文件获取上次消费后的余额#xff0c;每次购买商品后会扣除相应金额并更新余额信息#xff0c;退…1.功能简介此程序模拟用户登陆商城后购买商品操作。可实现用户登陆、商品购买、历史消费记查询、余额和消费信息更新等功能。首次登陆输入初始账户资金后续登陆则从文件获取上次消费后的余额每次购买商品后会扣除相应金额并更新余额信息退出时也会将余额和消费记录更新到文件以备后续查询。2.实现方法架构本程序采用python语言编写将各项任务进行分解并定义对应的函数来处理从而使程序结构清晰明了。主要编写了六个函数(1)login(name,password)用户登陆函数实现用户名和密码验证登陆成功则返回登陆次数。(2)get_balance(name)获取用户余额数据。(3)update_balance(name,balance)更新用户余额数据当用户按q键退出时数据会更新到文件。(4)inquire_cost_record(name)查询用户历史消费记录。(5)update_cost_record(name,shopping_list)更新用户消费记录当用户按q键退出时本次消费记录会更新到文件。(6)shopping_chart()主函数完成人机交互函数调用各项功能的有序实现。主要操作(1)根据提示按数字键选择相应选项进行操作。(2)任意时刻按q键退出退出登陆退出前会完成用户消费和余额信息更新。使用文件(1)userlist.txt存放用户账户信息文件包括用户名、密码、登陆次数和余额。每次用户登陆成功会更新该用户登陆次数每次按q键退出时会更新余额信息。(2)***_cost_record.txt存放某用户***消费记录的文件用户首次购买商品后创建没有购买过商品的用户不会产生该文件。每次按q键退出时会将最新的消费记录更新到文件。3.流程图4.代码# Author:Byron Li#-*-coding:utf-8-*-----------------------------------------------使用文件说明----------------------------------------------------------使用文件说明userlist.txt 存放用户账户信息文件包括用户名、密码、登陆次数和余额***_cost_record.txt 存放某用户***消费记录的文件用户首次购买商品后创建没有购买过商品的用户不会产生该文件---------------------------------------------------------------------------------------------------------------------import osimport datetimedef login(name,password): #用户登陆,用户名和密码验证登陆成功则返回登陆次数with open(userlist.txt, r,encodingUTF-8) as f:line f.readline()while(line):posf.tell()linef.readline()if [name,password] line.split()[0:2]:timesint(line.split()[2])lineline.replace(str(times).center(5, ),str(times1).center(5, ))f.seek(pos)f.write(line)return times1return Nonedef get_balance(name): #获取用户余额数据with open(userlist.txt, r,encodingUTF-8) as f:line f.readline()for line in f:if name line.split()[0]:return line.split()[3]print(用户%s不存在无法获取其余额信息%name)return Falsedef update_balance(name,balance): #更新用户余额数据with open(userlist.txt, r,encodingUTF-8) as f:line f.readline()while(line):pos1f.tell()linef.readline()if name line.split()[0]:pos1pos1line.find(line.split()[2].center(5, ))5pos2f.tell()f.seek(pos1)f.write(str(balance).rjust(pos2-pos1-2, ))return Trueprint(用户%s不存在无法更新其余额信息 % name)return Falsedef inquire_cost_record(name): #查询用户历史消费记录if os.path.isfile(.join([name,_cost_record.txt])):with open(.join([name,_cost_record.txt]), r,encodingUTF-8) as f:print(历史消费记录.center(40, ))print(f.read())print(.center(46, ))return Trueelse:print(您还没有任何历史消费记录)return Falsedef update_cost_record(name,shopping_list): #更新用户消费记录if len(shopping_list)0:if not os.path.isfile(.join([name, _cost_record.txt])): #第一次创建时第一行标上“商品 价格”with open(.join([name, _cost_record.txt]), a,encodingUTF-8) as f:f.write(%-5s%20s\n % (商品, 价格))f.write(.join([datetime.datetime.now().strftime(%c), 消费记录]).center(40,-)) #写入消费时间信息方便后续查询f.write(\n)for product in shopping_list:f.write(%-5s%20s\n%(product[0],str(product[1])))else:with open(.join([name, _cost_record.txt]), a,encodingUTF-8) as f:f.write(.join([datetime.datetime.now().strftime(%c), 消费记录]).center(40, -))f.write(\n)for product in shopping_list:f.write(%-5s%20s\n%(product[0],str(product[1])))return Trueelse:print(您本次没有购买商品不更新消费记录)return Falsedef shopping_chart(): #主函数用户交互函数调用结果输出product_list[(Iphone,5000),(自行车,600),(联想电脑,7800),(衬衫,350),(洗衣机,1000),(矿泉水,3),(手表,12000)] #商店商品列表shopping_list[] #用户本次购买商品列表while(True):username input(请输入用户名)password input(请输入密码)login_timeslogin(username,password) #查询输入用户名和密码是否正确,正确则返回登陆次数if login_times:print(欢迎%s第%d次登陆!.center(50,*)%(username,login_times))if login_times1:balance input(请输入工资) #第一次登陆输入账户资金while(True):if balance.isdigit():balanceint(balance)breakelse:balance input(输入工资有误请重新输入)else:balanceint(get_balance(username)) #非第一次登陆从文件获取账户余额while(True):print(请选择您要查询消费记录还是购买商品)print([0] 查询消费记录)print([1] 购买商品)choiceinput()if choice.isdigit():if int(choice)0: #查询历史消费记录inquire_cost_record(username)elif int(choice)1: #购买商品while (True):for index,item in enumerate(product_list):print(index,item)choiceinput(请输入商品编号购买商品:)if choice.isdigit():if int(choice)0 and int(choice)if int(product_list[int(choice)][1])shopping_list.append(product_list[int(choice)])balance balance - int(product_list[int(choice)][1])print(\033[31;1m%s\033[0m已加入购物车中您的当前余额是\033[31;1m%s元\033[0m %(product_list[int(choice)][0],balance))else:print(\033[41;1m您的余额只剩%s元无法购买%s\033[0m %(balance,product_list[int(choice)][0]))else:print(输入编号错误请重新输入!)elif choiceq: #退出账号登陆退出前打印本次购买清单和余额信息并更新到文件if len(shopping_list)0:print(本次购买商品清单.center(50,-))for product in shopping_list:print(%-5s%20s%(product[0],str(product[1])))print(.center(50, -))print(您的余额\033[31;1m%s元\033[0m%balance)update_cost_record(username,shopping_list)update_balance(username, balance)print(退出登陆.center(50, *))exit()else:print(您本次没有消费记录欢迎下次购买)print(退出登陆.center(50, *))exit()else:print(选项输入错误请重新输入)else:print(选项输入错误请重新输入)elif choiceq: #退出账号登陆print(退出登陆.center(50, *))exit()else:print(选项输入错误请重新输入)breakelse:print(用户名或密码错误,请重新输入!)shopping_chart() #主程序运行以上这篇Python 模拟购物车的实例讲解就是小编分享给大家的全部内容了希望能给大家一个参考也希望大家多多支持。