[ad_1]
import java.util.ArrayList;
public class Checkout{
private ArrayList<Item> checkoutList;
Checkout(){
checkoutList= new ArrayList<Item>();
}
public int numberOfItems(){
return checkoutList.size();
}
public int totalCost(){
int sum=0;
for (Item i : checkoutList){
sum+=i.getCost();
}
return sum;
}
public int totalTax(){
return (int) java.lang.Math.round(GroceryStore.TAX_RATE*totalCost()/100.0);
}
public void clear(){
checkoutList.clear();
}
public void enterItem(Item i){
checkoutList.add(i);
}
public String toString(){
;
System.out.println(“\t”+GroceryStore.STORE_NAME);
System.out.println(“\n\t——————-“);
for (Item i : checkoutList){
System.out.println(i.toString());
}
System.out.println(“\nTax “+GroceryStore.cents2dollarsAndCents(totalTax()));
System.out.println(“\nTotal Cost “+GroceryStore.cents2dollarsAndCents(totalCost()+totalTax()));
return “”;
}
}
// Test Check out
public class TestCheckout {
public static void main(String[] args) {
Checkout checkout = new Checkout();
checkout.enterItem(new Rice(“Basmati Rice”, 2.25, 399));
checkout.enterItem(new Baguette(“Wheat Baguette”, 105));
checkout.enterItem(new FlavoredBaguette(“White Baguette”, 145, “Chocolate”, 50));
checkout.enterItem(new Egg(“Grade A Organic Eggs”, 4, 399));
System.out.println(“\nNumber of items: ” + checkout.numberOfItems() + “\n”);
System.out.println(“\nTotal cost: ” + checkout.totalCost() + “\n”);
System.out.println(“\nTotal tax: ” + checkout.totalTax() + “\n”);
System.out.println(“\nCost + Tax: ” + (checkout.totalCost() + checkout.totalTax()) + “\n”);
System.out.println(checkout);
checkout.clear();
checkout.enterItem(new Baguette(“Organic Baguette”, 145));
checkout.enterItem(new FlavoredBaguette(“Wheat Baguette”, 105, “Caramel”, 50));
checkout.enterItem(new Rice(“Indian Brown Rice”, 1.33, 89));
checkout.enterItem(new Egg(“Grade B Egg”, 4, 399));
checkout.enterItem(new Rice(“Arabic White Rice”, 1.5, 209));
checkout.enterItem(new Rice(“Spanish Yellow Rice”, 3.0, 109));
System.out.println(“\nNumber of items: ” + checkout.numberOfItems() + “\n”);
System.out.println(“\nTotal cost: ” + checkout.totalCost() + “\n”);
System.out.println(“\nTotal tax: ” + checkout.totalTax() + “\n”);
System.out.println(“\nCost + Tax: ” + (checkout.totalCost() + checkout.totalTax()) + “\n”);
System.out.println(checkout);
}
//Baguette
public class Baguette extends Item {
private double cost;
public Baguette(String name, double cost) {
super(name);
this.cost = cost;
}
@Override
public int getCost()
{
return (int)Math.ceil(cost);
}
@Override
public String toString() {
return name+” @” + GroceryStore.cents2dollarsAndCents(getCost());
}
}
public class Rice extends Item {
double weight;
double price;
public Rice(String name, double weight, double price) {
super(name);
this.weight = weight;
this.price = price;
}
@Override
public int getCost() {
return (int) Math.ceil(weight * price);
}
@Override
public String toString() {
return “rice” + weight + “lbs @” + GroceryStore.cents2dollarsAndCents(getCost());
}
}
[ad_2]