ArrayList :货物库存管理(遍历)
package com.oracle.demo01; import java.util.ArrayList;
import java.util.Scanner; public class Demo03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Goods g1 = new Goods();
Goods g2 = new Goods();
Goods g3 = new Goods();
g1.gid = 9001;
g1.name = "少林寺酥饼核桃";
g1.price = 120;
g2.gid = 9002;
g2.name = "尚康杂粮牡丹饼";
g2.price = 20;
g3.gid = 9003;
g3.name = "新疆原产哈密瓜";
g3.price = 7; ArrayList<Goods> arr = new ArrayList<Goods>();
arr.add(g1);
arr.add(g2);
arr.add(g3);
while (true) {
show();
int choose = sc.nextInt();
switch (choose) {
case 1:
getGoods(arr);
break;
case 2:
addGoods(arr);
break;
case 3:
updateGoods(arr);
break;
case 4:
dropGoods(arr);
break;
case 5:
return;
default:
System.out.println("您的输入有误,请重新输入!");
break;
}
}
} // 商品展示页面
public static void show() {
System.out.println("==================欢迎光临oracle超市==================");
System.out.println("1.货物清单");
System.out.println("2.添加货物");
System.out.println("3.修改货物");
System.out.println("4.删除货物");
System.out.println("5.退出");
System.out.println("请输入您要操作的功能序号:");
} // 查询所有商品
public static void getGoods(ArrayList<Goods> arr) {
System.out.println("=======================商品清单======================");
System.out.println("商品编号\t\t商品名称\t\t商品价格");
for (int i = 0; i < arr.size(); i++) {
System.out.println(arr.get(i).gid + "\t\t" + arr.get(i).name + "\t" + arr.get(i).price);
}
} // 添加商品
public static void addGoods(ArrayList<Goods> arr) {
System.out.println("请输入您要新增的商品编号:");
Scanner sc = new Scanner(System.in);
int id = sc.nextInt();
System.out.println("请输入您要新增的商品名称:");
String name = sc.next();
System.out.println("请输入您要新增的商品价格:");
double price = sc.nextDouble();
Goods goods = new Goods();
goods.gid = id;
goods.name = name;
goods.price = price;
arr.add(goods);
} // 修改商品
public static void updateGoods(ArrayList<Goods> arr){
System.out.println("请输入您要修改的商品编号(输入0返回主菜单):");
for(int i=0;i<arr.size();i++){
System.out.println(arr.get(i).gid+" "+arr.get(i).name);
}
Scanner sc=new Scanner(System.in);
int uid=0;
aa:while (true) {
int id=sc.nextInt();
for(int i=0;i<arr.size();i++){
if(arr.get(i).gid==id){
uid=id;
break aa;
}else if(id==0){
return;
}
}
System.out.println("请输入正确的商品编号(输入0返回主菜单):");
} System.out.println("请修改商品名称:");
String name=sc.next();
System.out.println("请修改商品价格:");
double price=sc.nextDouble();
//遍历,按id找gid
for(int i=0;i<arr.size();i++){
if(arr.get(i).gid==uid){
arr.get(i).name=name;
arr.get(i).price=price;
}
}
//第二种修改的方法
for (int i = 0; i < arr.size(); i++) {
if (arr.get(i).gid == uid) {
Goods goods=new Goods();
goods.gid=uid;
goods.name=name;
goods.price=price;
arr.set(i, goods);
}
}
}
//删除商品
private static void dropGoods(ArrayList<Goods> arr) {
System.out.println("请输入您要删除的商品编号(输入0返回主菜单):");
for(int i=0;i<arr.size();i++){
System.out.println(arr.get(i).gid+" "+arr.get(i).name);
}
Scanner sc=new Scanner(System.in);
int uid=0;
aa:while (true) {
int id=sc.nextInt();
for(int i=0;i<arr.size();i++){
if(arr.get(i).gid==id){
uid=id;
break aa;
}else if(id==0){
return;
}
}
System.out.println("请输入正确的商品编号(输入0返回主菜单):");
}
for(int i=0;i<arr.size();i++){
if(arr.get(i).gid==uid){
arr.remove(i);
}
}
}
}
ArrayList :货物库存管理(遍历)的更多相关文章
- ArrayList 集合:库存管理
import java.util.ArrayList; import java.lang.Integer; import java.util.Scanner; import java.util.Ran ...
- openerp经典收藏 OpenERP库存管理的若干概念讲解(新增库存价值)(转载)
OpenERP库存管理的若干概念讲解(新增库存价值) 原文:http://shine-it.net/index.php/topic,2425.0/topicseen.html 一.复式库存(Doubl ...
- 【MM系列】SAP的库存管理
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP的库存管理 前言部分 库存 ...
- Oracle ERP 库存管理(业务流程 核心流程)
库存核心业务 库存管理的核心是对货物本身的管理,是对货物的数量与相关属性的管理,目的是为销售与采购服务,确保合理的库存保有量,处理库存分类帐目与进出流水帐,以单据的形式基本涵盖仓库的各种进出库业务. ...
- 【MM系列】SAP 的库存管理
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 的库存管理 前言部分 大 ...
- java 用集合完成随机点名器和库存管理案例
一 随机点名器 1.案例需求 随机点名器,即在全班同学中随机的找出一名同学,打印这名同学的个人信息. 我们来完成随机点名器,它具备以下3个内容: 存储所有同学姓名 总览全班同学姓名 随机点名其中一人, ...
- java方法中参数传递与随机点名器、库存管理案例
一 参数传递 1.定义: 参数传递,可以理解当我们要调用一个方法时,我们会把指定的数值,传递给方法中的参数, 这样方法中的参数就拥有了这个指定的值,可以使用该值,在方法中运算了.这种传递方式,我 们称 ...
- 疯狂C#~伴随着我的库存管理¥
每次的等待都是期待下一次的勃发!但激进的我非常想和大家学习一些东西,所以特地的分享了一个库存管理, 生活中容易运用的很多,但现在的学业希望能够得到各界人士的帮助!!! 首先:会有几个类来让它们协调 ( ...
- C#的库存管理之旅的别样意义
我不知道大家对C#的一些基础知识掌握得怎么样了? 但无论怎么样,都应该静心下来去慢慢品味我的总结以及“库存管理”项目需用到的一些知识和技巧.你将会得到你料想不到的收获哦. 知识梳理: 数据类型:boo ...
随机推荐
- Python将背景图片的颜色去掉
一.问题 在使用图片的时候有时候我们希望把背景变成透明的,这样就只关注于图片本身.比如在连连看中就只有图片,而没有背景,其实我个人感觉有背景好看一点. 二.解决 我们需要使用RGBA(Red,Gr ...
- 【题解】有限制的排列 [51nod1296]
[题解]有限制的排列 [51nod1296] 传送门:有限制的排列 \([51nod1296]\) [题目描述] 给出 \(n,m_1,m_2\) 和 \(\{a[1],a[2]...a[m_1]\} ...
- k8s的学习
20191123 开始重头再学一遍k8 一 K8S的组件介绍
- 简单的C#日志记录和弹出提示
记录这个博客的想法只有两点, 一,在使用webserver的时候如果你不好调用本地server端,那么你可以启用日志来查看异常.当然也可以调用本地的server端.这里简单说一下.不是本文的重点. 发 ...
- vue/react/angular开发的css架构思考
前端开发现在已经从传统的后端web多页面开发模式转向前端单页SPA开发模式,而vuejs/react/angular则是开发SPA非常优秀的前端框架.组件化开发由react最早提出,vuejs后发优势 ...
- CMU-Multimodal SDK Version 1.1 (mmsdk)使用方法总结
年10月26日 星期六 mmdatasdk: module for downloading and procesing multimodal datasets using computational ...
- TinyXPath 对于xpath标准的支持测试
xpath是一种基于xml的查询标准,一般的xml解析工具都具有,有的因为卓越的xpath性能而出名,其匹配查询算法牛逼而又高效,和正则有的一拼.虽然我现在大部分从事前端工作了,但是对于原理性的东西还 ...
- Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁
Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁 一丶安装 pip install PyMySQL 二丶pymysql连接数据库 ### 语法: ...
- 连接池未注册org.logicalcobwebs.proxool.ProxoolException: Attempt to refer to a unregistered pool by its alias 'XXX'
代码之前一直好好的,写了一个定时器后报错,本地测试为了立马能执行就用cron表达式* * * * * ?,为了只执行一次在最后面加上Thread.sleep(1000*3600*24)睡眠二十四小时从 ...
- SpringCloud高并发性能优化
1. SpringCloud高并发性能优化 1.1. 前言 当系统的用户量上来,每秒QPS上千后,可能就会导致系统的各种卡顿,超时等情况,这时优化操作不可避免 1.2. 优化步骤 第一步:优化大SQL ...