1. 首先定义一个菜单类
定义编号、菜的名字、菜的价格
public class Dish {
// 编号
int id;
// 菜的名字
String name;
// 菜的价格
double price;
public Dish(int id, String name, double price){
this.id = id;
this.name = name;
this.price = price;
}
}
2.菜单主题
基本逻辑:
1.首先呈现一个主菜单,呈现出:点菜,已点菜,买单三个模块。
2.输入点菜的编号会出现菜单,点完菜后返回主菜单
3.输入已点菜的编号会将用户已经点的菜输出给用户,然后呈现主菜单。
4.输入买单的编号会算出用户菜单的总价,然后输出给用户。
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Dishmain {
// 提前准备一些菜品,展示给用户,同时用户可以点菜
// 定义集合,用来装饭店拥有的菜品 集合是一种菜品的名字
static List<Dish> dishList = new ArrayList<>();
static List<Dish> personDish = new ArrayList<>();
public static void main(String[] args) {
initDish();
// 创建扫描器,获取到控制台输入的内容
Scanner s = new Scanner(System.in);
//写出死循环,来完成主程序的流程设计
while (true){
// 给用户展示主菜单
showMenu();
//获取内容
int num = s.nextInt();
//判断用户输入的数字
switch (num){
case 1:
while (true){
//把菜单展示给用户
showDishMenu();
// 获取用户输入的内容
int id = s.nextInt();
//判断
if (id == 0){
break;
}
// 从饭店的集合中获取菜品的对象 1 2 3 4 5
// 集合的索引: 0 1 2 3 4
Dish dish = dishList.get(id - 1);
System.out.println("你点了"+ dish.name+"菜");
// 用户点一个菜,新建一个集合用来存储用户已经点的菜
personDish.add(dish);
}
case 2:
// 展示用户已经点的菜品
showPersonDish();
break;
case 3:
//买单
buy();
return;
}
}
}
// 展示主菜单
public static void showMenu(){
System.out.println("----主菜单----");
System.out.println("菜单\t\t\t 1");
System.out.println("已点菜品\t\t 2");
System.out.println("买单\t\t\t 3");
}
// 客户已经点的菜
public static void showPersonDish(){
System.out.println("----你已经点的菜品----");
// 遍历已点的集合
for (Dish dish : personDish){
System.out.println(dish.id+"\t"+dish.name+"\t"+ dish.price);
}
}
//买单
public static void buy(){
System.out.println("----稍等,正在结算----");
//定义总金额
double total = 0f;
// 遍历已经点的菜品
for (Dish dish : personDish){
//各个菜品的累加
total += dish.price;
}
System.out.println("你一共消费了:"+total);
}
// 展示饭店菜单
public static void showDishMenu(){
System.out.println("----请你点菜----");
//遍历集合
for (int i = 0; i < dishList.size(); i++) {
// 从集合中使用i 获取每一个菜品对象
Dish dish = dishList.get(i);
System.out.println(dish.id+"\t"+dish.name+"\t"+ dish.price);
}
System.out.println("----输入序号点菜,按0返回上一级----");
}
// 初始化菜品
public static void initDish(){
Dish dish = new Dish(1,"炒拉条",29.0);
dishList.add(dish);
Dish dish2 = new Dish(2,"炒卤面",23.0);
dishList.add(dish2);
dishList.add(new Dish(3,"林源盖饭",11.0));
dishList.add(new Dish(4,"老碗面",9.5));
dishList.add(new Dish(5,"麻辣小龙虾",50.0));
}
}
3. 测试
这样就完成了一个简单的点菜小流程。
4.结束语
今天出去时间比较紧,找房子走了将近三万步。太累了,就敷衍一下拜拜。
有不清楚不理解的地方可以私信我。