java点菜系统(纯Java简易版)

1. 顾客类(顾客所在的桌号、顾客人数、点的菜品)

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

public class Customers {

    private int count; //人数
    private int tableID; //桌号
    private List dishs; //点的菜品

    public Customers(int count, int tableID) {
        this.count = count;
        this.tableID = tableID;
        dishs = new ArrayList<>();
    }

    public Customers() {
    }

    public Customers(int count, int tableID, List dishs) {
        this.count = count;
        this.tableID = tableID;
        this.dishs = dishs;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public int getTableID() {
        return tableID;
    }

    public void setTableID(int tableID) {
        this.tableID = tableID;
    }

    public List getDishs() {
        return dishs;
    }

    public void setDishs(List dishs) {
        this.dishs = dishs;
    }

    public double totleSpendMoney(){
        double totle = 0.0;
        for (Dish dish : dishs) {
            totle = totle + dish.getPrice();
        }
        return totle;
    }

}
 

2. 菜品类(菜品id,菜名,菜品价格)

public class Dish {

    private int dishID; //菜品id
    private String dishName; //菜品名字
    private double price; //菜品价格

    public Dish(int dishID, String dishName, double price) {
        this.dishID = dishID;
        this.dishName = dishName;
        this.price = price;
    }

    public int getDishID() {
        return dishID;
    }

    public void setDishID(int dishID) {
        this.dishID = dishID;
    }

    public String getDishName() {
        return dishName;
    }

    public void setDishName(String dishName) {
        this.dishName = dishName;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }
}
 

3. 主类(因为顾客一来就拿起放在桌子上的菜单,所以在静态代码块里面放置菜单,主类一运行就先加载菜单)

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;

public class DishDemo {

    private static HashMap Menu;

    static {
        Menu = new HashMap<>();
        Dish dish1 = new Dish(1,"水煮肉片",36);
        Dish dish2 = new Dish(2,"红烧猪蹄",42);
        Dish dish3 = new Dish(3,"麻婆豆腐",14);
        Dish dish4 = new Dish(4,"腐竹炒肉",18);
        Dish dish5 = new Dish(5,"鱼香肉丝",28);
        Dish dish6 = new Dish(6,"北京烤鸭",46);
        Menu.put(1,dish1);
        Menu.put(2,dish2);
        Menu.put(3,dish3);
        Menu.put(4,dish4);
        Menu.put(5,dish5);
        Menu.put(6,dish6);
    }

    public static void main(String[] args) {
        System.out.println("客官,里面请!");
        Scanner sc = new Scanner(System.in);
        Customers customers = new Customers(3,1);
        while(true) {
            showMenu(); //显示主菜单
            int choose = sc.nextInt();
            switch (choose){
                case 1: //点菜
                    showDishMenu(); //显示菜单
                    while(true){
                        int c = sc.nextInt();
                        //返回上一级菜单
                        if(c == 0){
                            break;
                        }
                        //获取菜品
                        Dish dish = Menu.get(c);
                        //向顾客菜品中添加菜品
                        customers.getDishs().add(dish);
                        System.out.println("已点,"+dish.getDishName());
                    }
                    break;
                case 2: //查看已点
                    showCustomersDishes(customers);
                    while(true){
                        int dishid = sc.nextInt();
                        //返回上一级菜单
                        if(dishid == 0){
                            break;
                        }
                        //获取菜品
                        Dish dish = Menu.get(dishid);
                        //向顾客菜品中删除菜品
                        customers.getDishs().remove(dish);
                        System.out.println("已删除-"+dish.getDishName());
                    }
                    break;
                case 3: //结账
                    double total = customers.totleSpendMoney();
                    System.out.println(customers.getTableID()+"号桌的顾客总共消费"+total+"元");
                    System.out.println("欢迎下次光临!");
                    return;
                case 4: //退出
                    return;
                case 5: //帮助
                    System.out.println("此功能尚未开通,请你前往前台咨询...");
                    break;
                default: //验证合理性
                    System.out.println("请输入正确的选项");
                    break;
            }
        }
    }

    private static void showCustomersDishes(Customers customers) {
        System.out.println("+----------------------------+");
        System.out.println("你所点的菜品有:");
        List dishs = customers.getDishs();
        for (Dish dish : dishs) {
            System.out.println(dish.getDishID()+"\t\t"+dish.getDishName()+"\t\t"+dish.getPrice());
        }
        System.out.println("+----------------------------+");
        System.out.println("删除菜品请输入菜品编号,返回上一级菜单请输入 0");
    }

    //打印菜单
    private static void showDishMenu() {
        System.out.println("+----------------------------+");
        for (int i = 1; i <= Menu.size(); i++) {
            Dish dish = Menu.get(i);
            System.out.println(dish.getDishID()+"\t\t"+dish.getDishName()+"\t\t"+dish.getPrice());
        }
        System.out.println("+----------------------------+");
        System.out.println("请输入您要点的菜品序号,返回上一级菜单请输入 0");
    }

    //显示主菜单
    private static void showMenu() {
        System.out.println("+-----------主菜单-----------+");
        System.out.println("|  点菜\t\t\t 1\t|");
        System.out.println("|  查看已点\t\t\t 2\t|");
        System.out.println("|  结账\t\t\t 3\t|");
        System.out.println("|  退出\t\t\t 4\t|");
        System.out.println("|  帮助\t\t\t 5\t|");
        System.out.println("+---------------------------+");
    }

}
 

 

你可能感兴趣的:(java)