首页 > 代码库 > 用java代码写一个简单的网上购物车程序

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

 

用java代码写一个简单的网上购物车程序