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 ...
随机推荐
- TestNG系列(四)TestNG监听器
前言 监听器实际上是一些预定义的java接口,用户创建这些接口的实现类(即implements某监听接口,并实现里面的方法),并加入到testng中,testng便会在运行的不同时刻调用这些类中你自定 ...
- UDP比TCP好用的优势
网络带宽环境变好 在2007年至2015年间,网络的带宽飞速发展,从1.5Mbps的带宽增加到5.1Mbps的带宽,足足增加了4倍,网络环境快速.稳定,所以UDP的丢包率 下降至5%以下,越来越好的网 ...
- Java 8 HashMap 源码解析
HashMap 使用数组.链表和红黑树存储键值对,当链表足够长时,会转换为红黑树.HashMap 是非线程安全的. HashMap 中的常量 static final int DEFAULT_INIT ...
- 用Python程序温度转换实例
实例:温度转换 (1)分析问题:利用程序进行温度转换,由用户输入温度值,程序给出输出结果:通过语音识别,图像识别等方法自动监听并获得温度信息发布渠道(如收音机.电视机)给出的温度播报源数据,再由程序装 ...
- Echarts 学习系列(3)-Echarts动态数据交互
写在前面 上一小节,我们总结了折线(面积)图.柱状(条形)图.饼(圆环)图类型的图表. 但是,都是静态的.接下来的,这一小节,总结的是Echarts 动态数据的交换. 前置条件 开发环境:win10 ...
- MVC学习笔记(六)---遇到的小问题汇总
一.MVC中Controller中返回两个对象的写法如下: , msg = "成功", user = user, userInfo = person }); 二.前台向后台传入带有 ...
- 第四周(1):数据分布-Python实战
数据准备 数据集地址:http://jse.amstat.org/datasets/normtemp.dat.txt 数据集描述:总共只有三列:体温.性别.心率 数据集详细描述:Journal of ...
- English--不完全及物动词与授予动词
English|不完全及物动词与授予动词 动词在整个语法中都是占据着十分重要的角色.在五大句型中将动词分为五种:系动词.不及物动词.及物动词.不完全及物动词.授予动词.这篇主讲不完全及物动词和授予动词 ...
- JS项目练习之求和(包含正则表达式验证)
最近在准备专升本,抽一点时间敷衍一下大家!!!嘿嘿嘿!!! 话不多说,上代码: <!DOCTYPE html> <html lang="zh-CN"> &l ...
- 关于Hive创建分区目录且能查到数据的三种方法
关于Hive创建分区目录且能查到数据的三种方法 1. 使用dfs -mkdir 和 dfs -put 分别创建分区目录和上传数据,此时执行msck repair table 表名 命令就能查询到数据 ...