老师帮我看一下,为啥控制台输入1报空指针异常

老师帮我看一下,为啥控制台输入1报空指针异常

package com.imooc.goods;


import java.util.InputMismatchException;

import java.util.Scanner;

import java.util.Set;


public class TestDemo {

  public static void main(String[] args) {

       Goods one = new Goods("goods001", "水杯", 56, "不锈钢水杯");

       Goods two = new Goods("goods002", "饮水机", 299, "带净化功能的饮水机");

       Goods three = new Goods("goods003", "笔记本电脑", 4999, "15寸笔记本电脑");

       Goods four = new Goods("goods004", "手机", 2300, "android手机");

 

       GoodsManage gm = new GoodsManage();

       ShoppingCart sc = new ShoppingCart();

       Scanner s = new Scanner(System.in);

       boolean flag = false;

       int n = 0;

       while (flag==false) {

           System.out.println("*******************");

           System.out.println("       主菜单                      ");

           System.out.println("     1-商品管理                  ");

           System.out.println("     2-购物车                      ");

           System.out.println("     0-退出                          ");

           System.out.println("*******************");

           n = s.nextInt();

           flag = true;

           try {

               if (n < 0 || n > 2) {

                   System.out.println("您的输入有误,请重新输入!");

                   flag=false;

                   continue;

               } else {

                   switch (n) {

                   case 1:

                       while (true) {

                           System.out.println("*******************");

                           System.out.println("       商品管理                  ");

                           System.out.println("     1-商品信息导入           ");

                           System.out.println("     2-显示所有商品信息   ");

                           System.out.println("     9-返回上一级菜单       ");

                           System.out.println("*******************");

                           n = s.nextInt();

                           if (n < 1 || n > 2 && n != 9) {

                               System.out.println("您的输入有误,请重新输入!");

                               continue;

                           } else {

                               switch (n) {

                               case 1:

                                   gm.importGoods();

                                   break;

                               case 2:

                                   gm.displayAllGoods();

                                   break;

                               }

                           }

                           if (n == 9) {

                               flag = false;

                               break;

                           }

                       }

                       break;

                   case 2:

                       while (flag == true) {

                           System.out

                                   .println("*******************************");

                           System.out

                                   .println("       购物车管理                      ");

                           System.out

                                   .println("     1-添加商品到购物车                  ");

                           System.out

                                   .println("     2-修改购物车中的商品数量                      ");

                           System.out

                                   .println("     3-显示购物车中的所有商品信息                          ");

                           System.out.println("     4-结算");

                           System.out.println("     9-返回上一级菜单       ");

                           System.out

                                   .println("*******************************");

                           n = s.nextInt();

                           if (n < 1 || n > 4 && n != 9) {

                               System.out.println("您的输入有误,请重新输入!");

                               continue;

                           } else {

                               switch (n) {

                               case 1:

                                   sc.addGoodsToCart(gm);

                                   break;

                               case 2:

                                   sc.updateNumInCart();

                                   break;

                               case 3:

                                   sc.displayAllInCart();

                                   break;

                               case 4:

                                   sc.settleAccount();

                                   break;

                               }

                           }

                           if (n == 9) {

                               flag = false;

                               break;

                           }

                       }

                       break;

                   case 0:

                       System.out.println("***欢迎您下次光临***");

                       break;

                   }

               }

           } catch (InputMismatchException an) {

               System.out.println("您的输入有误,欢迎您下次光临");

           }

       }        

   

  }

}

package com.imooc.goods;


public class Goods {

// 创建商品属性

private String goodsId;// 商品编号

private String goodsName;// 商品名称

private double price;// 商品价格

private String goodsDesp;// 商品描述


public Goods(String goodsId, String goodsName, double price, String goodsDesp) {

super();

this.goodsId = goodsId;

this.goodsName = goodsName;

this.price = price;

this.goodsDesp = goodsDesp;

}


public String getGoodsId() {

return goodsId;

}


public void setGoodsId(String goodsId) {

this.goodsId = goodsId;

}


public String getGoodsName() {

return goodsName;

}


public void setGoodsName(String goodsName) {

this.goodsName = goodsName;

}


public double getPrice() {

return price;

}


public void setPrice(double price) {

this.price = price;

}


public String getGoodsDesp() {

return goodsDesp;

}


public void setGoodsDesp(String goodsDesp) {

this.goodsDesp = goodsDesp;

}


@Override

public int hashCode() {

final int prime = 31;

int result = 1;

result = prime * result + ((goodsDesp == null) ? 0 : goodsDesp.hashCode());

result = prime * result + ((goodsId == null) ? 0 : goodsId.hashCode());

result = prime * result + ((goodsName == null) ? 0 : goodsName.hashCode());

long temp;

temp = Double.doubleToLongBits(price);

result = prime * result + (int) (temp ^ (temp >>> 32));

return result;

}


@Override

public boolean equals(Object obj) {

if (this == obj)

return true;

if (obj == null)

return false;

if (getClass() != obj.getClass())

return false;

Goods other = (Goods) obj;

if (goodsDesp == null) {

if (other.goodsDesp != null)

return false;

} else if (!goodsDesp.equals(other.goodsDesp))

return false;

if (goodsId == null) {

if (other.goodsId != null)

return false;

} else if (!goodsId.equals(other.goodsId))

return false;

if (goodsName == null) {

if (other.goodsName != null)

return false;

} else if (!goodsName.equals(other.goodsName))

return false;

if (Double.doubleToLongBits(price) != Double.doubleToLongBits(other.price))

return false;

return true;

}


public String toString() {

return "[商品编号:" + this.getGoodsId() + ",商品名称:" + this.getGoodsName() + ",商品价格" + this.getPrice() + ",描述:"

+ this.getGoodsDesp() + "]";

}


}

package com.imooc.goods;


import java.util.Set;


public class GoodsManage {

//属性

private Set<Goods> goodSet;//存放商品的容器

public GoodsManage() {

}

public GoodsManage(Set<Goods> goodSet) {

super();

this.goodSet = goodSet;

}


public Set<Goods> getGoodSet() {

return goodSet;

}


public void setGoodSet(Set<Goods> goodSet) {

this.goodSet = goodSet;

}

//商品信息导入

public void importGoods() {

Goods one=new Goods("goods001", "水杯", 56, "不锈钢水杯");

Goods two=new Goods("goods002", "饮水机", 299, "带净化功能的饮水机");

Goods three=new Goods("goods003", "笔记本电脑", 4999, "15寸笔记本");

Goods four=new Goods("goods0014", "手机", 230, "android手机");

goodSet.add(one);

goodSet.add(two);

goodSet.add(three);

goodSet.add(four);

System.out.println("商品已导入");

System.out.println(goodSet);

}

//显示所有商品信息

public void displayAllGoods() {

if(goodSet.size()==0) {

System.out.println("商品为空,请添加商品");

}else {

java.util.Iterator<Goods> it= goodSet.iterator();

while(it.hasNext()) {

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

}

}

}


}

package com.imooc.goods;


public class GoodsInCart {

//属性

private Goods goods;//商品信息

private int num;//商品数量

public GoodsInCart(Goods goods, int num) {

super();

this.goods = goods;

this.num = num;

}

public Goods getGoods() {

return goods;

}

public void setGoods(Goods goods) {

this.goods = goods;

}

public int getNum() {

return num;

}

public void setNum(int num) {

this.num = num;

}

}

package com.imooc.goods;


import java.util.HashMap;

import java.util.Map;

import java.util.Map.Entry;

import java.util.Scanner;

import java.util.Set;


public class ShoppingCart {

//属性

private Map<String,GoodsInCart> shoppingCart;//购物车

public ShoppingCart() {

}

//构造方法

public ShoppingCart(Map<String, GoodsInCart> shoppingCart) {

super();

this.shoppingCart = shoppingCart;

}

//创建getter/setter方法

public Map<String, GoodsInCart> getShoppingCart() {

return shoppingCart;

}


public void setShoppingCart(Map<String, GoodsInCart> shoppingCart) {

this.shoppingCart = shoppingCart;

}

Map<String,GoodsInCart> shoppingCart1=new HashMap();

Scanner sc=new Scanner(System.in);

//添加商品到购物车

public void addGoodsToCart(GoodsManage gm) {

Set<Goods> goodSet=gm.getGoodSet();

boolean flag=false;

Goods good=null;

String str=null;

if( goodSet.size()==0) {

System.out.println("商品列表为空,按提示添加");

}else {

gm.displayAllGoods();

for (Goods g :  goodSet) {

               System.out.println("请输入购买的商品编码:");

               str = sc.next();

               if (g.getGoodsId().equals(str)) {

                   flag = true;

                   good = g;

                   break;

               }

           }

           if (flag = true) {

               System.out.println("请输入购买数量:");

               int n = sc.nextInt();

               GoodsInCart go = new GoodsInCart(good, n);

               shoppingCart1.put(str, go);

           } else {

               System.out.println("没找到该商品!");

           }

       }

   }

 

   /**

    * 修改购物车中的商品数量

    */

   public void updateNumInCart() {

       Set<String> set = shoppingCart1.keySet();

       String s = null;

       int n = 0;

       for (String str : set) {

           System.out.println("请输入要修改的商品编号:");

           s = sc.next();

           if (str.equals(s)) {

               System.out.println("请输入要修改的数量:");

               n = sc.nextInt();

               if (n == 0) {

                   set.remove(str);

                   System.out.println("因为数量为0,故已移除该商品");

               }

               shoppingCart1.get(str).setNum(n);

           }

           Set<Entry<String, GoodsInCart>> set1 = shoppingCart1.entrySet();

           for (Entry<String, GoodsInCart> entry : set1) {

               System.out.println(entry.getValue());

           }

       }

   }

 

   /**

    * 显示购物车中所有商品

    */

   public void displayAllInCart() {

       Set<Entry<String, GoodsInCart>> set = shoppingCart1.entrySet();

       for (Entry<String, GoodsInCart> entry : set) {

           System.out.println(entry.getValue());

       }

   }

 

   /**

    * 结算

    */

   public void settleAccount() {

       Set<Entry<String, GoodsInCart>> set = shoppingCart1.entrySet();

       for (Entry<String, GoodsInCart> s : set) {

           System.out.println("总金额为:"

                   + (shoppingCart1.get(s).getGoods().getPrice())

                   * (shoppingCart1.get(s).getNum()));

       }

   }

}

异常信息

*******************

       主菜单                      

     1-商品管理                  

     2-购物车                      

     0-退出                          

*******************

1

*******************

       商品管理                  

     1-商品信息导入           

     2-显示所有商品信息   

     9-返回上一级菜单       

*******************

1

Exception in thread "main" java.lang.NullPointerException

at com.imooc.goods.GoodsManage.importGoods(GoodsManage.java:30)

at com.imooc.goods.TestDemo.main(TestDemo.java:50)

*******************

       主菜单                      

     1-商品管理                  

     2-购物车                      

     0-退出                          

*******************

2

*******************************

       购物车管理                      

     1-添加商品到购物车                  

     2-修改购物车中的商品数量                      

     3-显示购物车中的所有商品信息                          

     4-结算

     9-返回上一级菜单       

*******************************

1

Exception in thread "main" java.lang.NullPointerException

at com.imooc.goods.ShoppingCart.addGoodsToCart(ShoppingCart.java:38)

at com.imooc.goods.TestDemo.main(TestDemo.java:86)


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

7回答
慕侠8235832 2018-03-18 22:33:25
1
2
3
4
@Override
    public String toString() {
        return "商品信息[编号:"+goodsId+",名称:"+goodsName+",价格: "+price+",描述:"+goodsDesp+"]";               
    }


  • 提问者 慕神7119415 #1
    return "[商品编号:" + this.getGoodsId() + ",商品名称:" + this.getGoodsName() + ",商品价格" + this.getPrice() + ",描述:" + this.getGoodsDesp() + "]"; 为啥不能这么写了
    2018-03-18 22:43:07
  • 提问者 慕神7119415 #2
    还是输出的地址啊
    2018-03-18 22:57:46
  • 提问者 慕神7119415 #3
    老师帮我看看这部分代码,总觉得是这里出的问题 /** * 修改购物车中的商品数量 */ public void updateNumInCart() { Set<String> set = shoppingCart.keySet(); int n = 0; for (String str : set) { System.out.println("请输入要修改的商品编号:"); String s = sc.next(); if (str.equals(s)) { System.out.println("请输入要修改的数量:"); n = sc.nextInt(); if (n == 0) { set.remove(str); System.out.println("因为数量为0,故已移除该商品"); } shoppingCart.get(str).setNum(n); } Set<Entry<String, GoodsInCart>> set1 = shoppingCart.entrySet(); for (Entry<String, GoodsInCart> entry : set1) { System.out.println(entry.getValue()); } } } /** * 显示购物车中所有商品 */ public void displayAllInCart() { Set<Entry<String, GoodsInCart>> set = shoppingCart.entrySet(); for (Entry<String, GoodsInCart> entry : set) { System.out.println(entry.getValue()); } } /** * 结算 */ public void settleAccount() { Set<Entry<String, GoodsInCart>> set = shoppingCart.entrySet(); for (Entry<String, GoodsInCart> s : set) { System.out.println("总金额为:" + (shoppingCart.get(s).getGoods().getPrice()) * (shoppingCart.get(s).getNum())); } }
    2018-03-18 23:10:45
提问者 慕神7119415 2018-03-18 20:39:11

package com.imooc.goods;


import java.util.HashMap;

import java.util.Map;

import java.util.Map.Entry;

import java.util.Scanner;

import java.util.Set;


public class ShoppingCart {

//购物车管理

//属性

private Map<String,GoodsInCart> shoppingCart=new HashMap<>();//购物车

public ShoppingCart() {

}

//构造方法

public ShoppingCart(Map<String, GoodsInCart> shoppingCart) {

super();

this.shoppingCart = shoppingCart;

}

//创建getter/setter方法

public Map<String, GoodsInCart> getShoppingCart() {

return shoppingCart;

}


public void setShoppingCart(Map<String, GoodsInCart> shoppingCart) {

this.shoppingCart = shoppingCart;

}

//Map<String,GoodsInCart> shoppingCart1=new HashMap();

Scanner sc=new Scanner(System.in);

//添加商品到购物车

public void addGoodsToCart(GoodsManage gm) {

Set<Goods> goodSet=gm.getGoodSet();

boolean flag=false;

Goods good=null;

String str=null;

if( goodSet.size()==0) {

System.out.println("商品列表为空,按提示添加");

}else {

gm.displayAllGoods();

for (Goods g :  goodSet) {

               System.out.println("请输入购买的商品编码:");

               str = sc.next();

               if (g.getGoodsId().equals(str)) {

                   flag = true;

                   good = g;

                   break;

               }

           }

           if (flag = true) {

               System.out.println("请输入购买数量:");

               int n = sc.nextInt();

               GoodsInCart go = new GoodsInCart(good, n);

               shoppingCart.put(str, go);

           } else {

               System.out.println("没找到该商品!");

           }

       }

   }

 

   /**

    * 修改购物车中的商品数量

    */

   public void updateNumInCart() {

       Set<String> set = shoppingCart.keySet();

       int n = 0;

       for (String str : set) {

           System.out.println("请输入要修改的商品编号:");

           String s = sc.next();

           if (str.equals(s)) {

               System.out.println("请输入要修改的数量:");

               n = sc.nextInt();

               if (n == 0) {

                   set.remove(str);

                   System.out.println("因为数量为0,故已移除该商品");

               }

               shoppingCart.get(str).setNum(n);

           }

           Set<Entry<String, GoodsInCart>> set1 = shoppingCart.entrySet();

           for (Entry<String, GoodsInCart> entry : set1) {

               System.out.println(entry.getValue());

           }

       }

   }

 

   /**

    * 显示购物车中所有商品

    */

   public void displayAllInCart() {

       Set<Entry<String, GoodsInCart>> set = shoppingCart.entrySet();

       for (Entry<String, GoodsInCart> entry : set) {

           System.out.println(entry.getValue());

       }

   }

 

   /**

    * 结算

    */

   public void settleAccount() {

       Set<Entry<String, GoodsInCart>> set = shoppingCart.entrySet();

       for (Entry<String, GoodsInCart> s : set) {

           System.out.println("总金额为:"

                   + (shoppingCart.get(s).getGoods().getPrice())

                   * (shoppingCart.get(s).getNum()));

       }

   }

}


提问者 慕神7119415 2018-03-18 20:37:29

package com.imooc.goods;


import java.util.HashSet;

import java.util.Iterator;

import java.util.Set;


public class GoodsManage {

//属性

private Set<Goods> goodSet=new HashSet<Goods>();//存放商品的容器

public GoodsManage() {


}

public GoodsManage(Set<Goods> goodSet) {

super();

this.goodSet = goodSet;

}


public Set<Goods> getGoodSet() {

return goodSet;

}


public void setGoodSet(Set<Goods> goodSet) {

this.goodSet = goodSet;

}

//商品信息导入

public void importGoods() {

//Goods one=new Goods("goods001", "水杯", 56, "不锈钢水杯");

//Goods two=new Goods("goods002", "饮水机", 299, "带净化功能的饮水机");

//Goods three=new Goods("goods003", "笔记本电脑", 4999, "15寸笔记本");

//Goods four=new Goods("goods0014", "手机", 230, "android手机");


goodSet.add(new Goods("goods001", "水杯", 56, "不锈钢水杯"));

goodSet.add(new Goods("goods002", "饮水机", 299, "带净化功能的饮水机"));

goodSet.add(new Goods("goods003", "笔记本电脑", 4999, "15寸笔记本"));

goodSet.add(new Goods("goods0014", "手机", 230, "android手机"));

System.out.println("商品已导入");

System.out.println(goodSet);

}

//显示所有商品信息

public void displayAllGoods() {

if(goodSet.size()==0) {

System.out.println("商品为空,请添加商品");

}else {

Iterator<Goods> it= goodSet.iterator();

while(it.hasNext()) {

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

}

}


}

}

********************************************************************************




提问者 慕神7119415 2018-03-18 20:36:58

import java.util.Scanner;

import java.util.Set;


public class TestDemo {

  public static void main(String[] args) {

       int m;

       Scanner sc=new Scanner(System.in);       

       primary();     //主菜单显示

       GoodsManage goodsManage=new GoodsManage();

       ShoppingCart shoppingCart=new  ShoppingCart();  

                                                        

       while(true){                                       

           try{   

               m=sc.nextInt();   //主菜单选择                   

               switch(m){     

               //商品管理         

               case 1: 

                   goodsManage(); 

                   //商品管理选择                 

                   boolean b=true;                                                                                       

                   while(b){                                  

                       try{

                           int n=sc.nextInt();   //副菜单选择

                           switch(n){

                           //商品信息导入

                           case 1:

                               System.out.println("商品信息导入中......");                            

                               goodsManage.importGoods();

                               System.out.println("信息导入成功!");

                               goodsManage();                     

                               break;

                               //显示所有商品信息

                           case 2:

                               System.out.println("显示所有商品信息");

                               System.out.println("所有商品信息为:");

                               goodsManage.displayAllGoods();

                               goodsManage();                     

                               break;

                               //返回上一级菜单

                           case 9:

                               primary();     //主菜单显示

                               b=false;

                               //m=sc.nextInt();  

                               break;

                           default:

                               System.out.println("没有该选项,请重新选择!");                            

                               break;

                           }

                       }catch(Exception e){

                           System.out.println("请输入正确选项:");

                           sc.next();                                                             

                       }

                   }break;

 

                   //购物车管理

               case 2:   

                   cartManage(); 

                   b=true;                            

                   while(b){                  

                       try{

                           int n=sc.nextInt();   //副菜单选择

                           switch(n){

                           //添加商品到购物车

                           case 1:

                               System.out.println("添加商品到购物车");                            

                               goodsManage.displayAllGoods();     //显示所有商品信息  

                               shoppingCart.addGoodsToCart(goodsManage);    

                               cartManage();    //返回购物车管理界面

                               break;                     

                               //修改购物车中的商品数量

                           case 2:

                               System.out.println("修改购物车中的商品数量");

                               shoppingCart.updateNumInCart();    

                               cartManage();    //返回购物车管理界面

                               break;

                               //显示购物车中的所有商品信息

                           case 3:

                               System.out.println("购物车中的所有商品信息为:");

                               shoppingCart.displayAllInCart();    

                               cartManage();    //返回购物车管理界面

                               break;                                             

                               //结算

                           case 4:

                               System.out.println("结算:");  

                               shoppingCart.settleAccount();

                               cartManage();    //返回购物车管理界面

                               break; 

                               //返回上一级菜单

                           case 9:

                               primary();     //主菜单显示

                               b=false;

                               //m=sc.nextInt();  

                               break;

                           default:

                               System.out.println("没有该选项,请重新选择!");                                

                               break;

                           }

                       }catch(Exception e){

                           System.out.println("请输入正确选项:");

                           sc.next();

                       }                              

                   }break;

               case 0:   

                   System.exit(0); 

               default:

                   System.out.println("没有该选项,请重新选择!");                        

                   break;

               }                                              

           }catch(Exception e){

               System.out.println("请输入正确选项:");

               sc.next();

           }                  

       }

   }

    

   //主菜单显示

   public static void primary(){

       System.out.println("************************************************\n");

       System.out.println("               **主菜单**");

       System.out.println("               1--商品管理");

       System.out.println("               2--购物车");

       System.out.println("               0--退出");

       System.out.println("************************************************\n");

   }

    

    //商品管理

   public static void goodsManage(){

       System.out.println("************************************************\n");

       System.out.println("               **商品管理**");

       System.out.println("               1--商品信息导入");

       System.out.println("               2--显示所有商品信息");

       System.out.println("               9--返回上一级菜单");

       System.out.println("************************************************\n");

   }

    

   //购物车管理

   public static void cartManage(){

       System.out.println("************************************************\n");

       System.out.println("               **购物车管理**");

       System.out.println("               1--添加商品到购物车");

       System.out.println("               2--修改购物车中的商品数量");

       System.out.println("               3--显示购物车中的所有商品信息");

       System.out.println("               4--结算");

       System.out.println("               9--返回上一级菜单");

       System.out.println("************************************************\n");

   }    


}

******************************************************************************


提问者 慕神7119415 2018-03-18 20:35:11

************************************************


               **主菜单**

               1--商品管理

               2--购物车

               0--退出

************************************************

1

************************************************


               **商品管理**

               1--商品信息导入

               2--显示所有商品信息

               9--返回上一级菜单

************************************************

1

商品信息导入中......

商品已导入

[[商品编号:goods002,商品名称:饮水机,商品价格299.0,描述:带净化功能的饮水机], [商品编号:goods0014,商品名称:手机,商品价格230.0,描述:android手机], [商品编号:goods003,商品名称:笔记本电脑,商品价格4999.0,描述:15寸笔记本], [商品编号:goods001,商品名称:水杯,商品价格56.0,描述:不锈钢水杯]]

信息导入成功!

************************************************


               **商品管理**

               1--商品信息导入

               2--显示所有商品信息

               9--返回上一级菜单

************************************************

2

显示所有商品信息

所有商品信息为:

[商品编号:goods002,商品名称:饮水机,商品价格299.0,描述:带净化功能的饮水机]

[商品编号:goods0014,商品名称:手机,商品价格230.0,描述:android手机]

[商品编号:goods003,商品名称:笔记本电脑,商品价格4999.0,描述:15寸笔记本]

[商品编号:goods001,商品名称:水杯,商品价格56.0,描述:不锈钢水杯]

************************************************


               **商品管理**

               1--商品信息导入

               2--显示所有商品信息

               9--返回上一级菜单

************************************************

9

************************************************


               **主菜单**

               1--商品管理

               2--购物车

               0--退出

************************************************

2

************************************************


               **购物车管理**

               1--添加商品到购物车

               2--修改购物车中的商品数量

               3--显示购物车中的所有商品信息

               4--结算

               9--返回上一级菜单

************************************************

1

添加商品到购物车

[商品编号:goods002,商品名称:饮水机,商品价格299.0,描述:带净化功能的饮水机]

[商品编号:goods0014,商品名称:手机,商品价格230.0,描述:android手机]

[商品编号:goods003,商品名称:笔记本电脑,商品价格4999.0,描述:15寸笔记本]

[商品编号:goods001,商品名称:水杯,商品价格56.0,描述:不锈钢水杯]

[商品编号:goods002,商品名称:饮水机,商品价格299.0,描述:带净化功能的饮水机]

[商品编号:goods0014,商品名称:手机,商品价格230.0,描述:android手机]

[商品编号:goods003,商品名称:笔记本电脑,商品价格4999.0,描述:15寸笔记本]

[商品编号:goods001,商品名称:水杯,商品价格56.0,描述:不锈钢水杯]

请输入购买的商品编码:


goods002

请输入购买数量:

3

************************************************


               **购物车管理**

               1--添加商品到购物车

               2--修改购物车中的商品数量

               3--显示购物车中的所有商品信息

               4--结算

               9--返回上一级菜单

************************************************

3

购物车中的所有商品信息为:

com.imooc.goods.GoodsInCart@11e21d0e

************************************************


               **购物车管理**

               1--添加商品到购物车

               2--修改购物车中的商品数量

               3--显示购物车中的所有商品信息

               4--结算

               9--返回上一级菜单

************************************************

2

修改购物车中的商品数量

请输入要修改的商品编号:


goods

com.imooc.goods.GoodsInCart@11e21d0e

************************************************


               **购物车管理**

               1--添加商品到购物车

               2--修改购物车中的商品数量

               3--显示购物车中的所有商品信息

               4--结算

               9--返回上一级菜单

************************************************

2

修改购物车中的商品数量

请输入要修改的商品编号:


goods002

请输入要修改的数量:

2

com.imooc.goods.GoodsInCart@11e21d0e

************************************************


               **购物车管理**

               1--添加商品到购物车

               2--修改购物车中的商品数量

               3--显示购物车中的所有商品信息

               4--结算

               9--返回上一级菜单

************************************************

4

结算:

请输入正确选项:

照着你给的方案稍作修改,运行显示上面的结果,修改代码如下




慕侠8235832 2018-03-17 20:25:28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
我发一下我的,你可以参考下
package goods;
 
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
 
/*
 * 商品管理类
 * 对商品信息进行操作
 * 1、商品信息导入
 * 2、显示所有商品信息
 * 9、返回上一级菜单
 */
public class GoodsManage {
     
    private Set<Goods> goodsSet=new HashSet<Goods>();     //存放商品信息
     
    public Set<Goods> getGoodsSet() {
        return goodsSet;
    }
 
    public void setGoodsSet(Set<Goods> goodsSet) {
        this.getGoodsSet();
    }
 
    // 商品信息首次导入
    public void importGoods() {
        goodsSet.add(new Goods("goods001","水杯""不锈钢水杯",56.0));
        goodsSet.add(new Goods("goods002","饮水机""带净化功能的饮水机",299.0));
        goodsSet.add(new Goods("goods003","笔记本电脑""15寸笔记本电脑",4999.0));
        goodsSet.add(new Goods("goods004","手机""android手机",2300.0));
    }
     
    //显示所有商品信息
    public void displayAllGoods(){
        Iterator<Goods> goodsIt=goodsSet.iterator();
        if(goodsSet.isEmpty()){
            System.out.println("请先导入商品信息!!!");
        }
        while(goodsIt.hasNext()){
            System.out.println(goodsIt.next());
        }      
    }
}
 
 
package test;
 
import java.util.Scanner;
import cart.CartManage;
import goods.GoodsManage;
 
public class Test {
 
    public static void main(String[] args) {
        int m;
        Scanner sc=new Scanner(System.in);       
        primary();     //主菜单显示
        GoodsManage goodsManage=new GoodsManage();
        CartManage cartManage=new CartManage();  
                                                         
        while(true){                                       
            try{   
                m=sc.nextInt();   //主菜单选择                   
                switch(m){     
                //商品管理         
                case 1
                    goodsManage(); 
                    //商品管理选择                 
                    boolean b=true;                                                                                       
                    while(b){                                  
                        try{
                            int n=sc.nextInt();   //副菜单选择
                            switch(n){
                            //商品信息导入
                            case 1:
                                System.out.println("商品信息导入中......");                            
                                goodsManage.importGoods();
                                System.out.println("信息导入成功!");
                                goodsManage();                     
                                break;
                                //显示所有商品信息
                            case 2:
                                System.out.println("显示所有商品信息");
                                System.out.println("所有商品信息为:");
                                goodsManage.displayAllGoods();
                                goodsManage();                     
                                break;
                                //返回上一级菜单
                            case 9:
                                primary();     //主菜单显示
                                b=false;
                                //m=sc.nextInt();  
                                break;
                            default:
                                System.out.println("没有该选项,请重新选择!");                            
                                break;
                            }
                        }catch(Exception e){
                            System.out.println("请输入正确选项:");
                            sc.next();                                                             
                        }
                    }break;
 
                    //购物车管理
                case 2:   
                    cartManage(); 
                    b=true;                            
                    while(b){                  
                        try{
                            int n=sc.nextInt();   //副菜单选择
                            switch(n){
                            //添加商品到购物车
                            case 1:
                                System.out.println("添加商品到购物车");                            
                                goodsManage.displayAllGoods();     //显示所有商品信息  
                                cartManage.addGoodsToCart(goodsManage.getGoodsSet());    
                                cartManage();    //返回购物车管理界面
                                break;                     
                                //修改购物车中的商品数量
                            case 2:
                                System.out.println("修改购物车中的商品数量");
                                cartManage.updateNumInCart();    
                                cartManage();    //返回购物车管理界面
                                break;
                                //显示购物车中的所有商品信息
                            case 3:
                                System.out.println("购物车中的所有商品信息为:");
                                cartManage.displayAllInCart();    
                                cartManage();    //返回购物车管理界面
                                break;                                             
                                //结算
                            case 4:
                                System.out.println("结算:");  
                                cartManage.settleAccounts();
                                cartManage();    //返回购物车管理界面
                                break
                                //返回上一级菜单
                            case 9:
                                primary();     //主菜单显示
                                b=false;
                                //m=sc.nextInt();  
                                break;
                            default:
                                System.out.println("没有该选项,请重新选择!");                                
                                break;
                            }
                        }catch(Exception e){
                            System.out.println("请输入正确选项:");
                            sc.next();
                        }                              
                    }break;
                case 0:   
                    System.exit(0); 
                default:
                    System.out.println("没有该选项,请重新选择!");                        
                    break;
                }                                              
            }catch(Exception e){
                System.out.println("请输入正确选项:");
                sc.next();
            }                  
        }
    }
     
    //主菜单显示
    public static void primary(){
        System.out.println("************************************************\n");
        System.out.println("               **主菜单**");
        System.out.println("               1--商品管理");
        System.out.println("               2--购物车");
        System.out.println("               0--退出");
        System.out.println("************************************************\n");
    }
     
     //商品管理
    public static void goodsManage(){
        System.out.println("************************************************\n");
        System.out.println("               **商品管理**");
        System.out.println("               1--商品信息导入");
        System.out.println("               2--显示所有商品信息");
        System.out.println("               9--返回上一级菜单");
        System.out.println("************************************************\n");
    }
     
    //购物车管理
    public static void cartManage(){
        System.out.println("************************************************\n");
        System.out.println("               **购物车管理**");
        System.out.println("               1--添加商品到购物车");
        System.out.println("               2--修改购物车中的商品数量");
        System.out.println("               3--显示购物车中的所有商品信息");
        System.out.println("               4--结算");
        System.out.println("               9--返回上一级菜单");
        System.out.println("************************************************\n");
    }
     
     
}


  • 提问者 慕神7119415 #1
    购物车显示异常,显示的是地址信息
    2018-03-18 20:47:15
  • 慕侠8235832 回复 提问者 慕神7119415 #2
    你的商品信息类中的toString()方法重写的有问题,没有显示商品信息的方法
    2018-03-18 22:30:44
慕侠8235832 2018-03-15 00:43:20

GoodsManage类里面Set没有初始化

  • 提问者 慕神7119415 #1
    是早GoodsManage中初始化还是在测试类中初始化
    2018-03-15 19:48:03
  • 提问者 慕神7119415 #2
    是在GoodsManage中初始化还是在测试类中初始化
    2018-03-15 19:48:39
  • 慕侠8235832 回复 提问者 慕神7119415 #3
    GoodsManage中要先初始化,可以Set set=new HashSet();
    2018-03-15 19:53:01
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码