|
自助餐解决软件是餐饮行业数字化转型的迫切用具体育游戏app平台,好像匡助餐厅高效解决菜品库存、顾主流量和财务结算。本文将先容一个基于Python的简便自助餐解决系统的杀青,包含中枢功能模块和代码示例。 系统功能策画 中枢功能模块 菜品解决:增改削查菜品信息(称号、价钱、分类、库存) 顾主解决:纪录顾主滥用信息 订单解决:处理自助餐订单(取餐、结算) 库存解决:及时监控菜品库存 报表统计:生成生意数据报表 中枢代码杀青 1. 基础数据模子 张开剩余94%python from dataclasses import dataclass from typing import List, Dict, Optional import datetime @dataclass class Dish: """菜品数据模子""" id: int name: str price: float category: str # 举例:热菜、凉菜、甜点等 stock: int # 库存数目 is_active: bool = True # 是否在售 @dataclass class Customer: """顾主数据模子""" id: int name: Optional[str] = None phone: Optional[str] = None membership: bool = False # 是否会员 @dataclass class OrderItem: """订单项数据模子""" dish_id: int quantity: int = 1 timestamp: datetime.datetime = datetime.datetime.now() @dataclass class Order: """订单数据模子""" id: int customer_id: Optional[int] = None items: List[OrderItem] = None total_amount: float = 0.0 status: str = "active" # active/completed/cancelled timestamp: datetime.datetime = datetime.datetime.now() 2. 自助餐解决系统中枢类 python class BuffetManagementSystem: def __init__(self): self.dishes: Dict[int, Dish] = {} self.customers: Dict[int, Customer] = {} self.orders: Dict[int, Order] = {} self.next_dish_id = 1 self.next_customer_id = 1 self.next_order_id = 1 # 菜品解决 def add_dish(self, name: str, price: float, category: str, stock: int) -> int: """添加新菜品""" dish = Dish( id=self.next_dish_id, name=name, price=price, category=category, stock=stock ) self.dishes[self.next_dish_id] = dish self.next_dish_id += 1 return dish.id def update_dish_stock(self, dish_id: int, quantity: int) -> bool: """更新菜品库存""" if dish_id not in self.dishes: return False dish = self.dishes[dish_id] if dish.stock + quantity < 0: return False # 库存不可为负 dish.stock += quantity return True # 顾主解决 def add_customer(self, name: str = None, phone: str = None, membership: bool = False) -> int: """添加新顾主""" customer = Customer( id=self.next_customer_id, name=name, phone=phone, membership=membership ) self.customers[self.next_customer_id] = customer self.next_customer_id += 1 return customer.id # 订单解决 def create_order(self, customer_id: Optional[int] = None) -> int: """创建新订单""" order = Order( id=self.next_order_id, customer_id=customer_id, items=[], total_amount=0.0 ) self.orders[self.next_order_id] = order self.next_order_id += 1 return order.id def add_item_to_order(self, order_id: int, dish_id: int, quantity: int = 1) -> bool: """向订单添加菜品""" if order_id not in self.orders or dish_id not in self.dishes: return False order = self.orders[order_id] dish = self.dishes[dish_id] if dish.stock < quantity: return False # 库存不及 # 检查是否已存在换取菜品 existing_item = next((item for item in order.items if item.dish_id == dish_id), None) if existing_item: existing_item.quantity += quantity else: order.items.append(OrderItem(dish_id=dish_id, quantity=quantity)) # 更新总价 order.total_amount += dish.price * quantity # 减少库存 dish.stock -= quantity return True def complete_order(self, order_id: int) -> bool: """完成订单""" if order_id not in self.orders: return False order = self.orders[order_id] if order.status != "active": return False # 订单情景不正确 order.status = "completed" return True # 报表统计 def get_revenue_report(self, start_date: datetime.date, end_date: datetime.date) -> Dict[str, float]: """生成收入报表""" report = { "total_revenue": 0.0, "category_revenue": {} # 按菜品分类统计 } for order in self.orders.values(): if order.status != "completed": continue order_date = order.timestamp.date() if not (start_date <= order_date <= end_date): continue report["total_revenue"] += order.total_amount # 统计各分类收入 for item in order.items: dish = self.dishes.get(item.dish_id) if dish: category = dish.category revenue = dish.price * item.quantity report["category_revenue"][category] = report["category_revenue"].get(category, 0.0) + revenue return report 3. 简便用户界面杀青 python class BuffetCLI: def __init__(self, system: BuffetManagementSystem): self.system = system def run(self): """号令行界面主轮回""" while True: print("\n自助餐解决系统") print("1. 添加菜品") print("2. 更新库存") print("3. 添加顾主") print("4. 创建订单") print("5. 向订单添加菜品") print("6. 完成订单") print("7. 生成收入报表") print("0. 退出") choice = input("请选拔操作: ") if choice == "1": self.add_dish() elif choice == "2": self.update_stock() elif choice == "3": self.add_customer() elif choice == "4": self.create_order() elif choice == "5": self.add_item_to_order() elif choice == "6": self.complete_order() elif choice == "7": self.generate_report() elif choice == "0": break else: print("无效选拔,请重试") def add_dish(self): name = input("菜品称号: ") try: price = float(input("价钱: ")) stock = int(input("库存数目: ")) except ValueError: print("输入无效,请输入数字") return category = input("分类(热菜/凉菜/甜点等): ") dish_id = self.system.add_dish(name, price, category, stock) print(f"到手添加菜品,ID: {dish_id}") # 其他行径杀青相似,简化展示... 系统扩张提倡 数据库集成:将数据合手久化到SQLite或MySQL数据库 Web界面:使用Flask/Django成立Web解决界面 支付系统:集成第三方支付接口 会员系统:杀青积分、扣头等会员功能 智能库存:基于历史数据算计库存需求 竣工示例运行 python if __name__ == "__main__": system = BuffetManagementSystem() cli = BuffetCLI(system) # 运行化一些测试数据 system.add_dish("红烧肉", 38.0, "热菜", 50) system.add_dish("凉拌黄瓜", 18.0, "凉菜", 100) system.add_dish("提拉米苏", 28.0, "甜点", 30) cli.run() 追想 本文杀青了一个基础的自助餐解决系统,涵盖了中枢业务逻辑。内容商用系统需要在此基础上进行以下矫正: 添加用户认证和权限解决 杀青更完善的失实处理和日记纪录 优化数据存储和检索性能 添加数据备份和复原机制 著作部分代码参考开头:https://github.com/17c13cm/sh/issues/9 著作部分代码参考开头:https://github.com/17c13cm/sh/issues/10 著作部分代码参考开头:https://github.com/17c13cm/sh/issues/11 著作部分代码参考开头:https://github.com/17c13cm/sh/issues/12体育游戏app平台 发布于:江西省 |