import Foundation
let menu1: [String: Double] = ["电视": 2000.0, "冰箱": 3000.0, "洗衣机": 1500.0]
let menu2: [String: Double] = ["苹果": 5.0, "香蕉": 3.0, "面包": 10.0]
let menu3: [String: Double] = ["笔": 2.0, "纸张": 1.0, "文件夹": 10.0]
var mymenu: [String: Int] = [:]
while true {
print("请输入'y'退出,或者按任意键继续")
if let userInput = readLine()?.trimmingCharacters(in: .whitespacesAndNewlines), userInput == "y" {
break
}
print("请选择菜单类型:")
print("1. 家用品")
print("2. 食品")
print("3. 办公用品")
if let menuChoice = readLine()?.trimmingCharacters(in: .whitespacesAndNewlines),
let menu = parseMenuChoice(menuChoice) {
let currentMenu = menu
print("请输入商品编号:")
if let itemID = readLine()?.trimmingCharacters(in: .whitespacesAndNewlines),
let item = currentMenu.first(where: { $0.key == itemID }) {
let itemName = item.key
let itemPrice = item.value
print("请输入购买数量:")
if let input = readLine()?.trimmingCharacters(in: .whitespacesAndNewlines),
let numb = Int(input) {
mymenu[itemName, default: 0] += numb
print("已将\(itemName)添加到您的订单中,数量为\(numb)个。")
} else {
print("请输入一个有效的购买数量。")
}
} else {
print("无效的商品编号,请重新输入。")
}
} else {
print("无效的菜单选择,请重新输入。")
}
}
print("====小票=====")
print("名称\t数量\t*\t单价\t=\t价格")
print("--------------------")
var totalCost: Double = 0.0
for (product, numb) in mymenu {
if let price = getPriceForItem(product, menu1: menu1, menu2: menu2, menu3: menu3) {
let cost = price * Double(numb)
totalCost += cost
print("\(product)\t\(numb)\t*\t\(price)\t=\t\(cost)")
}
}
print("--------------------")
print("总价: \(totalCost)")
print("感谢您的光临,祝您生活愉快!")
func parseMenuChoice(_ choice: String) -> [String: Double]? {
switch choice {
case "1":
return menu1
case "2":
return menu2
case "3":
return menu3
default:
return nil
}
}
func getPriceForItem(_ item: String, menu1: [String: Double], menu2: [String: Double], menu3: [String: Double]) -> Double? {
return menu1[item] ?? menu2[item] ?? menu3[item]
}