This program extends the earlier "Online shopping cart" program. (Consider first saving your earlier program).
Private fields
Public instance member methods
Ex. of printItemCost() output:
Bottled Water 10 @ $1 = $10
Ex. of printItemDescription() output:
Bottled Water: Deer Park, 12 oz.
Build the ShoppingCart class with the following specifications. Note: Some can be method stubs (empty methods) initially, to be completed in later steps.
Private fields
Public member methods
addItem()
Adds an item to cartItems array. Has parameter ItemToPurchase. Does not return
anything
removeItem()
modifyItem()
getNumItemsInCart()
getCostOfCart()
printTotal()
Example of PrintTotal()output:
John Doe's Shopping Cart - February 1, 2020
Number of Items: 8
Nike Romaleos 2 @$189 = $378
Chocolate Chips 5 @ $3 = $15
Powerbeats 2 Headphones 1 @ $128 = $128
Total: $521
printDescription()
Example of printDescription()output:
John Doe's Shopping Cart - February 1, 2020
Item Descriptions
Nike Romaleos: Volt color, Weightlifting shoes Chocolate Chips: Semi-sweet
Powerbeats 2 Headphones: Bluetooth headphones
Output Example:
Enter Customer's Name: John Doe
Enter Today's Date:
February 1, 2020
Customer Name: John Doe
Today's Date: February 1, 2020
Output Example:
MENU
a - Add item to cart
d - Remove item from cart
c - Change item quantity
i - Output items' descriptions
o - Output shopping cart
q - Quit
Choose an option:
Output Example:
OUTPUT SHOPPING CART
John Doe's Shopping Cart - February 1, 2020
Number of Items: 8
Nike Romaleos 2 @ $189 = $378
Chocolate Chips 5 @ $3 = $15
Powerbeats 2 Headphones 1 @ $128 = $128
Total: $521
Output Example:
OUTPUT ITEMS' DESCRIPTIONS
John Doe's Shopping Cart - February 1, 2020
Item Descriptions
Nike Romaleos: Volt color, Weightlifting shoes
Chocolate Chips: Semi-sweet
Powerbeats 2 Headphones: Bluetooth headphones
Output Example:
ADD ITEM TO CART
Enter the item name:
Nike Romaleos
Enter the item description: Volt color, Weightlifting shoes
Enter the item price:
189
Enter the item quantity: 2
Output Example:
REMOVE ITEM FROM CART
Enter name of item to remove: Chocolate Chips
Output Example:
CHANGE ITEM QUANTITY
Enter the item name: Nike
/********* ItemToPurchase.java *******/
public class ItemToPurchase {
// Declaring instance variables
private String itemDescription;
private String itemName;
private int itemPrice;
private int itemQuantity;
// Zero argumented constructor
public ItemToPurchase() {
itemDescription = "none";
itemQuantity = 0;
itemPrice = 0;
itemName = "";
}
// Parameterized constructor
public ItemToPurchase(String name, String description,
int price,
int
itemQuantity) {
this.itemDescription =
description;
this.itemName = name;
this.itemPrice = price;
this.itemQuantity =
itemQuantity;
}
// getters and setters
public String getDescription() {
return itemDescription;
}
public void setDescription(String itemDescription)
{
this.itemDescription =
itemDescription;
}
public void printItemCost() {
System.out.println(itemName + " " +
itemQuantity + " @ " + itemPrice+ " = $" + (itemQuantity *
itemPrice));
}
public void printItemDescription() {
System.out.println(itemName + " " +
itemDescription);
}
public String getName() {
return itemName;
}
public void setName(String name) {
this.itemName = name;
}
public int getPrice() {
return itemPrice;
}
public void setPrice(int itemPrice) {
this.itemPrice = itemPrice;
}
public int getItemQuantity() {
return itemQuantity;
}
public void setItemQuantity(int itemQuantity)
{
this.itemQuantity =
itemQuantity;
}
}
/************************************************/
/************************************************/
/******* ShoppingCart.java *******/
import java.util.ArrayList;
public class ShoppingCart {
private String customerName;
private String currentDate;
ArrayList<ItemToPurchase> cartItems =
null;
public ShoppingCart() {
this.cartItems = new
ArrayList<ItemToPurchase>();
currentDate = "January 1,
2016";
customerName = "none";
}
public ShoppingCart(String name, String
date) {
this.cartItems = new
ArrayList<ItemToPurchase>();
this.currentDate = date;
this.customerName = name;
}
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String
customerName) {
this.customerName =
customerName;
}
public String getCurrentDate() {
return currentDate;
}
public void setCurrentDate(String
currentDate) {
this.currentDate =
currentDate;
}
/*
* This method will add the Item to the Cart
*/
public void addItem(ItemToPurchase i) {
cartItems.add(i);
}
/*
* This method will remove the Item from the Cart based
on the Item name
*/
public void removeItem(String name) {
boolean found =
false;
for (ItemToPurchase
i : cartItems) {
if
(i.getName().equalsIgnoreCase(name)) {
cartItems.remove(i);
found = true;
break;
}
}
if (!found)
System.out.println("Item not found in cart. Nothing
removed");
}
/*
* This method will modify the quantity of an
Item
*/
public void modifyItem(ItemToPurchase item) {
boolean found =
false;
for (ItemToPurchase
i : cartItems) {
if
(i.getName().equalsIgnoreCase(item.getName())) {
i.setItemQuantity(item.getItemQuantity());
found = true;
break;
}
}
if (!found)
System.out.println("Item not found in cart. Nothing
removed");
}
/*
* This method will return the no of Items in the
cart
*/
public int getNumItemsInCart() {
int sum = 0;
for (ItemToPurchase i : cartItems)
{
sum = sum +
i.getItemQuantity();
}
return sum;
}
/*
* This method will calculate all Items total
*/
public double getCostOfCart() {
double sum = 0;
for (ItemToPurchase i : cartItems)
{
sum = sum +
i.getPrice();
}
return sum;
}
/*
* This method will display all Items total
*/
public void printTotal() {
int tot = 0;
if (cartItems != null &&
cartItems.size() > 0) {
System.out.println(customerName + "'s Shopping Cart - "
+
currentDate);
System.out.println("Number of Items: " +
getNumItemsInCart());
System.out.println();
for
(ItemToPurchase i : cartItems) {
// Calculating the total
tot += i.getPrice() * i.getItemQuantity();
i.printItemCost();
}
System.out.println("\nTotal : $" + tot);
} else {
System.out.println("SHOPPING CART IS EMPTY");
}
}
/*
* This method will display the Items
Descriptions
*/
public void printDescription() {
System.out.println(customerName + "'s Shopping Cart - " +
currentDate);
System.out.println("Number of
Items: " + getNumItemsInCart());
System.out.println();
System.out.println("Item
Descriptions");
for (ItemToPurchase i : cartItems)
{
i.printItemDescription();
}
}
}
/************************************************/
/************************************************/
/******* ShoppingCartManager.java *****/
import java.util.Scanner;
public class ShoppingCartManager {
public static void main(String[] args)
{
/*
* Creating an Scanner class object
which is used to get the inputs
* entered by the user
*/
Scanner scan = new Scanner(System.in);
//Getting the input entered by the user
System.out.println("Enter Customer's Name: ");
String customerName = scan.nextLine();
//Getting the input entered by the user
System.out.println("Enter Today's Date: ");
String currentDate = scan.nextLine();
// Creaing an instance of ShoppingCart
ShoppingCart s = new ShoppingCart(customerName, currentDate);
System.out.println();
System.out.println("Customer Name: " + s.getCustomerName());
System.out.println("Today's Date: " + s.getCurrentDate());
printMenu(s);
}
public static void printMenu(ShoppingCart s) {
while (true) {
//displaying the menu
System.out.println("MENU");
System.out.println("a - Add item to cart");
System.out.println("d - Remove item from cart");
System.out.println("c - Change item quantity");
System.out.println("i - Output items' descriptions");
System.out.println("o - Output shopping cart");
System.out.println("q - Quit");
//getting the choice entered by the user
System.out.print("\nChoose an option: ");
Scanner scan = new Scanner(System.in);
char ch = scan.next().charAt(0);
scan.nextLine();
if (ch == 'a' || ch == 'A') {
System.out.println("ADD ITEM TO CART");
System.out.println("Enter Item Name: ");
String name = scan.nextLine();
System.out.println("Enter Item Description: ");
String itemDescritpion = scan.nextLine();
System.out.println("Enter Item Price: ");
int itemPrice = scan.nextInt();
System.out.println("Enter Item Quantity: ");
int quantity = scan.nextInt();
scan.nextLine();
// Creating an instance of ItemToPurchase class
ItemToPurchase item = new ItemToPurchase(name,
itemDescritpion,itemPrice, quantity);
// Adding the Item to the ShoppingCart
s.addItem(item);
}
else if (ch == 'd' || ch == 'D') {
System.out.println("REMOVE ITEM FROM CART");
System.out.println("Enter name of item to remove: ");
String name = scan.nextLine();
s.removeItem(name);
}
else if (ch == 'c' || ch == 'C') {
System.out.println("CHANGE ITEM QUANTITY");
System.out.println("Enter the item name: ");
String name = scan.nextLine();
System.out.println("Enter the new quantity: ");
int quantity = scan.nextInt();
ItemToPurchase item = new ItemToPurchase();
item.setName(name);
item.setItemQuantity(quantity);
s.modifyItem(item);
}
else if (ch == 'I' || ch == 'i') {
System.out.println("OUTPUT ITEMS' DESCRIPTIONS");
s.printDescription();
}
else if (ch == 'O' || ch == 'o') {
System.out.println("OUTPUT SHOPPING CART");
s.printTotal();
}
else if (ch == 'q' || ch == 'Q') {
break;
}
}
}
}
/************************************************/
/************************************************/
Output:
/************************************************/
Get Answers For Free
Most questions answered within 1 hours.