用java代碼寫一個簡單的網上購物車程序


  1 需求:1、寫一個商品類,有商品編號、商品名稱、商品分類、商品單價屬性。2、寫一個商品條目信息類,有商品和數量兩個屬性,有商品總價格方法。
  2 
  3 3、寫一個購物車類,有添加商品方法、查看訂單信息,刪除商品,修改商品,清空購物車,求購物車中所有商品總金額方法。4、寫一個測試類,測試上述方法。
  4 
  5 商品類:
  6 [java] view plain copy
  7 
  8     public class Product {  
  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(int productId, String productName, String category,  
 19                 double price) {  
 20             super();  
 21             this.productId = productId;  
 22             this.productName = productName;  
 23             this.category = category;  
 24             this.price = price;  
 25         }  
 26       
 27         public String toString() {  
 28             return "Product [productId=" + productId + ", productName="  
 29                     + productName + ", category=" + category + ", price=" + price  
 30                     + "]";  
 31         }  
 32       
 33         public int getProductId() {  
 34             return productId;  
 35         }  
 36       
 37         public void setProductId(int productId) {  
 38             this.productId = productId;  
 39         }  
 40       
 41         public String getProductName() {  
 42             return productName;  
 43         }  
 44       
 45         public void setProductName(String productName) {  
 46             this.productName = productName;  
 47         }  
 48       
 49         public String getCategory() {  
 50             return category;  
 51         }  
 52       
 53         public void setCategory(String category) {  
 54             this.category = category;  
 55         }  
 56       
 57         public double getPrice() {  
 58             return price;  
 59         }  
 60       
 61         public void setPrice(double price) {  
 62             this.price = price;  
 63         }  
 64       
 65     }  
 66 
 67 商品條目信息類:
 68 [java] view plain copy
 69 
 70     public class ProductItem {  
 71         private Product product;//購買的商品  
 72         private int count;//商品數量  
 73         public double totalMoney(){//小計  
 74             double price=product.getPrice();//獲取商品單價  
 75             return price*count;  
 76         }  
 77           
 78         public ProductItem() {  
 79             super();  
 80         }  
 81       
 82         public ProductItem(Product product, int count) {  
 83             super();  
 84             this.product = product;  
 85             this.count = count;  
 86         }  
 87       
 88         public Product getProduct() {  
 89             return product;  
 90         }  
 91         public void setProduct(Product product) {  
 92             this.product = product;  
 93         }  
 94         public int getCount() {  
 95             return count;  
 96         }  
 97         public void setCount(int count) {  
 98             this.count = count;  
 99         }  
100           
101     }  
102 
103 
104 購物車類:
105 [java] view plain copy
106 
107     import java.util.Collection;  
108     import java.util.Iterator;  
109     import java.util.LinkedHashMap;  
110     import java.util.Map;  
111     public class ShoppingCart {//購物車  
112         //key:商品編號 value:商品條目  
113         private Map<Integer,ProductItem> map=new LinkedHashMap<Integer,ProductItem>();  
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<ProductItem> productItems = map.values();  
126             Iterator<ProductItem> 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<ProductItem> productItems = map.values();  
163             Iterator<ProductItem> iterator = productItems.iterator();  
164             while(iterator.hasNext()){  
165                 ProductItem productItem = iterator.next();  
166                 double money=productItem.totalMoney();  
167                 total+=money;  
168             }  
169             return total;  
170         }  
171     }  
172 
173 
174 測試類:
175 [java] view plain copy
176 
177         public class ShoppingCartTest {  
178           
179             public static void main(String[] args) {  
180                 ShoppingCart cart=new ShoppingCart();  
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         } 

 


免責聲明!

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



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