案例需求分析
根据案例介绍,我们进行分析,首先需要一个功能菜单,然后输入功能序号后,调用序号对应的功能方法,实现想要的操作。分析步骤如下
1.完成超市商品初始化。创建商品,将商品添加到集合
2.显示来到超市能做的操作,也就是显示主菜单
3.根据接收到的功能选项,执行对应的功能
3.1.库存货物查询
3.2.添加新货物
3.3.删除货物
3.4.修改货物
3.5.退出系统,结束main方法的运行
4.循环,回到 2.显示主菜单
package com.oracle.store;
import java.util.ArrayList;
import java.util.Scanner;
public class shop {
public static void main(String[] args) {
ArrayList<Goods> list=new ArrayList<Goods>();
Scanner sc=new Scanner(System.in);
while(true){
MainMenu();
int num=sc.nextInt();
switch(num){
case 1:QueryGoods(list);
break;
case 2:AddGoods(list);
break;
case 3:DeleteGoods(list);
break;
case 4:updateGoods(list);
break;
case 5:
return;
default:
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){
Scanner sc=new Scanner(System.in);
Goods goods=new Goods();
System.out.println("请输入新商品编号:");
int id=sc.nextInt();
System.out.println("请输入商品名称:");
String name=sc.next();
System.out.println("请输入商品价格:");
double price=sc.nextDouble();
// 将变量的值赋给goods对象
goods.gid=id;
goods.gname=name;
goods.price=price;
// 将对象添加到集合中
list.add(goods);
}
// 查询库存清单
public static void QueryGoods(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).price);
}
}
// 删除商品
public static void DeleteGoods(ArrayList<Goods>list){
// 先查询所有商品
QueryGoods(list);
Scanner sc=new Scanner(System.in);
System.out.println("请输入您要删除的商品编号:");
int num=sc.nextInt();
for(int i=0;i<list.size();i++){
// 如果该对象的编号是用户要删除的编号则找到该对象
if(list.get(i).gid==num){
// 在集合中删除该对象所在的下标即可
list.remove(i);
}
}
System.out.println("删除商品成功!");
}
// 修改商品信息
public static void updateGoods(ArrayList<Goods>list){
// 先查询所有商品信息
QueryGoods(list);
Scanner sc=new Scanner(System.in);
System.out.println("请输入您要修改的商品编号:");
int num=sc.nextInt();
System.out.println("请输入您要修改的商品名称:");
String name=sc.next();
System.out.println("请输入您要修改的商品价格:");
double price=sc.nextDouble();
Goods goods=new Goods();
goods.gid=num;
goods.gname=name;
goods.price=price;
// 找到商品编号为num的那个下标
for(int i=0;i<list.size();i++){
if(num==list.get(i).gid){
list.set(i,goods);
}
}
}
}