Python实现简易超市管理系统

yizhihongxing

Python实现简易超市管理系统

介绍

本文将介绍如何使用Python实现一个简易的超市管理系统。该系统具有以下功能:

  • 商品管理:添加、删除、修改商品信息。
  • 库存管理:查看商品库存情况。
  • 销售管理:记录销售订单,支持按日期和商品统计销售情况。

实现步骤

1. 确定数据结构

根据系统的功能,我们需要至少三个数据结构:商品信息、库存信息和销售订单。可以使用字典来表示这些信息。

# 商品信息数据结构
products = {
    '101': {'name': '可乐', 'price': 3.50},
    '102': {'name': '雪碧', 'price': 3.50},
    '103': {'name': '果汁', 'price': 5.00}
}
# 库存信息数据结构
inventory = {
    '101': {'quantity': 100},
    '102': {'quantity': 50},
    '103': {'quantity': 30}
}
# 销售订单数据结构
sales = []

2. 实现基本功能

接下来,我们可以实现系统的基本功能,如添加、删除和修改商品信息,以及查看库存信息。

# 添加商品
def add_product(code, name, price):
    if code not in products:
        products[code] = {'name': name, 'price': price}
        inventory[code] = {'quantity': 0}
        return True
    else:
        return False

# 删除商品
def delete_product(code):
    if code in products:
        del products[code]
        del inventory[code]
        return True
    else:
        return False

# 修改商品信息
def modify_product(code, name, price):
    if code in products:
        products[code]['name'] = name
        products[code]['price'] = price
        return True
    else:
        return False

# 查看库存信息
def view_inventory():
    print("Code\tName\tPrice\tQuantity")
    for code, info in products.items():
        name = info['name']
        price = info['price']
        quantity = inventory[code]['quantity']
        print(f"{code}\t{name}\t{price:.2f}\t{quantity}")

3. 实现销售管理

最后,我们可以实现销售管理功能,记录销售订单,并根据日期和商品统计销售情况。

import datetime

# 添加销售订单
def add_sales(code, quantity):
    if code in products:
        if inventory[code]['quantity'] >= quantity:
            inventory[code]['quantity'] -= quantity
            now = datetime.datetime.now()
            sale = {'code': code, 'quantity': quantity, 'date': now}
            sales.append(sale)
            return True
        else:
            return False
    else:
        return False

# 按日期统计销售情况
def sales_by_date(date):
    total = 0
    for sale in sales:
        if sale['date'].date() == date.date():
            code = sale['code']
            price = products[code]['price']
            quantity = sale['quantity']
            total += price * quantity
    print(f"Total sales on {date.date()}: {total:.2f}")

# 按商品统计销售情况
def sales_by_product(code):
    total = 0
    for sale in sales:
        if sale['code'] == code:
            price = products[code]['price']
            quantity = sale['quantity']
            total += price * quantity
    print(f"Total sales of {products[code]['name']}: {total:.2f}")

示例说明

示例1:添加商品和查看库存信息

# 添加商品
>>> add_product('104', '薯片', 6.00)
True
>>> add_product('104', '薯片', 6.00)
False

# 查看库存信息
>>> view_inventory()
Code    Name    Price   Quantity
101     可乐     3.50    100
102     雪碧     3.50    50
103     果汁     5.00    30
104     薯片     6.00    0

示例2:记录销售订单和统计销售情况

# 记录销售订单
>>> add_sales('101', 10)
True
>>> add_sales('101', 50)
False
>>> add_sales('104', 20)
False

# 按日期统计销售情况
>>> sales_by_date(datetime.datetime(2021, 10, 1))
Total sales on 2021-10-01: 35.00

# 按商品统计销售情况
>>> sales_by_product('101')
Total sales of 可乐: 35.00

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现简易超市管理系统 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • 浅谈Python数学建模之整数规划

    下面是详细讲解“浅谈Python数学建模之整数规划”的完整攻略。 1. 什么是整数规划 整数规划是一种数学优化问题,它要求满足一约束条件的情况下,找到一组整数解,得目标函数取得最大或最小值。整数规划在实际用中经常用于生产调度、资源分配、物流配送等领域。 2. Python实现整数规划 Python中多种可以实整数规划,以下是其中两种常用方法。 2.1 使用P…

    python 2023年5月14日
    00
  • Python实现的排列组合计算操作示例

    下面是详细讲解“Python实现的排列组合计算操作示例”的完整攻略。 1. 什么是排列组合 排列组合是数学中的一个分支,它研究是从组元素中选取若干个元素进行排列或组合的和规律。在实际应用中,排列组合经用计算概率、统计学、密码学等领域。 2. Python实现排列组计算 Python中有多种方法可以排列组合计算,以下是其中两种常用的方法。 2.1math库实现…

    python 2023年5月14日
    00
  • 解决Python中报错TypeError: must be str, not bytes问题

    当我们在Python中使用字符串时,有时候会遇到TypeError: must be str, not bytes的错误。这个错误通常是由于我们在使用字符串时,将字节类型的传递给了字符串类型的函数或方法。本攻略将介绍如何解决这个问题,特别是在Python 3中使用字符串时出的问题。 问题描述 在Python中,当我们使用字符串时,有时候会遇到以下错误: Ty…

    python 2023年5月13日
    00
  • Python中的迭代器与生成器高级用法解析

    Python中的迭代器与生成器高级用法解析 迭代器 什么是迭代器 在Python中,任何一个对象,如果它定义了__iter__方法和__next__方法,那么它就被称为是一个迭代器。 __iter__方法返回一个迭代器对象本身,__next__方法返回迭代器对象的下一个元素。 迭代器的高级用法 itertools模块 Python的itertools模块提供…

    python 2023年6月3日
    00
  • Python 多线程爬取案例

    针对“Python 多线程爬取案例”这个主题,以下是我提供的完整攻略: Python 多线程爬取案例 介绍 在进行网络爬虫时,我们经常需要同时处理多个网页的数据。这就需要用到多线程编程,通过同时执行多段任务,提高程序效率和性能。Python 有专门处理多线程的模块 threading,可以让我们方便地实现并行操作。 本文将介绍如何使用 Python 多线程模…

    python 2023年5月14日
    00
  • python实现高斯模糊及原理详解

    Python实现高斯模糊及原理详解 高斯模糊是一种常用的图像处理技术,它可以使图像变得更加平滑,减少噪点和细节。在本文中,我们将介绍高斯模糊的原理,并提供Python实现高斯模糊的代码。 高斯模糊的原理 高斯模糊的原理是基于高斯函数的卷积运算。高斯函数是一种钟形曲线,它可以用来描述一组数据的分布情况。在图像处理中,我们可以将高斯函数应用于图像的像素值,从而实…

    python 2023年5月14日
    00
  • Python中Selenium上传文件的几种方式

    在Python中使用Selenium上传文件是Web自动化测试中的常见需求。本文将详细讲解Python中Selenium上传文件的几种方式,包括使用send_keys方法、使用AutoIT工具、使用pywinauto库等。 使用send_keys方法 使用send_keys方法是最简单的上传文件方式,可以直接将文件路径作为参数传递给send_keys方法。以…

    python 2023年5月15日
    00
  • python中的数组赋值与拷贝的区别详解

    下面是关于“python中的数组赋值与拷贝的区别详解”的完整攻略: 为什么要区别赋值与拷贝 在Python中,我们可以使用=来进行赋值操作。但在使用=赋值时,可能出现的问题是在对变量进行修改时,会更改原本的值,这可能会影响程序中其他变量所使用的值。因此,当我们需要使用多个变量来表示数组时,我们需要区分赋值和拷贝。 数组赋值的基本原理 在Python中,当我们…

    python 2023年6月5日
    00
合作推广
合作推广
分享本页
返回顶部