Python 官方文档:入门教程 => 点击学习
本文实例为大家分享了java实现饭店点菜系统的具体代码,供大家参考,具体内容如下 JAVA实现饭店点菜系统 在这个暑假,我会将一些网络上比较经典的java编程练习题。 做一做,发布到
本文实例为大家分享了java实现饭店点菜系统的具体代码,供大家参考,具体内容如下
在这个暑假,我会将一些网络上比较经典的java编程练习题。 做一做,发布到博客来。是对我自己学习的监督,也是为了方便大家借鉴学习交流。大家一起共同进步。
这个点菜系统,和我之前Java课程设计中的小学生数学练习有点像。不过少了文件操作,相对比较简单。
我实现的效果 如图
最重要的 还是面向对象的思想,我们要理解并使用。
1.在点菜系统中,我们为了方便 饭店添加菜谱 ,我们要使用一个list 集合 ,可以改变长度大小。
2.每一个 菜品 都是一个对象 我们要封装起来,包括 三个属性 : 编号,菜名 ,价格
3.对点菜的具体需求 ,我们要 写 每一个 静态方法。在main 方法中, 按照客户点菜的过程来设计流程。
看到了效果图 。我们直接贴代码, 在代码中解释 。
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
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(System.in);
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 值不是真正的集合次序
//为了方便客户能够正确的选择菜品编号,我们采用 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);
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。
--结束END--
本文标题: java实现饭店点菜系统
本文链接: https://lsjlt.com/news/163750.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0