本文主要详细介绍了基于java的餐厅点菜系统。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。
在本文中,我们分享一下java用于酒店点菜系统的具体代码,供大家参考。具体内容如下
JAVA实现饭店点菜系统
在这个暑假,我会把一些经典的java编程练习放到网上。做好了贴在博客上。是对自己学习的监督,也方便大家互相学习交流。让我们一起进步。
这个点菜系统有点像我之前Java课程设计中的小学生数学习题。不过没有文件操作,相对简单。
我实现了如图的效果。
最重要的 还是面向对象的思想,我们要理解并使用。
1.在点菜系统中,为了方便餐厅添加菜谱,我们需要使用一个列表集,它可以改变长度。
2.每一道菜都是我们需要打包的一个对象,包括三个属性:编号、菜名、价格。
3.对于排序的特定需求,我们必须编写每个静态方法。在主方法中,流程是根据客户的订购流程设计的。
看到了效果图 。我们直接贴代码, 在代码中解释 。
导入Java . util . ArrayList;
导入Java . util . list;
导入Java . util . scanner;
/**
*太原理工大学软件学院-李同学
* java实现点菜系统
*欢迎大家一起交流。评论或私信。
*/
公共课程菜单{
//声明两套,第一套用来保存餐厅菜单,第二套用来保存客户点的菜单。
static list menu dish list=new ArrayList();
静态list menu person list=new ArrayList();
int id
字符串名称;
双倍价格;
//构造方法,每一盘都是一个对象
公共菜单(int id,String name,double price) {
this.id=id
this.name=name
this.price=价格;
}
公共静态void main(String[] args) {
//声明这家餐厅只有五道菜。O(_)O哈哈~
//第一个声明方法,并将其添加到餐厅菜单中。
菜单dish1=新菜单(1,‘鱼香肉丝’,28.0);
dish list . add(dish 1);
菜单dish2=新菜单(2,'炖乌龟',58.0);
dish list . add(dish 2);
菜单dish3=新菜单(3,'家常凉菜',18.0);
dish list . add(dish 3);
//第二个声明方法。这两种方法大家都要学。
DishList.add(新菜单(4,'山西油锅肉',38.0));
DishList.add(新菜单(5,'西湖牛肉汤',36.0));
Scanner sc=新扫描仪(system . in);
/**
*接下来是订餐系统的核心代码。有点复杂。让我们放松一下。
*我尽量把评论都写出来。
*我们需要知道订购要求:1。酒店有什么菜?2.顾客已经点完了。
*重新展示酒店服务,供顾客再次选择。3.顾客点了什么菜?4.顾客把菜退了?5.检查一下。
*一开始是while(true)的“无限循环”吗?每次执行酒店服务号方法时,都会输出一次。
*第二个客户选择服务sc . nextint();客户输入的数字由开关区分。
*进入切换后,根据客户的要求执行不同的case。
*当执行案例1时,您将进入订购流程。
* A while(真)再次出现。先给顾客看酒店的五道菜。等待客户订购so sc . nextint();
*不同的号码,对应不同的菜品,对应不同的收藏。将顾客选择的菜肴保存在人员列表集合中。
*注意:在showDish方法中,有一个“按0返回上一级”的实现代码
*是案例1中的if条件语句:如果客户选择0,他将完成点餐并返回酒店服务。
*剩下的案例2 3 4应该很容易理解。不知道的可以私信我!
*另一个技巧是,案例3使用return而不是break。原因是:break只是一个厨房开关回路。
*结账后,我们需要结束这个订购系统,并使用return直接进入该程序。
*/
while (true) {
number();
int num=sc . nextint();
开关(数量){
案例1:
while (true) {
showDish();
int id=sc . nextint();
if (id==0) {
打破;
}否则{
menu dish=dish list . get(id-1);
System.out.println('亲爱的,您点了:' dish . name ' dish ');
person list . add(dish);
}
}
案例二:
showOrder();
打破;
案例三:
支付();
返回;
案例4:
System.out.println('输入要退的菜的编号');
int id=sc . nextint();
exit dish(id);
打破;
}
}
}
//显示主菜单方法。
公共静态void号(){
System.out.println('欢迎来到小帅餐厅!');
System.out.println(' -主菜单-');
system . out . println(' menu-1 ');
system . out . println(' a la carte-2 ');
system . out . println(' check out-3 ');
system . out . println(' Dish-4 ');
System.out.println(' -根据数字选择服务-');
}
//显示餐厅菜单方法
公共静态void showDish() {
System.out.println(' -请订购-');
//遍历集合,并向控制台显示所有以前声明的对象集合。
for(int I=0;I dish list . size();i ) {
menu dish=dish list . get(I);
system . out . println(dish . id ' ' dish . name ' ' dish . price '元');
}
System.out.println(' -按序号排序,按0返回上一级-');
}
//显示客户点的菜单
公共静态void showOrder() {
System.out.println(' -您已订购-');
//这个被注释掉的方法不适合使用菜返回操作。因为每道菜前面的id值并不是真正的收藏顺序。
/*for(菜单菜:人员列表){
system . out . println(dish . id ' ' dish . name ' ' dish . price '元');
}*/
//为了方便顾客正确选择菜号,我们按照1 2 3 4的顺序输出点的菜。
for(int I=0;I person list . size();i ){
system . out . println((I 1)' ' person list . get(I)。name'' personlist.get (i)。价格‘元’);
}
}
//只累加checkout遍历personList集合的价格。
公共静态void支付(){
双倍总计=0f
System.out.println(' -正在结账,请稍等!- ');
//另一种遍历集合的方法。大家学习。
对于(菜单菜:人员列表){
total=dish.price
}
System.out.println('你花:'合计'元');
}
//返菜操作使用集合的remove方法。采用参数化方法。告诉顾客先把盘子退回,然后再进行撤盘操作。这两个代码不能颠倒。
public static void exit dish(int I){
System.out.println('您已返回:' personlist.get (I-1)。name'' personlist.get (I-1)。价格‘元’);
person list . remove(I-1);
}
}
这就是本文的全部内容。希望对大家的学习有帮助,支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。