千家信息网

java怎么实现饭店点菜系统

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇"java怎么实现饭店点菜系统"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"ja
千家信息网最后更新 2026年11月02日java怎么实现饭店点菜系统

这篇"java怎么实现饭店点菜系统"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"java怎么实现饭店点菜系统"文章吧。

JAVA实现饭店点菜系统

在这个暑假,我会将一些网络上比较经典的java编程练习题。 做一做,发布到博客来。是对我自己学习的监督,也是为了方便大家借鉴学习交流。大家一起共同进步。

这个点菜系统,和我之前Java课程设计中的小学生数学练习有点像。不过少了文件操作,相对比较简单。

我实现的效果 如图

最重要的 还是面向对象的思想,我们要理解并使用。

1.在点菜系统中,我们为了方便 饭店添加菜谱 ,我们要使用一个list 集合 ,可以改变长度大小。
2.每一个 菜品 都是一个对象 我们要封装起来,包括 三个属性 : 编号,菜名 ,价格
3.对点菜的具体需求 ,我们要 写 每一个 静态方法。在main 方法中, 按照客户点菜的过程来设计流程。

看到了效果图 。我们直接贴代码, 在代码中解释 。

import java.util.ArrayList;import java.util.List;import java.util.Scanner;/** * 太原理工大学---软件学院---李同学 * java实现 点菜系统 * 欢迎大家一起交流。评论或者私信。 */public class menu {    //声明两个集合,第一个用来保存 饭店菜单,第二个用来保存 客户所点菜单    static List dishList = new ArrayList<>();    static List personList = new ArrayList<>();    int id;    String name;    double price;    //构造方法,每一个菜 都是一个对象    public menu(int id, String name, double price) {        this.id = id;        this.name = name;        this.price = price;    }    public static void main(String[] args) {        //声明对象  本饭店只会五个菜。O(∩_∩)O哈哈~        //第一种声明方法,并添加到饭店菜单中。        menu dish2 = new menu(1, "鱼香肉丝", 28.0);        dishList.add(dish2);        menu dish3 = new menu(2, "炖王八", 58.0);        dishList.add(dish3);        menu dish4 = new menu(3, "家常凉菜", 18.0);        dishList.add(dish4);        //第二种声明方法   这两种方法 大家都要学会        dishList.add(new menu(4,"山西过油肉",38.0));        dishList.add(new menu(5,"西湖牛肉羹",36.0));        Scanner sc = new Scanner(System.in);        /**         * 接下来就是 点菜系统的核心代码了。有点复杂,大家慢慢理解。         * 我尽量注释写全         * 我们要了解 点菜需求 : 1. 饭店有哪些菜  2. 客户点菜 点菜完毕         *  重新展示饭店服务 供客户再次选择 3.客户点了哪些菜 4.客户退菜 5. 结账         * 首先是一个 while(true) 的 "死循环"  吗,每执行一次 就输出一次 饭店服务 number 方法         * 第二 客户选择 服务  sc.nextInt(); 客户输入的数字使用switch 进行区分         * 进入 switch 后, 根据客户的要求,执行不同的 case          * 在执行 case 1  时 也就进入了点菜环节          * 再次出现一个 while(true) 先将饭店的五个菜 展示给客户。等待客户点菜 于是 sc.nextInt();         * 不同编号,对应不同的菜品,对应集合。 将客户选择的菜品,保存在personList 集合中         * 注意到:在showDish方法中,有一个 "按 0 返回上一级 " 实现代码         * 就是 case 1 中的 if 条件语句  :客户选择 0 即为结束点菜 重新返回饭店服务         * 剩余的 case 2  3   4  应该比较好理解。 不懂可以私信我哦!         * 还有一个小技巧就是 case 3  中 没有使用break 而是使用了 return 原因是 : break 只是会天厨switch 循环,         * 而在结账以后,我们需要结束这个点菜系统 使用 return 就会直接 这个程序 。         */        while (true) {            number();            int num = sc.nextInt();            switch (num) {                case 1:                    while (true) {                        showDish();                        int id = sc.nextInt();                        if (id == 0) {                            break;                        } else {                            menu dish = dishList.get(id - 1);                            System.out.println("亲,您点了:" + dish.name + " 菜");                            personList.add(dish);                        }                    }                case 2:                    showOrder();                    break;                case 3:                    paying();                    return;                case 4 :                    System.out.println("输入您要退掉菜品的编号");                    int id = sc.nextInt();                    exitDish(id);                    break;            }        }    }    // 展示主菜单方法。    public static void number() {        System.out.println("欢迎光临小帅菜馆!");        System.out.println("----主菜单----");        System.out.println("菜单 ---> 1");        System.out.println("点菜 ---> 2");        System.out.println("结账 ---> 3");        System.out.println("退菜 ---> 4");        System.out.println("---根据编号选择服务---");    }    //展示饭店菜单方法    public static void showDish() {        System.out.println("----请您点菜----");        //遍历集合,将之前声明的对象集合 全部展示到控制台        for (int i = 0; i < dishList.size(); i++) {            menu dish = dishList.get(i);            System.out.println(dish.id + "  " + dish.name + "   " + dish.price + "元");        }        System.out.println("---根据序号点菜,按 0 返回上一级---");    }    //展示客户已点菜单    public static void showOrder() {        System.out.println("----您已点菜品----");        //注释掉的这个方法,不适合使用退菜操作。因为 每一个菜品前面的id 值不是真正的集合次序        /*for (menu dish : personList) {            System.out.println(dish.id + "  " + dish.name + "   " + dish.price + "元");        }*/        //为了方便客户能够正确的选择菜品编号,我们采用 1  2 3 4 的顺序输出已点菜品          for(int i = 0; i < personList.size();i++){             System.out.println( (i+1) + "    " + personList.get(i).name + "   "  + personList.get(i).price + "元");        }    }    // 结账 遍历 personList 集合的 price 累加即可    public static void paying() {        double total = 0f;        System.out.println("----正在结账,请稍等!----");        // 另一种遍历集合的方法。大家学习哦        for (menu dish : personList) {            total += dish.price;        }        System.out.println("您共消费:" + total + "元");    }    //退菜操作  使用集合的 remove 方法。 采用有参数的方法。先告诉客户要退掉的菜品,再执行remove操作,这两句代码不能颠倒    public static void exitDish(int i){        System.out.println("您已退掉:" + personList.get(i-1).name + "  " + personList.get(i-1).price + "元");        personList.remove(i-1);    }}

以上就是关于"java怎么实现饭店点菜系统"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

客户 饭店 方法 系统 菜品 菜单 选择 代码 内容 对象 服务 就是 不同 学习 再次 效果 文章 注释 知识 私信 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司 科技互联网企业 科技赋能下的互联网金融 互联网是不是新科技 美国互联网科技巨头监管 互联网巨头科技公司 浩特互联网科技 亿人帮互联网科技 互联网科技股有哪些 佳云科技和互联网广告 互联网金融中的现代科技 宁夏科技产业互联网案例 上海宁丞科技互联网 山东大美朱楼互联网科技有限公司 广州梦谷互联网科技有限公司领导 青岛易易互联网科技 华人运通互联网科技公司 河南商务圈互联网科技有限公司 承德科技产业互联网平台 互联网科技创业计划的风险分析 互联网金融监管科技数据 互联网科技有限公司经营范围 互联网金融 科技 互联网科技咨询 上海电发互联网科技有限公司 西藏七维空间互联网科技有限公司 坤平互联网科技 南博望互联网科技有限公司 江苏互联网智能科技产品出厂价 恒生科技指数 中概互联网
0