您的位置:首页 > 编程语言 > Java开发

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

2017-08-31 09:14 651 查看
商品信息管理

--使用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 <String, Goods> goodsMap = new HashMap <String, Goods>();

        //接收键盘输入

        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 <Goods> itGoods = goodsMap.values().iterator();

        while (itGoods.hasNext()) {

            System.out.println(itGoods.next());

        }

    }
}

感谢慕课网!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: