编写一个点菜系统,菜单,已点订单,买单三个基础功能。
创建菜品类
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;
}
}
创建主要的点菜系统
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Dishapp {
//定义集合(表示拥有的菜品)泛型
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
//集合的索引:0 1 2 3
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\t1");
System.out.println("已选菜品\t\t2");
System.out.println("买单\t\t\t3");
System.out.println("--根据编号选择你的服务--");
}
//展示菜单
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 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 initDish(){
Dish dish1 = new Dish(1,"红烧肉",50.0);
dishList.add(dish1);
Dish dish2 = new Dish(2,"地三鲜",30.0);
dishList.add(dish2);
dishList.add(new Dish(3,"辣子鸡",45.0));
dishList.add(new Dish(4,"酸菜鱼",60.0));
dishList.add(new Dish(5,"家常冷菜",21.0));
}
}