问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中写商品购物车怎么实现每种商品总价都随商品数量变化而变化??

发布网友 发布时间:2022-04-25 18:55

我来回答

2个回答

热心网友 时间:2023-08-08 23:10

以前学习java又做个实例,挺值得学习的。1.首先我先列出我们所需要的java类结构。1)Database.java---------模拟存储商品的数据库。2)McBean.java------------商品实体类,一个普通的javabean,里面有商品的基本属性。3)OrderItemBean.java---订单表。4)ShoppingCar.java------这个就是最主要的购物车,当然比较简单。5)TestShoppingCar.java---这个是测试类。2.下面贴出具体代码并带关键注释。---Database.javapublicclassDatabase{/*采用Map存储商品数据,为什么呢?我觉得这个问题你自己需要想下。*Integer为Map的key值,McBean为Map的value值。*/privatestaticMapdata=newHashMap();publicDatabase(){McBeanbean=newMcBean();bean.setId(1);bean.setName("地瓜");bean.setPrice(2.0);bean.setInstuction("新鲜的地瓜");data.put(1,bean);//把商品放入Mapbean=newMcBean();bean.setId(2);bean.setName("土豆");bean.setPrice(1.2);bean.setInstuction("又好又大的土豆");data.put(2,bean);//把商品放入Mapbean=newMcBean();bean.setId(3);bean.setName("丝瓜");bean.setPrice(1.5);bean.setInstuction("本地丝瓜");data.put(3,bean);//把商品放入Map}publicvoidsetMcBean(McBeanmcBean){data.put(mcBean.getId(),mcBean);}publicMcBeangetMcBean(intnid){returndata.get(nid);}}---McBean.javapublicclassMcBean{privateintid;//商品编号privateStringname;//商品名privatedoubleprice;//商品价格privateStringinstuction;//商品说明publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicdoublegetPrice(){returnprice;}publicvoidsetPrice(doubleprice){this.price=price;}publicStringgetInstuction(){returninstuction;}publicvoidsetInstuction(Stringinstuction){this.instuction=instuction;}}---ShoppingCar.javapublicclassShoppingCar{privatedoubletotalPrice;//购物车所有商品总价格privateinttotalCount;//购物车所有商品数量privateMapitemMap;//商品编号与订单项的键值对publicShoppingCar(){itemMap=newHashMap();}publicvoidbuy(intnid){OrderItemBeanorder=itemMap.get(nid);McBeanmb;if(order==null){mb=newDatabase().getMcBean(nid);order=newOrderItemBean(mb,1);itemMap.put(nid,order);update(nid,1);}else{order.setCount(order.getCount()+1);update(nid,1);}}publicvoiddelete(intnid){OrderItemBeandelorder=itemMap.remove(nid);totalCount=totalCount-delorder.getCount();totalPrice=totalPrice-delorder.getThing().getPrice()*delorder.getCount();}publicvoipdate(intnid,intcount){OrderItemBeanupdorder=itemMap.get(nid);totalCount=totalCount+count;totalPrice=totalPrice+updorder.getThing().getPrice()*count;}publicvoidclear(){itemMap.clear();totalCount=0;totalPrice=0.0;}publicvoidshow(){DecimalFormatdf=newDecimalFormat("¤#.##");System.out.println("商品编号\t商品名称\t单价\t购买数量\t总价");Setset=itemMap.keySet();Iteratorit=set.iterator();while(it.hasNext()){OrderItemBeanorder=itemMap.get(it.next());System.out.println(order.getThing().getId()+"\t"+order.getThing().getName()+"\t"+df.format(order.getThing().getPrice())+"\t"+order.getCount()+"\t"+df.format(order.getCount()*order.getThing().getPrice()));}System.out.println("合计:总数量:"+df.format(totalCount)+"总价格:"+df.format(totalPrice));System.out.println("**********************************************");}}---OrderItemBean.javapublicclassOrderItemBean{privateMcBeanthing;//商品的实体privateintcount;//商品的数量publicOrderItemBean(McBeanthing,intcount){super();this.thing=thing;this.count=count;}publicMcBeangetThing(){returnthing;}publicvoidsetThing(McBeanthing){this.thing=thing;}publicintgetCount(){returncount;}publicvoidsetCount(intcount){this.count=count;}}---TestShoppingCar.javapackagecom.shop;publicclassTestShoppingCar{publicstaticvoidmain(String[]args){ShoppingCars=newShoppingCar();s.buy(1);//购买商品编号1的商品s.buy(1);s.buy(2);s.buy(3);s.buy(1);s.show();//显示购物车的信息s.delete(1);//删除商品编号为1的商品s.show();s.clear();s.show();}}3.打印输出结果商品编号商品名称单价购买数量总价1地瓜¥23¥62土豆¥1.21¥1.23丝瓜¥1.51¥1.5合计:总数量:¥5总价格:¥8.7**********************************************商品编号商品名称单价购买数量总价2土豆¥1.21¥1.23丝瓜¥1.51¥1.5合计:总数量:¥2总价格:¥2.7**********************************************商品编号商品名称单价购买数量总价合计:总数量:¥0总价格:¥0**********************************************4.打字太累了,比较匆忙,但是主要靠你自己领会。哪里不清楚再提出来。

热心网友 时间:2023-08-08 23:10

一般就是你在页面增加监听事件,每次修改商品数量就重新计算总价
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
神九返回后轨道舱分离去哪里了,是在轨道继续运行,还是不管了。天宫一... 空间站通常由对接舱、气闸舱、轨道舱、生活舱、服务舱、专用设备... 为什么不让神舟七号的轨道舱留在天上让神州八号去追? 洗衣机生产厂家 狗鱼好吃吗? 洪霞的爷爷知识很丰富,你能用哪些成语来形容他 用什么成语可以形容包罗各种各样的想法 什么万千的成语有哪些 重庆哪些考研大学 重庆师范大学考研好不好考 淘宝下单以后让客服改尺寸购物车会相应变化么 手机端点击弹窗处的“加入购物车”后,”购物车“处的数字变化怎么在html... 已经加入购物车的东西价格还会变动吗 Windows 10中如何管理和禁用浏览加载项 禁用加载项怎么办? IE为何总弹出禁用加载项 Win7系统怎样取消禁用加载项 如何解除IE7中的“禁用加载项” 如何取消禁用加载项 急救:“禁用的加载项”怎么解决?? 我的IE浏览器打开网页怎么提示,当前在禁用加载项的状态下运行 桌面左上角的禁用加载项怎么去掉啊?急 如何启用被禁用的加载项 word2007中禁用的加载项怎么恢复 windows禁用的加载项怎么解除? 加载项被禁用了怎么办 看有线电视必须用机顶盆吗 农村用的有线机顶电视盒拿城里可以放吗? 为什么电视开机后必须按机顶合开关才有信号? 我有电视和机顶合但是没有网线网络怎样做才看得电视,除了有网线网络还有什么办法吗? 你好,jquery实现的购物车商品数量变化,价格随之变动,但是总价格怎么跟着... 为什么京东购物车里的价格跟详细价格不同?我都不敢买了。购物车是39元,点开查看后竟然是99元!怎么 文件定时备份到u盘 如何备份文件到U盘? U盘插入电脑会马上自动备份里面的文件,怎么关闭? 有什么软件可以把电脑里的部分文件自动备份到U盘上?我在电脑里经常要更新某些文件,希望能同步进行。 做银耳汤,银耳要泡多久? 银耳一般泡发多久才可以下锅煮? 如何实现电脑上指定文件夹内的数据自动备份到指定U盘? 怎么把电脑系统备份然后备份到U盘 怎么自动备份U盘上的文件? 银耳泡多久可以煮 煮银耳的时候,银耳到底需不需要泡?泡多久比较合适呢? 怎样在电子表格中排序? 男人性欲强 word一般的流程图是怎么画的 java查看linux是否有文件 怎样用 java读取txt文件中的数据 linux下 电子商务包括哪些专业? 电子商务类专业有哪些