步骤 1封装菜品实体Food 类定义私有属性菜品名称name、价格price、描述desc体现 “封装性”提供构造方法方便创建菜品对象时直接赋值提供 Getter 方法外部类如主程序可获取菜品属性重写toString()方法简化菜品信息的打印输出避免直接打印对象地址。步骤 2搭建主程序框架FoodSystem 类初始化核心组件创建ArrayListFood集合用于存储所有菜品创建Scanner对象用于接收用户输入设计循环菜单while (true)让程序持续运行直到用户选择退出。菜单交互逻辑打印操作菜单1. 上架 2. 浏览 3. 退出引导用户输入操作指令用 switch 语句匹配用户选择分分支实现不同功能。步骤 3实现 “上架菜品” 功能接收用户输入的菜品名称、价格、描述通过Food构造方法创建菜品对象调用ArrayList.add()方法将菜品对象添加到集合中给出操作成功提示如 “XX 菜品上架成功”提升用户体验。步骤 4实现 “浏览菜品” 功能先判断集合是否为空若为空提示 “暂无菜品”若不为空遍历集合for / 增强 for 循环逐个打印菜品信息利用重写的toString()方法格式清晰易读。步骤 5完善退出逻辑与异常处理可选优化选择 “退出” 时终止循环break打印退出提示对价格输入等场景增加异常捕获如输入非数字避免程序崩溃新手可先实现基础功能再补充。四、核心设计思路总结数据层用Food类抽象 “菜品” 这个现实实体让数据结构更清晰存储层用ArrayList替代数组解决菜品数量动态变化的问题交互层通过循环菜单 分支语句实现用户与程序的 “对话式” 操作符合控制台程序的交互习惯。package sy.com; import java.util.ArrayList; import java.util.Scanner; public class foodmanager { private ArrayListfood list new ArrayList(); Scanner sc new Scanner(System.in); public void add(){ System.out.println(菜品上架); food food new food(); System.out.println(请输入上架菜品id:); int id sc.nextInt(); food.setId(id); System.out.println(请输入菜品名称); String name sc.next(); food.setName(name); System.out.println(请输入菜品原价); double originalPrice sc.nextDouble(); food.setOriginalPrice(originalPrice); System.out.println(请输入菜品优惠价); double DiscountedDishPrice sc.nextDouble(); food.setDiscountedDishPrice(DiscountedDishPrice); System.out.println(请输入菜品的其他信息); String info sc.next(); food.setInfo(info); list.add(food); System.out.println(恭喜你上架成功); } public void printAllFoods(){ System.out.println(当前菜品信息如下); for (int i 0; i list.size(); i) { food food list.get(i); System.out.println(菜品id food.getId()); System.out.println(菜品名称food.getName()); System.out.println(菜品原价food.getOriginalPrice()); System.out.println(菜品优惠价food.getDiscountedDishPrice()); System.out.println(菜品其他信息food.getInfo()); } } public void idFind(int id){ for (int i 0; i list.size(); i) { food food list.get(i); if (food.getId() id){ System.out.println(该菜品详细信息如下); System.out.println(菜品id food.getId()); System.out.println(菜品名称 food.getName()); System.out.println(菜品原价 food.getOriginalPrice()); System.out.println(菜品优惠价 food.getDiscountedDishPrice()); System.out.println(菜品其他信息 food.getInfo()); return; } } System.out.println(没有该菜品信息); } public void start(){ while (true){ System.out.println(欢迎来到商家管理系统); System.out.println(1上架菜品(add)); System.out.println(2游览菜品(query)); System.out.println(3.根据id查找详细商品信息idFind); System.out.println(4退出系统(exit)); System.out.println(请你选择操作命令); String command sc.next(); switch (command) { case add: add(); break; case query: printAllFoods(); break; case idFind: System.out.println(请输入你要查询的菜品id); int id sc.nextInt(); idFind(id); break; case exit: return; default: System.out.println(您输入的操作命令有误); } } } } class fofdtest{ public static void main(String[] args) { foodmanager manager new foodmanager(); manager.start(); } }package sy.com; public class food { private int id; private String name; private double OriginalPrice; private double DiscountedDishPrice; private String info; public food(){ } public food(String name, double originalPrice, double discountedDishPrice, String info) { this.id id; this.name name; OriginalPrice originalPrice; DiscountedDishPrice discountedDishPrice; this.info info; } public int getId() { return id; } public void setId(int id) { this.id id; } public String getName() { return name; } public void setName(String name) { this.name name; } public double getDiscountedDishPrice() { return DiscountedDishPrice; } public void setDiscountedDishPrice(double discountedDishPrice) { DiscountedDishPrice discountedDishPrice; } public double getOriginalPrice() { return OriginalPrice; } public void setOriginalPrice(double originalPrice) { OriginalPrice originalPrice; } public String getInfo() { return info; } public void setInfo(String info) { this.info info; } Override public String toString() { return food{ name name \ , OriginalPrice OriginalPrice , DiscountedDishPrice DiscountedDishPrice , info info \ , id id }; } }
外卖商家系统
步骤 1封装菜品实体Food 类定义私有属性菜品名称name、价格price、描述desc体现 “封装性”提供构造方法方便创建菜品对象时直接赋值提供 Getter 方法外部类如主程序可获取菜品属性重写toString()方法简化菜品信息的打印输出避免直接打印对象地址。步骤 2搭建主程序框架FoodSystem 类初始化核心组件创建ArrayListFood集合用于存储所有菜品创建Scanner对象用于接收用户输入设计循环菜单while (true)让程序持续运行直到用户选择退出。菜单交互逻辑打印操作菜单1. 上架 2. 浏览 3. 退出引导用户输入操作指令用 switch 语句匹配用户选择分分支实现不同功能。步骤 3实现 “上架菜品” 功能接收用户输入的菜品名称、价格、描述通过Food构造方法创建菜品对象调用ArrayList.add()方法将菜品对象添加到集合中给出操作成功提示如 “XX 菜品上架成功”提升用户体验。步骤 4实现 “浏览菜品” 功能先判断集合是否为空若为空提示 “暂无菜品”若不为空遍历集合for / 增强 for 循环逐个打印菜品信息利用重写的toString()方法格式清晰易读。步骤 5完善退出逻辑与异常处理可选优化选择 “退出” 时终止循环break打印退出提示对价格输入等场景增加异常捕获如输入非数字避免程序崩溃新手可先实现基础功能再补充。四、核心设计思路总结数据层用Food类抽象 “菜品” 这个现实实体让数据结构更清晰存储层用ArrayList替代数组解决菜品数量动态变化的问题交互层通过循环菜单 分支语句实现用户与程序的 “对话式” 操作符合控制台程序的交互习惯。package sy.com; import java.util.ArrayList; import java.util.Scanner; public class foodmanager { private ArrayListfood list new ArrayList(); Scanner sc new Scanner(System.in); public void add(){ System.out.println(菜品上架); food food new food(); System.out.println(请输入上架菜品id:); int id sc.nextInt(); food.setId(id); System.out.println(请输入菜品名称); String name sc.next(); food.setName(name); System.out.println(请输入菜品原价); double originalPrice sc.nextDouble(); food.setOriginalPrice(originalPrice); System.out.println(请输入菜品优惠价); double DiscountedDishPrice sc.nextDouble(); food.setDiscountedDishPrice(DiscountedDishPrice); System.out.println(请输入菜品的其他信息); String info sc.next(); food.setInfo(info); list.add(food); System.out.println(恭喜你上架成功); } public void printAllFoods(){ System.out.println(当前菜品信息如下); for (int i 0; i list.size(); i) { food food list.get(i); System.out.println(菜品id food.getId()); System.out.println(菜品名称food.getName()); System.out.println(菜品原价food.getOriginalPrice()); System.out.println(菜品优惠价food.getDiscountedDishPrice()); System.out.println(菜品其他信息food.getInfo()); } } public void idFind(int id){ for (int i 0; i list.size(); i) { food food list.get(i); if (food.getId() id){ System.out.println(该菜品详细信息如下); System.out.println(菜品id food.getId()); System.out.println(菜品名称 food.getName()); System.out.println(菜品原价 food.getOriginalPrice()); System.out.println(菜品优惠价 food.getDiscountedDishPrice()); System.out.println(菜品其他信息 food.getInfo()); return; } } System.out.println(没有该菜品信息); } public void start(){ while (true){ System.out.println(欢迎来到商家管理系统); System.out.println(1上架菜品(add)); System.out.println(2游览菜品(query)); System.out.println(3.根据id查找详细商品信息idFind); System.out.println(4退出系统(exit)); System.out.println(请你选择操作命令); String command sc.next(); switch (command) { case add: add(); break; case query: printAllFoods(); break; case idFind: System.out.println(请输入你要查询的菜品id); int id sc.nextInt(); idFind(id); break; case exit: return; default: System.out.println(您输入的操作命令有误); } } } } class fofdtest{ public static void main(String[] args) { foodmanager manager new foodmanager(); manager.start(); } }package sy.com; public class food { private int id; private String name; private double OriginalPrice; private double DiscountedDishPrice; private String info; public food(){ } public food(String name, double originalPrice, double discountedDishPrice, String info) { this.id id; this.name name; OriginalPrice originalPrice; DiscountedDishPrice discountedDishPrice; this.info info; } public int getId() { return id; } public void setId(int id) { this.id id; } public String getName() { return name; } public void setName(String name) { this.name name; } public double getDiscountedDishPrice() { return DiscountedDishPrice; } public void setDiscountedDishPrice(double discountedDishPrice) { DiscountedDishPrice discountedDishPrice; } public double getOriginalPrice() { return OriginalPrice; } public void setOriginalPrice(double originalPrice) { OriginalPrice originalPrice; } public String getInfo() { return info; } public void setInfo(String info) { this.info info; } Override public String toString() { return food{ name name \ , OriginalPrice OriginalPrice , DiscountedDishPrice DiscountedDishPrice , info info \ , id id }; } }