菜单计价程序-1
7-1 菜单计价程序-1
分数 30
全屏浏览题目
切换布局
作者 蔡轲
单位 南昌航空大学
某饭店提供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 output=new Scanner(System.in);String dish;String []menu =new String[]{"清炒土豆丝","西红柿炒蛋","油淋生菜","麻婆豆腐"};int price=0,size1;for(;;){int count=0;dish=output.next();if(dish.equals("end"))break;size1=output.nextInt();if(dish.equals(menu[1])){count=1;if(size1==1)price=price+15;if(size1==2)price=price+23;if(size1==3)price=price+30;}else if(dish.equals(menu[0])){count=1;if(size1==1)price=price+12;if(size1==2)price=price+18;if(size1==3)price=price+24;}else if(dish.equals(menu[3])){count=1;if(size1==1)price=price+12;if(size1==2)price=price+18;if(size1==3)price=price+24;}else if(dish.equals(menu[2])){count=1;if(size1==1)price=price+9;if(size1==2)price=price+14;if(size1==3)price=price+18;}if(count==0)System.out.print(dish+"does"+" "+"not"+" "+"exist");}System.out.println(price);}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
