一:实现效果
1.主界面
2.菜单
3.点菜
4.查看已下单的菜品
5.删除已下单的菜品
6.买单
二:实现
封装菜品类(id,name,price)
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.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Scanner;
public class DishApp {
static ArrayList<Dish> dishList = new ArrayList<>();
static ArrayList<Dish> PersonList = new ArrayList<>();
public static void main(String[] args) {
//调用方法初始化菜品
InitDish();
//创建扫描器与控制台交互
Scanner scanner = new Scanner(System.in);
while (true) {
//展示主菜单
ShowMenu();
System.out.println("请输入:");
int inputNum = scanner.nextInt();
//判断用户输入的编号
switch (inputNum) {
case 1:
while (true){
//展示主菜单
ShowDishMenu();
System.out.println("请输入菜品对应的编号:");
int DishId = scanner.nextInt();
//如果输入的是0就返回上一级
if (DishId == 0){
break;
}
Dish dish = dishList.get(DishId - 1);
System.out.println("您已成功下单了:"+dish.name+"\t"+"单价为:"+dish.price);
PersonList.add(dish);
}
break;
case 2:
//查看已选菜品
ShowPersonMenu();
System.out.println("请输入您的操作编号:");
int i = scanner.nextInt();
if (i == 0){
break;
}else if (i == 1){
while (true){
System.out.println("请输入您想删除的菜品编号:");
int deleteId = scanner.nextInt();
for (Dish dish : PersonList){
if (dish.id != deleteId){
System.out.println("对不起!您还没有下单该菜品,请输入已点菜品的编号进行删除!");
break;
}else {
PersonList.remove(deleteId-1);
System.out.println("您已成功删除菜品");
break;
}
}
break;
}
}else {
System.out.println("请按提示输入正确的操作数:");
scanner.nextInt();
}
break;
case 3:
//买单
Pay();
scanner.nextDouble();
System.out.println("欢迎下次光临!");
return;
}
}
}
/**
* 展示菜单
*/
public static void ShowDishMenu(){
System.out.println("-----选择对应的编号就是选择您想吃的菜-----");
for (Dish dish : dishList) {
System.out.println("\t"+dish.id + "\t" + dish.name + "\t" + dish.price);
}
System.out.println("-----------按0可以返回上一级-----------");
}
/**
* 查看已经下单的菜品
*/
public static void ShowPersonMenu(){
System.out.println("-----------以下是您下单的菜品-------------");
if (PersonList.isEmpty()){
System.out.println("您还未下单任何菜品,请先去下单");
}
for (Dish dish : PersonList) {
System.out.println(dish.id + "\t" + dish.name + "\t" + dish.price);
}
System.out.println("-----如果您想删除已下单菜品请按1,返回请按0------");
}
/**
* 买单
*/
public static void Pay(){
System.out.println("----以下是您所选菜品的总价单,请付款!------");
Double total = 0.0;
for (Dish dish : PersonList) {
System.out.println(dish.id + "\t" + dish.name + "\t" + dish.price);
total += dish.price;
}
System.out.println("-----请您付款!请您付款!请您付款!------");
System.out.println("---------------总价为:"+new DecimalFormat("0.00").format(total)+"----------");
System.out.println("您好,您一共需要支付:"+new DecimalFormat("0.00").format(total));
}
/**
* 展示主菜单
*/
public static void ShowMenu(){
System.out.println("-------------欢迎光临土菜馆------------");
System.out.println("* 1. 主菜单 ");
System.out.println("* 2. 已点菜单 ");
System.out.println("* 3. 买单 ");
System.out.println("--------------按0返回主菜单------------");
}
/**
* 初始化菜品
*/
public static void InitDish(){
Dish dish1 = new Dish(1, "鱼香肉丝", 29.9);
dishList.add(dish1);
Dish dish2 = new Dish(2, "生炒鸡", 32.9);
dishList.add(dish2);
Dish dish3 = new Dish(3, "糖醋排骨", 25.9);
dishList.add(dish3);
Dish dish4 = new Dish(4, "红烧肉", 50.9);
dishList.add(dish4);
Dish dish5 = new Dish(5, "酸辣土豆丝", 15.9);
dishList.add(dish5);
Dish dish6 = new Dish(6, "肉末茄子", 20.9);
dishList.add(dish6);
Dish dish7 = new Dish(7, "红烧鱼", 55.9);
dishList.add(dish7);
Dish dish8 = new Dish(8, "红烧猪蹄", 65.9);
dishList.add(dish8);
Dish dish9 = new Dish(9, "烤鱼", 85.9);
dishList.add(dish9);
}
}