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. 【题解】与查询 [51nod1406]

    [题解]与查询 [51nod1406] 传送门:与查询 \([51nod1406]\) [题目描述] 给出 \(n\) 个整数,对于 \(x \in [0,1000000]\),分别求出在这 \(n\ ...

  2. Ablation Study

    We often come across 'ablation study' in machine learning papers, for example, in this paper with th ...

  3. 浏览器解析js

    网页加载js步骤 1.浏览器一边下载html网页,一边开始解析(不等下载完就解析)2.遇到<script>标签,暂停解析,网页渲染的控制权交给javascript引擎3.如果<scr ...

  4. python --- Socketserver N部曲(1)

    曲一 socketserver 是为了简化服务器端开发而产生的,是一个高级的标准库.(背景介绍完毕,开始干) 一些概念 来自源码的一张图片,简洁又FengSao +------------+ | Ba ...

  5. JavaScript设计模式与开发实践随笔(三)

    封装 1. 封装数据 a)      只能依赖变量的作用域来实现封装特性,es6中可以通过symbol创建私有属性 var myObject = (function(){ var __name = ' ...

  6. CSS 过渡动画

    一.过渡 过渡(transition)是CSS3中具有颠覆性的特征之一,可以在不使用 Flash 动画或 JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果. 在CSS3 ...

  7. Java梗概

    Java平台:J2SE(桌面).J2ME(逐渐被android取代).J2EE(企业级针对web程序) Java是在JVM虚拟机上运行,跨平台本质是在不同平台上运行JVM虚拟机 JRE = JVM+核 ...

  8. Go语言入门——函数

    写了快一个月的Go,已经没有什么陌生感了. 一行代码写完,不会在行尾本能的敲上“:”,直接Enter键换行: 定义变量把变量名放在前面,类型放在后面: 使用struct去定义自己想要的数据模型就好比定 ...

  9. ApplicationContext的名称解释

    如果说BeanFactory是Spring的心脏,那么Application就是完整的身躯.ApplicationContext就是由BeanFactory派生出来的. 1.ApplicationCo ...

  10. 深入理解 ValueTask

    深入理解 ValueTask .NET Framework 4 里面的命名空间为 System.Threading.Tasks的 Task 类.这个类以及它派生的 Task<TResult> ...