Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Please Create a new code for java: Please do not copy and paste a code from a previously answered question unless you modify it to

Please Create a new code for java:

Please do not copy and paste a code from a previously answered question unless you modify it to satify the given tests at the end because they are not adequate enough to satisfy anything otherwise I feel my question is wasted.

21.17 Ch 7 Program: Online shopping cart (Java)

Note: Creating multiple Scanner objects for the same input stream yields unexpected behavior. Thus, good practice is to use a single Scanner object for reading input from System.in. That Scanner object can be passed as an argument to any methods that read input. 3

(1) Create a class called ItemToPurchase.java per the following specifications:

* Private fields

* string itemDescription - Initialized in default constructor to "none"

* Parameterized constructor to assign item name, item description, item price, and item quantity (default values of 0). (1 pt)

* Public member methods

* setDescription() mutator & getDescription() accessor (2 pts)

* printItemCost() - Outputs the item name followed by the quantity, price, and subtotal

* printItemDescription() - Outputs the item name and description

Ex. of printItemCost() output:

Bottled Water 10 @ $1 = $10

Ex. of printItemDescription() output:

Bottled Water: Deer Park, 12 oz.

(2) Create two new files:

* ShoppingCart.java - Class definition

* ShoppingCartManager.java - Contains main() method

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

* String customerName - Initialized in default constructor to "none"

* String currentDate - Initialized in default constructor to "January 1, 2016"

* ArrayList cartItems

* Default constructor

* Parameterized constructor which takes the customer name and date as parameters (1 pt)

* Public member methods

* getCustomerName() accessor (1 pt)

* getDate() accessor (1 pt)

* addItem()

- Adds an item to cartItems array. Has parameter ItemToPurchase. Does not return anything.

* removeItem()

- Removes item from cartItems array. Has a string (an item's name) parameter. Does not return anything.

- If item name cannot be found, output this message: Item not found in cart. Nothing removed.

* modifyItem()

- Modifies an item's description, price, and/or quantity. Has parameter ItemToPurchase. Does not return anything.

- If item can be found (by name) in cart, check if parameter has default values for description, price, and quantity. If not, modify item in cart.

- If item cannot be found (by name) in cart, output this message: Item not found in cart. Nothing modified.

* getNumItemsInCart() (2 pts)

- Returns quantity of all items in cart. Has no parameters.

* getCostOfCart() (2 pts)

- Determines and returns the total cost of items in cart. Has no parameters.

* printTotal()

- Outputs total of objects in cart.

- If cart is empty, output this message: SHOPPING CART IS EMPTY

* printDescriptions()

- Outputs each item's description.

Ex. of printTotal() output:

John Doe's Shopping Cart - February 1, 2016 Number of Items: 8 Nike Romaleos 2 @ $189 = $378 Chocolate Chips 5 @ $3 = $15 Powerbeats 2 Headphones 1 @ $128 = $128 Total: $521

Ex. of printDescriptions() output:

John Doe's Shopping Cart - February 1, 2016 Item Descriptions Nike Romaleos: Volt color, Weightlifting shoes Chocolate Chips: Semi-sweet Powerbeats 2 Headphones: Bluetooth headphones

(3) In main(), prompt the user for a customer's name and today's date. Output the name and date. Create an object of type ShoppingCart. (1 pt)

Ex.

Enter Customer's Name: John Doe Enter Today's Date: February 1, 2016 Customer Name: John Doe Today's Date: February 1, 2016

(4) Implement the printMenu() method. printMenu() has a ShoppingCart parameter, and outputs a menu of options to manipulate the shopping cart. Each option is represented by a single character. Build and output the menu within the method.

If the an invalid character is entered, continue to prompt for a valid choice. Hint: Implement Quit before implementing other options. Call printMenu() in the main() method. Continue to execute the menu until the user enters q to Quit. (3 pts)

Ex:

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:

(5) Implement Output shopping cart menu option. (3 pts)

Ex:

OUTPUT SHOPPING CART John Doe's Shopping Cart - February 1, 2016 Number of Items: 8 Nike Romaleos 2 @ $189 = $378 Chocolate Chips 5 @ $3 = $15 Powerbeats 2 Headphones 1 @ $128 = $128 Total: $521

(6) Implement Output item's description menu option. (2 pts)

Ex.

OUTPUT ITEMS' DESCRIPTIONS John Doe's Shopping Cart - February 1, 2016 Item Descriptions Nike Romaleos: Volt color, Weightlifting shoes Chocolate Chips: Semi-sweet Powerbeats 2 Headphones: Bluetooth headphones

(7) Implement Add item to cart menu option. (3 pts)

Ex:

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

(8) Implement Remove item menu option. (4 pts)

Ex:

REMOVE ITEM FROM CART Enter name of item to remove: Chocolate Chips

(9) Implement Change item quantity menu option. Hint: Make new ItemToPurchase object and use ItemToPurchase modifiers before using modifyItem() method. (5 pts)

Ex:

CHANGE ITEM QUANTITY Enter the item name: Nike Romaleos Enter the new quantity: 3

The Code that is created must then satistfy these tests to receive points. Please satify as many as you can.

1: Unit test

Tests that ItemToPurchase("Bottled Water", "Deer Park, 12 oz.", 1, 10) correctly initializes item

2: Unit test

Tests testItem.setDescription("Volt color, Weightlifting shoes") and testItem.getDescription() == "Volt color, Weightlifting shoes" (ItemToPurchase)

3: Unit test

Tests default constructor and accessors for ShoppingCart

4: Unit test

Tests ShoppingCart("John Doe", "February 1, 2016") correctly initializes cart

5: Unit test

Tests that getNumItemsInCart() returns 6 (ShoppingCart)

6: Unit test

Test that getCostOfCart() returns 9 (ShoppingCart)

7: Compare output

Input:

John Doe February 1, 2016 q

Expected output:

Enter Customer's Name: Enter Today's Date: Customer Name: John Doe Today's Date: February 1, 2016

8: Compare output

Input:

John Doe February 1, 2016 f s q

Expected output:

Enter Customer's Name: Enter Today's Date: Customer Name: John Doe Today's Date: February 1, 2016 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: Choose an option: Choose an option:

9: Compare output

Input

John Doe February 1, 2016 o q

Expected output ends with

OUTPUT SHOPPING CART John Doe's Shopping Cart - February 1, 2016 Number of Items: 0 SHOPPING CART IS EMPTY Total: $0 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:

10: Compare output

Input

John Doe February 1, 2016 a Nike Romaleos Volt color, Weightlifting shoes 189 2 o q

Expected output ends with:

ADD ITEM TO CART Enter the item name: Enter the item description: Enter the item price: Enter the item quantity: 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 SHOPPING CART John Doe's Shopping Cart - February 1, 2016 Number of Items: 2 Nike Romaleos 2 @ $189 = $378 Total: $378 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:

11: Compare output

Input:

John Doe February 1, 2016 a Nike Romaleos Volt color, Weightlifting shoes 189 2 d Spectre DVD q

Expected output ends with

REMOVE ITEM FROM CART Enter name of item to remove: Item not found in cart. Nothing removed. 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:

12: Compare output

Input:

John Doe February 1, 2016 a Nike Romaleos Volt color, Weightlifting shoes 189 2 a Chocolate Chips Semi-sweet 3 5 a Powerbeats 2 Headphones Bluetooth headphones 128 1 d Chocolate Chips o q

Expected output ends with:

REMOVE ITEM FROM CART Enter name of item to remove: 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 SHOPPING CART John Doe's Shopping Cart - February 1, 2016 Number of Items: 3 Nike Romaleos 2 @ $189 = $378 Powerbeats 2 Headphones 1 @ $128 = $128 Total: $506 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:

13: Compare output

Input:

John Doe February 1, 2016 a Nike Romaleos Volt color, Weightlifting shoes 189 2 a Chocolate Chips Semi-sweet 3 5 a Powerbeats 2 Headphones Bluetooth headphones 128 1 c Thermos Stainless Steel King 5 q

Expected output ends with:

CHANGE ITEM QUANTITY Enter the item name: Enter the new quantity: Item not found in cart. Nothing modified. 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:

14: Compare output

Input:

John Doe February 1, 2016 a Nike Romaleos Volt color, Weightlifting shoes 189 2 a Chocolate Chips Semi-sweet 3 5 a Powerbeats 2 Headphones Bluetooth headphones 128 1 c Nike Romaleos 3 o q

Expected output ends with:

OUTPUT SHOPPING CART John Doe's Shopping Cart - February 1, 2016 Number of Items: 9 Nike Romaleos 3 @ $189 = $567 Chocolate Chips 5 @ $3 = $15 Powerbeats 2 Headphones 1 @ $128 = $128 Total: $710 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:

15: Compare output

Input:

John Doe February 1, 2016 a Nike Romaleos Volt color, Weightlifting shoes 189 2 a Chocolate Chips Semi-sweet 3 5 a Powerbeats 2 Headphones Bluetooth headphones 128 1 i q

Expected output ends with:

OUTPUT ITEMS' DESCRIPTIONS John Doe's Shopping Cart - February 1, 2016 Item Descriptions Nike Romaleos: Volt color, Weightlifting shoes Chocolate Chips: Semi-sweet Powerbeats 2 Headphones: Bluetooth headphones 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:

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Graph Databases In Action

Authors: Dave Bechberger, Josh Perryman

1st Edition

1617296376, 978-1617296376

More Books

Students also viewed these Databases questions