1. 编写一个食堂点餐程序,用户可以选择5种不同的餐品(如米饭、面条、饺子等),价格自拟。 2. 并根据用餐时间(早餐、午餐、晚餐)决定价格,早餐打9折。 3. 每位用户最多可以点5份餐品,超出数量时给予提示并完成订单。 生成完整代码
时间: 2024-09-20 11:08:19 浏览: 42
当然,我可以帮你编写一个简单的Java程序来实现这个食堂点餐功能。首先,我们创建一个`Menu`类来存储餐品信息,包括名称、默认价格和折扣规则;然后有一个`UserOrder`类来处理用户的订单;接着我们写一个控制台驱动程序来接收用户输入。
```java
import java.util.ArrayList;
import java.util.Scanner;
class Menu {
private String name;
private double originalPrice;
private double breakfastDiscount = 0.9;
public Menu(String name, double originalPrice) {
this.name = name;
this.originalPrice = originalPrice;
}
// 获取未打折的价格
public double getPrice() {
return isBreakfastTime() ? originalPrice * breakfastDiscount : originalPrice;
}
// 判断是否为早餐时间
private boolean isBreakfastTime() {
// 这里假设早餐时间为早上7:00至9:00,可以根据实际需求调整
return System.currentTimeMillis() >= 7 * 60 * 60 * 1000 && System.currentTimeMillis() < 9 * 60 * 60 * 1000;
}
}
class UserOrder {
private ArrayList<Menu> menuItems = new ArrayList<>();
private int maxOrders = 5;
public void addMenuItem(Menu item) {
if (menuItems.size() < maxOrders) {
menuItems.add(item);
} else {
System.out.println("已达最大购买数量,请减少选择或取消");
}
}
// 其他可能的方法,比如计算总价、确认订单等
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
UserOrder userOrder = new UserOrder();
Menu rice = new Menu("米饭", 10);
Menu noodles = new Menu("面条", 12);
Menu dumplings = new Menu("饺子", 15);
Menu lunchSpecial = new Menu("午餐特价菜", 8);
System.out.println("欢迎来到食堂!请选择以下餐品:");
System.out.println(rice.getName() + " - $" + rice.getPrice());
System.out.println(noodles.getName() + " - $" + noodles.getPrice());
System.out.println(dumplings.getName() + " - $" + dumplings.getPrice());
System.out.println(lunchSpecial.getName() + " - $" + lunchSpecial.getPrice());
System.out.print("请输入您的选择序号(例如1-4):");
int choice = scanner.nextInt();
switch (choice) {
case 1:
userOrder.addMenuItem(rice);
break;
// 添加其他菜品选项
// ...
default:
System.out.println("无效的选择,请重新尝试.");
}
// 用户继续添加菜品直到达到最大数量或结束点餐
while (true) {
System.out.print("是否还需要添加其他菜品?(y/n): ");
String input = scanner.next().toLowerCase();
if (input.equals("n")) {
break;
}
// 验证用户输入
// ...
}
// 输出订单详情和总价
// ...
scanner.close();
}
}
```
阅读全文