java案例6-1库存管理系统

【案例介绍】
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("商品删除成功!");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/4516.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【嵌入式Linux】Linux设备树详解

设备树是是Linux中一种用于描述硬件配置的数据结构&#xff0c;它在系统启动时提供给内核&#xff0c;以便内核能够识别和配置硬件资源。设备树在嵌入式Linux系统中尤其重要&#xff0c;因为这些系统通常不具备标准的硬件配置&#xff0c;需要根据实际的硬件配置来动态配置内核…

逻辑卷建立

逻辑卷 lvm逻辑卷即为&#xff1a;logical volume manager逻辑管理卷&#xff0c;是linux系统下管理硬盘分区的一种机制&#xff0c;lvm适合于管理大型存储文件&#xff0c;用户可以动态的对磁盘进行扩容 作用 lvm&#xff1a;linux系统的一个重要的存储技术 不同的硬盘的不…

【持续更新】【NLP项目】【自然语言处理】智能聊天机器人——“有问必答”【Chatbot】第2章、《模式一:问候模式》

智能聊天机器人——“有问必答” 【注】该项目已开源&#xff0c;开源地址为&#xff1a;链接&#xff0c;代码更新可能不及时。 第2章、《模式一&#xff1a;问候模式》 主窗体的布局如下图所示&#xff1a; 共九种功能模式&#xff0c;最下方为关闭窗口按钮。 点击问候模…

时序预测 | Matlab基于TSA-LSTM-Attention被囊群优化算法优化长短期记忆网络融合注意力机制多变量多步时间序列预测

时序预测 | Matlab基于TSA-LSTM-Attention多变量多步预测 目录 时序预测 | Matlab基于TSA-LSTM-Attention多变量多步预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | Matlab基于TSA-LSTM-Attention被囊群优化算法优化长短期记忆网络融合注意力机制多变量多…

attributeerror: ‘FreeTypeFont‘ object has no attribute ‘getsize‘问题

我在训练yolov9的时候报错&#xff1a;attributeerror: ‘FreeTypeFont‘ object has no attribute ‘getsize‘。看过很多博客分析&#xff0c;都是说FreeTypeFont 字体的原因&#xff0c;其实真实问题出现yolo版本安装的Pillow库更新后&#xff0c;getsize&#xff08;&#…

三维天地:数字技术推动汽车产业实验室管理变革创新

近日,2024汽车技术与装备发展论坛在苏州成功召开。论坛以“共筑汽车产业新质生产力”为主题,聚焦新技术、新装备、新生态展开深入研讨,探索装备制造与汽车产业的融合发展路径。北京三维天地科技股份有限公司受邀参会。 在同期举办的检测认证高质量发展论坛上,三维天地咨询总监宫…

产品人必读书籍丨这本书告诉了我在AI时代如何成为一名顶级PM!!

《人工智能产品经理》——AI时代的PM修炼手册&#xff0c;这是一本不太工具的工具书。 很多人不了解产品经理需要具备的能力和素质。那么产品经理人工智能呢&#xff1f;这就更懵了&#xff0c;全是新词汇组成的新职业&#xff0c;到底怎样才算合格的人工智能产品经理&#x…

免费文件夹加密工具

1、去掉了miniExcel引用包&#xff0c;删除掉了excel配置文件 2、增加了密码登录功能&#xff0c;可以修改密码 3、使用sqlite3数据库来保存文件夹列表和用户密码&#xff0c;用户密码采用md5加盐 4、使用了 antdui来美化下界面 5、未解锁文件平不能被移除 其他还是保持老样…

第四届计算机图形学、人工智能与数据处理国际学术会议

在线投稿&#xff1a;学术会议-学术交流征稿-学术会议在线-艾思科蓝 第四届计算机图形学、人工智能与数据处理国际学术会议&#xff08;ICCAID 2024&#xff09;将于 2024年12月13日-15日在中国南昌举行。本次会议主要围绕“计算机图形学、人工智能与数据处理”的最新研究…

辐射发射测试新境界:深入解析TS-RadiMation套件多种操作方法(一)

TS-RadiMation套件作为辐射发射测试的得力助手&#xff0c;支持多种测试方法。 多频段手动模式电波暗室固定高度测试GTEM小室测试手动模式&#xff08;单频段&#xff09; 本文将详细介绍如何操作手动模式及手动模式&#xff08;单频段&#xff09;这两种模式&#xff0c;助您…

基于matlab的基于Tent混沌映射改进的麻雀搜索算法SSA优化BP神经网络预测

基于Tent混沌映射改进的麻雀搜索算法SSA优化BP神经网络预测 1 普通BP网络 代码如有需要&#xff0c;联系 596520206 %构建网络netnewff(inputn,outputn,hiddennum);% 网络参数net.trainParam.epochs100; % 训练次数net.trainParam.lr0.01; % 学习速…

[前端][基础]JavaScript

1&#xff0c;JavaScript简介 JavaScript 是一门跨平台、面向对象的脚本语言&#xff0c;而Java语言也是跨平台的、面向对象的语言&#xff0c;只不过Java是编译语言&#xff0c;是需要编译成字节码文件才能运行的&#xff1b;JavaScript是脚本语言&#xff0c;不需要编译&…

10:00面试,10:08就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到8月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

Java三大特性之一——多态(详细版)

文章目录 一、什么是多态二、重写2.1、重写的规则 三、多态的实现条件四、向上转型五、向下转型六、动态绑定七、使用多态的优缺点7.1、优点7.2、缺点 八、避免在构造方法中调用重写的方法 一、什么是多态 Java多态是面向对象编程的一个重要特性&#xff0c;它允许不同的对象对…

连锁餐饮企业-凡塔斯,用千里聆RPA搭建用户评价管理系统,提升门店服务满意度

凡塔斯是大型连锁餐饮企业昊澜餐饮集团旗下餐饮品牌&#xff0c;是牛排自助餐头部品牌&#xff0c;旗下拥有凡塔斯、百分好、食物链KING自助烤肉及餐饮人才商学院等多个行业知名品牌。 创立至今&#xff0c;集团管理门店已发展到福建、广东、江西、浙江等十多个省市&#xff0c…

设备状态监控一定要直观,可视化大屏最适合这个工作

一、引言 在现代工业生产和各类设施运行中&#xff0c;设备的稳定运行至关重要。为了确保设备能够高效、可靠地工作&#xff0c;及时了解设备的状态是关键。而设备状态监控一定要直观&#xff0c;只有这样才能让操作人员和管理人员迅速掌握设备的运行情况&#xff0c;及时发现…

xxe靶机实战

靶机地址&#xff1a;https://www.vulnhub.com/entry/xxe-lab-1,254/ 下载好后解压 直接拖拽.ovf格式的文件到虚拟机里 打开kali扫描主机,靶机开着或者后台运行就行 arp-scan -I eth0 -l 扫描出来目标靶机ip地址192.168.142.145 nmap扫描端口 nmap -A -sS -T4 -P- --min-rat…

钉钉内集成第三方免密登录(Vue+.Net)

需要实现的效果就是在钉钉内点击应用能跳转到第三方网站并且免密登录 1.登录钉钉PC端管理后台 2.通过管理后台进去开发者后台 3.应用开发 创建H5微应用 4.应用创建成功后直接点权限管理全部授权 5.设置H5登录地址 6. 应用管理发布 至此需要配置的步骤全部已完成&#xff0c;…

画动态爱心(Python-matplotlib)

介绍 氵而已 由于用的是 AI&#xff0c;注释得非常清楚&#xff0c;自己改改也可以用 代码 # -*- coding: utf-8 -*- # Environment PyCharm # File_name 尝试1 |User Pfolg # 2024/11/05 22:45 import numpy as np import matplotlib.pyplot as plt import matplo…

理解 WordPress | 第五篇:页面构建器选择指南

WordPress 专题致力于从 0 到 1 搞懂、用熟这种可视化建站工具。 第一阶段主要是理解。 第二阶段开始实践个人博客、企业官网、独立站的建设。 如果感兴趣&#xff0c;点个关注吧&#xff0c;防止迷路。 什么是 WordPress 构建器 WordPress 构建器&#xff08;Page Builder&am…