java实现网上购物车程序

用java代码写一个简单的网上购物车程序,供大家参考,具体内容如下

需求:

1、写一个商品类,有商品编号、商品名称、商品分类、商品单价属性。

2、写一个商品条目信息类,有商品和数量两个属性,有商品总价格方法。

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

商品类:

public class Product {
  private int productId;// 商品编号
  private String productName;// 商品名称
  private String category;// 商品分类
  private double price;// 单价 

  public Product() {// 无参构造
    super();
  } 

  public Product(int productId, String productName, String category,
      double price) {
    super();
    this.productId = productId;
    this.productName = productName;
    this.category = category;
    this.price = price;
  } 

  public String toString() {
    return "Product [productId=" + productId + ", productName="
        + productName + ", category=" + category + ", price=" + price
        + "]";
  } 

  public int getProductId() {
    return productId;
  } 

  public void setProductId(int productId) {
    this.productId = productId;
  } 

  public String getProductName() {
    return productName;
  } 

  public void setProductName(String productName) {
    this.productName = productName;
  } 

  public String getCategory() {
    return category;
  } 

  public void setCategory(String category) {
    this.category = category;
  } 

  public double getPrice() {
    return price;
  } 

  public void setPrice(double price) {
    this.price = price;
  } 

}

商品条目信息类:

public class ProductItem {
  private Product product;//购买的商品
  private int count;//商品数量
  public double totalMoney(){//小计
    double price=product.getPrice();//获取商品单价
    return price*count;
  } 

  public ProductItem() {
    super();
  } 

  public ProductItem(Product product, int count) {
    super();
    this.product = product;
    this.count = count;
  } 

  public Product getProduct() {
    return product;
  }
  public void setProduct(Product product) {
    this.product = product;
  }
  public int getCount() {
    return count;
  }
  public void setCount(int count) {
    this.count = count;
  } 

}

购物车类:

import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
public class ShoppingCart {//购物车
  //key:商品编号 value:商品条目
  private Map<Integer,ProductItem> map=new LinkedHashMap<Integer,ProductItem>(); 

  public void addProduct(Product p){//添加商品
    int productId=p.getProductId();
    if(map.containsKey(productId)){
      ProductItem productItem=map.get(productId);
      productItem.setCount(productItem.getCount()+1);
    }else{
      map.put(productId, new ProductItem(p,1));
    }
  }
  public void showAll(){//查看订单信息
    Collection<ProductItem> productItems = map.values();
    Iterator<ProductItem> iterator = productItems.iterator();
    while(iterator.hasNext()){
      ProductItem productItem = iterator.next();
      Product product = productItem.getProduct();
      System.out.println("商品编号:"+product.getProductId()+",商品名称:"
      +product.getProductName()+",单价:"+product.getPrice()+",数量:"+productItem.getCount()
      +",小计:"+productItem.totalMoney());
    }
  }
  public boolean deleteProduct(int productId){//删除商品
    if(map.containsKey(productId)){
      map.remove(productId);
      return true;
    }
    return false;
  }
  public boolean modifyProduct(int productId,int count){//修改
    if(map.containsKey(productId)){
      if(count>=1){
        ProductItem productItem = map.get(productId);
        productItem.setCount(count);
        return true;
      }else if(count==0){//删除该商品
        deleteProduct(productId);
        return true;
      }
    }
    return false;
  } 

  public void clearCart(){//清空购物车
    map.clear();
  } 

  public double totalAllMoney(){//商品总钱数
    double total=0;
    Collection<ProductItem> productItems = map.values();
    Iterator<ProductItem> iterator = productItems.iterator();
    while(iterator.hasNext()){
      ProductItem productItem = iterator.next();
      double money=productItem.totalMoney();
      total+=money;
    }
    return total;
  }
}

测试类:

public class ShoppingCartTest { 

  public static void main(String[] args) {
    ShoppingCart cart=new ShoppingCart();
    Product p1=new Product(101,"华硕笔记本","笔记本",4599);
    Product p2=new Product(102,"苹果","水果",5.9);
    Product p3=new Product(103,"彩电","家电",2799);
    Product p4=new Product(104,"秋裤","服装",128);
    Product p5=new Product(105,"华为手机","手机",2998);
    Product p6=new Product(101,"华硕笔记本","笔记本",4599);//测试买两件商品的情况
    cart.addProduct(p1);
    cart.addProduct(p2);
    cart.addProduct(p3);
    cart.addProduct(p4);
    cart.addProduct(p5);
    cart.addProduct(p6);
    cart.showAll();
    System.out.println("############");
    boolean flag=cart.deleteProduct(p2.getProductId());
    if(flag){
      System.out.println("商品编号为:"+p2.getProductId()+"的商品删除成功!");
    }else{
      System.out.println("删除失败");
    }
    cart.showAll();
    System.out.println("############");
    boolean flag2=cart.modifyProduct(p3.getProductId(), 2);
    if(flag2){
      System.out.println("商品编号为:"+p3.getProductId()+"的商品修改成功!");
    }else{
      System.out.println("修改失败");
    }
    cart.showAll(); 

    //cart.clearCart();
    //cart.showAll();
    System.out.println("商品总价钱为:"+cart.totalAllMoney()); 

  } 

}

运行效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • RxJava+Retrofit+Mvp实现购物车

    本文实例为大家分享了RxJava Retrofit实现购物车展示的具体代码,供大家参考,具体内容如下 先给大家展示一下效果图 框架结构: 1.项目框架:MVP,图片加载用Fresco,网络请求用OKhttp+Retrofit实现(自己封装,加单例模式), 2.完成购物车数据添加(如果接口无数据,可用接口工具添加数据), 3.自定义view实现加减按钮,每次点击加减,item中的总数及总价要做出相应的改变. 4.当数量为1时,点击减号,数量不变,吐司提示用户最小数量为1. 5.底部总数及总价为所有

  • java web开发之购物车功能实现示例代码

    之前没有接触过购物车的东东,也不知道购物车应该怎么做,所以在查询了很多资料,总结一下购物车的功能实现. 查询的资料,找到三种方法: 1.用cookie实现购物车: 2.用session实现购物车: 3.用cookie和数据库(购物车信息持久化)实现购物车: 分析一下这三种方法的优缺点: 1.单纯有cookie实现购物车,这样的购物车不是很理想,设想一下,如果客户端的浏览器把cookie给禁用了,这种方法就会在这里流产- 2.session中保存购物车的信息,这个只是在一个会话中可用,如果用户没有

  • java web开发之实现购物车功能

    为了方便自己以后复习,所以写的比较仔细,记录下自己的成长.  既然是做购物车,那么前提条件是首先需要一系列商品,也就是要建一个实体,这里建了一个商品表. 通过查询在浏览器上显示 基本显示已经做好了,现在进入我们的重头戏,Servlet  点击放入购物车时,将访问Servlet 购物车代码 package com.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; im

  • Rxjava+Retrofit+MVP实现购物车功能

    本文实例为大家分享了Rxjava Retrofit实现购物车的具体代码,供大家参考,具体内容如下 效果图: 1.依赖 annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' compile 'com.jakewharton:butterknife:8.8.1' compile 'com.android.support:recyclerview-v7:26.0.0-alpha1' compile 'com.squareup.

  • JAVAEE中用Session简单实现购物车功能示例代码

    Session简单实现购物车功能 这个小程序主要就3个页面,一个商品列表页面(HomeServlet),一个是提示加入购物车页面(AddCartTipServlet),一个是显示购物车清单页面(ShowCartServlet). HomeServlet页面: @WebServlet({ "/HomeServlet", "/home" }) public class HomeServlet extends HttpServlet { private static fi

  • java网上图书商城(4)购物车模块1

    本文实例为大家分享了购物车模块的具体代码,供大家参考,具体内容如下 使用的不是session,也不是cookie,而是表 > 添加购物条目 > 修改购物条目的数量 > 删除条目 > 批量删除条目 > 我的购物车,即按用户查询条目 > 查询勾选的条目 1.数据表 复制代码 代码如下: insert  into `t_cartitem`(`cartItemId`,`quantity`,`bid`,`uid`,`orderBy`) values ('B8939FC551314

  • javaweb图书商城设计之购物车模块(3)

    本文继续为大家分享了javaweb图书商城中购物车模块,供大家参考,具体内容如下 购物车存储 保存在session中 保存在cookie中 保存在数据库中 1.创建相关类 购物车的结构: CartItem:购物车条目,包含图书和数量 Cart:购物车,包含一个Map /** * 购物车类 */ public class Cart { private Map<String,CartItem> map = new LinkedHashMap<String,CartItem>(); /*

  • java网上图书商城(5)购物车模块2

    先看看效果: 结算 list.jsp <a href="javascript:jiesuan();" id="jiesuan" class="jiesuan"></a> <form id="jieSuanForm" action="<c:url value='/CartItemServlet'/>" method="post"> <i

  • javaweb购物车案列学习开发

    本文实例为大家分享了javaweb购物车案列的具体代码,供大家参考,具体内容如下 一.项目目录结构   二.源代码 dao包--dao层:BookDao.java package com.dao; import java.util.Map; import com.DB.DB; import com.domain.Book; public class BookDao { public Map getAll(){ return DB.getAll(); } public Book find(Stri

  • java商城项目实战之购物车功能实现

    本文实例为大家分享了java实现购物车功能的具体代码,供大家参考,具体内容如下 1 需要实现 1.实现淘淘商城的购物车功能 2 购物车功能 2.1 功能说明 1.商品加入购物车时,不是必须要求登录.京东不需要登录,淘宝需要登录.各有好处. 2.计算购物车中商品的总价.当商品数量发生变化时需要重新计算. 3.用户可以删除购物车中的商品. 4.用户下单后,删除购物车的功能. 购物车在用户不登陆的情况下也可以使用购物车.需要把购物车的商品信息写入cookie中.所有对购物车的操作都是操作cookie.

随机推荐