如何利用python函数写#模拟菜单方式,实现商品进销存管理,其中要体现成本核算功能(成本核算采用移动加权平均法), # 具体要求:1)商品进货管理 2)商品销售管理 3)商品库存管理 4)商品统计查询
时间: 2024-03-25 14:37:02 浏览: 147
好的,这是一个比较复杂的问题,需要结合具体的业务需求来进行开发。下面是一个简单的参考实现,供您参考:
```python
# 定义商品类
class Commodity:
def __init__(self, name, cost, price, quantity):
self.name = name # 商品名称
self.cost = cost # 商品成本
self.price = price # 商品售价
self.quantity = quantity # 商品数量
# 采用移动加权平均法计算成本
def update_cost(self, cost, quantity):
self.cost = (self.cost * self.quantity + cost * quantity) / (self.quantity + quantity)
self.quantity += quantity
# 更新商品数量
def update_quantity(self, quantity):
self.quantity += quantity
# 输出商品信息
def __str__(self):
return f'{self.name}\t成本:{self.cost}\t售价:{self.price}\t库存:{self.quantity}'
# 定义商品管理类
class CommodityManager:
def __init__(self):
self.commodities = {} # 商品字典,key为商品名称,value为Commodity对象
# 添加商品
def add_commodity(self, name, cost, price, quantity):
if name in self.commodities:
self.commodities[name].update_cost(cost, quantity)
self.commodities[name].update_quantity(quantity)
else:
self.commodities[name] = Commodity(name, cost, price, quantity)
# 删除商品
def delete_commodity(self, name):
if name in self.commodities:
del self.commodities[name]
# 更新商品数量
def update_quantity(self, name, quantity):
if name in self.commodities:
self.commodities[name].update_quantity(quantity)
# 输出商品列表
def list_commodities(self):
for commodity in self.commodities.values():
print(commodity)
# 统计商品数量和总成本
def summary(self):
total_quantity = 0
total_cost = 0
for commodity in self.commodities.values():
total_quantity += commodity.quantity
total_cost += commodity.quantity * commodity.cost
print(f'商品数量:{total_quantity}\t总成本:{total_cost}')
# 定义菜单函数
def menu():
manager = CommodityManager()
while True:
print('请选择操作:')
print('1. 商品进货')
print('2. 商品销售')
print('3. 商品库存')
print('4. 商品统计')
print('5. 退出')
choice = input('请输入操作编号:')
if choice == '1':
name = input('请输入商品名称:')
cost = float(input('请输入商品成本:'))
price = float(input('请输入商品售价:'))
quantity = float(input('请输入商品数量:'))
manager.add_commodity(name, cost, price, quantity)
elif choice == '2':
name = input('请输入商品名称:')
quantity = float(input('请输入商品数量:'))
manager.update_quantity(name, -quantity)
elif choice == '3':
manager.list_commodities()
elif choice == '4':
manager.summary()
elif choice == '5':
break
else:
print('无效的操作编号,请重新输入!')
# 运行菜单函数
menu()
```
以上代码实现了一个简单的商品进销存管理系统,包含商品进货、销售、库存、统计四个功能。其中,商品成本采用移动加权平均法进行计算。您可以根据自己的需求进行修改和扩展。
阅读全文