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);
		  }
		}
	}

}

  

12-27 02:37