【简单JAVA 集合 实现一个控制台商品管理系统】

WareHouse 仓库管理

基本思路:
创建方法类Product 、 Main方法
重要操作----->循环显示选择菜单 —>实现集合的增删查改—>退出程序

我们创建一个类用来存放信息,方便实例化调用,在main方法中我们需要通过一个循环体来重复显示菜单栏,通过键盘输入来执行操作
do{}while循环可以有效的实现这一系列操作,并且通过控制台输入来控制程序的执行及终止。
代码中字段过多的case执行代码我们也可以通过封装使得更加整洁,再次不做过多修改,方便直接查看执行代码块,本文档仅为学习笔记,仍然存在很多疏漏。

代码实现

运行示例图

Product —>商品类

import java.util.Objects;

public class Product {
    private String name;
    private String size;
    private String configuration;
    private int num;
    private double price;

    public Product() {
    }

    public Product(String name, String size, String configuration, int num, double price) {
        this.name = name;
        this.size = size;
        this.configuration = configuration;
        this.num = num;
        this.price = price;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSize() {
        return size;
    }

    public void setSize(String size) {
        this.size = size;
    }

    public String getConfiguration() {
        return configuration;
    }

    public void setConfiguration(String configuration) {
        this.configuration = configuration;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Product product = (Product) o;
        return num == product.num &&
                Double.compare(product.price, price) == 0 &&
                Objects.equals(name, product.name) &&
                Objects.equals(size, product.size) &&
                Objects.equals(configuration, product.configuration);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, size, configuration, num, price);
    }

    @Override
    public String toString() {
        return "Product{" +
                "name='" + name + '\'' +
                ", size='" + size + '\'' +
                ", configuration='" + configuration + '\'' +
                ", num=" + num +
                ", price=" + price +
                '}';
    }
    public void printInfo(){
        System.out.println(name+"\t\t" + size+"\t\t" + configuration+"\t\t"
                + num+"\t\t" + price+"\t\t" + (num * price));
    }
}

实现方法 ---->main

package com.chapter02.warehouse;


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

/**
 * 现要对华为和小米两种手机产品进行入库,本案例要求编写一个模拟商品入库的程序,
 * 可以在控制台输入入库商品的数量,最后打印出仓库中所有商品详细信息以及所有商品的总库存数和库存商品总金额。
 */
public class Test {
    public static void main(String[] args) {
        Test t = new Test();
        ArrayList<Product> productsList = new ArrayList<>();
        boolean isLoop = true;
        do {
            char check = 'N';
            System.out.println("------------------仓库管理----------------" + "\n" +
                    "\t\t\t\t1、查看库存" + "\n" +
                    "\t\t\t\t2、增加商品" + "\n" +
                    "\t\t\t\t3、删除库存" + "\n" +
                    "\t\t\t\t4、修改信息" + "\n" +
                    "\t\t\t\t5、退出系统" + "\n");
            System.out.print("请输入你要执行的操作:(整数)");
            int chose = t.getScanner().nextInt();
            if (chose>=1&& chose<=5){
                switch (chose) {
                    case 1:
                        if (productsList.size() > 0) {
                            int inventory = 0;
                            System.out.println("序号\t\t" + "名称\t\t" + "尺寸\t\t" + "配置\t\t" + "库存\t\t" + "价格\t\t" + "\t总价");
                            for (int i = 0; i < productsList.size(); i++) {
                                System.out.print((i + 1) + "\t\t");
                                productsList.get(i).printInfo();
                                inventory = inventory + productsList.get(i).getNum();
                            }
                            System.out.println("商品总库存:" + inventory);
                        } else {
                            System.out.println("库存为空!");
                        }
                        break;
                    case 2:
                        Product p = t.getNewProduct();
                        System.out.print("请入商品名称:");
                        String a1 = t.getScanner().next();
                        p.setName(a1);
                        System.out.print("请入商品尺寸:");
                        String a2 = t.getScanner().next();
                        p.setSize(a2);
                        System.out.print("请入商品配置:");
                        String a3 = t.getScanner().next();
                        p.setConfiguration(a3);
                        System.out.print("请入商品数量:");
                        int a4 = t.getScanner().nextInt();
                        p.setNum(a4);
                        System.out.print("请入商品价格:");
                        double a5 = t.getScanner().nextDouble();
                        p.setPrice(a5);
                        productsList.add(p);
                        System.out.println("添加成功!");
                        break;
                    case 3:
                        System.out.print("请输入你要删除的商品序号:");
                        int num = t.getScanner().nextInt();
                        System.out.println("名称\t\t" + "尺寸\t\t" + "配置\t\t" + "库存\t\t" + "价格\t\t" + "总价");
                        System.out.print("商品信息:");
                        productsList.get(num - 1).printInfo();
                        System.out.print("你确认要删除吗吗?(Y/N)");
                        check = t.getScanner().next().charAt(0);
                        if (check == 'Y') {
                            productsList.remove(num - 1);
                        }
                        break;
                    case 4:
                        System.out.print("请输入你要修改的商品序号:");
                        int num1 = t.getScanner().nextInt();
                        System.out.println("名称\t\t" + "尺寸\t\t" + "配置\t\t" + "库存\t\t" + "价格\t\t" + "总价");
                        productsList.get(num1 - 1).printInfo();
                        System.out.print("你确认要删除吗吗?(Y/N)");
                        check = t.getScanner().next().charAt(0);
                        if (check == 'Y') {
                            System.out.print("商品名称:" + productsList.get(num1 - 1).getName() + " ");
                            String str1 = t.getScanner().next();
                            productsList.get(num1 - 1).setName(str1);
                            System.out.print("商品尺寸:" + productsList.get(num1 - 1).getSize() + " ");
                            String str2 = t.getScanner().next();
                            productsList.get(num1 - 1).setSize(str2);
                            System.out.print("商品配置:" + productsList.get(num1 - 1).getConfiguration() + " ");
                            String str3 = t.getScanner().next();
                            productsList.get(num1 - 1).setConfiguration(str3);
                            System.out.print("商品库存:" + productsList.get(num1 - 1).getNum() + " ");
                            int str4 = t.getScanner().nextInt();
                            productsList.get(num1 - 1).setNum(str4);
                            System.out.print("商品价格:" + productsList.get(num1 - 1).getPrice() + " ");
                            double str5 = t.getScanner().nextDouble();
                            productsList.get(num1 - 1).setPrice(str5);
                        }
                        break;
                    case 5:
                        System.out.print("你确认要退出吗?(Y/N)");
                        check = t.getScanner().next().charAt(0);
                        if (check == 'Y') {
                            isLoop = false;
                        } else if (check == 'N') {
                            isLoop = true;
                        }
                        break;
                    default:
                        System.out.println("输入错误,请重新输入!");
                        break;
                }
            }else {
                System.out.println("输入异常,请重新输入");
            }

        } while (isLoop);
    }

    public Product getNewProduct() {
        Product product = new Product();
        return product;
    }

    public Scanner getScanner() {
        Scanner scanner = new Scanner(System.in);
        return scanner;
    }
}

  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值