请帮我完善这个超市POS系统

要求:
1)商品进货管理
2)商品销售管理
3)商品库存管理
4)商品统计查询
class Goods:
def init(self,id,name,price,num):
self.id=id
self.name=name
self.price=price
self.num=num
class MySuperMarket:
def init(self,id,name):
self.id=id
self.name=name
self.allingoods=[]
self.alloutgoods=[]
self.allinvent={}

def ingoods(self, goods):
    dict = {}
    dict[goods.id] = goods
    self.allingoods.append(dict)
    if goods.id in self.allinvent.keys():
        object = self.allinvent[goods.id]
        object.price = (object.price * object.num + goods.price * goods.num) / (object.num + goods.num)
        object.num = object.num + goods.num
        self.allinvent[object.id] =object
        return 1
    inventgoods=Goods(goods.id,goods.name,goods.price,goods.num)
    self.allinvent[inventgoods.id] = inventgoods

def mainmenu(self):
    while True:
        print("*"*8+self.name+"*"*8)
        print("1. 购进      2. 销售")
        print("3. 查询      0. 退出")
        print("*"*22)
        sele=int(input("请输入您的选择(0:退出):"))
        if sele==0:
            for k in self.allingoods:
                for v in k.values():
                    print(v.name,v.price,v.num)
            for v in self.allinvent.values():
                print(v.name,v.price,v.num,sep="  ")
            print("谢谢使用...")
            return 1
        elif sele==1:
            id=input("请输入购进的商品ID:")
            name=input("请输入购进的商品名称:")
            price=float(input("请输入商品单价:")) 
           num=float(input("请输入商品数量:"))
            goods = Goods(id,name, price,num)                self.ingoods(goods)

给个例子:

'''
1.进货管理:通过收银员输入商品ID、名称、进货价格、数量实现进货与库存变化管理。
2.销售管理:通过收银员输入商品ID、名称、销售价格、数量实现销售与库存变化管理。
3.库存管理:
(1)打印库存明细表
(2)根据商品ID,输出该商品库存详细信息
4.统计查询:
(1)根据进货商品ID,输出所有该商品进货详细信息
(2)根据销售商品ID,输出所有该商品销售详细信息
(3)打印销售明细,并统计销售总金额
'''
class Goods:
    def __init__(self,id,name,price,num):
        self.id=id
        self.name=name
        self.price=price
        self.num=num
class MySuperMarket:
    def __init__(self,name):
        self.name=name
        self.all_store = {}
        self.all_in_goods={}
        self.all_out_goods={}

    def in_goods(self, good):
        id = good.id
        if id in self.all_store.keys():
            self.all_store[id].num += good.num
        else:
            self.all_store[id] = good
        if id in self.all_in_goods.keys():
            self.all_in_goods[id].append({'id':good.id,'name':good.name,'price':good.price,'num':good.num})
        else:
            self.all_in_goods[id] = [{'id':good.id,'name':good.name,'price':good.price,'num':good.num}]
    
    def out_goods(self, lst):
        for good in lst:
            self.all_store[good.id].num -= good.num
            if id in self.all_out_goods.keys():
                self.all_out_goods[good.id].append({'id':good.id,'name':good.name,'price':good.price,'num':good.num})
            else:
                self.all_out_goods[good.id] = [{'id':good.id,'name':good.name,'price':good.price,'num':good.num}]
    
    def show_store(self):
        print("="*8+'打印库存明细表'+"="*8)
        for v in self.all_store.values():
            if v.num>0:
                print(f'ID:{v.id}, 名称:{v.name} 进货价格:{v.price}, 数量:{v.num}')
        
    def show_store_by_id(self,id):
        print("="*8+'打印商品'+id+'的库存详细信息'+"="*8)
        if id in self.all_store.keys():
            v = self.all_store[id]
            print(f'ID:{v.id}, 名称:{v.name} 进货价格:{v.price}, 数量:{v.num}')
    
    def show_in_goods_by_id(self, id):
        print("="*8+'打印商品'+id+'的进货详细信息'+"="*8)
        if id in self.all_in_goods.keys():
            lst = self.all_in_goods[id]
            for v in lst:
                print(f'ID:{v["id"]}, 名称:{v["name"]} 进货价格:{v["price"]}, 数量:{v["num"]}')
    
    def show_out_goods_by_id(self, id):
        print("="*8+'打印商品'+id+'的销售详细信息'+"="*8)
        if id in self.all_out_goods.keys():
            lst = self.all_out_goods[id]
            for v in lst:
                 print(f'ID:{v["id"]}, 名称:{v["name"]} 销售价格:{v["price"]}, 数量:{v["num"]}')
    
    def show_out_goods(self,lst):
        print("="*8+'打印销售明细,并统计销售总金额'+"="*8)
        sum = 0
        for v in lst:
            print(f'ID:{v.id}, 名称:{v.name} 销售价格:{v.price}, 数量:{v.num}')
            sum+=v.price*v.num
        print(f'订单总价:{sum}')

    def mainmenu(self):
        print("*"*8+self.name+"*"*8)
        while True:
            print('*'*22)
            print("1. 购进      2. 销售")
            print("3. 查询      0. 退出")
            print("*"*22)
            select=int(input("请输入您的选择(0:退出):"))
            if select==0:
                print("谢谢使用...")
                break
            elif select==1:
                [id,name,price,num] = input("请输入进货信息(id,name,price,num):").split(',')
                goods = Goods(id,name,float(price),int(num))                
                self.in_goods(goods)
            elif select==2:
                lst = []
                while True:
                    info = input("请输入销售信息(id,name,price,num),输入#结束:")
                    if info=='#':
                        break
                    else:
                        [id,name,price,num] = info.split(',')
                        if id in self.all_store.keys():
                            if self.all_store[id].num>=int(num):
                                good = Goods(id,name,float(price),int(num))                
                                lst.append(good)
                            else:
                                print('库存不足')
                        else:
                            print('这个商品没有库存')
                self.out_goods(lst)
                self.show_out_goods(lst)
            elif select==3:
                print("1. 打印库存明细表")
                print("2. 根据商品ID,输出该商品库存详细信息")
                print("3. 根据商品ID,输出所有该商品进货详细信息")
                print("4. 根据商品ID,输出所有该商品销售详细信息")
                s1 = input('请输入选择:')
                if s1=='1':
                    self.show_store()
                else:
                    id = input('请输入商品ID:')
                    if s1=='2':
                        self.show_store_by_id(id)
                    elif s1=='3':
                        self.show_in_goods_by_id(id)
                    elif s1=='4':
                        self.show_out_goods_by_id(id)
if __name__=='__main__':
    mm = MySuperMarket('超市系统')
    mm.mainmenu()   

测试数据:
1
1,啤酒,10,100
1
2,花生,1,100
2
1,啤酒,20,10
2,花生,1.5,10
#
3
1
3
2
1
3
3
1
3
4
1
0
运行数据:
超市系统


  1. 购进 2. 销售
  2. 查询 0. 退出

请输入您的选择(0:退出):1
请输入进货信息(id,name,price,num):1,啤酒,10,100


  1. 购进 2. 销售
  2. 查询 0. 退出

请输入您的选择(0:退出):1
请输入进货信息(id,name,price,num):2,花生,1,100


  1. 购进 2. 销售
  2. 查询 0. 退出

请输入您的选择(0:退出):2
请输入销售信息(id,name,price,num),输入#结束:1,啤酒,20,10
请输入销售信息(id,name,price,num),输入#结束:2,花生,1.5,10
请输入销售信息(id,name,price,num),输入#结束:#
========打印销售明细,并统计销售总金额========
ID:1, 名称:啤酒 销售价格:20.0, 数量:10
ID:2, 名称:花生 销售价格:1.5, 数量:10
订单总价:215.0


  1. 购进 2. 销售
  2. 查询 0. 退出

请输入您的选择(0:退出):3

  1. 打印库存明细表
  2. 根据商品ID,输出该商品库存详细信息
  3. 根据商品ID,输出所有该商品进货详细信息
  4. 根据商品ID,输出所有该商品销售详细信息
    请输入选择:1
    ========打印库存明细表========
    ID:1, 名称:啤酒 进货价格:10.0, 数量:90
    ID:2, 名称:花生 进货价格:1.0, 数量:90

  1. 根据商品ID,输出该商品库存详细信息
  2. 根据商品ID,输出所有该商品进货详细信息
  3. 根据商品ID,输出所有该商品销售详细信息
    请输入选择:3
    请输入商品ID:1
    ========打印商品1的进货详细信息========
    ID:1, 名称:啤酒 进货价格:10.0, 数量:100

  1. 购进 2. 销售
  2. 查询 0. 退出

请输入您的选择(0:退出):3

  1. 打印库存明细表
  2. 根据商品ID,输出该商品库存详细信息
  3. 根据商品ID,输出所有该商品进货详细信息
  4. 根据商品ID,输出所有该商品销售详细信息
    请输入选择:4
    请输入商品ID:1
    ========打印商品1的销售详细信息========
    ID:1, 名称:啤酒 销售价格:20.0, 数量:10

  1. 购进 2. 销售
  2. 查询 0. 退出

请输入您的选择(0:退出):0
谢谢使用...

辛苦改了好久,麻烦有帮助请采纳,不要寒了大家的心,谢谢


class Goods(object):
    def init(self, id, name, price, num):
        self.id = id
        self.name = name
        self.price = price   # 成本价格
        self.num = num


class MySuperMarket(object):
    def init(self, id, name):
        self.id = id
        self.name = name
        self.allingoods = []  # 进货记录
        self.alloutgoods = [] # 出货记录
        self.allinvent = {}  # 仓存

    def ingoods(self, goods):
        """进货"""
        dict = {}
        dict[goods.id] = goods
        self.allingoods.append(dict)

        if goods.id in self.allinvent.keys():
            object = self.allinvent[goods.id]
            object.price = (object.price * object.num + goods.price * goods.num) / (object.num + goods.num)
            object.num = object.num + goods.num
            self.allinvent[object.id] = object
            # return 1
        # inventgoods = Goods(goods.id, goods.name, goods.price, goods.num)
        else:
            self.allinvent[goods.id] = goods

    def getgoods(self, id):
        """查询"""
        print(self.allinvent.get(id))

    def outgoods(self, goods):
        """销售"""

        if goods.id not in self.allinvent[goods.id]:
            return False

        object = self.allinvent[goods.id]
        dict = {}


        if object.num > goods.num:
            object.price = (object.price * object.num - goods.price * goods.num) / (object.num - goods.num)
            object.num = object.num - goods.num
            self.allinvent[object.id] = object

            dict[goods.id] = goods

            self.alloutgoods.append(dict)
        else:

            self.allinvent.pop(object.id) # 移除

            dict[goods.id] = object
            self.alloutgoods.append(dict)


    def mainmenu(self):
        while True:
            print("*" * 8 + self.name + "*" * 8)
            print("1. 购进      2. 销售")
            print("3. 查询      0. 退出")
            print("*" * 22)
            sele = int(input("请输入您的选择(0:退出):"))
            if sele == 0:
                for k in self.allingoods:
                    for v in k.values():
                        print(v.name, v.price, v.num)
                for v in self.allinvent.values():
                    print(v.name, v.price, v.num, sep="  ")
                print("谢谢使用...")
                return 1
            elif sele == 1:
                id = input("请输入购进的商品ID:")
                name = input("请输入购进的商品名称:")
                price = float(input("请输入商品单价:"))
                num = float(input("请输入商品数量:"))
                goods = Goods(id, name, price, num)
                self.ingoods(goods)
            elif sele == 2:
                id = input("请输入销售的商品ID:")
                name = input("请输入销售的商品名称:")
                price = float(input("请输入销售商品单价:"))
                num = float(input("请输入销售商品数量:"))
                goods = Goods(id, name, price, num)
                self.outgoods(goods)
            elif sele == 3:
                id = input("请输入查询的商品ID:")
                self.getgoods(id)

具体功能是什么?

你直接用sqlite这些都比较方便。