I need help with a project that I am working on. It is a shopping cart java program that should be setup with an array size of 5 and increased at increments of 3 if you go over 5 items. When I go over 5 items in increases however it changes the item names to null. See output below.
Here is the actual assignment:
In this exercise you will complete a class that implements a shopping cart as an array of items. The file Item.java contains the definition of a class named Item that models an item one would purchase. An item has a name, price, and quantity (the quantity purchased). The file ShoppingCart.java implements the shopping cart as an array of Item objects.
1. Complete the ShoppingCart class by doing the following:
a. Declare an instance variable cart to be an array of Items and instantiate cart in the constructor to be an array holding 5 Items.
b. Fill in the code for the increaseSize method. Your code should be similar to that in the CDCollection class handout but instead of doubling the size just increase it by 3 elements.
c. Fill in the code for the addToCart method. This method should add the item to the cart and update the totalPrice instance variable (note this variable takes into account the quantity).
d. Add a getTotalPrice() method to return the totalPrice.
e.. Compile your class.
2. Write a program that simulates shopping. The program should have a loop that continues as long as the user wants to shop. Each time through the loop read in the name, price, and quantity of the item the user wants to add to the cart. After adding an item to the cart, the cart contents should be printed along with a subtotal. After the loop, print a "Please pay ..." message with the total price of the items in the cart. Compile and run this class.
OUTPUT
Enter the name of the item: Apples
Enter the unit price: .5
Enter the quantity: 1
Shopping Cart
Item Unit Price Quantity Total
Apples $0.50 1 $0.50
Total Price: $0.50
Continue shoppping (y/n)?
y
Enter the name of the item: Oranges
Enter the unit price: .5
Enter the quantity: 1
Shopping Cart
Item Unit Price Quantity Total
Apples $0.50 1 $0.50
Oranges $0.50 1 $0.50
Total Price: $1.00
Continue shoppping (y/n)?
y
Enter the name of the item: Milk
Enter the unit price: 4
Enter the quantity: 1
Shopping Cart
Item Unit Price Quantity Total
Apples $0.50 1 $0.50
Oranges $0.50 1 $0.50
Milk $4.00 1 $4.00
Total Price: $5.00
Continue shoppping (y/n)?
y
Enter the name of the item: Bread
Enter the unit price: 2
Enter the quantity: 1
Shopping Cart
Item Unit Price Quantity Total
Apples $0.50 1 $0.50
Oranges $0.50 1 $0.50
Milk $4.00 1 $4.00
Bread $2.00 1 $2.00
Total Price: $7.00
Continue shoppping (y/n)?
y
Enter the name of the item: Eggs
Enter the unit price: 2
Enter the quantity: 1
Shopping Cart
Item Unit Price Quantity Total
Apples $0.50 1 $0.50
Oranges $0.50 1 $0.50
Milk $4.00 1 $4.00
Bread $2.00 1 $2.00
Eggs $2.00 1 $2.00
Total Price: $9.00
Continue shoppping (y/n)?
y
Enter the name of the item: Bacon
Enter the unit price: 6
Enter the quantity: 1
Shopping Cart
Item Unit Price Quantity Total
Apples $0.50 1 $0.50
null
null
null
null
Bacon $6.00 1 $6.00
Total Price: $15.00
Continue shoppping (y/n)?
n
Please pay $15.0
Shop
Shopping Cart
Item
Here is the actual assignment:
In this exercise you will complete a class that implements a shopping cart as an array of items. The file Item.java contains the definition of a class named Item that models an item one would purchase. An item has a name, price, and quantity (the quantity purchased). The file ShoppingCart.java implements the shopping cart as an array of Item objects.
1. Complete the ShoppingCart class by doing the following:
a. Declare an instance variable cart to be an array of Items and instantiate cart in the constructor to be an array holding 5 Items.
b. Fill in the code for the increaseSize method. Your code should be similar to that in the CDCollection class handout but instead of doubling the size just increase it by 3 elements.
c. Fill in the code for the addToCart method. This method should add the item to the cart and update the totalPrice instance variable (note this variable takes into account the quantity).
d. Add a getTotalPrice() method to return the totalPrice.
e.. Compile your class.
2. Write a program that simulates shopping. The program should have a loop that continues as long as the user wants to shop. Each time through the loop read in the name, price, and quantity of the item the user wants to add to the cart. After adding an item to the cart, the cart contents should be printed along with a subtotal. After the loop, print a "Please pay ..." message with the total price of the items in the cart. Compile and run this class.
OUTPUT
Enter the name of the item: Apples
Enter the unit price: .5
Enter the quantity: 1
Shopping Cart
Item Unit Price Quantity Total
Apples $0.50 1 $0.50
Total Price: $0.50
Continue shoppping (y/n)?
y
Enter the name of the item: Oranges
Enter the unit price: .5
Enter the quantity: 1
Shopping Cart
Item Unit Price Quantity Total
Apples $0.50 1 $0.50
Oranges $0.50 1 $0.50
Total Price: $1.00
Continue shoppping (y/n)?
y
Enter the name of the item: Milk
Enter the unit price: 4
Enter the quantity: 1
Shopping Cart
Item Unit Price Quantity Total
Apples $0.50 1 $0.50
Oranges $0.50 1 $0.50
Milk $4.00 1 $4.00
Total Price: $5.00
Continue shoppping (y/n)?
y
Enter the name of the item: Bread
Enter the unit price: 2
Enter the quantity: 1
Shopping Cart
Item Unit Price Quantity Total
Apples $0.50 1 $0.50
Oranges $0.50 1 $0.50
Milk $4.00 1 $4.00
Bread $2.00 1 $2.00
Total Price: $7.00
Continue shoppping (y/n)?
y
Enter the name of the item: Eggs
Enter the unit price: 2
Enter the quantity: 1
Shopping Cart
Item Unit Price Quantity Total
Apples $0.50 1 $0.50
Oranges $0.50 1 $0.50
Milk $4.00 1 $4.00
Bread $2.00 1 $2.00
Eggs $2.00 1 $2.00
Total Price: $9.00
Continue shoppping (y/n)?
y
Enter the name of the item: Bacon
Enter the unit price: 6
Enter the quantity: 1
Shopping Cart
Item Unit Price Quantity Total
Apples $0.50 1 $0.50
null
null
null
null
Bacon $6.00 1 $6.00
Total Price: $15.00
Continue shoppping (y/n)?
n
Please pay $15.0
Shop
import java.util.Scanner; public class Shop { public static void main (String[] args) { ShoppingCart cart = new ShoppingCart(); Item item; String itemName; double itemPrice; double totalPrice = 0; int quantity; Scanner scan = new Scanner(System.in); String keepShopping = "y"; do { System.out.print("Enter the name of the item: "); itemName = scan.next(); System.out.print("Enter the unit price: "); itemPrice = scan.nextDouble(); System.out.print("Enter the quantity: "); quantity = scan.nextInt(); totalPrice +=(quantity*itemPrice); cart.addToCart(itemName, itemPrice, quantity); System.out.println(cart.toString()); System.out.println("Continue shoppping (y/n)?"); keepShopping = scan.next(); } while (keepShopping.equals("y")); System.out.println("Please pay $"+ totalPrice); } }
Shopping Cart
import java.text.NumberFormat; public class ShoppingCart { private int itemCount; // total number of items in the cart private double totalPrice; // total price of items in the cart private Item cart[]; // ----------------------------------------------------------- // Creates an empty shopping cart with a capacity of 5 items. // ----------------------------------------------------------- public ShoppingCart() { cart = new Item[5]; itemCount = 0; totalPrice = 0.0; } // ------------------------------------------------------- // Adds an item to the shopping cart. // Check to make sure there is room in the car first // ------------------------------------------------------- public void addToCart(String itemName, double itemPrice, int quantity) { if (itemCount == cart.length) { increaseSize(); } cart[itemCount] = new Item(itemName, itemPrice, quantity); totalPrice += (itemPrice * quantity); itemCount++; } // ------------------------------------------------------- // Returns the contents of the cart together with // summary information. // ------------------------------------------------------- public String toString() { NumberFormat fmt = NumberFormat.getCurrencyInstance(); String contents = "\nShopping Cart\n"; contents += "\nItem\t\tUnit Price\tQuantity\tTotal\n"; for (int i = 0; i < itemCount; i++) contents += cart[i] + "\n"; contents += "\nTotal Price: " + fmt.format(totalPrice); contents += "\n"; return contents; } // --------------------------------------------------------- // Increases the capacity of the shopping cart by 3 // --------------------------------------------------------- private void increaseSize () { Item[] temp = new Item[cart.length + 3]; for (int num = 0; num < cart.length; num++) { temp[num] = cart[num]; cart = temp; } } }
Item
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; } }