做出根据订单日期客户名称客户类型城市价格以及数量的python项目
时间: 2024-02-25 20:52:24 浏览: 23
好的,以下是一个基于Python的超市订单管理系统的示例代码。这个代码可以实现添加、查看、修改、删除订单等基本功能,同时支持根据日期、客户名称、客户类型、城市、价格、数量等条件进行订单筛选和查询:
```python
import csv
class Order:
def __init__(self, date, customer_name, customer_type, city, price, quantity):
self.date = date
self.customer_name = customer_name
self.customer_type = customer_type
self.city = city
self.price = price
self.quantity = quantity
class OrderManager:
def __init__(self):
self.orders = []
def read_from_file(self, file_name):
with open(file_name, "r") as f:
reader = csv.reader(f)
next(reader) # skip header
for row in reader:
order = Order(row[0], row[1], row[2], row[3], float(row[4]), int(row[5]))
self.orders.append(order)
def write_to_file(self, file_name):
with open(file_name, "w") as f:
writer = csv.writer(f)
writer.writerow(["日期", "客户名称", "客户类型", "城市", "价格", "数量"])
for order in self.orders:
writer.writerow([order.date, order.customer_name, order.customer_type, order.city, order.price, order.quantity])
def add_order(self, order):
self.orders.append(order)
def remove_order(self, order):
self.orders.remove(order)
def get_orders(self, filters={}):
filtered_orders = self.orders
for key, value in filters.items():
filtered_orders = [order for order in filtered_orders if getattr(order, key) == value]
return filtered_orders
# 测试代码
order_manager = OrderManager()
# 从文件中读取订单数据
order_manager.read_from_file("orders.csv")
# 添加一个新订单
new_order = Order("2021-05-01", "张三", "个人客户", "北京", 10.0, 100)
order_manager.add_order(new_order)
# 根据日期和客户名称查询订单
filters = {"date": "2021-05-01", "customer_name": "张三"}
orders = order_manager.get_orders(filters)
for order in orders:
print(order.date, order.customer_name, order.customer_type, order.city, order.price, order.quantity)
# 修改一个订单
order_to_modify = orders[0]
order_to_modify.price = 12.0
order_manager.write_to_file("orders.csv")
# 删除一个订单
order_to_remove = orders[0]
order_manager.remove_order(order_to_remove)
order_manager.write_to_file("orders.csv")
```
在这个示例代码中,我们定义了一个Order类来表示订单,包含了日期、客户名称、客户类型、城市、价格、数量等属性。我们还定义了一个OrderManager类来管理订单,包括读取、写入、添加、修改、删除订单等基本操作。在OrderManager类中,我们使用了一个列表来存储所有订单。我们可以通过调用get_orders方法,并传入一个filters字典来筛选和查询订单。例如,我们可以通过传入{"date": "2021-05-01", "customer_name": "张三"}来查询指定日期和客户名称的订单。我们还可以通过调用add_order、remove_order等方法来添加、删除订单,通过调用write_to_file方法来将订单数据写入文件中。