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 :货物库存管理(遍历)的更多相关文章

  1. ArrayList 集合:库存管理

    import java.util.ArrayList; import java.lang.Integer; import java.util.Scanner; import java.util.Ran ...

  2. openerp经典收藏 OpenERP库存管理的若干概念讲解(新增库存价值)(转载)

    OpenERP库存管理的若干概念讲解(新增库存价值) 原文:http://shine-it.net/index.php/topic,2425.0/topicseen.html 一.复式库存(Doubl ...

  3. 【MM系列】SAP的库存管理

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP的库存管理   前言部分 库存 ...

  4. Oracle ERP 库存管理(业务流程 核心流程)

    库存核心业务 库存管理的核心是对货物本身的管理,是对货物的数量与相关属性的管理,目的是为销售与采购服务,确保合理的库存保有量,处理库存分类帐目与进出流水帐,以单据的形式基本涵盖仓库的各种进出库业务. ...

  5. 【MM系列】SAP 的库存管理

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 的库存管理   前言部分 大 ...

  6. java 用集合完成随机点名器和库存管理案例

    一 随机点名器 1.案例需求 随机点名器,即在全班同学中随机的找出一名同学,打印这名同学的个人信息. 我们来完成随机点名器,它具备以下3个内容: 存储所有同学姓名 总览全班同学姓名 随机点名其中一人, ...

  7. java方法中参数传递与随机点名器、库存管理案例

    一 参数传递 1.定义: 参数传递,可以理解当我们要调用一个方法时,我们会把指定的数值,传递给方法中的参数, 这样方法中的参数就拥有了这个指定的值,可以使用该值,在方法中运算了.这种传递方式,我 们称 ...

  8. 疯狂C#~伴随着我的库存管理¥

    每次的等待都是期待下一次的勃发!但激进的我非常想和大家学习一些东西,所以特地的分享了一个库存管理, 生活中容易运用的很多,但现在的学业希望能够得到各界人士的帮助!!! 首先:会有几个类来让它们协调 ( ...

  9. C#的库存管理之旅的别样意义

    我不知道大家对C#的一些基础知识掌握得怎么样了? 但无论怎么样,都应该静心下来去慢慢品味我的总结以及“库存管理”项目需用到的一些知识和技巧.你将会得到你料想不到的收获哦. 知识梳理: 数据类型:boo ...

随机推荐

  1. BZOJ3926 ZJOI2015诸神眷顾的幻想乡(广义后缀自动机)

    对多串建立SAM的一种方法是建trie再对trie建SAM.构造方式分为在线(也即不建trie而是依次插入每个串,或在trie上dfs)和离线(也即建好trie再bfs).其中离线构造与单串的构造方式 ...

  2. 【题解】PERIOD - Period [POJ1961] [SP263]

    [题解]PERIOD - Period [POJ1961] [SP263] 在进入这道题之前,我们需要了解 kmp 算法 不知道的童鞋可以去看一下Silent_EAG(一个可爱的女孩纸)的讲解. 关于 ...

  3. ELK学习笔记之Kibana权限控制和集群监控

    详细请参考如下四篇博客,注意ELK6中移除了Xpack的默认账户和密码,需要手动设置 Kibana安全特性之权限控制 ELK 集群 Kibana 使用 X-Pack 权限控制,监控集群状态,警报,监视 ...

  4. Asp.Net Core Web Api 使用 Swagger 生成 api 说明文档

    最近使用 Asp.Net Core Web Api 开发项目服务端.Swagger 是最受欢迎的 REST APIs 文档生成工具之一,进入我的视野.以下为学习应用情况的整理. 一.Swagger 介 ...

  5. System.ArgumentException:路由集合中已存在名为“XXX”的路由。路由名称必须唯一。

    软件环境:Visual Studio 2017 + MVC4 + EF6 问题描述:System.ArgumentException:路由集合中已存在名为“XXX”的路由.路由名称必须唯一. 解决办法 ...

  6. Bootstrap4 glyphicon 移除图标 glyphicon fonts-faces 解决方案

    bootrap3是支持的图标 ,4不支持 4已经移除了 收费图标,取而代之建议使用其他的,比如 https://octicons.github.com/ 和http://fontawesome.io/ ...

  7. ssh in depth

    前两天写了一篇关于ssh的相对比较入门的文章,重点介绍了ssh在免密登录场景下的应用. 本文试图对ssh更高级的话题做一下探讨,重点探讨一下ssh tunneling https://www.ssh. ...

  8. 关于乌班图18.04安装mysql不提示设置密码解决方案

    1.下载安装mysql sudo apt-get update sudo apt-get install -y mysql-server mysql-client //下载mysql 运行mysql时 ...

  9. spark和深度学习集成调研

    http://dy.163.com/v2/article/detail/E2TMAOTU0518KCLV.html http://www.elecfans.com/d/676451.html http ...

  10. [Flutter] 实现Flutter App内更新

    app内实现根据安卓和IOS平台进行更新 时间匆忙,相关操作以及信息都写在代码注释里面了,闲时在补充和完善. 功能在android项目中测试可用,ios上还未进行测试,如果ios有问题或者没问题的话都 ...