一、案例介绍
现在,将前面文章的库存管理案例,采用更好的集合方式实现。
将对下列功能进行方法封装:
1.打印库存清单功能
2.库存商品数量修改功能
3.退出程序功能
二、案例需求分析
管理员能够进行的操作有3项(查看、修改、退出),我们可以采用(switch)菜单的方式来完成。
-------------库存管理------------
1.查看库存清单
2.修改商品库存数量
3.退出
请输入要执行的操作序号:
每一项功能操作,我们采用方法进行封装,这样,可使程序的可读性增强。
选择“1.查看库存清单”功能,则控制台打印库存清单
选择“2.修改商品库存数量”功能,则对每种商品库存数进行更新
选择“3.退出”功能,则退出库存管理,程序结束
三、实现代码步骤
每种库存商品都拥有多项商品信息,为了方便管理每种商品的信息,我们对商品信息进行封装,编写Goods.java文件
/*
* 库存商品类
*/
public class Goods {
String brand; // 商品品牌型号
double size; // 商品尺寸大小
double price; // 商品价格
int count; // 商品库存个数
}
上述代码中,对商品信息(品牌、尺寸、价格、库存数)进行了封装。这样做的好处在于,以后只要找到这个商品,就能够知道该商品的每项信息了。
编写Demo库存管理.java,完成如下功能:
1.功能菜单
/**
* 库存管理功能菜单
* 管理员键盘输入的功能操作序号
*/
public static int chooseFunction() {
System.out.println("-------------库存管理------------");
System.out.println("1.查看库存清单");
System.out.println("2.修改商品库存数量");
System.out.println("3.退出");
System.out.println("请输入要执行的操作序号:");
//接收键盘输入的功能选项序号
Scanner sc = new Scanner(System.in);
int choose = sc.nextInt();
return choose;
}
上述方法用来完成库存管理功能菜单的显示、接收管理员选择的功能操作序号。这是完成了案例的第一步。接下来完成“查看、修改、退出”这三项功能。
2.编写main主方法,调用库存管理功能菜单方法,与“查看、修改、退出”这三个方法。
public static void main(String[] args) {
//记录库存商品信息
ArrayList<Goods> list = new ArrayList<Goods>();
//添加商品到库存
addStore(list);
//通过while循环模拟管理员进行功能重复选择操作
while (true) {
//打印功能菜单操作,接收键盘输入的功能选项序号
int choose = chooseFunction();
//执行序号对应的功能
switch (choose) {
case 1://查看库存清单
printStore(list);
break;
case 2://修改商品库存数量
update(list);
break;
case 3://退出
exit();
return;
default:
System.out.println("----------------------------------");
System.out.println("功能选择有误,请输入正确的功能序号!");
break;
}
}
}
在主方法中,创建了ArrayList集合,用来存储库存商品信息,通过接收到的功能选项序号,进行switch语句判断后,调用对应的功能方法。
3.查看库存清单功能
/**
* 查看库存清单
*/
public static void printStore(ArrayList<Goods> list) {
//统计总库存个数、统计库存总金额
int totalCount = 0;
double totalMoney = 0.0;
//列表顶部
System.out.println("---------------------------查看库存清单--------------------------");
System.out.println("品牌型号 尺寸 价格 库存数");
//列表中部
for (int i = 0; i < list.size(); i++) {
Goods item = list.get(i);
System.out.println(item.brand+" "+item.size+" "+item.price+" "+ item.count);
//统计总库存个数、统计库存总金额
totalCount += item.count;
totalMoney += item.count * item.price;
}
//列表底部
System.out.println("-------------------------------------------------------------");
System.out.println("总库存数:"+totalCount);
System.out.println("库存商品总金额:"+totalMoney);
}
上述方法用来完成打印库存清单功能,参数list表示库存商品相关信息集合。
4.修改商品库存数量功能
/**
* 修改商品库存数量
*/
public static void update(ArrayList<Goods> list){
System.out.println("------------修改商品库存数量-----------");
for (int i = 0; i < list.size(); i++) {
Goods item = list.get(i);
System.out.println("请输入"+ item.brand +"商品库存数量");
item.count = new Scanner(System.in).nextInt();
list.set(i, item);
}
}
上述方法用来完成修改商品库存数量功能,参数list表示库存商品相关信息集合。
5.退出功能
/**
* 退出
*/
public static void exit(){
System.out.println("----------------退出---------------");
System.out.println("您已退出系统");
}
上述方法用来完成退出程序的功能