某饭店提供4种菜,每种菜品的基础价格如下:
西红柿炒蛋 15
清炒土豆丝 12
麻婆豆腐 12
油淋生菜 9

设计点菜计价程序,根据输入的订单,计算并输出总价格。
订单由一条或多条点菜记录组成,每条记录一行,最后以"end"结束
每条点菜记录包含:菜名、份额两个信息。
份额可选项包括:1、2、3,分别代表小、中、大份)

不同份额菜价的计算方法:
小份菜的价格=菜品的基础价格。
中份菜的价格=菜品的基础价格1.5。
小份菜的价格=菜品的基础价格
2。
如果计算出现小数,按四舍五入的规则进行处理。

参考以下类的模板进行设计:

菜品类:对应菜谱上一道菜的信息。
Dish {
 String name;//菜品名称
 int unit_price; //单价
 int getPrice(int portion)//计算菜品价格的方法,输入参数是点菜的份额(输入数据只能是1/2/3,代表小/中/大份)
 }菜谱类:对应菜谱,包含饭店提供的所有菜的信息。
Menu {
 Dish[] dishs ;//菜品数组,保存所有菜品信息
 Dish searthDish(String dishName)//根据菜名在菜谱中查找菜品信息,返回Dish对象。
 }

点菜记录类:保存订单上的一道菜品记录

Record {
 Dish d;//菜品
 int portion;//份额(1/2/3代表小/中/大份)
 int getPrice()//计价,计算本条记录的价格
 }

订单类:保存用户点的所有菜的信息。

Order {
 Record[] records;//保存订单上每一道的记录
 int getTotalPrice()//计算订单的总价
 Record addARecord(String dishName,int portion)
 //添加一条菜品信息到订单中。
 }

输入格式:

每条点菜记录的格式:
菜名+空格(英文)+份额
注:份额可输入(1/2/3), 1代表小份,2代表中份,3代表大份。
最后一条记录以“end”结束。

输出格式:

订单上所有菜品的总价(整数数值),每份菜
如果订单中包含不能识别的菜名,则在总价之前输出“** does not exist”,**是不能识别的菜名

输入样例:

在这里给出一组输入。例如:

麻婆豆腐 2
西红柿炒蛋 3
end

输出样例:

在这里给出相应的输出。例如:

48

输入样例1:

订单中包含不存在的菜品记录。例如:

麻婆豆腐 2
炒脆肚 2
西红柿炒蛋 3
end

输出样例1:

在这里给出相应的输出。例如:

炒脆肚 does not exist
48

我的代码如下:

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        String []menu =new String[]{"西红柿炒蛋","清炒土豆丝","麻婆豆腐","油淋生菜"};
        String dish;
        int portion;
        int totalPrice = 0;
        double price = 0;
        int judge = 0;
        while(true){
            dish = input.next();
            if(dish.equals("end")){
                break;
            }
            portion = input.nextInt();
            if(portion==1) price = 1;
            if(portion==2) price = 1.5;
            if(portion==3) price = 2;
            if(dish.equals(menu[0])){
                judge = 0;
            }else if(dish.equals(menu[1])){
                judge = 1;
            }else if(dish.equals(menu[2])){
                judge = 2;
            }else if(dish.equals(menu[3])){ 
                judge = 3;
            }else{
                System.out.println(dish+" does not exist");
                continue;
            }
            switch(judge){
                case 0:
                    totalPrice += Math.round(15 * price);
                    break;
                case 1:
                    totalPrice += Math.round(12 * price);
                    break;
                case 2:
                    totalPrice += Math.round(12 * price);
                    break;
                case 3:
                    totalPrice += Math.round(9 * price);
                    break;
                default:
                    System.out.println(input+" does not exist");
                    break;
            }
        }
        System.out.println(totalPrice);
    }
}