📄 shoppingcart.java
字号:
package SCartClass;
import BookClass.BookDetail;
import CItemClass.ShoppingCartItem;
import java.util.*;
import java.lang.Math;
public class ShoppingCart
{
private HashMap items=null;
private int numberOfItems=0;
public ShoppingCart()
{
items=new HashMap();
}
//把书放入购物车
public synchronized void add(String BNum,BookDetail book)
{
if(items.containsKey(BNum)){
ShoppingCartItem scitem=(ShoppingCartItem)items.get(BNum);
scitem.incrementQuantity();
System.out.println("in add,quantity is"+scitem.getQuantity());
}else{
ShoppingCartItem newItem=new ShoppingCartItem(book);
items.put(BNum,newItem);
System.out.println("in add,quantity is"+newItem.getQuantity());
}
}
//从购物车中删除一本书
public synchronized void remove(String BNum)
{
if(items.containsKey(BNum)){
ShoppingCartItem scitem=(ShoppingCartItem)items.get(BNum);
scitem.decrementQuantity();
if(scitem.getQuantity()<=0){
items.remove(BNum);
}
numberOfItems--;
}
}
//列出购物车中所有物品列表
public synchronized List getItems()
{
List results=new ArrayList();
Iterator items=this.items.values().iterator();
while(items.hasNext()){
results.add(items.next());
}
return(results);
}
/*
//
protected void finalize()throws Throwable{
items.clear();
}
*/
//购物车物品数
public synchronized int getNumberOfItems()
{
numberOfItems=0;
/*==================================================
List results=new ArrayList();
Iterator items=this.items.values().iterator();
while(items.hasNext()){
results.add(items.next());
}*/
for(Iterator i=getItems().iterator();i.hasNext();){
ShoppingCartItem item=(ShoppingCartItem)i.next();
numberOfItems+=item.getQuantity();
System.out.println("number of items is"+numberOfItems);
}
return numberOfItems;
}
//购物车物品总价格
public synchronized double getTotal()
{
double amount=0.0;
/*==================================================
List results=new ArrayList();
Iterator items=this.items.values().iterator();
while(items.hasNext()){
results.add(items.next());
}*/
for(Iterator i=getItems().iterator();i.hasNext();){
ShoppingCartItem item=(ShoppingCartItem)i.next();
BookDetail bookDetail=(BookDetail)item.getItem();
amount+=(bookDetail.getBPrice()*item.getQuantity());
}
return roundOff(amount);
}
//------------------------------------以后代码出错可能与下面这段代码有关,原来x是double类型的
private double roundOff(double x)
{
//double ran=x*100;
double val=Math.round(x*100);
return (val/100.0);
}
//清空购物车
public synchronized void clear()
{
System.out.println("Clearing cart.");
items.clear();
numberOfItems=0;
}
/*
public static void main(String []args)
{
ShoppingCart sc=new ShoppingCart();
BookDBAO bk=new BookDBAO("sss","www","wwwwww",12.0,"good",20)
sc.add()
}*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -