zoukankan      html  css  js  c++  java
  • 库存管理案例

    1.1     案例介绍

    现在,我们将原有的库存管理案例,进行业务逻辑的封装。

    将对下列功能进行方法封装:

    l  打印库存清单功能

    l  库存商品数量修改功能

    l  退出程序功能

    1.2     案例需求分析

    管理员能够进行的操作有3项(查看、修改、退出),我们可以采用(switch)菜单的方式来完成。

    -------------库存管理------------

    1.查看库存清单

    2.修改商品库存数量

    3.退出

    请输入要执行的操作序号:

            每一项功能操作,我们采用方法进行封装,这样,可使程序的可读性增强。

    选择“1.查看库存清单”功能,则控制台打印库存清单

    选择“2.修改商品库存数量”功能,则对每种商品库存数进行更新

    选择“3.退出”功能,则退出库存管理,程序结束

    package com.oracle.demo01;
    
    public class Goods {
        int gid;
        String name;
        double price;
    }
    package com.oracle.demo01;
    
    import java.util.ArrayList;
    import java.util.Scanner;
    
    public class Demo02 {
    
    	public static void main(String[] args) {
    		Scanner sc=new Scanner(System.in);
    		ArrayList<Goods> arr=new ArrayList<Goods>();
    		save(arr);
    		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:
    				remove(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 save(ArrayList<Goods> arr){
    		Goods g1=new Goods();
    		g1.gid=9001;
    		g1.name="少林寺酥饼核桃";
    		g1.price=120;
    		Goods g2=new Goods();
    		g2.gid=9002;
    		g2.name="上炕杂粮牡丹饼";
    		g2.price=20;
    		Goods g3=new Goods();
    		g3.gid=9003;
    		g3.name="新疆哈密瓜";
    		g3.price=7;
    		arr.add(g1);
    		arr.add(g2);
    		arr.add(g3);
    	}
    	//1.展示
    	public static void getGoods(ArrayList<Goods> arr){
    		System.out.println("-----商品清单-----");
    		System.out.println("商品编号	商品名称	商品价格");
    		for (int i = 0; i < arr.size(); i++) {
    			System.out.println(arr.get(i).gid+"	"+arr.get(i).name+"	"+arr.get(i).price);
    		}
    	}
    	//2.添加数据
    	public static void addGoods(ArrayList<Goods> arr){
    		Scanner sc=new Scanner(System.in);
    		System.out.println("请输入你要新增的商品编号:");
    		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);
    	}
    	//3.修改
    	public static void updateGoods(ArrayList<Goods> arr){
    	Scanner sc=new Scanner(System.in);
    	System.out .println("请输入你要修改的商品编号(退出返回首页输入0):");
    	int ab=0;
    	aa:while(true){
    		int id=sc.nextInt();
    		for (int i = 0; i < arr.size(); i++) {
    			  if(arr.get(i).gid==id){
    				  ab=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();
    	Goods goods=new Goods();
    	goods.gid=ab;
    	goods.name=name;
    	goods.price=price;
    	for (int i = 0; i < arr.size(); i++) {
    		  if(arr.get(i).gid==ab){
    			 // arr.get(i).name=name;
    			 // arr.get(i).price=price;
    			  arr.set(i, goods);
    		  }
    		}
    }
    	//4.删除
    	public static void remove(ArrayList<Goods> arr){
    		Scanner sc=new Scanner(System.in);
    		System.out.println("请输入你要删除的商品编号(退出返回首页输入0):");
    		int ab=0;
    		aa:while(true){
    			int id=sc.nextInt();
    			for (int i = 0; i < arr.size(); i++) {
    				  if(arr.get(i).gid==id){
    					  ab=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==ab){
    			  arr.remove(i);
    		  }
    		}
    	}
    
    }
    

      

  • 相关阅读:
    OpenCV图像数字化
    Matplotlib从兴趣到实践
    NumPy矩阵
    NumPy排序
    NumPy统计函数
    NumPy算输符
    产品路线图详解:主要功能、常见类型和线路图构建技巧
    敏捷和DevOps:是敌是友?
    如何让Git适应敏捷开发流程?
    如何让敏捷中的每日站会发挥最大效果?
  • 原文地址:https://www.cnblogs.com/zqy6666/p/12049906.html
Copyright © 2011-2022 走看看