基于Python 宠物用品库存管理系统开发

Python 宠物用品库存管理系统开发

在这里插入图片描述

一、项目背景与需求分析

在宠物行业蓬勃发展的当下,宠物用品店的商品种类繁多,库存管理变得尤为重要。为了提高管理效率、减少人为错误,我们可以开发一个宠物用品库存管理系统。该系统需要具备商品信息管理、库存数量管理、进货与销售记录等功能,同时要能够方便地查询和统计数据。

二、系统设计

2.1 功能模块设计

  • 商品信息管理:包括商品的添加、删除、修改和查询。
  • 库存管理:实时更新商品的库存数量,处理进货和销售操作。
  • 记录管理:记录每次进货和销售的详细信息,包括日期、商品名称、数量、价格等。
  • 统计查询:可以根据不同条件查询商品信息、库存数量和交易记录。

2.2 数据结构设计

  • 商品类(Product:包含商品的基本信息,如商品 ID、名称、价格、库存数量等。
  • 交易记录类(TransactionRecord:记录每次进货或销售的详细信息,包括交易 ID、日期、商品 ID、数量、交易类型(进货或销售)等。

三、代码实现

import datetime

# 商品类
class Product:
    def __init__(self, product_id, name, price, stock):
        self.product_id = product_id
        self.name = name
        self.price = price
        self.stock = stock

    def update_stock(self, quantity):
        self.stock += quantity

# 交易记录类
class TransactionRecord:
    def __init__(self, transaction_id, date, product_id, quantity, transaction_type):
        self.transaction_id = transaction_id
        self.date = date
        self.product_id = product_id
        self.quantity = quantity
        self.transaction_type = transaction_type

# 宠物用品库存管理系统类
class PetSupplyInventorySystem:
    def __init__(self):
        self.products = {}
        self.transactions = {}
        self.next_product_id = 1
        self.next_transaction_id = 1

    # 添加商品
    def add_product(self, name, price, stock):
        product_id = self.next_product_id
        product = Product(product_id, name, price, stock)
        self.products[product_id] = product
        self.next_product_id += 1
        print(f"商品 {name} 已成功添加,商品 ID 为 {product_id}。")

    # 删除商品
    def delete_product(self, product_id):
        if product_id in self.products:
            del self.products[product_id]
            print(f"商品 ID 为 {product_id} 的商品已成功删除。")
        else:
            print(f"未找到商品 ID 为 {product_id} 的商品。")

    # 修改商品信息
    def update_product(self, product_id, name=None, price=None, stock=None):
        if product_id in self.products:
            product = self.products[product_id]
            if name:
                product.name = name
            if price:
                product.price = price
            if stock:
                product.stock = stock
            print(f"商品 ID 为 {product_id} 的商品信息已更新。")
        else:
            print(f"未找到商品 ID 为 {product_id} 的商品。")

    # 查询商品信息
    def query_product(self, product_id):
        if product_id in self.products:
            product = self.products[product_id]
            print(f"商品 ID: {product.product_id}")
            print(f"商品名称: {product.name}")
            print(f"商品价格: {product.price}")
            print(f"商品库存: {product.stock}")
        else:
            print(f"未找到商品 ID 为 {product_id} 的商品。")

    # 进货操作
    def purchase(self, product_id, quantity):
        if product_id in self.products:
            product = self.products[product_id]
            product.update_stock(quantity)
            transaction_id = self.next_transaction_id
            date = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
            transaction = TransactionRecord(transaction_id, date, product_id, quantity, "进货")
            self.transactions[transaction_id] = transaction
            self.next_transaction_id += 1
            print(f"商品 ID 为 {product_id} 的商品进货 {quantity} 件成功。")
        else:
            print(f"未找到商品 ID 为 {product_id} 的商品。")

    # 销售操作
    def sell(self, product_id, quantity):
        if product_id in self.products:
            product = self.products[product_id]
            if product.stock >= quantity:
                product.update_stock(-quantity)
                transaction_id = self.next_transaction_id
                date = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
                transaction = TransactionRecord(transaction_id, date, product_id, quantity, "销售")
                self.transactions[transaction_id] = transaction
                self.next_transaction_id += 1
                print(f"商品 ID 为 {product_id} 的商品销售 {quantity} 件成功。")
            else:
                print(f"商品 ID 为 {product_id} 的商品库存不足,当前库存为 {product.stock} 件。")
        else:
            print(f"未找到商品 ID 为 {product_id} 的商品。")

    # 查询交易记录
    def query_transaction(self, transaction_id):
        if transaction_id in self.transactions:
            transaction = self.transactions[transaction_id]
            print(f"交易 ID: {transaction.transaction_id}")
            print(f"交易日期: {transaction.date}")
            print(f"商品 ID: {transaction.product_id}")
            print(f"交易数量: {transaction.quantity}")
            print(f"交易类型: {transaction.transaction_type}")
        else:
            print(f"未找到交易 ID 为 {transaction_id} 的交易记录。")

# 测试代码
if __name__ == "__main__":
    system = PetSupplyInventorySystem()

    # 添加商品
    system.add_product("宠物狗粮", 50, 100)
    system.add_product("宠物猫砂", 30, 200)

    # 进货操作
    system.purchase(1, 50)

    # 销售操作
    system.sell(1, 20)

    # 查询商品信息
    system.query_product(1)

    # 查询交易记录
    system.query_transaction(1)

四、代码解释

4.1 Product

该类表示商品,包含商品的基本信息,如商品 ID、名称、价格和库存数量。update_stock 方法用于更新商品的库存数量。

4.2 TransactionRecord

该类表示交易记录,包含交易 ID、日期、商品 ID、数量和交易类型。

4.3 PetSupplyInventorySystem

该类是宠物用品库存管理系统的核心类,包含以下主要方法:

  • add_product:添加新商品。
  • delete_product:删除指定 ID 的商品。
  • update_product:修改指定 ID 商品的信息。
  • query_product:查询指定 ID 商品的信息。
  • purchase:处理进货操作,更新商品库存并记录交易信息。
  • sell:处理销售操作,更新商品库存并记录交易信息。
  • query_transaction:查询指定 ID 的交易记录。

五、总结与扩展

通过以上代码,我们实现了一个简单的宠物用品库存管理系统。该系统可以方便地管理商品信息、库存数量和交易记录。在实际应用中,我们可以进一步扩展系统功能,如添加用户认证、生成报表、设置库存预警等,以满足更复杂的业务需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值