🎯超市管理系统:
🎐所要解决的问题
(1)系统包括5种操作,分别是:1.查询商品;2.新增商品;3.卖出商品;4.汇总;-1.退出系统。
(2)选择操作序号“1”,显示所有库存商品,若当前库存无商品,输出“当前库存商品为零”的提示信息。
(3)选择操作序号“2”,添加新的商品(包括商品名称、进货价格、销售价格、进货数量)。
(4)选择操作序号“3”,卖出商品(输入卖出商品名称,若商品有库存,输入销售数量,若库存数量大于等于销售数量,卖出商品,并进行收银,并将库存数量减去销售数量)
(5)选择操作序号“4”,汇总现有库存商品,包括每种商品名称、进货价格、销售价格、库存数量,显示进货总货款(进货款为负值),显示总销售额。
(6)选择操作序号“-1”,退出系统。
系统运行时各种情况的测试数据如下图所示:
🎐 解题思路:
这个超市管理系统可以通过面向对象的方式来设计。首先,我们可以定义一个商品类,包括商品名称、进货价格、销售价格和库存数量等属性。然后创建一个超市管理系统类,该类包含添加商品、查询商品、卖出商品、汇总信息和退出系统等方法。
在主程序中,通过循环接收用户输入的操作序号,并调用相应的方法来实现不同的功能。当用户选择操作序号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() # 完成绘图并显示
🎃实现效果:
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() # 完成绘图并显示
🎃实现效果:
用turtle动态画魔幻曲线