需求:
完成菜品上架以及菜品信息的查看
分析:
1、设计一个菜品类,负责创建菜品对象那,封装菜品数据
菜品的基本信息包括菜品名称、菜品价格以及菜品的相关描述
2、设计一个操作类FoodOperator,负责实现对菜品的上架、查看以及数据修改
1、定义集合对象,负责储存菜品信息
2、功能开发:上架菜品、菜品展示、修改菜品信息
3、设计操作页面
菜品上架:
菜品展示:
菜品修改:
修改后,菜品展示结果为:
对错误数据的处理:
系统退出:
相关代码:
Food类:
public class Food {
private String name;
private double price;
private String desc;
public Food() {
}
public Food(String name, double price, String desc) {
this.name = name;
this.price = price;
this.desc = desc;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
FoodOperator操作类:
public class FoodOperator {
private ArrayList<Food> foodslList = new ArrayList<>();
Scanner sc = new Scanner(System.in);
public Food addFood(){
Food food = new Food();
System.out.println("请输入菜品名称:");
String name = sc.next();
food.setName(name);
System.out.println("请输入菜品价格(单位:元):");
double price = sc.nextDouble();
food.setPrice(price);
System.out.println("请输入菜品相关描述:");
String desc = sc.next();
food.setDesc(desc);
foodslList.add(food);
System.out.println("上架成功!");
return food;
}
//菜品展示
public void showFood(){
for (int i = 0; i < foodslList.size(); i++) {
Food food = foodslList.get(i);
System.out.println("-----------------");
System.out.println("菜品:"+food.getName());
System.out.println("价格:"+food.getPrice());
System.out.println("相关描述:"+food.getDesc());
}
}
//修改上架商品信息
public void changeFood(){
if(foodslList.isEmpty()){
System.out.println("当前菜品数量为0,请上架新的菜品!\n");
start();
}
System.out.println("当前已上架的菜品有:");
showFood();
System.out.println("\n请选择要修改的菜品:");
String changefood = sc.next();
boolean found = false;
for (int i = 0; i < foodslList.size(); i++) {
Food food = foodslList.get(i);
if(food.getName().equals(changefood)){
found =true;
while (true)
{
System.out.println("\n请选择您要修改的信息:");
System.out.println("1、菜品名称");
System.out.println("2、菜品价格");
System.out.println("3、菜品相关描述");
int choose = sc.nextInt();
switch (choose) {
case 1:
System.out.println("请输入新的菜品名称:");
String newName = sc.next();
food.setName(newName);
System.out.println("修改完成!");
break;
case 2:
System.out.println("请输入新的菜品价格:");
double newPrice = sc.nextDouble();
food.setPrice(newPrice);
System.out.println("修改完成!");
break;
case 3:
System.out.println("请输入新的菜品描述:");
String newdesc = sc.next();
food.setDesc(newdesc);
System.out.println("修改完成!");
break;
default:
System.out.println("您选择的菜品信息有误,请重新选择!");
continue;
}
break;
}
}
}
if(!found){
System.out.println("您暂未上架该菜品!");
}
}
//菜单显示
public void start(){
while (true) {
System.out.println("\n");
System.out.println("请选择功能:");
System.out.println("1、上架菜品");
System.out.println("2、展示菜品");
System.out.println("3、修改菜品信息");
System.out.println("4、退出");
//Scanner sc = new Scanner(System.in);
System.out.println("请输入您的操作:");
String connand = sc.next();
switch (connand)
{
case "1":
addFood();
break;
case "2":
if(foodslList.size() == 0){
System.out.println("当前菜品数量为0,请上架新的菜品!\n");
start();
}else
showFood();
break;
case "3":
changeFood();
break;
case "4":
System.out.println("系统已退出!");
sc.close();
return;
default:
System.out.println("您输入的命令不存在!");
System.out.println("------------------");
}
}
}
}
主函数:
public static void main(String[] args) {
FoodOperator operator = new FoodOperator();
operator.start();
}