goods_dict = {}
field_names = ("编号", "名称", "进货单价", "进货数量")
menu_options = [
    "1. 添加商品",
    "2. 查询商品",
    "3. 删除商品",
    "4. 计算进货总金额",
    "0. 退出系统",
]


def add_goods():
    goods_id = input("请输入商品编号：").strip()
    if goods_id in goods_dict:
        print("该编号已存在，添加失败。")
        return
    name = input("请输入商品名称：").strip()
    try:
        price = round(float(input("请输入进货单价：").strip()), 1)
        quantity = int(input("请输入进货数量：").strip())
    except ValueError:
        print("单价或数量格式错误，添加失败。")
        return
    if price < 0 or quantity < 0:
        print("单价和数量不能为负数，添加失败。")
        return
    goods_dict[goods_id] = (name, price, quantity)
    print("商品添加成功。")


def query_goods():
    goods_id = input("请输入要查询的商品编号：").strip()
    if goods_id not in goods_dict:
        print("未找到该编号的商品。")
        return
    name, price, quantity = goods_dict[goods_id]
    info = (goods_id, name, price, quantity)
    print(f"{field_names[0]}：{info[0]}")
    print(f"{field_names[1]}：{info[1]}")
    print(f"{field_names[2]}：{info[2]:.1f}")
    print(f"{field_names[3]}：{info[3]}")


def delete_goods():
    goods_id = input("请输入要删除的商品编号：").strip()
    if goods_id not in goods_dict:
        print("未找到该编号的商品，删除失败。")
        return
    del goods_dict[goods_id]
    print("商品删除成功。")


def calculate_total():
    if not goods_dict:
        print("当前没有商品记录，总金额为 0.0 元。")
        return
    total = 0.0
    amount_list = []
    for goods_id, item in goods_dict.items():
        name, price, quantity = item
        amount = round(price * quantity, 1)
        amount_list.append((goods_id, name, amount))
        total += amount
    total = round(total, 1)
    print("各商品进货金额：")
    for goods_id, name, amount in amount_list:
        print(f"{goods_id} {name}：{amount:.1f} 元")
    print(f"进货总金额为：{total:.1f} 元")


def show_menu():
    print("\n===== 超市商品统计系统 =====")
    for option in menu_options:
        print(option)


def main():
    while True:
        show_menu()
        choice = input("请选择功能：").strip()
        if choice == "1":
            add_goods()
        elif choice == "2":
            query_goods()
        elif choice == "3":
            delete_goods()
        elif choice == "4":
            calculate_total()
        elif choice == "0":
            print("系统已退出。")
            break
        else:
            print("无效选择，请重新输入。")


if __name__ == "__main__":
    main()
