Java【案例6-1】 库存管理系统

这是一个使用Java编写的库存管理系统示例,包括系统首页、商品入库、显示和删除商品功能。程序使用ArrayList存储Product对象,通过Scanner获取用户输入,用迭代器和增强for循环遍历集合。用户可以录入商品信息,查看所有商品,以及按编号删除商品。
摘要由CSDN通过智能技术生成

【案例6-1】 库存管理系统

【案例介绍】
1.任务描述
像商城和超市这样的地方,都需要有自己的库房,并且库房商品的库存变化有专人记录,这样才能保证商城和超市正常运转。
本例要求编写一个程序,模拟库存管理系统。该系统主要包括系统首页、商品入库、商品显示和删除商品功能。每个功能的具体要求如下:
(1) 系统的首页:用于显示系统所有的操作,并且可以选择使用某一个功能。
(2) 商品入库功能:首先提示是否要录入商品,根据用户输入的信息判断是否需要录入商品。如果需要录入商品,则需要用户输入商品的名称、颜色、价格和数量等信息。录入完成后,提示商品录入成功并打印所有商品。如果不需要录入商品,则返回系统首页。
(3) 商品显示功能:用户选择商品显示功能后,在控制台打印仓库所有商品信息。
(4) 删除商品功能:用户选择删除商品功能后,根据用户输入的商品编号删除商品,并在控制台打印删除后的所有商品。
本案例要求使用Collection集合存储自定义的对象,并用迭代器、增强for循环遍历集合。

package com.j2se.myInstances.example6_1;

import java.util.*;

public class Demo {

    private static List<Product> products = new ArrayList<Product>();

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Product product = new Product("iPhone X", "Red", 5999, 3);
        products.add(product);

        int choose;
        while (true) {
            printMenu();
            choose = sc.nextInt();
            if (choose == 1) {
                Product p = new Product();
                System.out.println("产品名称:");
                String pname = sc.next();

                System.out.println("产品颜色:");
                String pcolor = sc.next();

                System.out.println("产品价格:");
                double price = sc.nextDouble();

                System.out.println("产品数量:");
                int pnum = sc.nextInt();

                p.setName(pname);
                p.setColor(pcolor);
                p.setPrice(price);
                p.setNum(pnum);
                addProduct(p);


            } else if (choose == 2) {
                showInfo(products);
                System.out.println("\n");

            } else if (choose == 3) {
                System.out.println("请输入需要删除的商品编号:");
                int i = sc.nextInt();
                delete(i);

            } else {
                System.out.println("输入有误,请重新输入!");
            }

        }

    }

    public static void delete(int i) {
        i--;
        products.remove(i);
        System.out.println("出库成功!\n");
    }

    public static void addProduct(Product p) {
        products.add(p);
        System.out.println("产品已入库\n");
    }

    public static void showInfo(Collection<Product> products) {
        Iterator<Product> it = products.iterator();
        System.out.println("编号\t产品名称\t\t颜色\t价格\t\t库存");
        int n = 1;
        while (it.hasNext()) {
            Product p = it.next();
            System.out.println(n+"\t"+p.getName() + "\t" + p.getColor() + "\t" + p.getPrice() + "\t" + p.getNum());
            n++;
        }
    }

    public static void printMenu() {
        System.out.println("欢迎使用库房管理系统~");
        System.out.println("1. 商品入库");
        System.out.println("2. 商品展示");
        System.out.println("3. 商品出库");
        System.out.println("请输入您要选择的操作:");
    }
}

补充Product类:

class Product {
	private String name;
	private String color;
	private double price;
	private int num;
	
	public Product(String name, String color, double price, int num) {
		this.name = name;
		this.color = color;
		this.price = price;
		this.num = num;	
	}
	public String getName() { return name;}
	public String getColor() { return color; }
	public double getPrice() {return price; }
	public int getNum() {return num;}
}
案例3-1 基于控制台的购书系统通常是一个简单的程序示例,用于演示面向对象编程中的基本概念。这个系统可能会包含以下几个关键部分: 1. **图书类**:作为基础实体,每个图书都有一个标题、作者和价格。比如: ```java public class Book { private String title; private String author; private double price; // 构造函数,getter和setter方法 } ``` 2. **库存管理类**:维护一组图书,并提供增加、查询和购买图书的功能。例如: ```java public class Inventory { private List<Book> books = new ArrayList<>(); public void addBook(Book book) { books.add(book); } public boolean hasBook(String title) { return books.stream().anyMatch(b -> b.getTitle().equals(title)); } public boolean purchaseBook(String title, int quantity) { if (hasBook(title)) { for (int i = 0; i < quantity; i++) { if (books.removeIf(b -> b.getTitle().equals(title))) { // 减少库存并处理交易 } else { return false; // 书已售罄 } } return true; } return false; // 书不存在 } } ``` 3. **用户界面**:通过控制台交互,接收用户的命令(如查询书籍、购买等),调用库存管理类的方法。例如: ```java public static void main(String[] args) { Inventory inventory = new Inventory(); Scanner scanner = new Scanner(System.in); while (true) { System.out.println("请选择操作:查询书籍、购买书籍或退出"); String choice = scanner.nextLine(); switch (choice) { case "查询书籍": System.out.print("请输入书名:"); String bookTitle = scanner.nextLine(); if (inventory.hasBook(bookTitle)) { System.out.println("找到了!"); } else { System.out.println("未找到该书籍"); } break; // 其他case... } } } ```
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jayvee_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值