購物車程序的面向對象設計
成員任務分配
任務 | 姓名 |
---|---|
代碼編寫、博客制作 | 鄭文華 |
前期調查、功能設計 | 任媛 |
一、目標:
學會使用講故事的方式找到系統中可能包含的類與屬性
理解封裝
二、前期調查
當今,網上購物早已成為一種常態,網上購物給人們提供了很大的便利。下面,以淘寶為例,來看看購物車系統都有些什么功能。首先,在商品的界面,我們清楚的可以看見商品的名稱以及單價,還有一些其他商品信息介紹。我們可以對商品將添加入購物車。
在購物車里,可以增加商品數量,減少商品數量,刪除商品,查找商品等。
勾選商品,進行結算。
三、系統功能結構圖
四、系統描述
將選定的商品放入購物車,在購物車內可以存放多種類型的商品,用戶還可以刪除選中商品、清空購物車、增加或減少商品數量,計算購物車內所有商品的數量、價格,用戶可以在購物車內進行結算,生成訂單。
五、 UML類圖
六、項目包結構與關鍵代碼
商品
package Shoppingcart;
public class Product {
private Integer productId;// 商品編號
private String productName;// 商品名稱
private double price;// 單價
public Product(Integer productId, String productName,double price) {
this.productId = productId;
this.productName = productName;
this.price = price;
}
public Integer 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 double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public String toString() {
return "Product [productId=" + productId + ", productName=" + productName + ", price=" + price + "]";
}
}
購物車功能
package shoppingcar;
import java.util.*;
public class ShoppingCar {
private HashMap<Product,Integer> shoppingcar;
public ShoppingCar() {
shoppingcar = new HashMap<Product,Integer>();
}
public HashMap<Product,Integer> getShopping_car() {
return shoppingcar;
}
public void addProduct(Product product,int num) {
shoppingcar.merge(product, num, Integer::sum);
}
public void reduceProduct(Product product) {
shoppingcar.remove(product);
}
public double TotalPrice(){
double sum = 0;
for (Product key : shoppingcar.keySet()) {
sum = sum + shoppingcar.get(key) * key.getPrice();
}
return sum;
}
public void clearShoppingCar() {
shoppingcar.clear();
}
}