1 需求:1、写一个商品类,有商品编号、商品名称、商品分类、商品单价属性。2、写一个商品条目信息类,有商品和数量两个属性,有商品总价格方法。2

3 3、写一个购物车类,有添加商品方法、查看订单信息,删除商品,修改商品,清空购物车,求购物车中所有商品总金额方法。4、写一个测试类,测试上述方法。4

5 商品类:6 [java] view plain copy7

8 public classProduct {9 private int productId;//商品编号

10 private String productName;//商品名称

11 private String category;//商品分类

12 private double price;//单价

13

14 public Product() {//无参构造

15 super();16 }17

18 public Product(intproductId, String productName, String category,19 doubleprice) {20 super();21 this.productId =productId;22 this.productName =productName;23 this.category =category;24 this.price =price;25 }26

27 publicString toString() {28 return "Product [productId=" + productId + ", productName="

29 + productName + ", category=" + category + ", price=" +price30 + "]";31 }32

33 public intgetProductId() {34 returnproductId;35 }36

37 public void setProductId(intproductId) {38 this.productId =productId;39 }40

41 publicString getProductName() {42 returnproductName;43 }44

45 public voidsetProductName(String productName) {46 this.productName =productName;47 }48

49 publicString getCategory() {50 returncategory;51 }52

53 public voidsetCategory(String category) {54 this.category =category;55 }56

57 public doublegetPrice() {58 returnprice;59 }60

61 public void setPrice(doubleprice) {62 this.price =price;63 }64

65 }66

67 商品条目信息类:68 [java] view plain copy69

70 public classProductItem {71 private Product product;//购买的商品

72 private int count;//商品数量

73 public double totalMoney(){//小计

74 double price=product.getPrice();//获取商品单价

75 return price*count;76 }77

78 publicProductItem() {79 super();80 }81

82 public ProductItem(Product product, intcount) {83 super();84 this.product =product;85 this.count =count;86 }87

88 publicProduct getProduct() {89 returnproduct;90 }91 public voidsetProduct(Product product) {92 this.product =product;93 }94 public intgetCount() {95 returncount;96 }97 public void setCount(intcount) {98 this.count =count;99 }100

101 }102

103

104 购物车类:105 [java] view plain copy106

107 importjava.util.Collection;108 importjava.util.Iterator;109 importjava.util.LinkedHashMap;110 importjava.util.Map;111 public class ShoppingCart {//购物车112 //key:商品编号 value:商品条目

113 private Map map=new LinkedHashMap();114

115 public void addProduct(Product p){//添加商品

116 int productId=p.getProductId();117 if(map.containsKey(productId)){118 ProductItem productItem=map.get(productId);119 productItem.setCount(productItem.getCount()+1);120 }else{121 map.put(productId, new ProductItem(p,1));122 }123 }124 public void showAll(){//查看订单信息

125 Collection productItems =map.values();126 Iterator iterator =productItems.iterator();127 while(iterator.hasNext()){128 ProductItem productItem =iterator.next();129 Product product =productItem.getProduct();130 System.out.println("商品编号:"+product.getProductId()+",商品名称:"

131 +product.getProductName()+",单价:"+product.getPrice()+",数量:"+productItem.getCount()132 +",小计:"+productItem.totalMoney());133 }134 }135 public boolean deleteProduct(int productId){//删除商品

136 if(map.containsKey(productId)){137 map.remove(productId);138 return true;139 }140 return false;141 }142 public boolean modifyProduct(int productId,int count){//修改

143 if(map.containsKey(productId)){144 if(count>=1){145 ProductItem productItem =map.get(productId);146 productItem.setCount(count);147 return true;148 }else if(count==0){//删除该商品

149 deleteProduct(productId);150 return true;151 }152 }153 return false;154 }155

156 public void clearCart(){//清空购物车

157 map.clear();158 }159

160 public double totalAllMoney(){//商品总钱数

161 double total=0;162 Collection productItems =map.values();163 Iterator iterator =productItems.iterator();164 while(iterator.hasNext()){165 ProductItem productItem =iterator.next();166 double money=productItem.totalMoney();167 total+=money;168 }169 returntotal;170 }171 }172

173

174 测试类:175 [java] view plain copy176

177 public classShoppingCartTest {178

179 public static voidmain(String[] args) {180 ShoppingCart cart=newShoppingCart();181 Product p1=new Product(101,"华硕笔记本","笔记本",4599);182 Product p2=new Product(102,"苹果","水果",5.9);183 Product p3=new Product(103,"彩电","家电",2799);184 Product p4=new Product(104,"秋裤","服装",128);185 Product p5=new Product(105,"华为手机","手机",2998);186 Product p6=new Product(101,"华硕笔记本","笔记本",4599);//测试买两件商品的情况

187 cart.addProduct(p1);188 cart.addProduct(p2);189 cart.addProduct(p3);190 cart.addProduct(p4);191 cart.addProduct(p5);192 cart.addProduct(p6);193 cart.showAll();194 System.out.println("############");195 boolean flag=cart.deleteProduct(p2.getProductId());196 if(flag){197 System.out.println("商品编号为:"+p2.getProductId()+"的商品删除成功!");198 }else{199 System.out.println("删除失败");200 }201 cart.showAll();202 System.out.println("############");203 boolean flag2=cart.modifyProduct(p3.getProductId(), 2);204 if(flag2){205 System.out.println("商品编号为:"+p3.getProductId()+"的商品修改成功!");206 }else{207 System.out.println("修改失败");208 }209 cart.showAll();210

211 //cart.clearCart();212 //cart.showAll();

213 System.out.println("商品总价钱为:"+cart.totalAllMoney());214

215 }216

217 }

用java语言写网上购物的语句_用java代码写一个简单的网上购物车程序相关推荐

  1. java任何表达式都可以当作语句_在Java语言中语句用分号终止,并不是所有的表达式都可以构成语句...

    在Java语言中,语句以分号":"作为结束标志.块语句由其他语句组成,其本身不需要用分号结尾.另外,内嵌有块语句并以块语句结尾的语句,也不需要用分号结尾. Java语句可分为空语句 ...

  2. java语言采用16位颜色标准_华为Java笔试题一

    华为Java笔试题一 D.Servlet 2.下列说法正确的有( ) A. 环境变量可在编译source code时指定 B. 在编译程序时,所能指定的环境变量不包括class path C. jav ...

  3. break在java语言中什么意思_在Java语言的控制结构中,break语句是经常用到的语句。在switch语句中break语句的作用是( )_学小易找答案...

    [单选题]( )是一个综合性的网络营销工具,在所有的网络营销工具中也是最基本.最重要的一个. [单选题]给出下列的代码,哪行在编译时可能会有错误( ) 1 public static void mai ...

  4. java 删除语句_是java语句

    <21天学通Java(第7版)>-- 第2章 Java编程基础 2.1 语句和表达式 本节书摘来异步社区<21天学通Java(第7版)>一书中的第2章,第2.1节,作者: [美 ...

  5. 基于java的网上花店销售系统_基于JAVA的鲜花销售系统(含全套CAD图纸).doc

    基于JAVA的鲜花销售系统(含全套CAD图纸) 编号 太湖学院 毕业设计(论文) 题目: 信机 系 专业 学 号: 学生姓名: 指导教师: 201年5月2日太湖学院本科毕业设计(论文) 诚 信 承 诺 ...

  6. java只允许单一继承_问题:Java语言只允许单继承,指每个类只能有一个 ( )

    问题:Java语言只允许单继承,指每个类只能有一个 ( ) 更多相关问题 用List命令显示表文件中的当前记录的命令格式是________. WHERE子句的条件表达式中,可以匹配0个到多个字符的通配 ...

  7. 怎样用java写一个简单的文件复制程序

    怎样用java写一个简单的文件复制程序 代码来源:https://jingyan.baidu.com/article/c35dbcb0d6f1398916fcbc07.html package Num ...

  8. java中的事件都继承自_下列说法中不正确的是()。A.Java语言中的事件都是继承自Java.awt.AW-TEvent类B.AWTEve...

    下列说法中不正确的是().A.Java语言中的事件都是继承自Java.awt.AW-TEvent类B.AWTEve 更多相关问题 [单选] 月经后期而至,量少,色淡,质清稀,少腹隐痛,喜暖喜按,脉沉迟 ...

  9. java语言说法不正确的是_下列有关Java语言描述不正确的是()。 - 问答库

    问题: [单选] 下列有关Java语言描述不正确的是(). A . Java语言开发的程序与平台无关,即:用Java语言开发的程序可以在不同的操作系统下运行 B . Java采用完全面向对象的程序设计 ...

  10. java语言程序设计第十版(Introduce to java 10th) 课后习题 chapter6-27

    java语言程序设计第十版(Introduce to java 10th) 课后习题 chapter6-27 自己纯手工,欢迎讨论 package chapter6;public class T27 ...

最新文章

  1. 捷报!又一名HIV感染者被治愈,干细胞移植再次立功
  2. metasploit 一款开源的渗透测试框架
  3. 区块链基础知识系列 第三课 区块链中的默克尔树
  4. oracle怎么查询换行符,关于oracle:如何检查表中所有列的换行符
  5. /UI5/IF_UI5_REP_PERSISTENCE - why I cannot deploy app to GM6
  6. python用什么来写模块-使用C语言编写Python模块-引子【转】
  7. CSDN博客排名不更新,谈谈重构的做法
  8. 计算机网络应用答题卡,计算机软考中高级答题卡填涂注意事项
  9. Enterprise Architect学习(1)
  10. 不要轻易在简历上写我热爱编程,我热爱学习—兄弟连IT教育
  11. 苹果市场金融类app上架ios1.2 ,5.2.1或3.21被拒原因解析
  12. 阿里云服务器部署记录
  13. 044-Web前端-JS-键盘事件
  14. 文件名目录名或卷标语法不正确怎么修复?
  15. miniGUI 3.0.2 在Hi3535平台上的移植
  16. 通过类型转换来显示一些字符在Unicode表中的位置,以及Unicode表中某些位置上的字符
  17. 项目数据字典数据导入导出
  18. 菲尔兹奖得主小平邦彦:数学是什么?
  19. 软件工程考研复试速成 - 知识点精炼 - 背诵版
  20. 建站前的几大禁忌,你是否做到

热门文章

  1. 全国30m精度二级分类土地利用数据
  2. pandas读取与存储操作详解
  3. 程序设计与编译(C++入门)
  4. oracle like 前缀,algorithm – 在ORACLE中搜索最长前缀的最快方法
  5. email java,java email 过程
  6. python基础教程 pdf github_GitHub - looly/python-basic: 老齐(qiwsir)的Python基础教程Gitbook版...
  7. python怎么配置pip_python如何配置pip
  8. httpget和ajax,javascript - HTTP中的get、post请求和ajax的get、post请求是一个东西吗?...
  9. mysql 修改前缀_批量修改mysql的表前缀
  10. 基于 Redis 的分布式锁到底安全吗(上)?