首页 > 作文

java实现饭店点菜系统

更新时间:2023-04-04 18:26:56 阅读: 评论:0

本文实例为大家分享了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<menu> dishlist = new arraylist<>();  static list<menu> 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 dish1 = new menu(1, "鱼香肉丝", 28.0);    dishlist.add(dish1);    menu dish2 = new menu(2, "炖王八", 58.0);    dishlist.add(dish2);    menu dish3 = new menu(3, "家常凉菜", 18.0);    dishlist.add(dish3);    //第二种声明方法  这两种方法 大家都要学会    dishlist.add(new menu(4,"山西过油肉",38.0));    dishlist.add(new menu(5,"西湖牛肉羹",36.0));    scanner sc = new scanner(sy胚胎分割stem.in);    /**    * 接下来就是 点菜系统的核心代码了。有点复杂,大家慢慢理解。    * 我尽量注释写全    * 我们要了解 点菜需求 : 1. 饭店有哪些菜 2. 客户点菜 点菜完毕    * 重新展示饭店服务 供客户再次选择 3.客户点了哪些菜 4.客户退菜 5. 结账    * 首先是一个 while(true) 的 “死循环” 吗,每执行一次 就输出一次 饭店服务 number 方法    * 第二 客户选择 服务 sc.nextint(); 客户输入的数字使用switch 进行区分    * 进入 switch 后, 根据客户的要求,执行不同的 ca    * 在执行 ca 1 时 也就进入了点菜环节    * 再次出现一个 while(true) 先将饭店的五个菜 展示给客户。等待客户点菜 于是 sc.nextint();    * 不同编号,对应不同的菜品,对应集合。 将客户选择的菜品,保存在personlist 集合中    * 注意到:在showdish方法中,有一个 “按 0 返回上一级 ” 实现代码    * 就是 ca 1 中的 if 条件语句 :客户选择 0 即为结束点菜 重新返回饭店服务    * 剩余的 ca 2 3  4 应该比较好理解。 不懂可以私信我哦!    * 还有一个小技巧就是 ca 3 中 没有使用break 而是使用了 return 原因是 : break 只是会天厨switch 循环,    * 而在结账以后,我们需要结束这个点菜系统 使用 return 就会直接 这个程序 。    */    while (true) {      number();      int num = sc.nextint();      switch (num) {        ca 1:          while (true) {            showdish();            int id = sc.nextint();            if (id == 0) {              break;            } el {              menu dish = dishlist.get(id - 1);              system.out.println("亲,您点了:" + dish.name + " 菜");              personlist.add(dish);            }          }        ca 2:          showorder();          break;        ca 3:          paying();          return;        ca 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.printl鲲的寓意n("您共消费:" + 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);  }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。

本文发布于:2023-04-04 18:26:54,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/3762e5582a02c4639d70bc0001f7eb77.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:java实现饭店点菜系统.doc

本文 PDF 下载地址:java实现饭店点菜系统.pdf

标签:客户   方法   饭店   菜品
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图