Dish.java
package cn.tx.demo; /* * 菜品类 * 提供有参数的构造方法 * */ public class Dish { // 编号 int id; //菜的名称 String name; //价格 double price; //生成构造方法 alt+insert 生成构造方法 public Dish(int id, String name, double price) { this.id = id; this.name = name; this.price = price; } @Override public String toString() { return "Dish{" + "id=" + id + ", name='" + name + '\'' + ", price=" + price + '}'; } }
DishApp.java
在这里插入代码片package cn.tx.demo; import java.util.ArrayList; import java.util.List; import java.util.Scanner; /** * 点菜的程序 */ public class DishApp { //提前主备一些菜品,可以展示给用户,同时用户可以点菜 //定义一个集合(表示这个小饭店所有的菜品) //Todo.1. ** 泛型 **: <Dish>,初始化一个集合,里面只能存储dish对象,不能存储其他的 // 如果是<String>,则表示只能存储字符串(String) static List<Dish> dishList=new ArrayList<>(); //用户已点菜品集合 static List<Dish> PersonDish=new ArrayList<>(); public static void main(String[] args) { //Todo.1.1.1. new一个对象后面调用service里面的方法 // sevice usr=new sevice(); //先初始化一些初始菜品 initDish(); //小饭店就会做五个菜 //创建一个扫描器(Scanner)对象,获取控制台输入的内容 Scanner sc1=new Scanner(System.in); while (true){ //给用户展示一个主菜单 showMenu(); //获取内容,拿到一个num数字 int num =sc1.nextInt(); //判断用户输入的数字 switch (num){ case 1: while (true){ //把饭店的菜单展示给用户 showdishMenu(); //获取用户输入的内容 int id=sc1.nextInt(); //判断 if(id==0){ break; } //从饭店集合中获取到菜品的对象 1 2 3 4 5 //集合索引 0 1 2 3 4 所以id-1 Dish dish= dishList.get(id-1); System.out.println("亲,您点了:"+dish.name+"菜"); PersonDish.add(dish); //用户点一个,我们存一个 // for (Dish dish1 : PersonDish) { // if(dish.name.equals(dish1.name)){ // dish1.id+= 1; // } // else{ // PersonDish.add(dish); // } // } } case 2: showPersonMenu(); break; case 3: //买单 buy(); return; } } } /** * 展示饭店菜单 */ public static void showdishMenu(){ System.out.println("请您点菜!"); //遍历集合 [数组遍历]for (int i = 0; i < arrs.length; i++) for (int i = 0; i < dishList.size(); i++) { //从集合中使用i获取每一个菜品对象 Dish dish=dishList.get(i); // System.out.println(dish); System.out.println(dish.id+"\t"+dish.name+"\t"+dish.price); } System.out.println("===输入序号点菜,按0 返回上一级==="); } /** * 客户点了什么菜 */ public static void showPersonMenu(){ System.out.println("您已点菜品!!"); //遍历集合 for (Dish personDish : PersonDish) { System.out.println(personDish.id+"\t"+personDish.name+"\t"+personDish.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 showMenu(){ System.out.println("--------主菜单---------------"); System.out.println("菜单\t\t\t 1"); System.out.println("已点菜品\t\t 2"); System.out.println("买单\t\t\t 3"); System.out.println("=====根据编号选择服务:========="); } /** * 初始化一些菜品 */ public static void initDish(){ Dish dish1=new Dish(1,"香辣肉丝",29); dishList.add(dish1); Dish dish2=new Dish(2,"炖王八",69); dishList.add(dish2); Dish dish3=new Dish(3,"红烧鸡块",39); dishList.add(dish3); //存放菜品 dishList.add(new Dish(4,"红烧肉",99)); dishList.add(new Dish(5,"地三鲜",24)); } }
