python商城购物系统
- List item代码实现了一个简单的购物系统,包含了用户注册、登录、添加余额、查看余额、查看购物车、查看商品列表、购买商品、移除购物车中的商品、结账等功能。
代码分为两个类:User
和 ShoppingMarket
。
User
类:__init__
方法初始化用户对象,接收用户名和密码作为参数,并设置初始余额为0,购物车为空列表,购物车总价为0。display_info
方法用于显示用户信息,打印用户名和余额。modify_info
方法用于修改用户信息,通过用户输入的新用户名和密码来更新用户对象的属性。add_balance
方法用于添加余额,接收金额作为参数,并将金额累加到用户对象的余额上。view_balance
方法用于查看当前余额,打印用户对象的余额。view_cart
方法用于查看购物车,如果购物车为空,则打印提示信息;否则,逐个打印购物车中商品的名称、价格和数量。add_to_cart
方法用于将商品加入购物车,接收商品名称、价格和数量作为参数,将商品信息以列表形式添加到购物车列表中,并更新购物车总价。remove_from_cart
方法用于从购物车中移除商品,接收商品名称、价格和数量作为参数,遍历购物车列表找到对应商品,更新购物车总价和商品数量,并在数量为0时将商品从购物车列表中移除。checkout
方法用于结账,接收收货地址和手机号作为参数,检查余额是否足够支付购物车中商品的总价,如果余额足够,则从余额中扣除总价,并打印结账成功的提示信息,同时打印购买的商品手机号和收货地址;清空购物车列表和购物车总价。
ShoppingMarket
类:__init__
方法初始化购物市场对象,创建一个空的用户字典和一个商品字典,商品字典中包含一些示例商品及其对应的价格。register
方法用于用户注册,接收用户名和密码作为参数,检查用户名是否已存在,如果存在则打印提示信息,否则创建一个新的User
对象,并将其添加到用户字典中。login
方法用于用户登录,接收用户名和密码作为参数,检查用户名是否存在于用户字典中,如果存在则检查密码是否匹配,如果匹配则打印欢迎信息并返回相应的用户对象,否则打印密码错误的提示信息;如果用户名不存在,则打印相应的提示信息。
market
对象是一个ShoppingMarket
类的实例,用于实际运行购物市场系统。
代码主要部分是一个循环,用户可以根据提示选择不同的操作:
- 如果选择 “1”,则进行用户注册操作,输入用户名和密码后调用
register
方法进行注册。 - 如果选择 "2
",则进行用户登录操作,输入用户名和密码后调用 login
方法进行登录。如果登录成功,进入子菜单循环,可以进行余额管理、购物车操作、商品浏览、结账等操作。
- 如果选择 “3”,则退出系统。
- 如果输入的选项无效,则打印相应的提示信息。
子菜单循环中的操作包括:
- 添加余额:输入要添加的金额后调用
add_balance
方法进行余额增加操作。 - 查看余额:调用
view_balance
方法显示当前余额。 - 查看购物车:调用
view_cart
方法显示购物车中的商品信息。 - 查看所有商品:遍历商品字典并打印所有商品的名称和价格。
- 购买商品:根据商品编号、数量等信息调用
add_to_cart
方法将商品加入购物车。 - 移除购物车中的商品:根据商品编号、数量等信息调用
remove_from_cart
方法从购物车中移除商品。 - 结账:输入收货地址和手机号后调用
checkout
方法进行结账操作。 - 查询用户信息:调用
display_info
方法显示当前用户的信息。 - 修改用户信息:输入新的用户名和密码后调用
modify_info
方法进行用户信息修改。 - 返回上级菜单:跳出子菜单循环,返回到登录菜单。
class User:def __init__(self, name, password):self.name = nameself.password = passwordself.balance = 0self.cart = []self.price = 0# 添加新的方法用来显示用户信息def display_info(self):print(f"用户名:{self.name}")print(f"余额:{self.balance}")# 添加新的方法用来修改用户信息def modify_info(self):name = input("请输入新的用户名:")password = input("请输入新的密码:")self.name = nameself.password = passwordprint("用户信息修改成功")def add_balance(self, amount):self.balance += amountprint(f"成功添加余额:{amount},当前余额为:{self.balance}")def view_balance(self):print(f"当前余额为:{self.balance}")def view_cart(self):if not self.cart:print("购物车为空")else:print("购物车内的商品有:")for item in self.cart:print(f"{item[0]} - 价格:{item[1]} - 数量:{item[2]}")def add_to_cart(self, item, price, quantity):self.cart.append([item, price, quantity])self.price += price * quantityprint(f"成功将商品 {item} 加入购物车")def remove_from_cart(self, item, price, quantity):for cart_item in self.cart:if cart_item[0] == item:self.price -= price * quantitycart_item[2] -= quantityif cart_item[2] <= 0:self.cart.remove(cart_item)print(f"成功移除购物车中的商品:{item}")returnprint(f"购物车中没有商品:{item}")def checkout(self, address, phone):if self.price > self.balance:print("余额不足,无法结账")returnself.balance -= self.priceprint("结账成功")print(f"购买的商品的手机号:{phone}")print(f"收货地址:{address}")self.cart.clear()self.price = 0class ShoppingMarket:def __init__(self):self.users = {}self.products = {'产品1': 10, '产品2': 20, '产品3': 30}def register(self, name, password):if name in self.users:print("用户名已存在")else:self.users[name] = User(name, password)print("注册成功")def login(self, name, password):if name in self.users:user = self.users[name]if user.password == password:print(f"欢迎回来,{name}!")return userelse:print("密码错误")return Noneelse:print("用户名不存在")return Nonemarket = ShoppingMarket()while True:print("1. 注册")print("2. 登录")print("3. 退出系统")choice = input("请选择操作:")if choice == "1":name = input("请输入用户名:")password = input("请输入密码:")market.register(name, password)elif choice == "2":name = input("请输入用户名:")password = input("请输入密码:")user = market.login(name, password)if user:while True:print("1. 添加余额")print("2. 查看余额")print("3. 查看购物车")print("4. 查看所有商品")print("5. 购买商品")print("6. 移除购物车中的商品")print("7. 结账")print("8. 查询用户信息") # 新增操作print("9. 修改用户信息") # 新增操作print("10. 返回上级菜单") # 编号改为10sub_choice = input("请选择操作:")if sub_choice == "1":amount = float(input("请输入要添加的余额:"))user.add_balance(amount)elif sub_choice == "2":user.view_balance()elif sub_choice == "3":user.view_cart()elif sub_choice == "4":print("所有商品列表:")for i, (product, price) in enumerate(market.products.items(), start=1):print(f"{i}. {product} - 价格:{price}")elif sub_choice == "5":item_num = int(input("请输入要购买的商品编号:"))if 1 <= item_num <= len(market.products):item = list(market.products.keys())[item_num - 1]price = market.products[item]quantity = int(input("请输入购买的数量:"))user.add_to_cart(item, price, quantity)else:print("无效的商品编号")elif sub_choice == "6":item_num = int(input("请输入要移除的商品编号:"))if 1 <= item_num <= len(market.products):item = list(market.products.keys())[item_num - 1]price = market.products[item]quantity = int(input("请输入移除的数量:"))user.remove_from_cart(item, price, quantity)else:print("无效的商品编号")elif sub_choice == "7":address = input("请输入收货地址:")phone = input("请输入手机号:")user.checkout(address, phone)elif sub_choice == "8":user.display_info() # 查询用户信息elif sub_choice == "9":user.modify_info() # 修改用户信息elif sub_choice == "10":breakelse:print("无效的操作")else:continueelif choice == "3":print("退出系统")breakelse:print("无效的操作")
python商城购物系统相关推荐
- [附源码]Python计算机毕业设计Django文具商城购物系统
项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+Navicat11+Django+nodejs. 项目技术: dj ...
- java基于springboot的网上商城购物系统
项目介绍 随着社会的快速发展,计算机的影响是全面且深入的.人们生活水平的不断提高,日常生活中人们对网上商城购物系统方面的要求也在不断提高,购物的人数更是不断增加,使得网上商城购物系统的开发成为必需而且 ...
- nodejs基于vue 网上商城购物系统
可定制框架:ssm/Springboot/vue/python/PHP/小程序/安卓均可开发 目录 1 绪论 1 1.1课题背景 1 1.2课题研究现状 1 1.3初步设计方法与实施方案 2 1.4本 ...
- 【计算机毕业设计】512网上商城购物系统
一.系统截图(需要演示视频可以私聊) 摘 要 随着科学技术的飞速发展,社会的方方面面.各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,网上商城购物系统当然也不能排除在外.网上商城 ...
- 商城购物系统【用户登录注册,购物页面,购物车页面,订单页面】
商城购物系统 文章目录 商城购物系统 前言 一.使用Mysql数据库建立需要用的商品表,用户表 二.利用html+cs+js对前台进行设计 效果如下 2.对商品页与购物车页进行设计 总结 前言 这学期 ...
- 基于Java的商城购物系统
源码编号:F-A14 项目类型:Java SE项目(GUI图形界面) 项目名称:商城购物系统,开源免费 用户类型:双角色(会员.管理员) 主要技术:java.awt.swing.等技术 开发工具:Ec ...
- Java毕设项目网上商城购物系统(java+VUE+Mybatis+Maven+Mysql)
Java毕设项目网上商城购物系统(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Web ...
- 基于SSM实现的云商城购物系统
基于SSM实现的云商城购物系统 目录 1.项目简介 2 1.1背景分析 2 1.2系统描叙 2 1.3系统功能 2 1.4开发平台 3 1.5数据库环境 3 2.具体需求 3 2.1功能需求 3 2. ...
- springboot+vue+elementui实现前后端分离的网上商城购物系统
文末获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclip ...
最新文章
- ORCAD常用元件库说明
- opencv 仪表数字切割
- 我是一只IT小小鸟读书笔记3
- Zuul默认路由规则
- docker --- 梳理 Dockerfile docker-compose.yml
- 为什么我们应该使用 Flutter?
- power bi 雷达图_空天院研制的调频连续波激光雷达实现公里级成像
- (4.10)mysql备份还原——利用binlog+全备恢复误删表【不推荐使用】
- 解决python3报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xaa in position 1: ordinal not in ra
- Linux界面介绍及基础知识
- Visual Studio 6/2005/2008/2010 各版本编译器 下载
- 洛谷 桶哥的问题——吃桶——题解
- Apache2.4 HTTP服务器配置反向代理和负载均衡
- 昆虫大战电子计算机软件,风雨的昆虫大战AI双图版
- perl中grep用法总结
- css 宽度为百分比, 高度和宽度相等的设置
- Python对接api接口爬取音乐
- WinSCP 连接错误:列出‘/‘的目录项时出错。
- 用水晶报表制作张坤需要的报表格式
- 木马生成器源代码-资源法(VC++)