医院网站建设公司价格低,wordpress添加内容,做关于植物的网站,cenos7 安装wordpress【案例6-1】 库存管理系统
【案例介绍】
1.任务描述
像商城和超市这样的地方#xff0c;都需要有自己的库房#xff0c;并且库房商品的库存变化有专人记录#xff0c;这样才能保证商城和超市正常运转。
本例要求编写一个程序#xff0c;模拟库存管理系统。该系统主要包…【案例6-1】 库存管理系统
【案例介绍】
1.任务描述
像商城和超市这样的地方都需要有自己的库房并且库房商品的库存变化有专人记录这样才能保证商城和超市正常运转。
本例要求编写一个程序模拟库存管理系统。该系统主要包括系统首页、商品入库、商品显示和删除商品功能。每个功能的具体要求如下
系统的首页用于显示系统所有的操作并且可以选择使用某一个功能。商品入库功能首先提示是否要录入商品根据用户输入的信息判断是否需要录入商品。如果需要录入商品则需要用户输入商品的名称、颜色、价格和数量等信息。录入完成后提示商品录入成功并打印所有商品。如果不需要录入商品则返回系统首页。商品显示功能用户选择商品显示功能后在控制台打印仓库所有商品信息。删除商品功能用户选择删除商品功能后根据用户输入的商品编号删除商品并在控制台打印删除后的所有商品。
本案例要求使用Collection集合存储自定义的对象并用迭代器、增强for循环遍历集合。
2.运行结果
商品首页运行结果如图6-1所示。 图6-1 商品首页运行结果图
商品入库运行结果如图6-2所示 图6-2 商品入库运行结果图
商品出库结果如图6-3所示。 图6-3 商品出库运行结果
商品出库之后再次显示商品库存如图6-4所示。 图6-3 再次显示商品库存 【案例思路】
1定义仓库产品类自定义对象定义属性。
2在类中定义集合将要存储的自定义对象作为泛型。
3主方法中为集合添加初始化的数据采用无线循环的方式显示菜单栏。用if...else语句判断用户索要进行的操作用户可以键盘输入1、2、3来选择对应的操作。如果输入1可以进行商品入库输入2可以显示库房内所有商品输入3可以删除进行商品出库如果不是1、2、3则提示用户操作失败。
4 定义商品入库的方法选择后首先提示用户是否录入商品。输入“no”不录入商品。直接退出并显示所有商品。输入其他任何数据开始录入商品并提示键盘输入什么。录入完毕后退出并显示所有商品。
5 定义显示仓库所有商品的方法用Iterator迭代器的方法循环遍历集合打印实现商品显示。
6 定义商品出库的方法用集合删除的方法移除要删除的商品。
【案例实现】
其中实体类属性如文件6-1所示。 文件6-1 Phone.java
public class Phone { private String name; private String color; private double price; private int num;}
以上代码是自定义对象实体类所包括的属性我们在用时需要重写getter、setter以及构造方法。
库存管理系统的实现代码如文件6-2所示。
文件6-2 example1.java
package com.itheima;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;import java.util.List;import java.util.Scanner;public class example1 { static ListPhone c new ArrayList(); public static void main(String[] args) { c.add(new Phone(小米9, 玫瑰金,3999.00,15)); c.add(new Phone(小米9, 幻彩紫, 3699, 28)); c.add(new Phone(华为P30, 白金色, 5699, 2)); c.add(new Phone(华为P30, 绚彩白, 5999, 18)); c.add(new Phone(VIVO PLus9, 幻彩紫, 2699, 28)); c.add(new Phone(魅族 16th, 紫金黑, 5229, 10)); c.add(new Phone(苹果 11, 土豪金, 8999, 51)); while(true) { System.out.println(欢迎使用库房管理系统,请选择要进行的操作); System.out.println(1. 商品入库); System.out.println(2. 商品显示); System.out.println(3. 删除商品); Scanner sc new Scanner(System.in); int s sc.nextInt(); if(s 1) { addwarehouse(); System.out.println(商品入库成功入库后仓库商品如下); warehouse(); }else if(s2) { warehouse(); }else if(s 3) { System.out.println(请输入你要删除的商品编号); int indexsc.nextInt(); delwarehouse(index); System.out.println(商品出库成功出库后仓库商品如下); warehouse(); }else { System.out.println(操作失败); } } } private static void addwarehouse() { while(true) { System.out.println(您是否录入商品); Scanner w new Scanner(System.in); String sw.next(); if(!s.equals(no)) { Scanner sc1 new Scanner(System.in); System.out.println(请输入商品的名称); String namesc1.next(); System.out.println(请输入商品的颜色); String colorsc1.next(); System.out.println(请输入商品的价格); int psc1.nextInt(); System.out.println(请输入商品的数量); int nsc1.nextInt(); c.add(new Phone(name,color,p,n)); break; }else { break; } } } private static void warehouse() { //获取迭代器 Iterator it c.iterator(); while(it.hasNext()) { Phone s (Phone)it.next(); //向下转型 System.out.println(s.getName() ... s.getColor() ... s.getPrice() ... s.getNum()); } } private static void delwarehouse(int index) { c.remove(index); }}
在文件6-2中第9行定义了一个集合c,泛型是我们的自定义对象Phone。同时定义为静态的。从而实现的代码的复用减少了代码的冗余。第10~17行代码是为我们定义的集合添加初始化的数据。第18~41行代码采用无线循环的方式显示菜单栏。用if...else语句判断用户索要进行的操作用户可以键盘输入1、2、3来选择对应的操作。如果输入1可以进行商品入库调用addwarehouse()方法实现添加商品入库并且调用warehouse()方法实现入库后商品的显示。输入2可以显示库房内所有商品调用warehouse()方法即实现商品的显示。输入3可以删除进行商品出库调用delwarehouse(index)方法实现删除商品并调用warehouse()方法即实现商品删除后的显示。用如果不是1、2、3则提示用户操作失败。第42~64代码定义商品入库的方法选择后首先提示用户是否录入商品。输入“no”不录入商品。直接退出并显示所有商品。输入其他任何数据开始录入商品并提示键盘输入什么。录入完毕后退出并显示所有商品。第67~74行代码定义显示仓库所有商品的方法用Iterator迭代器的方法循环遍历集合打印实现商品显示。第76~78行代码定义商品出库的方法用集合删除的方法移除要删除的商品。其中remove()方法是集合移除数据提供的方法。