【案例介绍】
1.任务描述
像商城和超市这样的地方,都需要有自己的库房,并且库房商品的库存变化有专人记录,这样才能保证商城和超市正常运转。
本例要求编写一个程序,模拟库存管理系统。该系统主要包括系统首页、商品入库、商品显示和删除商品功能。每个功能的具体要求如下:
(1) 系统的首页:用于显示系统所有的操作,并且可以选择使用某一个功能。
(2) 商品入库功能:首先提示是否要录入商品,根据用户输入的信息判断是否需要录入商品。如果需要录入商品,则需要用户输入商品的名称、颜色、价格和数量等信息。录入完成后,提示商品录入成功并打印所有商品。如果不需要录入商品,则返回系统首页。
(3) 商品显示功能:用户选择商品显示功能后,在控制台打印仓库所有商品信息。
(4) 删除商品功能:用户选择删除商品功能后,根据用户输入的商品编号删除商品,并在控制台打印删除后的所有商品。
本案例要求使用Collection集合存储自定义的对象,并用迭代器、增强for循环遍历集合。
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;class Phone {private int id; // 商品编号private String name;private String color;private double price;private int num;public Phone(int id, String name, String color, double price, int num) {this.id = id;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;}public int getId() {return id;}@Overridepublic String toString() {return "ID: " + id + ", Name: " + name + "..." + color + "..." + price + "..." + num;}
}public class kucun {static ArrayList<Phone> c = new ArrayList<>();private static int idCounter = 0; // 用于生成商品编号public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (true) {System.out.println("欢迎使用库房管理系统,请选择你的操作:");System.out.println("1.商品入库");System.out.println("2.商品显示");System.out.println("3.删除商品");System.out.println("0.退出系统");int choose = sc.nextInt();switch (choose) {case 1:System.out.println("您是否录入商品?(y/n)");String choose1 = sc.next();if ("y".equalsIgnoreCase(choose1)) {addwarehouse();}break;case 2:warehouse();break;case 3:System.out.println("请输入你要删除的商品编号:");if (sc.hasNextInt()) { // 检查是否是整数int inputId = sc.nextInt(); // 用户输入的商品编号int index = inputId - 1; // 将商品编号转换为索引delwarehouse(index);warehouse();} else {System.out.println("输入的不是有效的商品编号,请重新输入一个整数编号。");sc.next(); // 清除错误的输入}break;case 0:System.out.println("退出系统");sc.close();return;default:System.out.println("无效的选项,请重新选择。");break;}}}private static void addwarehouse() {Scanner sc = new Scanner(System.in);System.out.println("请输入商品名称:");String name = sc.next();System.out.println("请输入商品颜色:");String color = sc.next();System.out.println("请输入商品价格:");double price = sc.nextDouble();while (price < 0) {System.out.println("价格不能为负数,请重新输入商品价格:");price = sc.nextDouble();}System.out.println("请输入商品数量:");int num = sc.nextInt();while (num < 0) {System.out.println("数量不能为负数,请重新输入商品数量:");num = sc.nextInt();}Phone p = new Phone(++idCounter, name, color, price, num);c.add(p);System.out.println("商品录入成功!");warehouse();}private static void warehouse() {if (c.isEmpty()) {System.out.println("仓库中没有商品。");return;}for (Phone phone : c) {System.out.println(phone);}}private static void delwarehouse(int index) {if (index < 0 || index >= c.size()) {System.out.println("商品编号无效。");return;}c.remove(index);System.out.println("商品删除成功!");}
}