Question
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
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started