C#控制台餐车应用:完成订单后重置流程的实现问询
餐车控制台应用订单完成与流程重置解决方案
核心实现思路
把单顾客的完整点餐流程封装为独立方法,在主程序循环中反复调用该方法。用户选择"Done"时,先处理当前订单数据,再结束当前方法,回到主循环自动开启下一位顾客的点餐流程。
代码示例
1. 定义订单数据类
// 存储订单核心信息的简单实体类 public class Order { public List<string> SelectedItems { get; set; } = new List<string>(); public decimal TotalAmount { get; set; } }
2. 封装单顾客点餐流程
static void HandleCustomerOrder() { Order currentOrder = new Order(); bool isOrdering = true; while (isOrdering) { // 这里替换成你已实现的主菜单/子菜单展示逻辑 Console.WriteLine("\n=== 餐车点餐菜单 ==="); Console.WriteLine("1. 主食系列"); Console.WriteLine("2. 小吃系列"); Console.WriteLine("3. Done - 完成点餐"); Console.Write("请输入选项序号: "); string userChoice = Console.ReadLine(); switch (userChoice) { case "1": // 调用你已实现的主食子菜单逻辑,添加选中项到currentOrder Console.WriteLine("已添加经典牛肉堡到订单"); currentOrder.SelectedItems.Add("经典牛肉堡"); currentOrder.TotalAmount += 14.99m; break; case "2": // 调用你已实现的小吃子菜单逻辑,添加选中项到currentOrder Console.WriteLine("已添加薯条到订单"); currentOrder.SelectedItems.Add("薯条"); currentOrder.TotalAmount += 5.99m; break; case "3": isOrdering = false; // 触发订单处理逻辑 FinalizeOrder(currentOrder); break; default: Console.WriteLine("无效选项,请重新输入"); break; } } } // 处理完成的订单(可扩展打印、存储、通知等逻辑) static void FinalizeOrder(Order completedOrder) { Console.WriteLine("\n=== 您的订单已确认 ==="); foreach (var item in completedOrder.SelectedItems) { Console.WriteLine($"- {item}"); } Console.WriteLine($"订单总计: ${completedOrder.TotalAmount:F2}"); Console.WriteLine("餐品准备中,请稍候...\n"); }
3. 主程序循环实现流程重置
static void Main(string[] args) { Console.WriteLine("欢迎光临移动餐车!"); while (true) { HandleCustomerOrder(); // 可选:询问是否继续接待下一位顾客,也可直接自动开启下一轮 Console.Write("是否接待下一位顾客?(输入Y继续,其他键退出): "); string nextCustomer = Console.ReadLine().Trim().ToUpper(); if (nextCustomer != "Y") { Console.WriteLine("餐车已停止营业,感谢光临!"); break; } Console.WriteLine("\n=== 准备接待下一位顾客 ==="); } }
关键细节说明
- 数据隔离:每个
HandleCustomerOrder()调用都会创建新的Order实例,确保不同顾客的订单数据互不干扰。 - 逻辑解耦:订单处理逻辑单独放在
FinalizeOrder()方法中,后续可以轻松扩展(比如对接数据库存储订单、打印小票等)。 - 循环重置:主程序的
while(true)循环会反复触发点餐流程,实现"处理完一单即重置"的需求。
内容的提问来源于stack exchange,提问作者jack_Hazzrd
相关产品推荐
相关产品推荐

