java ArrayList习题:超市库存管理系统案例

ArrayList其实是一个动态数组,能够在存储空间不够时自动增加长度(list.size)。而数组在运行期间长度就不可更改,所以在使用上ArrayList会更加灵活。

 

package ch12;

import java.util.ArrayList;
import java.util.Scanner;

public class Shopping {// 主类
    static ArrayList<Storage> list = new ArrayList<>();
    Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {// 调用
        add();
        while (true) {
            choose();
        }
    }

    public static void choose() {

        System.out.println("欢迎光临永辉超市");
        System.out.println("请选择要操作的功能序号:");
        System.out.println("1.货物清单  2.添加新货物  3.删除货物  4.修改货物  5.退出系统");
        Scanner sc = new Scanner(System.in);
        int numchoose = sc.nextInt();
        switch (numchoose) {
        case 1:
            System.out.println("货物清单");
            System.out.println("===========================商品库存清单============================");
            System.out.println("\t商品编号\t\t商品名称\t\t商品单价");
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i));
            }
            break;
        case 2:
            System.out.println("添加新货物");
            System.out.println("请输入新货物编号");
            int newGoodsNum = sc.nextInt();
            System.out.println("请输入新货物名称");
            String newGoodsName = sc.next();
            System.out.println("请输入新货物单价");
            double newGoodsPrice = sc.nextDouble();
            System.out.println("添加货物成功");

            Storage storage = new Storage(newGoodsNum, newGoodsName, newGoodsPrice);
            list.add(storage);

            break;
        case 3:
            System.out.println("删除货物");
            System.out.println("请输入要删除货物编号");
            int GoodsNum1 = sc.nextInt();
            for (int j = 0; j < list.size(); j++) {
                if (GoodsNum1 == list.get(j).getNumber()) {
                    list.remove(j);
                }
            }
            System.out.println("已删除编号" + GoodsNum1 + "的货物");
            break;
        case 4:
            System.out.println("编辑货物信息");
            System.out.println("请输入要编辑的货物编号");
            int GoodsNum2 = sc.nextInt();
            for (int k = 0; k < list.size(); k++) {
                Storage storage1 = list.get(k);
                if (GoodsNum2 == storage1.getNumber()) {
                    System.out.println("请输入编辑编号");
                    int numNew = sc.nextInt();
                    storage1.setNumber(numNew);
                    System.out.println("请输入编辑名称");
                    String nameNew = sc.next();
                    storage1.setName(nameNew);
                    System.out.println("请输入编辑价格");
                    double priceNew = sc.nextDouble();
                    storage1.setPrice(priceNew);
                    list.set(k, storage1);
                }

            }
            break;
        case 5:
            System.out.println("退出系统");
            System.exit(0);
            break;
        default:
            System.out.println("没有该选项");
        }

    }

    public static void add() {// 添加货物
        list.add(new Storage(1001, "name1", 54));
        list.add(new Storage(1002, "name2", 59));
        list.add(new Storage(1003, "name3", 57));
    }

}
java ArrayList习题:超市库存管理系统案例

package ch12;

public class Storage {
    private int number;//编号
    private String name;//商品名称
    private double price;//商品价格
    public int getNumber() {
        return number;
    }
    public void setNumber(int number) {
        this.number = number;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
    public Storage(int number, String name, double price) {
        super();
        this.number = number;
        this.name = name;
        this.price = price;
    }
    @Override
    public String toString() {
        return " [number=" + number + ",\t name=" + name + ",\t price=" + price + "]";
    }
    

    

}