import Foundation
let menu1 = ["1": ["商品名称": "电视", "单价": 500.0, "规格": "55寸"],
"2": ["商品名称": "洗衣机", "单价": 300.0, "规格": "8公斤"],
"3": ["商品名称": "冰箱", "单价": 700.0, "规格": "250升"]]
let menu2 = ["1": ["商品名称": "面包", "单价": 5.0, "规格": "一袋"],
"2": ["商品名称": "牛奶", "单价": 10.0, "规格": "一盒"],
"3": ["商品名称": "苹果", "单价": 3.0, "规格": "一斤"]]
let menu3 = ["1": ["商品名称": "笔", "单价": 2.0, "规格": "黑色"],
"2": ["商品名称": "纸张", "单价": 10.0, "规格": "A4"],
"3": ["商品名称": "文件夹", "单价": 5.0, "规格": "塑料"]]
var mymenu = [String: Int]()
func main() {
var user = ""
var totalCost = 0.0
while user.lowercased() != "n" {
print("请选择一个菜单类型(1:家用品、2:食品、3:办公用品)")
if let choice = readLine()?.trimmingCharacters(in: .whitespacesAndNewlines),
let number = Int(choice) {
var menu: [String: [String: Any]]?
switch number {
case 1:
menu = menu1
case 2:
menu = menu2
case 3:
menu = menu3
default:
print("无效的菜单类型,请重新输入。")
continue
}
guard let selectedMenu = menu else {
continue
}
for (key, value) in selectedMenu {
print("\(key) - \(value["商品名称"]!) (\(value["规格"]!)) - 单价:\(value["单价"]!)")
}
if let itemID = readLine()?.trimmingCharacters(in: .whitespacesAndNewlines),
let item = selectedMenu[itemID] {
let itemName = item["商品名称"] as? String ?? "未知商品"
let itemPrice = item["单价"] as? Double ?? 0.0
print("您选择的商品规格是:\(item["规格"]!)")
if let userItemName = readLine()?.trimmingCharacters(in: .whitespacesAndNewlines) {
if userItemName == itemName {
if let numb = readLine()?.trimmingCharacters(in: .whitespacesAndNewlines),
let quantity = Int(numb) {
mymenu[itemName] = mymenu[itemName] ?? 0 + quantity
print("已添加 \(quantity) 个 \(itemName) 到您的订单中。")
} else {
print("无效的输入,请输入一个整数作为数量。")
}
} else {
print("您输入的商品名称与选择的商品不符,请重新选择。")
}
} else {
print("您没有输入商品名称,请重新输入。")
}
} else {
print("无效的商品编号,请重新输入。")
}
} else {
print("无效的输入,请输入一个数字。")
}
print("是否继续购物?(y/n)")
user = readLine()?.trimmingCharacters(in: .whitespacesAndNewlines) ?? ""
}
print("============== 小票 ==============")
print("名称\t数量\t* 单价\t= 价格")
print("=====================================")
var s = 0.0
for (itemID, quantity) in mymenu {
let itemPrice: Double
if let price = (menu1[itemID] ?? menu2[itemID] ?? menu3[itemID])?["单价"] as? Double {
itemPrice = price
} else {
itemPrice = 0.0
print("警告:找不到商品 \(itemID) 的单价,单价默认为0。")
}
let subtotal = Double(quantity) * itemPrice
s += subtotal
print("\(itemID)\t\(quantity)\t* \(itemPrice)\t= \(subtotal)")
}
print("=====================================")
print("总价:\(s)")
print("感谢您的光临,欢迎下次再来!")
}
main()