最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java實(shí)現(xiàn)網(wǎng)上購(gòu)物車程序

 更新時(shí)間:2018年01月15日 14:22:25   作者:ylyang12  
這篇文章主要介紹了java實(shí)現(xiàn)網(wǎng)上購(gòu)物車程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

用java代碼寫一個(gè)簡(jiǎn)單的網(wǎng)上購(gòu)物車程序,供大家參考,具體內(nèi)容如下

需求:

1、寫一個(gè)商品類,有商品編號(hào)、商品名稱、商品分類、商品單價(jià)屬性。

2、寫一個(gè)商品條目信息類,有商品和數(shù)量?jī)蓚€(gè)屬性,有商品總價(jià)格方法。

3、寫一個(gè)購(gòu)物車類,有添加商品方法、查看訂單信息,刪除商品,修改商品,清空購(gòu)物車,求購(gòu)物車中所有商品總金額方法。4、寫一個(gè)測(cè)試類,測(cè)試上述方法。

商品類:

public class Product { 
  private int productId;// 商品編號(hào) 
  private String productName;// 商品名稱 
  private String category;// 商品分類 
  private double price;// 單價(jià) 
 
  public Product() {// 無參構(gòu)造 
    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;//購(gòu)買的商品 
  private int count;//商品數(shù)量 
  public double totalMoney(){//小計(jì) 
    double price=product.getPrice();//獲取商品單價(jià) 
    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; 
  } 
   
} 

購(gòu)物車類:

import java.util.Collection; 
import java.util.Iterator; 
import java.util.LinkedHashMap; 
import java.util.Map; 
public class ShoppingCart {//購(gòu)物車 
  //key:商品編號(hào) 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("商品編號(hào):"+product.getProductId()+",商品名稱:" 
      +product.getProductName()+",單價(jià):"+product.getPrice()+",數(shù)量:"+productItem.getCount() 
      +",小計(jì):"+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(){//清空購(gòu)物車 
    map.clear(); 
  } 
   
  public double totalAllMoney(){//商品總錢數(shù) 
    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; 
  } 
} 

測(cè)試類:

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,"華為手機(jī)","手機(jī)",2998); 
    Product p6=new Product(101,"華碩筆記本","筆記本",4599);//測(cè)試買兩件商品的情況 
    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("商品編號(hào)為:"+p2.getProductId()+"的商品刪除成功!"); 
    }else{ 
      System.out.println("刪除失敗"); 
    } 
    cart.showAll(); 
    System.out.println("############"); 
    boolean flag2=cart.modifyProduct(p3.getProductId(), 2); 
    if(flag2){ 
      System.out.println("商品編號(hào)為:"+p3.getProductId()+"的商品修改成功!"); 
    }else{ 
      System.out.println("修改失敗"); 
    } 
    cart.showAll(); 
     
    //cart.clearCart(); 
    //cart.showAll(); 
    System.out.println("商品總價(jià)錢為:"+cart.totalAllMoney()); 
 
  } 
 
} 

運(yùn)行效果圖:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java拓展集合工具類CollectionUtils

    java拓展集合工具類CollectionUtils

    這篇文章主要為大家詳細(xì)介紹了java拓展集合工具類CollectionUtils,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Springboot下載excel文件中文名亂碼問題及解決

    Springboot下載excel文件中文名亂碼問題及解決

    這篇文章主要介紹了Springboot下載excel文件中文名亂碼問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java網(wǎng)絡(luò)編程實(shí)現(xiàn)的簡(jiǎn)單端口掃描器示例

    Java網(wǎng)絡(luò)編程實(shí)現(xiàn)的簡(jiǎn)單端口掃描器示例

    這篇文章主要介紹了Java網(wǎng)絡(luò)編程實(shí)現(xiàn)的簡(jiǎn)單端口掃描器,涉及Java網(wǎng)絡(luò)編程Socket組建、swing組建及多線程相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • 關(guān)于RocketMQ使用事務(wù)消息

    關(guān)于RocketMQ使用事務(wù)消息

    RocketMQ是一種提供消息隊(duì)列服務(wù)的中間件,也稱為消息中間件,是一套提供了消息生產(chǎn)、存儲(chǔ)、消費(fèi)全過程API的軟件系統(tǒng)。消息即數(shù)據(jù)。一般消息的體量不會(huì)很大,需要的朋友可以參考下
    2023-05-05
  • Spring使用注解更簡(jiǎn)單的讀取和存儲(chǔ)對(duì)象的方法

    Spring使用注解更簡(jiǎn)單的讀取和存儲(chǔ)對(duì)象的方法

    這篇文章主要介紹了Spring使用注解更簡(jiǎn)單的讀取和存儲(chǔ)對(duì)象的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-07-07
  • Java如何使用multipartFile對(duì)象解析Execl

    Java如何使用multipartFile對(duì)象解析Execl

    本文介紹了如何使用Spring的MultipartFile類解析Excel文件(.xls和.xlsx),包括文件上傳、數(shù)據(jù)校驗(yàn)、輸入流獲取、文件解析、數(shù)據(jù)保存和異常處理的詳細(xì)步驟
    2025-02-02
  • Maven項(xiàng)目引用第三方j(luò)ar包找不到類ClassNotFoundException

    Maven項(xiàng)目引用第三方j(luò)ar包找不到類ClassNotFoundException

    這篇文章主要為大家介紹了Maven項(xiàng)目引用第三方j(luò)ar包找不到類ClassNotFoundException解決及原因分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • IDEA自動(dòng)生成TestNG的testng.xml的插件方法

    IDEA自動(dòng)生成TestNG的testng.xml的插件方法

    這篇文章主要介紹了IDEA自動(dòng)生成TestNG的testng.xml的插件方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • java 數(shù)據(jù)結(jié)構(gòu)與算法 (快速排序法)

    java 數(shù)據(jù)結(jié)構(gòu)與算法 (快速排序法)

    這篇文章主要介紹了java 數(shù)據(jù)結(jié)構(gòu)與算法(快速排序法),,快速排序法是實(shí)踐中的一種快速的排序算法,在c++或?qū)ava基本類型的排序中特別有用,下面我們一起進(jìn)入文章學(xué)習(xí)更詳細(xì)的內(nèi)容吧,需要的朋友可以參考下
    2022-02-02
  • mybatis查詢結(jié)果返回至實(shí)體類的示例代碼

    mybatis查詢結(jié)果返回至實(shí)體類的示例代碼

    這篇文章主要介紹了mybatis查詢結(jié)果返回至實(shí)體類的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評(píng)論

怀来县| 泰顺县| 沅陵县| 东光县| 荆门市| 登封市| 新沂市| 双鸭山市| 舞钢市| 桐柏县| 沭阳县| 泰来县| 阜阳市| 运城市| 行唐县| 内江市| 武陟县| 耿马| 昭通市| 当涂县| 开原市| 定襄县| 延边| 临沧市| 邓州市| 正宁县| 邵阳市| 海原县| 肇庆市| 徐州市| 随州市| 津南区| 仪征市| 当阳市| 绵竹市| 乡宁县| 平潭县| 信宜市| 措美县| 阿拉尔市| 新巴尔虎左旗|