java学习6:商品管理系统例子

商品信息管理
--使用HashMao对商品信息进行管理
   key为商品编号,value为商品对象
--对HashMap中的商品信息进行增删改查
   商品信息类:
   属性:商品编号id,商品名称name ,商品价格 price
   方法:构造方法,获取设置属性的方法,其他方法
   程序在处理key值相同的情况,是做修改,覆盖


代码如下:
Goods类:
package com.imooc.set;


public class Goods {
    private String id;
    private String naem;
    private double price;


    //构造方法
    public Goods(String id, String naem, double price) {
        this.id = id;
        this.naem = naem;
        this.price = price;
    }


    //get set 方法
    public String getId() {
        return id;
    }


    public void setId(String id) {
        this.id = id;
    }


    public String getNaem() {
        return naem;
    }


    public void setNaem(String naem) {
        this.naem = naem;
    }


    public double getPrice() {
        return price;
    }


    public void setPrice(double price) {
        this.price = price;
    }


    @Override
    public String toString() {
        return "商品ID: " + id +
                "  商品名称: " + naem +
                "  商品价格: " + price;
    }
}


主类:
package com.imooc.set;


import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;


public class GoodsTest {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        //定义HashMap对象
        Map goodsMap = new HashMap ();
        //接收键盘输入
        System.out.println("请输入三条商品信息:");
        int i = 0;
        while (i < 3) {
            System.out.println("请输入第" + (i + 1) + "条商品信息 ");
            System.out.println("请输入商品编号:");
            String goodsId = console.next();
            //判断商品编号是否存在
            // 注意:主键放在第一个输入可以直接用continue后整个对象重新输入,界面友好度高
            if (goodsMap.containsKey(goodsId)) {
                System.out.println("该商品编号已经存在!请重新输入!");
                continue;
            }
            System.out.println("请输入商品名称:");
            String goodsName = console.next();
            System.out.println("请输入商品价格:");
//第一种判断价格数值类型,重新输入第二个商品所有信息
//            double goodsPrice=0;
//            try {
//                goodsPrice = console.nextDouble();
//            }catch (java.util.InputMismatchException e){
//                System.out.println("商品价格的格式不正确,请重新输入数值型数据!");
//                console.next();
//                continue;
//            }
//第二种判断价格数值类型,重新输入价格
            double goodsPrice = 0;
            boolean flag = false;
            do {
                try {
                    goodsPrice = console.nextDouble();
                    flag = true;
                } catch (java.util.InputMismatchException e) {
                    System.out.println("商品价格的格式不正确,请重新输入数值型数据!");
                    flag = false;
                    //这里为什么要增加一个?因为nextDouble()报错了,但是把值存入了下一个next方法中
                    //导致下一个next()方法被调用了
                    //将异常的放入新的next()中。
                    console.next();
                }
            } while (flag == false);
            Goods goods = new Goods(goodsId, goodsName, goodsPrice);


            goodsMap.put(goodsId, goods);
            i++;
        }
        //遍历Map,输出商品信息
        System.out.println("===========================");
        System.out.println("商品的全部信息为:");
        Iterator itGoods = goodsMap.values().iterator();
        while (itGoods.hasNext()) {
            System.out.println(itGoods.next());
        }


    }

}

感谢慕课网!

你可能感兴趣的:(java)