【python】——超市管理系统和用turtle动态画图(爱心和魔幻曲线)

简介: 【python】——超市管理系统和用turtle动态画图(爱心和魔幻曲线)

🎯超市管理系统:


🎐所要解决的问题


(1)系统包括5种操作,分别是:1.查询商品;2.新增商品;3.卖出商品;4.汇总;-1.退出系统。


(2)选择操作序号“1”,显示所有库存商品,若当前库存无商品,输出“当前库存商品为零”的提示信息。


(3)选择操作序号“2”,添加新的商品(包括商品名称、进货价格、销售价格、进货数量)。


(4)选择操作序号“3”,卖出商品(输入卖出商品名称,若商品有库存,输入销售数量,若库存数量大于等于销售数量,卖出商品,并进行收银,并将库存数量减去销售数量)


(5)选择操作序号“4”,汇总现有库存商品,包括每种商品名称、进货价格、销售价格、库存数量,显示进货总货款(进货款为负值),显示总销售额。


(6)选择操作序号“-1”,退出系统。


系统运行时各种情况的测试数据如下图所示:


74477be1cc2deed08d0015a44da9334f_0e6494b7867ee40b08545516439541fc.png


🎐 解题思路:


       这个超市管理系统可以通过面向对象的方式来设计。首先,我们可以定义一个商品类,包括商品名称、进货价格、销售价格和库存数量等属性。然后创建一个超市管理系统类,该类包含添加商品、查询商品、卖出商品、汇总信息和退出系统等方法。


       在主程序中,通过循环接收用户输入的操作序号,并调用相应的方法来实现不同的功能。当用户选择操作序号1时,系统会列出所有库存商品;选择操作序号2时,系统可以添加新的商品信息;选择操作序号3时,系统可以进行商品销售操作,减少库存数量并进行收银;选择操作序号4时,系统将汇总现有库存商品信息并显示进货总货款和总销售额;选择操作序号-1时,退出系统。


🎐程序代码:

💻分布解析:

class Commodity:
   def __init__(self,name,inputprice,outputprice,num,num_sold=0):
       self.name=name
       self.inputprice=inputprice
       self.outputprice=outputprice
       self.num=num
       self.num_sold=num_sold


        在这个类中,我们定义了商品名称(name)、进货价格(inputprice)、销售价格(outputprice)、库存数量(num)和已售出数量(num_sold)作为属性,其中已售出数量默认为0。初始化方法用于创建商品对象并初始化其属性。


class Supermarket:
   def __init__(self):
       self.commodities = []  # 初始化一个空的商品列表
 
   def add_commodity(self, name, inputprice, outputprice, num):
       commodity=Commodity(name, inputprice, outputprice, num)  # 创建商品对象
       self.commodities.append(commodity)  # 将商品添加到商品列表中
 
   def list_commodities(self):
       if not self.commodities:  # 判断商品列表是否为空
           print("当前库存商品为零")
       else:
           for commodity in self.commodities:
               print(f"商品名称:{commodity.name},进货价格:{commodity.inputprice},销售价格:{commodity.outputprice},库存数量:{commodity.num}")

        在Supermarket类中,我们初始化了一个空的商品列表,并实现了添加商品和列出商品的功能。添加商品方法会创建Commodity对象,并将其添加到商品列表中。列出商品方法会逐个打印每个商品的信息。


   def sell_commodity(self, name, num_sold):
       # 略...
 
   def summary(self):
       # 略...

        在这两个方法中,卖出商品方法会处理商品的销售操作,包括计算应付款、输入付款金额、更新库存等。汇总信息方法会打印出当前所有商品的情况,包括商品名称、进货价格、销售价格、库存数量,以及总销售额和总进货额。


def main():
   # 略...
if __name__=="__main__":
   main()

       在主程序中,首先打印欢迎消息和菜单选项。然后通过循环接收用户输入的菜单编号,并根据用户的选择调用不同的超市管理系统方法来实现不同的功能,包括查询商品、新增商品、卖出商品和汇总信息。当用户输入-1时退出系统。


💻总代码:

# 定义商品类
class Commodity:
   def __init__(self, name, inputprice, outputprice, num, num_sold=0):
       self.name = name  # 商品名称
       self.inputprice = inputprice  # 进货价格
       self.outputprice = outputprice  # 销售价格
       self.num = num  # 库存数量
       self.num_sold = num_sold  # 已售出数量
 
# 定义超市类
class Supermarket:
   def __init__(self):
       self.commodities = []  # 初始化一个空的商品列表
 
   # 添加商品方法
   def add_commodity(self, name, inputprice, outputprice, num):
       commodity = Commodity(name, inputprice, outputprice, num)  # 创建新商品对象
       self.commodities.append(commodity)  # 将新商品添加到商品列表中
 
   # 列出商品方法
   def list_commodities(self):
       if not self.commodities:
           print("当前库存商品为零")
       else:
           for commodity in self.commodities:
               print(f"商品名称:{commodity.name},进货价格:{commodity.inputprice},销售价格:{commodity.outputprice},库存数量:{commodity.num}")
 
   # 卖出商品方法
   def sell_commodity(self, name, num_sold):
       x = 0
       for commodity in self.commodities:
           if commodity.name == name:
               if commodity.num >= num_sold:
                   x = num_sold * commodity.outputprice
                   print(f'应付款={x}')
                   while True:
                       y = int(input("请输入付款金额:"))
                       if y >= x:
                           print(f"找零={y-x}")
                           break
                       else:
                           print("付款不足!")
                   commodity.num -= num_sold  # 更新商品库存
                   commodity.num_sold = num_sold  # 更新已售出数量
                   x = 1
                   break
               else:
                   print("库存不足")
                   break
       if x == 0:
           print("商品不存在")
 
   # 汇总信息方法
   def summary(self):
       print("超市现有商品情况:")
       print("商品名称  进货价格  销售价格  库存数量    ")
       for commodity in self.commodities:
           print(f"{commodity.name}       {commodity.inputprice}       {commodity.outputprice}       {commodity.num}")
       input_total = sum([c.inputprice*c.num for c in self.commodities])  # 计算总进货额
       output_total = sum([a.outputprice*a.num_sold for a in self.commodities])  # 计算总销售额
       print(f"总销售额: {output_total}")
       print(f"总进货额: -{input_total}")
 
# 主程序
def main():
   print("************欢迎进入超市管理系统***********")
   print("1. 查询商品\n2. 新增商品\n3. 卖出商品\n4. 汇总\n-1. 退出系统")
   supermarket = Supermarket()  # 创建超市对象
   while True:
       choice = int(input("******请输入菜单编号:"))
       if choice == -1:
           print("谢谢使用")
           break
       elif choice == 1:
           supermarket.list_commodities()  # 调用列出商品方法
       elif choice == 2:
           name = input("请输入商品名称:")
           j = int(input("请输入进货价格:"))
           s = int(input("请输入销售价格"))
           n = int(input("请输入进货数量:"))
           supermarket.add_commodity(name, j, s, n)  # 调用新增商品方法
       elif choice == 3:
           name = input("请输入商品名称:")
           n = int(input("请输入销售数量:"))
           supermarket.sell_commodity(name, n)  # 调用卖出商品方法
       elif choice == 4:
           supermarket.summary()  # 调用汇总信息方法
       else:
           print("无效,请重新输入")
 
if __name__ == "__main__":
   main()

这段代码包括两个类(Commodity和Supermarket)和一个主程序(main)。让我来逐段分析每一部分代码。


1. Commodity类:

  - Commodity类表示商品,包括商品的名称(name)、进货价格(inputprice)、销售价格(outputprice)、库存数量(num)和已售出数量(num_sold)等属性。

  - 初始化方法(__init__)用于初始化商品对象的属性。


2. Supermarket类:

  - Supermarket类表示超市管理系统,包含一个商品列表(commodities)作为其属性,用于存储所有的商品对象。

  - 方法包括添加商品(add_commodity)、列出商品(list_commodities)、卖出商品(sell_commodity)和汇总信息(summary)等功能。


3. 主程序(main):

  - 主程序通过循环接收用户输入的操作序号,并调用相应的超市管理系统方法来实现不同的功能。

  - 当用户选择不同的操作序号时,会执行相应的功能,如列出所有库存商品、添加新商品、进行商品销售操作以及汇总现有库存商品信息。


整体而言,这段代码实现了一个简单的超市管理系统,包括了商品类和超市管理系统类,以及一个用户交互界面的主程序。


🎯turtle动态画爱心:

🎃实现代码:

import turtle  # 导入turtle库
 
# 设置起始位置和画笔大小
turtle.penup()
turtle.goto(-80, 250)
turtle.pensize(8)
 
# 写入文本"程序员的浪漫告白"
turtle.write("程序员的浪漫告白", font=(50))
 
# 移动到下一位置准备绘制心形图案
turtle.penup()
turtle.goto(0, 70)
turtle.pendown()
 
# 设置画笔颜色和填充颜色
turtle.color('red', 'pink')
turtle.begin_fill()
 
# 绘制心形图案
turtle.left(135)
turtle.forward(100)
turtle.right(180)
turtle.circle(50, -180)
turtle.left(90)
turtle.circle(50, -180)
turtle.right(180)
turtle.forward(100)
 
turtle.end_fill()  # 结束填充
 
turtle.hideturtle()  # 隐藏海龟图标
turtle.done()  # 完成绘图并显示

image.png

🎃实现效果: image.png

turtle动态画爱心


🎯turtle动态画魔幻曲线:


🎃实现代码:

import turtle  # 导入turtle库
 
d = 0  # 设置角度初始值为0
k = 1  # 设置步长初始值为1
 
for j in range(15):  # 外层循环控制绘制的次数
    for i in range(4):  # 内层循环控制每一次绘制的步骤
        turtle.forward(k)  # 前进的距离,初始为1,逐渐增加
        d += 91  # 角度逐渐增加
        turtle.seth(d)  # 设置海龟的朝向
        k += 4  # 步长逐渐增加
 
turtle.done()  # 完成绘图并显示


🎃实现效果:

image.png

用turtle动态画魔幻曲线

相关文章
|
1月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
139 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
2月前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
357 55
|
1月前
|
安全 前端开发 数据库
Python 语言结合 Flask 框架来实现一个基础的代购商品管理、用户下单等功能的简易系统
这是一个使用 Python 和 Flask 框架实现的简易代购系统示例,涵盖商品管理、用户注册登录、订单创建及查看等功能。通过 SQLAlchemy 进行数据库操作,支持添加商品、展示详情、库存管理等。用户可注册登录并下单,系统会检查库存并记录订单。此代码仅为参考,实际应用需进一步完善,如增强安全性、集成支付接口、优化界面等。
|
8天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
52 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
2月前
|
存储 缓存 监控
局域网屏幕监控系统中的Python数据结构与算法实现
局域网屏幕监控系统用于实时捕获和监控局域网内多台设备的屏幕内容。本文介绍了一种基于Python双端队列(Deque)实现的滑动窗口数据缓存机制,以处理连续的屏幕帧数据流。通过固定长度的窗口,高效增删数据,确保低延迟显示和存储。该算法适用于数据压缩、异常检测等场景,保证系统在高负载下稳定运行。 本文转载自:https://www.vipshare.com
133 66
|
2月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
221 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
1月前
|
机器学习/深度学习 算法 前端开发
基于Python深度学习果蔬识别系统实现
本项目基于Python和TensorFlow,使用ResNet卷积神经网络模型,对12种常见果蔬(如土豆、苹果等)的图像数据集进行训练,构建了一个高精度的果蔬识别系统。系统通过Django框架搭建Web端可视化界面,用户可上传图片并自动识别果蔬种类。该项目旨在提高农业生产效率,广泛应用于食品安全、智能农业等领域。CNN凭借其强大的特征提取能力,在图像分类任务中表现出色,为实现高效的自动化果蔬识别提供了技术支持。
基于Python深度学习果蔬识别系统实现
|
1月前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
32 3
|
2月前
|
机器学习/深度学习 算法 前端开发
基于Python深度学习的果蔬识别系统实现
果蔬识别系统,主要开发语言为Python,基于TensorFlow搭建ResNet卷积神经网络算法模型,通过对12种常见的果蔬('土豆', '圣女果', '大白菜', '大葱', '梨', '胡萝卜', '芒果', '苹果', '西红柿', '韭菜', '香蕉', '黄瓜')图像数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django框架搭建Web网页端可视化操作界面,以下为项目实现介绍。
71 4
基于Python深度学习的果蔬识别系统实现
|
2月前
|
存储 算法 Python
文件管理系统中基于 Python 语言的二叉树查找算法探秘
在数字化时代,文件管理系统至关重要。本文探讨了二叉树查找算法在文件管理中的应用,并通过Python代码展示了其实现过程。二叉树是一种非线性数据结构,每个节点最多有两个子节点。通过文件名的字典序构建和查找二叉树,能高效地管理和检索文件。相较于顺序查找,二叉树查找每次比较可排除一半子树,极大提升了查找效率,尤其适用于海量文件管理。Python代码示例包括定义节点类、插入和查找函数,展示了如何快速定位目标文件。二叉树查找算法为文件管理系统的优化提供了有效途径。
66 5

热门文章

最新文章