Java購物車大作業01


任務 姓名
編碼規范、前期調查與功能設計 陳垚嘉
面向對象設計、PPT制作或博客制作 鄭俊佳

0前期調查

0.1調查收獲

每個商品都有自己獨有的編號、名字、單價等,這些就是商品類中的屬性
加入購物車的每個商品屬性是固定的,除了商品數量、單個商品項目小計,表示購物車中商品依賴於商品的屬性等信息
單個商品項目需要從商品類中提取有關商品信息,因此也將依賴於商品類中的信息

1.UML類圖:

2.系統功能結構圖

3.本系統哪里體現了面向對象的封裝性

例如:Product.java中:

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;
    }
}

pubilc、private體現了面向對象的封裝性

商品的屬性、獲取商品屬性的方法、加載購物車商品的方法、購物車商品添加、刪除以及修改都可以體現面向對象的封裝性

4.項目包結構與關鍵代碼:

這樣創建項目包結構方便后期功能增添與修改

主要功能的流程圖

4.1添加商品:

關鍵代碼:

 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));
        }
    }

4.2刪除商品:

關鍵代碼:

 public boolean deleteProduct(int productId){//刪除商品
        if(map.containsKey(productId)){
            map.remove(productId);
            return true;
        }
        return false;
    }

4.3修改購物車商品信息:

關鍵代碼:

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;
    }

4.4統計購物車消費總金額:

關鍵代碼:

  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;
    }

4.5展示消費賬單:

關鍵代碼:

  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());
        }
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM