用kotlin写一个简单的餐厅菜单管理及订单处理系统完整代码
时间: 2024-09-13 19:07:34 浏览: 77
在Kotlin中创建一个简单的餐厅菜单管理和订单处理系统涉及到一些基本的设计,包括菜品、菜单、订单等类。下面是一个简化版的示例,我们将使用数据类和函数来表示这些概念:
```kotlin
// 菜品数据类
data class Dish(val id: Int, val name: String, val price: Double)
// 菜单类,包含菜品列表
class Menu(private val dishes: List<Dish>) {
fun showMenu(): String {
return "-------------------\n" +
"餐厅菜单\n" +
"-------------------\n" +
dishes.joinToString("\n") { "${it.name} - ${it.price}$" }
}
}
// 订单类,用于存储菜品和总价
class Order private constructor(var items: MutableList<Dish> = mutableListOf()) {
var totalPrice: Double = 0.0
// 添加菜品到订单
fun addDish(dish: Dish) {
items.add(dish)
totalPrice += dish.price
}
// 清空订单
fun clear() {
items.clear()
totalPrice = 0.0
}
// 计算并显示订单总额
fun calculateTotal(): String {
return "订单总额: $totalPrice$"
}
}
fun main() {
// 创建菜品列表
val menuItems = listOf(
Dish(1, "牛肉炒饭", 25.0),
Dish(2, "番茄炒蛋", 18.0),
Dish(3, "鸡丝凉面", 15.0)
)
// 初始化菜单
val menu = Menu(menuItems)
println("欢迎来到我们的餐厅,请查看菜单:")
println(menu.showMenu())
// 模拟点餐过程
println("请输入您想要购买的菜品编号(输入0结束):")
val scanner = Scanner(System.`in`)
while (true) {
print("$menu.showMenu() > ")
val choice = scanner.nextInt()
if (choice == 0) break
else {
val dish = menu.dishes[choice - 1]
val order = Order()
order.addDish(dish)
println("已添加 $dish")
}
}
// 显示订单信息
println("您的订单如下:")
println(order.calculateTotal())
}
```
阅读全文