请问老师修改购物车数量怎么修改。麻烦老师看一下

请问老师修改购物车数量怎么修改。麻烦老师看一下

 //修改购物车中商品的数量
 public void updateNumInCart() {
  if(shoppingCart.size()==0) {
   System.out.println("购物车中暂无商品信息,请先添加商品!");
  }else {
   System.out.println("修改购物车中商品的数量");
   System.out.println("请输入要修改商品的编号:");
   Scanner sc=new Scanner(System.in);
   String goodsId=sc.next();
   Iterator<GoodsInCart> itGoodsInCart=shoppingCart.values().iterator();
   GoodsInCart goods=itGoodsInCart.next();
   if(goods!=null) {
    System.out.println("请输入新的商品数量:");
         int num=sc.nextInt();
         if(num!=0) {
          GoodsInCart sic=new GoodsInCart(null, num);
          shoppingCart.put(goodsId, sic);
         }

   }
   }
 }

**购物车管理**
1--添加商品到购物车
2--修改购物车中的所有商品数量
3--显示购物车中的所有商品信息
4--结算
9--返回上一级菜单
==============================================
请输入对应的数字对购物车进行管理
1
添加商品到购物车
所有商品信息为
显示所有商品信息
所有商品信息为:
商品信息 [编号:goods002, 名称:饮水机, 价格:299.0, 描述:带净化功能的饮水机]
商品信息 [编号:goods004, 名称:手机, 价格:2300.0, 描述:Android手机]
商品信息 [编号:goods003, 名称:笔记本电脑, 价格:4999.0, 描述:15寸笔记本电脑]
商品信息 [编号:goods001, 名称:水杯, 价格:56.0, 描述:不锈钢水杯]
请输入要添加的商品编号:
goods002
请输入要添加的商品数量:
3
==============================================
**购物车管理**
1--添加商品到购物车
2--修改购物车中的所有商品数量
3--显示购物车中的所有商品信息
4--结算
9--返回上一级菜单
==============================================
请输入对应的数字对购物车进行管理
3
显示购物车中的所有商品信息
商品信息[编号:goods002,名称:饮水机,价格:299.0,商品描述:带净化功能的饮水机,数量:3]
==============================================
**购物车管理**
1--添加商品到购物车
2--修改购物车中的所有商品数量
3--显示购物车中的所有商品信息
4--结算
9--返回上一级菜单
==============================================
请输入对应的数字对购物车进行管理
2
修改购物车中商品的数量
请输入要修改商品的编号:
goods002
请输入新的商品数量:
2
==============================================
**购物车管理**
1--添加商品到购物车
2--修改购物车中的所有商品数量
3--显示购物车中的所有商品信息
4--结算
9--返回上一级菜单
==============================================
请输入对应的数字对购物车进行管理
3
显示购物车中的所有商品信息
Exception in thread "main" java.lang.NullPointerException
 at com.imooc.trolley.ShoppingCart.displayAllInCart(ShoppingCart.java:98)
 at com.imooc.trolley.TestDemo.manageShoppingCart(TestDemo.java:75)
 at com.imooc.trolley.TestDemo.manageShoppingCart(TestDemo.java:72)
 at com.imooc.trolley.TestDemo.manageShoppingCart(TestDemo.java:76)
 at com.imooc.trolley.TestDemo.manageShoppingCart(TestDemo.java:68)
 at com.imooc.trolley.TestDemo.mainMenu(TestDemo.java:109)
 at com.imooc.trolley.TestDemo.manageGoods(TestDemo.java:44)
 at com.imooc.trolley.TestDemo.manageGoods(TestDemo.java:41)
 at com.imooc.trolley.TestDemo.manageGoods(TestDemo.java:37)
 at com.imooc.trolley.TestDemo.mainMenu(TestDemo.java:106)
 at com.imooc.trolley.TestDemo.main(TestDemo.java:120)


修改商品数量之后在显示购物车 报错啦

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

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

2回答
提问者 无厘头的童年 2017-10-23 12:24:52
  //结算
  public void settleAccounts() {
   System.out.println("结算");
   double sum=0;
   System.out.println("商品的总价为:"+sum);
   Iterator<GoodsInCart> it=shoppingCart.values().iterator();
   while(it.hasNext()) {
    GoodsInCart gic=it.next();
    Goods g=gic.getGoods();
    System.out.println("商品信息[编号:"+g.getGoodsId()+",名称:"+g.getGoodsName()+",价格:"
      +g.getPrice()+",商品描述:"+g.getGoodsDesp()+",数量:"+gic.getNum()+"]");
    double sum1=g.getPrice()*gic.getNum();
    sum=sum+sum1;
    
   }
  }
 }


  • 你的输出语句应该写到while循环的后面,而不是写到定义sum的后面。祝学习愉快~
    2017-10-23 16:04:42
一叶知秋519 2017-10-23 11:53:27

第11行的代码改为: GoodsInCart goods=shoppingCart.get(goodsId);

第16行17行的代码改为:goods.setNum(num);

通过商品编号找到购物车中的该商品对象,然后对其数量进行修改就可以了,不需要再新建一个购物车对象。

祝学习愉快~

  • 提问者 无厘头的童年 #1
    //结算 public void settleAccounts() { System.out.println("结算"); double sum=0; System.out.println("商品的总价为:"+sum); Iterator<GoodsInCart> it=shoppingCart.values().iterator(); while(it.hasNext()) { GoodsInCart gic=it.next(); Goods g=gic.getGoods(); System.out.println("商品信息[编号:"+g.getGoodsId()+",名称:"+g.getGoodsName()+",价格:" +g.getPrice()+",商品描述:"+g.getGoodsDesp()+",数量:"+gic.getNum()+"]"); double sum1=g.getPrice()*gic.getNum(); sum=sum+sum1; } } } 结算商品结果为 0.0 怎么修改吖
    2017-10-23 12:24:32
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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