Java实现餐馆点餐小程序

1. 简介

餐馆点餐小程序是一种方便顾客在餐馆中进行点餐的工具。它可以通过移动设备或者计算机来提供用户友好的界面,让顾客可以轻松地选择菜品、提交订单和进行支付。本文将介绍如何使用Java编程语言实现一个简单的餐馆点餐小程序。

2. 程序设计

2.1 功能需求

餐馆点餐小程序应该具备以下功能:

  • 展示菜单:顾客可以浏览餐馆的菜单,查看菜品的价格和描述。
  • 点击选择:顾客可以通过点击菜品来将其添加到订单中。
  • 订单确认:顾客可以查看订单的详细信息,并可以选择提交订单或者继续点餐。
  • 支付功能:顾客可以选择支付方式,并进行支付操作。

2.2 程序结构

餐馆点餐小程序可以分为以下几个模块:

  • 菜单模块:负责管理餐馆的菜单信息。
  • 订单模块:负责管理顾客的订单信息。
  • 用户界面模块:负责展示菜单和订单信息,并处理用户交互操作。
  • 支付模块:负责处理支付操作。

3. 代码示例

下面是一个简单的Java代码示例,演示如何实现一个餐馆点餐小程序的部分功能。

import java.util.ArrayList;
import java.util.List;

// 菜品类
class Dish {
    private String name;
    private double price;
    private String description;

    public Dish(String name, double price, String description) {
        this.name = name;
        this.price = price;
        this.description = description;
    }

    public String getName() {
        return name;
    }

    public double getPrice() {
        return price;
    }

    public String getDescription() {
        return description;
    }
}

// 菜单类
class Menu {
    private List<Dish> dishes;

    public Menu() {
        dishes = new ArrayList<>();
    }

    public void addDish(Dish dish) {
        dishes.add(dish);
    }

    public List<Dish> getDishes() {
        return dishes;
    }
}

// 订单类
class Order {
    private List<Dish> dishes;

    public Order() {
        dishes = new ArrayList<>();
    }

    public void addDish(Dish dish) {
        dishes.add(dish);
    }

    public void removeDish(Dish dish) {
        dishes.remove(dish);
    }

    public List<Dish> getDishes() {
        return dishes;
    }

    public double getTotalPrice() {
        double totalPrice = 0;
        for (Dish dish : dishes) {
            totalPrice += dish.getPrice();
        }
        return totalPrice;
    }
}

// 用户界面类
class UserInterface {
    private Menu menu;
    private Order order;

    public UserInterface(Menu menu, Order order) {
        this.menu = menu;
        this.order = order;
    }

    public void showMenu() {
        System.out.println("Menu:");
        for (Dish dish : menu.getDishes()) {
            System.out.println(dish.getName() + " - " + dish.getPrice());
        }
    }

    public void showOrder() {
        System.out.println("Order:");
        for (Dish dish : order.getDishes()) {
            System.out.println(dish.getName() + " - " + dish.getPrice());
        }
        System.out.println("Total: " + order.getTotalPrice());
    }

    public void addToOrder(Dish dish) {
        order.addDish(dish);
    }

    public void removeFromOrder(Dish dish) {
        order.removeDish(dish);
    }
}

// 主程序
public class RestaurantApp {
    public static void main(String[] args) {
        // 初始化菜单和订单
        Dish dish1 = new Dish("Dish 1", 10.99, "Description for dish 1");
        Dish dish2 = new Dish("Dish 2", 15.99, "Description for dish 2");
        Menu menu = new Menu();
        menu.addDish(dish1);
        menu.addDish(dish2);
        Order order = new Order();

        // 初始化用户界面
        UserInterface userInterface = new UserInterface(menu, order);

        // 展示菜单
        userInterface.showMenu();

        // 选择菜品
        userInterface.addToOrder(dish1