天天看點

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 + "]";

    }

}