java怎么实现饭店点菜系统(java,开发技术)

时间:2024-04-30 01:16:07 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

JAVA实现饭店点菜系统

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

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

我实现的效果 如图

java怎么实现饭店点菜系统

java怎么实现饭店点菜系统

java怎么实现饭店点菜系统

java怎么实现饭店点菜系统

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

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

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

importjava.util.ArrayList;importjava.util.List;importjava.util.Scanner;/***太原理工大学---软件学院---李同学*java实现点菜系统*欢迎大家一起交流。评论或者私信。*/publicclassmenu{//声明两个集合,第一个用来保存饭店菜单,第二个用来保存客户所点菜单staticList<menu>dishList=newArrayList<>();staticList<menu>personList=newArrayList<>();intid;Stringname;doubleprice;//构造方法,每一个菜都是一个对象publicmenu(intid,Stringname,doubleprice){this.id=id;this.name=name;this.price=price;}publicstaticvoidmain(String[]args){//声明对象本饭店只会五个菜。O(∩_∩)O哈哈~//第一种声明方法,并添加到饭店菜单中。menudish2=newmenu(1,"鱼香肉丝",28.0);dishList.add(dish2);menudish3=newmenu(2,"炖王八",58.0);dishList.add(dish3);menudish4=newmenu(3,"家常凉菜",18.0);dishList.add(dish4);//第二种声明方法这两种方法大家都要学会dishList.add(newmenu(4,"山西过油肉",38.0));dishList.add(newmenu(5,"西湖牛肉羹",36.0));Scannersc=newScanner(System.in);/***接下来就是点菜系统的核心代码了。有点复杂,大家慢慢理解。*我尽量注释写全*我们要了解点菜需求:1.饭店有哪些菜2.客户点菜点菜完毕*重新展示饭店服务供客户再次选择3.客户点了哪些菜4.客户退菜5.结账*首先是一个while(true)的“死循环”吗,每执行一次就输出一次饭店服务number方法*第二客户选择服务sc.nextInt();客户输入的数字使用switch进行区分*进入switch后,根据客户的要求,执行不同的case*在执行case1时也就进入了点菜环节*再次出现一个while(true)先将饭店的五个菜展示给客户。等待客户点菜于是sc.nextInt();*不同编号,对应不同的菜品,对应集合。将客户选择的菜品,保存在personList集合中*注意到:在showDish方法中,有一个“按0返回上一级”实现代码*就是case1中的if条件语句:客户选择0即为结束点菜重新返回饭店服务*剩余的case234应该比较好理解。不懂可以私信我哦!*还有一个小技巧就是case3中没有使用break而是使用了return原因是:break只是会天厨switch循环,*而在结账以后,我们需要结束这个点菜系统使用return就会直接这个程序。*/while(true){number();intnum=sc.nextInt();switch(num){case1:while(true){showDish();intid=sc.nextInt();if(id==0){break;}else{menudish=dishList.get(id-1);System.out.println("亲,您点了:"+dish.name+"菜");personList.add(dish);}}case2:showOrder();break;case3:paying();return;case4:System.out.println("输入您要退掉菜品的编号");intid=sc.nextInt();exitDish(id);break;}}}//展示主菜单方法。publicstaticvoidnumber(){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("---根据编号选择服务---");}//展示饭店菜单方法publicstaticvoidshowDish(){System.out.println("----请您点菜----");//遍历集合,将之前声明的对象集合全部展示到控制台for(inti=0;i<dishList.size();i++){menudish=dishList.get(i);System.out.println(dish.id+""+dish.name+""+dish.price+"元");}System.out.println("---根据序号点菜,按0返回上一级---");}//展示客户已点菜单publicstaticvoidshowOrder(){System.out.println("----您已点菜品----");//注释掉的这个方法,不适合使用退菜操作。因为每一个菜品前面的id值不是真正的集合次序/*for(menudish:personList){System.out.println(dish.id+""+dish.name+""+dish.price+"元");}*///为了方便客户能够正确的选择菜品编号,我们采用1234的顺序输出已点菜品for(inti=0;i<personList.size();i++){System.out.println((i+1)+""+personList.get(i).name+""+personList.get(i).price+"元");}}//结账遍历personList集合的price累加即可publicstaticvoidpaying(){doubletotal=0f;System.out.println("----正在结账,请稍等!----");//另一种遍历集合的方法。大家学习哦for(menudish:personList){total+=dish.price;}System.out.println("您共消费:"+total+"元");}//退菜操作使用集合的remove方法。采用有参数的方法。先告诉客户要退掉的菜品,再执行remove操作,这两句代码不能颠倒publicstaticvoidexitDish(inti){System.out.println("您已退掉:"+personList.get(i-1).name+""+personList.get(i-1).price+"元");personList.remove(i-1);}}
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:java怎么实现饭店点菜系统的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:php如何去掉多余逗号下一篇:

7 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18