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

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

发布网友 发布时间:2022-04-26 15:38

我来回答

2个回答

热心网友 时间:2022-04-26 17:07

以前学习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.打字太累了,比较匆忙,但是主要靠你自己领会。哪里不清楚再提出来。

热心网友 时间:2022-04-26 18:25

一般就是你在页面增加监听事件,每次修改商品数量就重新计算总价
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
干货| 手把手教你搭建一套OpenStack云平台 口碑最好的切菜刀 什么材质的菜刀最好用 菜刀的种类和用途 张九龄三首古诗词赏析(风格清淡,语言素练) word文字底纹颜色怎么设置在哪 东施效颦这则语言告诉人们一个怎样的道理,欲意又是什么呢 胜芳买房多少钱 胜芳谁最有钱 315儿童智能手表是哪个牌子 孕囊看男女准不准 文件大小不低于10M,分辩率不低于300dpi要用什么相机拍 分辨率不小于300dpi是什么意思?能不能用通俗的语言表达。诺基亚5233的手机的拍摄分辨率会小于300dpi吗? 分辨率不小于300dpi,最大边的长度1000象素,压缩品质:10(最佳)。是什么意思? 60×90尺寸海报,分辨率不低于300dpi要求文件大小不超过30M怎么设 格式提交源文件为 AI 、 PSD 格式分辨率不低于 300dpi,意思是什么官方? 求这个的背景图片,超清的,谢谢 炸土豆球的家常做法 购物车功能 点击一个 checkbox 将这一行的所有数据返回到后端 其中js写的商品数量和商品价格总和怎么传? 从百分数来衡量,绩优股是蓝筹股多还是小盘股多?是银行股多还是创业板多? 创业板业绩优小盘股有哪些 可以教别人学可转债不违法吧 星维s9老年手机怎么和其他手机定位 星维老年机发信息英文字母在哪 星维手机S2+这型号老人机市场价究竟卖多少钱?前几天给老爸买了部结果回家后他说买贵了 用html做一个购物车,能实现简单的产品数量和价格的加减就行。最后能计算出提交物品价格的总和。 基金里红利再投资与现金分红的区别? 草莓网折扣也太难算了吧,文字说的太不易懂了,有买过的人进来说下啊 业财信息一体化1+X有效期 阿腾锡林注册过商标吗?还有哪些分类可以注册? 联通卡怎么注册? 火车票可改签2次吗?改签后可以退票吗 火车票网上订票改签能改签两次吗?并且能否再改为当天其它时间段的车次吗? 红米Note3手机怎么拆 红米note3开机排线怎么拆 红米note3手机怎么打开电池盖 - 信息提示 泡椒凤爪怎样存放才不会变的黏手 泡椒的做什么泡胶弄到手了 做菜的时候切泡椒,辣到手了怎么办? 抓泡椒后手辣怎么办 切了很多泡椒,手觉得很烧,怎么办? 手被泡椒辣了怎么办3个小时了 手指泡辣椒水后有什么办法可以消 谁能帮我解答一下我自制的泡椒凤爪做好后很滑。用筷子不好拈(nian),用手感觉很滑,油油的。这是什么原因 经常泡辣椒的手会怎么样 为什么我从超市买来的泡椒凤爪是这个颜色 这样的还能吃吗?吃的时候感觉有点黏黏的 他是章子怡初恋,凭《大中国》火遍全国,34岁在母亲怀里去世,他是谁? 《大中国》的写作背景 大中国小苹果版 抗震救灾中的小英雄的故事,要长的!