import java.util.ArrayList;
public class Checkout{
private ArrayList checkoutList;
Checkout(){
checkoutList= new ArrayList();
}
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("nt-------------------");
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());
}
}

import java.util.ArrayList;public class Checkout{private.docx

  • 1.
    import java.util.ArrayList; public classCheckout{ private ArrayList checkoutList; Checkout(){ checkoutList= new ArrayList(); } public int numberOfItems(){ return checkoutList.size(); } public int totalCost(){ int sum=0; for (Item i : checkoutList){ sum+=i.getCost(); } return sum; } public int totalTax(){
  • 2.
    return (int) java.lang.Math. round (GroceryStore. TAX_RATE *totalCost()/100.0); } publicvoid clear(){ checkoutList.clear(); } public void enterItem(Item i){ checkoutList.add(i); } public String toString(){ ; System. out .println("t"+GroceryStore. STORE_NAME ); System. out .println("nt-------------------"); for (Item i : checkoutList){
  • 3.
    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));
  • 4.
    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",
  • 5.
    105, "Caramel", 50)); checkout.enterItem(newRice("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
  • 6.
    public class Baguetteextends 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()); } }
  • 7.
    public class Riceextends 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
  • 8.