點餐系統(Java小項目)


1.項目介紹

該項目能夠實現簡單的餐廳點菜,查看已點菜品,刪除菜品,結賬等基本操作。 顧客進行點餐時首先進入主菜單中,在主菜單中可以選擇相應的操作,用戶可以選擇每項操作前的序號即可進入到相應操作的子菜單,在子菜單中也可以選擇相應的操作。

2.項目設計規划

該項目的實現主要依靠三個類來實現:
1.Dish類,主要作用用於封裝菜品,以及初始化后的菜單
2.DishApp(程序入口方法)主類,點菜的主程序
3.DishInterface類,定義多個方法,顯示各種操作對應的菜單

3.運行效果

在這里插入圖片描述
在這里插入圖片描述

4.代碼如下

4.1 Dish類

package com.hao;

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

    public class Dish{
        /**
         * 編號
         */
        private int id;
        /**
         * 菜名
         */
        private String name;
        /**
         * 價格
         */
        private double price;

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public double getPrice() {
            return price;
        }

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

        public Dish() {
        }

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

        /**
         * 初始化菜單
         *
         * @return 初始化后的菜單
         */
        public List<Dish> initMenu() {
            List<Dish> dishList = new ArrayList<>();
            dishList.add(new Dish(1, "爆火牛肉", 58));
            dishList.add(new Dish(2, "鮮甲魚湯", 68));
            dishList.add(new Dish(3, "鐵板鹵蛋", 38));
            dishList.add(new Dish(4, "泡椒炒肉", 48));
            dishList.add(new Dish(5, "麻婆豆腐", 18));
            dishList.add(new Dish(6, "干煸豆角", 28));
            dishList.add(new Dish(7, "清炒時蔬", 25));
            dishList.add(new Dish(8, "涼拌黃瓜", 10));
            dishList.add(new Dish(9, "胡椒皮蛋", 15));
            dishList.add(new Dish(10, "紅燒茄子", 20));
            return dishList;
        }

        /**
         * 展示菜單
         *
         * @param dishList 菜品列表
         */
        public void showMenu(List<Dish> dishList) {
            System.out.println("------------本店菜單------------");
            System.out.println("序號\t\t菜名\t\t\t\t單價");
            for (int i = 0; i < dishList.size(); i++) {
                System.out.format("%d\t\t%s\t\t\t%.2f\n", dishList.get(i).getId(), dishList.get(i).getName(), dishList.get(i).getPrice());
            }
            System.out.println("---------------------------");
        }


        /**
         * 刪除對應菜品
         *
         * @param id          菜品對應序號
         * @param dishList    菜品列表
         * @param orderedList 已點菜品列表
         */
        public void deleteDish(int id, List<Dish> dishList, List<Dish> orderedList) {
            if (!orderedList.isEmpty()) {
                orderedList.remove(dishList.get(id - 1));
            }
        }


        /**
         * 查看已點的菜
         */
        public void showOrderedMenu(List<Dish> orderedList) {
            if (orderedList.isEmpty()) {
                System.out.println("當前您還未點餐,請重新輸入選擇");
            } else {
                System.out.println("當前您點的菜品如下");
                for (int i = 0; i < orderedList.size(); i++) {
                    System.out.println(orderedList.get(i).getName());
                }
            }

        }

        /**
         * 結賬
         */
        public void checkout(List<Dish> orderedList) {
            double money = 0.0d;
            if (orderedList.isEmpty()) {
                System.out.println("當前您還未點餐,請重新輸入選擇");
            } else {
                System.out.println("請稍等,正在結算中……");
                for (int i = 0; i < orderedList.size(); i++) {
                    money += orderedList.get(i).getPrice();
                }
                System.out.format("你此次總共消費:¥ %.2f\n", money);
            }
        }
    }

4.2 DishApp類

package com.hao;

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

public class DishApp {

    public static void main(String[] args) {
        Dish dish = new Dish();
        // 初始化菜單
        List<Dish> dishList = dish.initMenu();

        Scanner scanner = new Scanner(System.in);

        List<Dish> orderedList = new ArrayList<>();
        while (true) {
            System.out.println("----------歡迎使用點餐系統--------");
            System.out.println("----------【1】點菜--------------");
            System.out.println("----------【2】查看已點菜品-------");
            System.out.println("----------【3】刪除菜品-----------");
            System.out.println("----------【4】結賬--------------");
            System.out.println("----------【0】返回上一級/退出-----");

            System.out.println("輸入你的選擇");
            String choice = scanner.next();
            switch (choice) {
                case "1":
                    while (true) {
                        dish.showMenu(dishList);
                        System.out.println("請輸入菜品序號進行點菜,輸入 0 則返回上一級菜單");
                        int id = scanner.nextInt();
                        if (id == 0) {
                            break;
                        }

                        System.out.println("輸入菜品序號:" + id);

                        System.out.println("你點的菜是:" + dishList.get(id - 1).getName());
                        // 把已點的菜加入已點菜單
                        orderedList.add(dishList.get(id - 1));
                    }
                    break;
                case "2":
                    dish.showOrderedMenu(orderedList);
                    break;
                case "3":
                    if (orderedList.isEmpty()) {
                        System.out.println("當前還未點菜,請重新輸入你的選擇");
                    } else {
                        System.out.println("輸入要刪除菜品的序號");
                        int id = scanner.nextInt();
                        dish.deleteDish(id, dishList, orderedList);
                    }
                    break;
                case "4":
                    dish.checkout(orderedList);
                    break;

                case "0":
                    System.exit(0);
                default:
                    break;
            }
        }
    }
}


4.3 DishInterface類

package com.hao;

import java.util.List;


public interface DishInterface {
    /**
     * 初始化菜單
     *
     * @return 返回餐廳當前所提供的菜品列表
     */
    public List<Dish> initMenu();

    /**
     * 顯示菜單
     *
     * @param dishList 菜品列表
     */
    public void showMenu(List<Dish> dishList);


    /**
     * 顯示已經點過的菜品
     *
     * @param orderedList 當前已點菜品
     */
    public void showOrderedMenu(List<Dish> orderedList);

    /**
     * 移除菜品
     *
     * @param id          菜品對應序號
     * @param dishList    菜品列表
     * @param orderedList 已點菜品列表
     */
    public void deleteDish(int id, List<Dish> dishList, List<Dish> orderedList);

    /**
     * 結賬
     *
     * @param orderedList
     */
    public void checkout(List<Dish> orderedList);
}



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM