Mysitque
2013-11-18 13:15:00 UTC
In this exercise you will implement a shopping cart using the ArrayList class. The file Item.java contains the definition of a
class named Item that models an item one would purchase (this class was used in an earlier lab). An item has a name, price,
and quantity (the quantity purchased). The file Shop.java is an incomplete program that models shopping.
1. Complete Shop.java as follows:
a. Declare and instantiate a variable cart to be an empty ArrayList.
b. Fill in the statements in the loop to add an item to the cart and to print the cart contents (using the default toString in
the ArrayList class). Comments in the code indicate where these statements go.
c. Compile your program and run it.
2. You should have observed two problems with using the default printing for the cart object: the output doesn’t look very
good and the total price of the goods in the cart is not computed or printed. Modify the program to correct these
problems by replacing the print statement with a loop that does the following:
a. gets each item from the cart and prints the item
b. computes the total price of the items in the cart (you need to use the getPrice and getQuantity methods of the Item
class). The total price should be printed after the loop.
3. Compile and run your program.
Here is the driver:
import java.text.NumberFormat;
public class Item
{
private String name;
private double price;
private int quantity;
// ----------------------------------------...
// Create a new item with the given attributes.
// ----------------------------------------...
public Item (String itemName, double itemPrice, int numPurchased)
{
name = itemName;
price = itemPrice;
quantity = numPurchased;
}
// ----------------------------------------...
// Return a string with the information about the item
// ----------------------------------------...
public String toString ()
{
NumberFormat fmt = NumberFormat.getCurrencyInstance();
return (name + "\t" + fmt.format(price) + "\t" + quantity + "\t"
+ fmt.format(price*quantity));
}
// ----------------------------------------...
// Returns the unit price of the item
// ----------------------------------------...
public double getPrice()
{
return price;
}
// ----------------------------------------...
// Returns the name of the item
// ----------------------------------------...
public String getName()
{
return name;
}
// ----------------------------------------...
// Returns the quantity of the item
// ----------------------------------------...
public int getQuantity()
{
return quantity;
}
}
And here is Shop.java
package Mackenzie;
//***************************************************************
//Shop.java
//Mackenzie Pardoe
// 11/13/13
//Uses the Item class to create items and add them to a shopping
//cart stored in an ArrayList.
//***************************************************************
import java.util.ArrayList;
import java.util.Scanner;
public class Shop
{
public static void main (String[] args)
{
ArrayList
Item item;
String itemName;
double itemPrice;
int quantity;
Scanner scan = new Scanner(System.in);
String keepShopping = "y";
do
{
System.out.print ("Enter the name of the item: ");
itemName = scan.nextLine();
System.out.print ("Enter the unit price: ");
itemPrice = scan.nextDouble();
System.out.print ("Enter the quantity: ");
quantity = scan.nextInt();
//*** create a new item and add it to the cart
item = new Item(itemName, itemPrice, quantity);
cart.add(item);
//*** print the contents of the cart object using println
System.out.println("Current items in your cart: " + cart);
System.out.print ("Continue shopping (y/n)? ");
keepShopping = scan.nextLine();
}
while (keepShopping.equals("y"));
}
double finalPrice = 0;
{
for (int i = 0; i
item = cart.get(i);
}
for (Item xitem:cart)
{
}
}
}
I need help ASAP as this is due tomorrow! Please help me I am really stuck. I know there is something wrong with my loop but I don't know how to fix it. Help please! Thanks!