Online shopping cart (continued) (Java)
Hello, I need help with Java to figure this out. In my Shopping Cart Manager Class (Bottom Code), I get "Resource leak: 'sc' is never closed." I have tried multiple things and cannot figure it out. Thank you.
Online shopping cart (continued) (Java)
Hello, I need help with Java to figure this out. In my Shopping Cart Manager Class (Bottom Code), I get "Resource leak: 'sc' is never closed." I have tried multiple things and cannot figure it out. Thank you.
/*Shopping Cart Manager Class*/
import java.util.Scanner;
public class ShoppingCartManager {
public static void main(String[] args) {
String customerName,
currentDate;
Scanner sc = new
Scanner(System.in);
System.out.print("Enter Customer's
Name:");
customerName =
sc.nextLine().toString().trim();
System.out.println();
System.out.print("Enter Today's
Date:");
currentDate =
sc.nextLine().toString().trim();
System.out.println();
ShoppingCart cart = new
ShoppingCart(customerName, currentDate);
System.out.println("Customer Name:"
+ cart.getCustomerName());
System.out.println("Today's Date:"
+ cart.getDate());
printMenu(cart);
}
/* Prints the menu, and builds the shopping cart *
object passed in as parameter */
private static void
printMenu(ShoppingCart cart) {
Scanner sc = new
Scanner(System.in);
char choice = 'z';
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' Description");
System.out.println("o - Output
Shopping Cart");
System.out.println("q -
Quit");
System.out.print("Enter an
option:");
choice =
sc.nextLine().trim().charAt(0);
while (choice != 'q') {
if (choice !=
'a' && choice != 'd' && choice != 'c' &&
choice != 'i' && choice != 'o') {
// An invalid choice is made
// Prompt for choice again
System.out.print("Enter an option:");
choice = sc.nextLine().trim().charAt(0);
continue;
} else {
switch (choice) {
case 'o': {
System.out.println("OUTPUT
SHOPPING CART");
cart.printTotal();
break;
}
case 'i': {
System.out.println("OUTPUT
ITEMS' DESCRIPTIONS");
cart.printDescriptions();
break;
}
case 'a': {
String name, desc;
int price, qty;
System.out.println("ADD ITEM
TO CART");
System.out.println("Enter
Item name:");
name =
sc.nextLine().trim().toString();
System.out.println("Enter
Item description:");
desc =
sc.nextLine().trim().toString();
System.out.println("Enter
Item price:");
price = sc.nextInt();
sc.nextLine();
System.out.println("Enter
Item quantity:");
qty = sc.nextInt();
sc.nextLine();
ItemToPurchase itemToPurchase
= new ItemToPurchase(name, desc, qty, price);
cart.addItem(itemToPurchase);
break;
}
case 'd': {
String itemToRemove;
System.out.println("REMOVE
ITEM FROM CART");
System.out.println("Enter
name of item to remove:");
itemToRemove =
sc.nextLine().trim().toString();
cart.removeItem(itemToRemove);
break;
}
case 'c': {
String itemName;
int itemQty;
System.out.println("CHANGE
ITEM QUANTITY");
System.out.println("Enter
item name:");
itemName =
sc.nextLine().trim().toString();
System.out.println("Enter the
new quantity:");
itemQty = sc.nextInt();
sc.nextLine();
ItemToPurchase item = new
ItemToPurchase(itemName, "none", itemQty, 0);
cart.modifyItem(item);
break;
}
}
System.out.print("Enter an option:");
choice = sc.nextLine().trim().charAt(0);
}
}
}
}
Note:
###########
The problem which you have given in the question arrised because you have not closed Scanner object sc in the code.
To do that just use sc.close(); at the end of each method which uses scanner. I cant run the code as the supporting classes like ShoppingCart are missing in the question you have given. Try adding sc.close() at the end of functions which uses sc as below
//########################## PGM START ##################################
package one;
import java.util.Scanner;
public class ShoppingCartManager {
public static void main(String[] args) {
String customerName,
currentDate;
Scanner sc = new
Scanner(System.in);
System.out.print("Enter
Customer's Name:");
customerName =
sc.nextLine().toString().trim();
System.out.println();
System.out.print("Enter
Today's Date:");
currentDate =
sc.nextLine().toString().trim();
System.out.println();
ShoppingCart cart = new
ShoppingCart(customerName, currentDate);
System.out.println("Customer
Name:" + cart.getCustomerName());
System.out.println("Today's
Date:" + cart.getDate());
printMenu(cart);
sc.close();
}
/* Prints the menu, and builds the shopping cart *
object passed in as parameter */
private static void
printMenu(ShoppingCart cart) {
Scanner sc = new
Scanner(System.in);
char choice = 'z';
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' Description");
System.out.println("o - Output
Shopping Cart");
System.out.println("q -
Quit");
System.out.print("Enter an
option:");
choice =
sc.nextLine().trim().charAt(0);
while (choice != 'q') {
if
(choice != 'a' && choice != 'd' && choice != 'c'
&& choice != 'i' && choice != 'o') {
// An invalid choice is made
// Prompt for choice again
System.out.print("Enter an option:");
choice = sc.nextLine().trim().charAt(0);
continue;
} else
{
switch (choice) {
case 'o': {
System.out.println("OUTPUT SHOPPING CART");
cart.printTotal();
break;
}
case 'i': {
System.out.println("OUTPUT ITEMS' DESCRIPTIONS");
cart.printDescriptions();
break;
}
case 'a': {
String name, desc;
int price, qty;
System.out.println("ADD ITEM TO CART");
System.out.println("Enter Item name:");
name = sc.nextLine().trim().toString();
System.out.println("Enter Item description:");
desc = sc.nextLine().trim().toString();
System.out.println("Enter Item price:");
price = sc.nextInt();
sc.nextLine();
System.out.println("Enter Item quantity:");
qty = sc.nextInt();
sc.nextLine();
ItemToPurchase itemToPurchase = new ItemToPurchase(name, desc, qty,
price);
cart.addItem(itemToPurchase);
break;
}
case 'd': {
String itemToRemove;
System.out.println("REMOVE ITEM FROM CART");
System.out.println("Enter name of item to remove:");
itemToRemove = sc.nextLine().trim().toString();
cart.removeItem(itemToRemove);
break;
}
case 'c': {
String itemName;
int itemQty;
System.out.println("CHANGE ITEM QUANTITY");
System.out.println("Enter item name:");
itemName = sc.nextLine().trim().toString();
System.out.println("Enter the new quantity:");
itemQty = sc.nextInt();
sc.nextLine();
ItemToPurchase item = new ItemToPurchase(itemName, "none", itemQty,
0);
cart.modifyItem(item);
break;
}
}
System.out.print("Enter an option:");
choice = sc.nextLine().trim().charAt(0);
}
}
sc.close();
}
}
//#################################### PGM END #############################
Online shopping cart (continued) (Java) Hello, I need help with Java to figure this out. In...
Ch 7 Program: Online shopping cart (continued) (Java)This program extends the earlier "Online shopping cart" program. (Consider first saving your earlier program).(1) Extend the ItemToPurchase class per the following specifications:Private fieldsstring 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 methodssetDescription() mutator & getDescription() accessor (2 pts)printItemCost() - Outputs the item name followed by the quantity, price, and subtotalprintItemDescription() - Outputs the...
I need help with this assignment, can someone HELP ? This is the assignment: Online shopping cart (continued) (C++) This program extends the earlier "Online shopping cart" program. (Consider first saving your earlier program). (1) Extend the ItemToPurchase class per the following specifications: Parameterized constructor to assign item name, item description, item price, and item quantity (default values of 0). (1 pt) Public member functions SetDescription() mutator & GetDescription() accessor (2 pts) PrintItemCost() - Outputs the item name followed by...
CODES: main.cpp #include <iostream> #include <string> #include "ShoppingCart.h" using namespace std; char PrintMenu() { char answer; cout << "MENU" << endl; cout << "a - Add item to cart" << endl; cout << "d - Remove item from cart" << endl; cout << "c - Change item quantity" << endl; cout << "i - Output items' descriptions" << endl; cout << "o - Output shopping cart" << endl; cout << "q - Quit" << endl << endl; while (true) {...
4.18 Ch 7 Program: Online shopping cart (continued) (C++) This program extends the earlier "Online shopping cart" program. (solution from previous lab assignment is provided in Canvas). (1) Extend the ItemToPurchase class per the following specifications: Parameterized constructor to assign item name, item description, item price, and item quantity (default values of 0). (1 pt) Public member functions SetDescription() mutator & GetDescription() accessor (2 pts) PrintItemCost() - Outputs the item name followed by the quantity, price, and subtotal PrintItemDescription() -...
11.12 LAB*: Program: Online shopping cart (continued)This program extends the earlier "Online shopping cart" program. (Consider first saving your earlier program).(1) Extend the ItemToPurchase class to contain a new attribute. (2 pts)item_description (string) - Set to "none" in default constructorImplement the following method for the ItemToPurchase class.print_item_description() - Prints item_description attribute for an ItemToPurchase object. Has an ItemToPurchase parameter.Ex. of print_item_description() output:Bottled Water: Deer Park, 12 oz.(2) Build the ShoppingCart class with the following data attributes and related methods. Note: Some can be method stubs...
7.11 LAB: Online shopping cart - Part 2 This program extends the earlier "Online shopping cart" program. (Consider first saving your earlier program). (1) Extend the ItemToPurchase namedtuple to contain a new attribute. (2 pts) item_description (string) - Set to "none" in the construct_item() function Implement the following function with an ItemToPurchase as a parameter. print_item_description() - Prints item_name and item_description attribute for an ItemToPurchase namedtuple. Has an ItemToPurchase parameter. Ex. of print_item_description() output: Bottled Water: Deer Park, 12 oz....
Zybooks 11.12 LAB*: Program: Online shopping cart (continued) Python 3 is the code needed and this is in Zybooks Existing Code # Type code for classes here class ItemToPurchase: def __init__(self, item_name="none", item_price=0, item_quantity=0): self.item_name = item_name self.item_price = item_price self.item_quantity = item_quantity # def __mul__(self): # print_item_cost = (self.item_quantity * self.item_price) # return '{} {} @ ${} = ${}' .format(self_item_name, self.item_quantity, self.item_price, print_item_cost) def print_item_cost(self): self.print_cost = (self.item_quantity * self.item_price) print(('{} {} @ ${} = ${}') .format(self.item_name, self.item_quantity, self.item_price,...
8.7 LAB*: Program: Online shopping cart (Part 2)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.This program extends the earlier "Online shopping cart" program. (Consider first saving your earlier program).(1) Extend the ItemToPurchase class per the following specifications:Private fieldsstring itemDescription - Initialized in default constructor to "none"Parameterized...
Need three seperate files. ShoppingCartManager.java ShoppingCart.java ItemsToPurchase.java These are from part 1 what do you mean by deep study 7.25 LAB*: Program: Online shopping cart (Part 2) 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 This program extends the earlier Online shopping cart program (Consider...
Python3 programming help needed LAB*: Program: Online shopping cart (continued) Need the below code edited to run properly for the lab.. class ItemPurchase: def __init__(self, nameitem='none', item_prc=0, item_quntity=0, item_descrp = 'none'): self.nameitem = nameitem self.item_prc = item_prc self.item_quntity = item_quntity self.item_descrp = item_descrp def print_itemvaluecost(self): string = '{} {} @ ${} = ${}'.format(self.nameitem, self.item_quntity, self.item_prc(self.item_quntity * self.item_prc)) valuecost = self.item_quntity * self.item_prc return string, valuecost def print_itemdescription(self): string...