老师帮我看一下,为啥控制台输入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
@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
我发一下我的,你可以参考下
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下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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