编辑代码

// 定义三类菜单
let menu1: [String: Double] = ["洗衣机": 500.0, "电视机": 800.0, "冰箱": 1000.0]
let menu2: [String: Double] = ["面包": 2.0, "牛奶": 3.0, "鸡蛋": 1.5]
let menu3: [String: Double] = ["笔记本": 50.0, "打印机": 100.0, "文件柜": 80.0]

// 表示下单情况的字典
var mymenu: [String: Int] = [:]

while true {
    print("请选择菜单类型:")
    print("1:家用品")
    print("2:食品")
    print("3:办公用品")
    
    // 读取用户输入
    let user = readLine() ?? ""
    
    // 当用户输入 "y" 时,退出循环
    if user == "y" {
        break
    }
    
    // 输出相应的菜单
    switch user {
    case "1":
        print("家用品菜单:")
        for (item, price) in menu1 {
            print("\(item) - 价格:\(price)")
        }
    case "2":
        print("食品菜单:")
        for (item, price) in menu2 {
            print("\(item) - 价格:\(price)")
        }
    case "3":
        print("办公用品菜单:")
        for (item, price) in menu3 {
            print("\(item) - 价格:\(price)")
        }
    default:
        print("无效的选择")
    }
    
    // 提示用户输入商品编号
    print("请输入商品编号:")
    let itemId = readLine() ?? ""
    
    // 根据编号获取商品名称
    var itemName = ""
    switch user {
    case "1":
        if let index = Int(itemId), index <= menu1.count {
            itemName = Array(menu1.keys)[index - 1]
        }
    case "2":
        if let index = Int(itemId), index <= menu2.count {
            itemName = Array(menu2.keys)[index - 1]
        }
    case "3":
        if let index = Int(itemId), index <= menu3.count {
            itemName = Array(menu3.keys)[index - 1]
        }
    default:
        break
    }
    
    // 输出商品规格
    print("请选择\(itemName)的规格:")
    //let itemSpec = readLine() ?? ""
    
    // 输入购买数量
    print("请输入购买数量:")
    let numbStr = readLine() ?? ""
    if let numb = Int(numbStr) {
        mymenu[itemName] = numb
    }
}

// 打印小票标题
print("---------- 小票 ----------")

// 计算总消费金额
var totalCost: Double = 0.0
for (item, quantity) in mymenu {
    if let price = menu1[item] ?? menu2[item] ?? menu3[item] {
        let itemCost = price * Double(quantity)
        totalCost += itemCost
        print("\(item) \(quantity) * \(price) = \(itemCost)")
    }
}

// 输出总价和致谢信息
print("总消费金额:\(totalCost)")
print("谢谢光临!")