l 观察清单后,可将清单分解为三个部分(清单顶部、清单中部、清单底部)
l 1.清单顶部为固定的数据,直接打印即可
l 2.清单中部为商品,为变化的数据,需要记录商品信息后,打印
经过观察,我们确定一项商品应该有如下几个属性:
品牌型号: 即商品名称,String型
尺寸:物品大小,double型
价格:物品单价,double型
配置:这一项为每种商品的配置信息,String型
库存数:这一项为每种商品的库存个数,int型
l 3.清单底部包含了统计操作,需经过计算后,打印
我们发现两个单独的可变化量
总库存数:所有商品总个数,int型
库存商品总金额:所有商品金额,double型
import java.util.Scanner; import java.util.ArrayList; public class Menu { public static void main(String[] args) { Scanner sc=new Scanner(System.in); ArrayList<Goods> list=new ArrayList<Goods>(); while(true){ mainMenu(); int choose=sc.nextInt(); switch(choose){ case 1: // 货物清单 getGoods(list); break; case 2: deleteGoods(list); break; case 3: // 添加货物 addGoods(list); break; case 4: updateGoods(list); break; case 5: return; default: System.out.println("您的输入有误,重新输入"); break; } } } public static void mainMenu() { System.out.println("=====欢迎光临 Oracle超市========"); System.out.println("1.货物清单"); System.out.println("2.删除货物"); System.out.println("3.添加货物"); System.out.println("4.修改货物"); System.out.println("5.退出"); System.out.println("请输入你的选择"); } public static void addGoods(ArrayList<Goods>list){ System.out.println("请输入新水果的编号"); Scanner sc=new Scanner(System.in); int gid=sc.nextInt(); System.out.println("请输入新水果的名称"); String gname=sc.next(); System.out.println("请输入新水果的价格"); double prise=sc.nextDouble(); // 吧属性封装到商品对象中 Goods goods=new Goods(); goods.gid=gid; goods.gname=gname; goods.prise=prise; // 将对象存入集合 list.add(goods); } public static void getGoods(ArrayList<Goods> list){ System.out.println("=====商品库存清单========"); System.out.println("商品编号 商品名称 商品单价"); for(int i=0;i<list.size();i++){ System.out.println(list.get(i).gid+" "+list.get(i).gname+" "+list.get(i).prise); } } public static void updateGoods(ArrayList<Goods> list){ getGoods(list); System.out.println("请输入你要修改的商品编号"); Scanner sc=new Scanner(System.in); int gid=sc.nextInt(); System.out.println("请输入你要修改的商品名称"); String gname=sc.next(); System.out.println("请输入你要修改的商品价格"); double prise=sc.nextDouble(); for(int i=0;i<list.size();i++){ if(list.get(i).gid==gid){ list.get(i).gname=gname; list.get(i).prise=prise; } } } public static void deleteGoods(ArrayList<Goods> list){ getGoods(list); System.out.println(""); Scanner sc=new Scanner(System.in); int gid=sc.nextInt(); for(int i=0;i<list.size();i++){ if(list.get(i).gid==gid){ list.remove(i); } } } }
打印结果为: