1.1 案例介绍
现在,我们将原有的库存管理案例,进行业务逻辑的封装。
将对下列功能进行方法封装:
l 打印库存清单功能
l 库存商品数量修改功能
l 退出程序功能
1.2 案例需求分析
管理员能够进行的操作有3项(查看、修改、退出),我们可以采用(switch)菜单的方式来完成。
-------------库存管理------------
1.查看库存清单
2.修改商品库存数量
3.退出
请输入要执行的操作序号:
每一项功能操作,我们采用方法进行封装,这样,可使程序的可读性增强。
选择“1.查看库存清单”功能,则控制台打印库存清单
选择“2.修改商品库存数量”功能,则对每种商品库存数进行更新
选择“3.退出”功能,则退出库存管理,程序结束
package com.oracle.demo01; public class Goods { int gid; String name; double price; }
package com.oracle.demo01; import java.util.ArrayList; import java.util.Scanner; public class Demo02 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); ArrayList<Goods> arr=new ArrayList<Goods>(); save(arr); while(true){ //展示菜单 show(); //让用户输入选择 int choose=sc.nextInt(); switch(choose){ case 1: getGoods(arr); break; case 2: addGoods(arr); break; case 3: updateGoods(arr); break; case 4: remove(arr); break; case 5://退出 return; default: System.out.println("输入错误,请重新输入选择"); break; } } } //商品展示页面 public static void show(){ 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 save(ArrayList<Goods> arr){ Goods g1=new Goods(); g1.gid=9001; g1.name="少林寺酥饼核桃"; g1.price=120; Goods g2=new Goods(); g2.gid=9002; g2.name="上炕杂粮牡丹饼"; g2.price=20; Goods g3=new Goods(); g3.gid=9003; g3.name="新疆哈密瓜"; g3.price=7; arr.add(g1); arr.add(g2); arr.add(g3); } //1.展示 public static void getGoods(ArrayList<Goods> arr){ System.out.println("-----商品清单-----"); System.out.println("商品编号\t商品名称\t商品价格"); for (int i = 0; i < arr.size(); i++) { System.out.println(arr.get(i).gid+"\t"+arr.get(i).name+"\t"+arr.get(i).price); } } //2.添加数据 public static void addGoods(ArrayList<Goods> arr){ Scanner sc=new Scanner(System.in); System.out.println("请输入你要新增的商品编号:"); int id=sc.nextInt(); System.out.println("请输入你要新增的商品名称:"); String name=sc.next(); System.out.println("请输入你要新增的商品价格:"); double price=sc.nextDouble(); Goods goods=new Goods(); goods.gid=id; goods.name=name; goods.price=price; arr.add(goods); } //3.修改 public static void updateGoods(ArrayList<Goods> arr){ Scanner sc=new Scanner(System.in); System.out .println("请输入你要修改的商品编号(退出返回首页输入0):"); int ab=0; aa:while(true){ int id=sc.nextInt(); for (int i = 0; i < arr.size(); i++) { if(arr.get(i).gid==id){ ab=id; break aa; }else if(id==0){ return; } } System.out .println("请重新输入你要修改的商品编号(退出返回首页输入0):"); } System.out.println("请输入你要修改后的商品名称:"); String name=sc.next(); System.out.println("请输入你要修改后的商品价格:"); double price=sc.nextDouble(); Goods goods=new Goods(); goods.gid=ab; goods.name=name; goods.price=price; for (int i = 0; i < arr.size(); i++) { if(arr.get(i).gid==ab){ // arr.get(i).name=name; // arr.get(i).price=price; arr.set(i, goods); } } } //4.删除 public static void remove(ArrayList<Goods> arr){ Scanner sc=new Scanner(System.in); System.out.println("请输入你要删除的商品编号(退出返回首页输入0):"); int ab=0; aa:while(true){ int id=sc.nextInt(); for (int i = 0; i < arr.size(); i++) { if(arr.get(i).gid==id){ ab=id; break aa; }else if(id==0){ return; } } System.out .println("请重新输入你要删除的商品编号(退出返回首页输入0):"); } for (int i = 0; i < arr.size(); i++) { if(arr.get(i).gid==ab){ arr.remove(i); } } } }