使用所学知识编写一个基于控制台的购书系统,实现购书功能。输出所有图书的信息:包括每本书的编号、书名、单价、库存。顾客购买书时,根据提示输入图书编号来选购需要的书,并根据提示输入购买书的的数量。购买完毕后输出顾客的订单信息,包括:订单号、订单明细、订单总额。
时间: 2024-09-23 13:05:54 浏览: 83
我可以帮你概述一下如何设计一个简单的控制台购书系统的流程:
1. 定义数据结构:
- 创建一个Book类,包含属性如id(编号)、title(书名)、price(单价)和stock(库存)。
```python
class Book:
def __init__(self, id, title, price, stock):
self.id = id
self.title = title
self.price = price
self.stock = stock
```
2. 创建图书列表:
- 初始化一些书籍实例并存储在一个列表中。
```python
books = [
Book(1, '书名1', 10.0, 5),
Book(2, '书名2', 20.0, 3),
# 更多书籍...
]
```
3. 购物车和订单管理:
- 为顾客创建一个ShoppingCart类,用于添加商品和计算总价。
```python
class ShoppingCart:
def __init__(self):
self.items = {}
def add_book(self, book_id, quantity):
if book_id in self.items:
self.items[book_id] += quantity
else:
self.items[book_id] = quantity
def calculate_total(self):
total = 0
for item in self.items.values():
total += item * books[item-1].price
return total
```
4. 控制台交互界面:
- 用户输入操作命令(例如:查看书籍、购买书籍等),并处理用户输入。
```python
def main():
cart = ShoppingCart()
while True:
print("请选择操作:1. 查看书籍 2. 购买书籍 3. 结算")
choice = input()
if choice == '1':
print_books()
elif choice == '2':
book_id = int(input("请输入要购买的书籍编号:"))
quantity = int(input("请输入购买数量:"))
cart.add_book(book_id, quantity)
elif choice == '3':
order_info(cart)
break
else:
print("无效选择,请重新输入。")
def print_books():
for i, book in enumerate(books, start=1):
print(f"{i}. {book.title} - 单价:{book.price}, 库存:{book.stock}")
def order_info(cart):
order_total = cart.calculate_total()
order_items = "\n".join([f"{item}: {books[item-1].title} x {cart.items[item]}, 总价:{books[item-1].price*cart.items[item]}" for item in cart.items])
print(f"订单号:{len(orders)+1}\n订单明细:\n{order_items}\n订单总额:{order_total}")
```
5. 运行主函数:
- 运行`main()`函数开始购书系统。
这个简单的购书系统通过控制台交互实现了基本的购书功能,你可以根据实际需求扩展它,比如增加库存检查、错误处理等功能。运行时,按照提示操作即可完成购书过程。
阅读全文