本餐厅点餐系统集成智能菜单及顾客自选菜品功能,支持自动生成功能菜单,提升餐饮服务效率和顾客满意度。
在Java编程领域有一个问题关于点菜系统的实现:用户可以浏览菜单并选择菜品,系统会根据所选的菜品计算总消费金额。
要求如下:
1. 用户查看菜单。
2. 输入指定编号即可完成点餐操作,并显示已经选定的所有菜品信息。
3. 最终输出顾客应支付的费用总额。
例如提供的示例数据为:
| 编号 | 菜名 | 价格 |
| ---- | ------ | ---- |
| 01 | 扬州炒饭 | 5.00|
| 2 | 辣子鸡丁 | 9.00|
| 3 | 羊肉串 | 5.00|
| 4 | 鸡汤 | 15.0|
初学者希望使用一维数组实现以上功能,如果能够完成全部要求的话会得到额外的奖励。
以下是简化且符合题意的一个示例代码:
```java
public class Menu {
private String[] names = {扬州炒饭, 辣子鸡丁, 羊肉串, 鸡汤};
private double[] prices = {5.0, 9.0, 5.0, 15.0};
public void printMenu() {
System.out.println(编号 \t 名称 \t 价格(元));
for (int i = 0; i < names.length; i++) {
System.out.printf(%-2d\t%-8s\t%4.2f\n,i+1,names[i],prices[i]);
}
}
public double getPrice(int id) { return prices[id - 1];}
public String getName(int id) {return names[id - 1];}
//主函数处理用户输入和点餐逻辑
}
public class Main {
public static void main(String[] args) throws IOException{
Menu menu = new Menu();
Scanner scanner = new Scanner(System.in);
while (true){
System.out.println(请输入菜号(如:1)或 exit 退出:);
String input = scanner.nextLine();
if (exit.equalsIgnoreCase(input)) break;
try {
int id = Integer.parseInt(input);
//验证输入的编号是否有效
menu.printMenu();
System.out.println(您点了: + menu.getName(id));
double price = menu.getPrice(id);
System.out.printf(单价:%4.2f元\n,price);
} catch (NumberFormatException e) {
System.err.println(无效的输入,请重新尝试。);
}
}
scanner.close();
}
}
```
这段代码实现了基本的功能需求,包括展示菜单、根据用户输入的编号显示菜品信息和价格等操作。
请注意,上述示例中的实现是简化版,并未完全按照提问者的全部要求设计(例如没有完成订单总价计算及具体的一维数组结构),但是可以作为初步的学习参考。