本例要求编写一个程序,模拟库存管理系统。该系统主要包括系统首页、商品入库、商品显示和删除商品功能。每个功能的具体要求如下: (1) 系统的首页:用于显示系统所有的操作,并且可以选择使用某一个功能。 (2) 商品入库功能:首先提示是否要录入商品,根据用户输入的信息判断是否需要录入商品。如果需要录入商品,则需要用户输入商品的名称、颜色、价格和数量等信息。录入完成后,提示商品录入成功并打印所有商品。如果不需要录入商品,则返回系统首页。 (3) 商品显示功能:用户选择商品显示功能后,在控制台打印仓库所有商品信息。 (4) 删除商品功能:用户选择删除商品功能后,根据用户输入的商品编号删除商品,并在控制台打印删除后的所有商品。 本案例要求使用Collection集合存储自定义的对象,并用迭代器、增强for循环遍历集合。

时间: 2023-06-17 12:04:11 浏览: 136
好的,我可以帮你编写这个程序。 首先,我们需要定义一个商品类,包括名称、颜色、价格和数量等属性。代码如下: ``` public class Product { private String name; private String color; private double price; private int quantity; public Product(String name, String color, double price, int quantity) { this.name = name; this.color = color; this.price = price; this.quantity = quantity; } public String getName() { return name; } public String getColor() { return color; } public double getPrice() { return price; } public int getQuantity() { return quantity; } public void setQuantity(int quantity) { this.quantity = quantity; } @Override public String toString() { return "Product{" + "name='" + name + '\'' + ", color='" + color + '\'' + ", price=" + price + ", quantity=" + quantity + '}'; } } ``` 接下来,我们可以创建一个存储商品的集合。这里我们使用ArrayList集合来存储商品对象,代码如下: ``` List<Product> productList = new ArrayList<>(); ``` 然后,我们可以编写系统首页,让用户选择需要使用的功能。代码如下: ``` public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int choice = 0; do { System.out.println("1. 商品入库"); System.out.println("2. 商品显示"); System.out.println("3. 删除商品"); System.out.println("0. 退出系统"); System.out.println("请选择需要使用的功能:"); choice = scanner.nextInt(); switch (choice) { case 1: addProduct(productList); break; case 2: showProduct(productList); break; case 3: deleteProduct(productList); break; case 0: System.out.println("感谢使用本系统!"); break; default: System.out.println("输入有误,请重新选择!"); break; } } while (choice != 0); } ``` 在这个系统首页中,我们使用了一个do-while循环,让用户可以多次选择使用系统功能。根据用户的选择,调用相应的方法,如添加商品、显示商品和删除商品等。 接下来,我们来编写添加商品的方法addProduct。代码如下: ``` public static void addProduct(List<Product> productList) { Scanner scanner = new Scanner(System.in); System.out.println("是否需要录入商品?(y/n)"); String choice = scanner.nextLine(); if (choice.equalsIgnoreCase("y")) { System.out.println("请输入商品名称:"); String name = scanner.nextLine(); System.out.println("请输入商品颜色:"); String color = scanner.nextLine(); System.out.println("请输入商品价格:"); double price = scanner.nextDouble(); System.out.println("请输入商品数量:"); int quantity = scanner.nextInt(); Product product = new Product(name, color, price, quantity); productList.add(product); System.out.println("商品录入成功!"); } showProduct(productList); } ``` 在这个方法中,我们首先询问用户是否需要录入商品。如果需要,就让用户输入商品的名称、颜色、价格和数量等信息,然后创建一个商品对象并添加到集合中,最后提示商品录入成功。 然后,我们来编写显示商品的方法showProduct。代码如下: ``` public static void showProduct(List<Product> productList) { if (productList.isEmpty()) { System.out.println("仓库中没有商品!"); } else { System.out.println("仓库中所有商品如下:"); Iterator<Product> iterator = productList.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } } } ``` 在这个方法中,我们首先判断集合是否为空。如果为空,就提示用户仓库中没有商品;否则,就使用迭代器遍历集合中的所有商品并打印出来。 最后,我们来编写删除商品的方法deleteProduct。代码如下: ``` public static void deleteProduct(List<Product> productList) { Scanner scanner = new Scanner(System.in); if (productList.isEmpty()) { System.out.println("仓库中没有商品!"); } else { System.out.println("仓库中所有商品如下:"); for (int i = 0; i < productList.size(); i++) { System.out.println((i + 1) + ". " + productList.get(i)); } System.out.println("请输入要删除的商品编号:"); int choice = scanner.nextInt(); if (choice > 0 && choice <= productList.size()) { productList.remove(choice - 1); System.out.println("商品已删除!"); } else { System.out.println("输入有误,请重新选择!"); } showProduct(productList); } } ``` 在这个方法中,我们首先判断集合是否为空。如果为空,就提示用户仓库中没有商品;否则,就使用增强for循环遍历集合中的所有商品并打印出来,然后让用户输入要删除的商品编号。如果输入的编号合法,就从集合中删除对应的商品,并提示删除成功;否则,就提示输入有误。 这样,我们就完成了库存管理系统的编写。完整代码如下:

相关推荐

最新推荐

recommend-type

Java实现商品入库.docx

Java实现商品的查找、添加、出库、入库等操作,步骤非常详细,适合小白。
recommend-type

基于RFID的智能仓储管理系统的设计与实现

传统的仓储管理系统使用的是人工记录单据的方式,这种方式不但费时...通过管理系统与RFID技术的结合,实现了对货物进行出库入库,货物浏览,人员管理,单品搜索等功能。从而完成了对商品的分类管理,提高了仓储能力。
recommend-type

小型自选商场商品管理系统设计报告

因此如何管理超市,提高超市的工作效率,不仅是关系一个超市企业的重要措施,也是关系人们日常生活的重要事情。如何更快、更好的管理超市信息一直是超市管理者关心的问题。也是广大人民关心的事情。随着计算机技术的...
recommend-type

Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar

Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rarJava开发案例-springboot-19-校验表单重复提交-源代码+文档.rar Java开发案例-springboot-19-校验表单重复提交-源代码+文档.rar
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

HSV转为RGB的计算公式

HSV (Hue, Saturation, Value) 和 RGB (Red, Green, Blue) 是两种表示颜色的方式。下面是将 HSV 转换为 RGB 的计算公式: 1. 将 HSV 中的 S 和 V 值除以 100,得到范围在 0~1 之间的值。 2. 计算色相 H 在 RGB 中的值。如果 H 的范围在 0~60 或者 300~360 之间,则 R = V,G = (H/60)×V,B = 0。如果 H 的范围在 60~120 之间,则 R = ((120-H)/60)×V,G = V,B = 0。如果 H 的范围在 120~180 之间,则 R = 0,G = V,B =
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依