6.20 Warm up: Online shopping cart (Java)
Instructor notes
While you will be submitting this assignment through Zybooks,
make sure you are still applying appropriate formatting and in-line
commenting.
Create a program using classes that does the following using
your NetBeans IDE and upload it here:
(1) Create two files to submit:
ItemToPurchase.java – Class definition
ShoppingCartPrinter.java – Contains main() method
Build the ItemToPurchase class with the following
specifications:
Private fields
String itemName – Initialized in default constructor to
“none”
int itemPrice – Initialized in default constructor to 0
int itemQuantity – Initialized in default constructor to 0
Default constructor
Public member methods (mutators & accessors)
setName() & getName() (2 pts)
setPrice() & getPrice() (2 pts)
setQuantity() & getQuantity() (2 pts)
(2) In main(), prompt the user for two items and create two
objects of the ItemToPurchase class. Before prompting for the
second item, call scnr.nextLine(); to allow the
user to input a new string. (2 pts)
When I enter the code everything looks correct except I
keep getting an error saying can not find ItemsToPirchase
symbols.
“Exception in thread “main” java.lang.RuntimeException:
Uncompilable source code – cannot find symbol
symbol: class ItemToPurchase
location: class shoppingcartprinter.ShoppingCartPrinter
at
shoppingcartprinter.ShoppingCartPrinter.main(ShoppingCartPrinter.java:26)
Java Result: 1″
And then I get a no main class found in the
ItemsToPurchase file. Is there a certain way I am supposed to save
these file or something that I am missing.. Please help. Below is a
copy of the code I am using.
package shoppingcartprinter;
/**
*
* @author Prevo
*/
import java.util.Scanner;
public class ShoppingCartPrinter {
// Definition of the main method
public static void main(String[] args) {
// TODO Auto-generated method stub
// Create an object for the Scanner class
Scanner sc = new Scanner(System.in);
// Create an object item1 for the
// ItemToPurchase() method.
ItemToPurchase item1 = new ItemToPurchase();
// Create an object item2 for the
// ItemToPurchase() method.
ItemToPurchase item2 = new ItemToPurchase();
System.out.println(“Item 1”);
// Read the item name using nextLine() method.
System.out.print(“Enter the item name: “);
item1.setName(sc.nextLine());
// Read the price of the item using nextInt()
// and nextLine() method.
System.out.print(“Enter the item price: “);
item1.setPrice(sc.nextInt());
sc.nextLine();
// Read the quantity of the item using nextInt()
// and nextLine() method.
System.out.print(“Enter the item quantity: “);
item1.setQuantity(sc.nextInt());
sc.nextLine();
// Read the name,price, and quantity
// of the item2.
System.out.println(“nItem 2”);
System.out.print(“Enter the item name:”);
item2.setName(sc.nextLine());
System.out.print(“Enter the item price: “);
item2.setPrice(sc.nextInt());
sc.nextLine();
System.out.print(“Enter the item quantity: “);
item2.setQuantity(sc.nextInt());
sc.nextLine();
//Print the details of the item1.
System.out.println(“nTOTAL COST”);
System.out.println(item1.getName() + ” ”
+item1.getQuantity() + ” @ $” +item1.getPrice()
+” = $”+ (item1.getPrice()*item1.getQuantity()));
// Print the details of the item2.
System.out.println(item2.getName() + ” ”
+item2.getQuantity() +” @ $” + item2.getPrice()
+” = $”+ (item2.getPrice()*item2.getQuantity()));
// Calculate the total cost of the two items and
// print the total cost of the two items.
System.out.println(“nTotal: $” +
(item1.getPrice()* item1.getQuantity()+
item2.getPrice() *item2.getQuantity()));
}
}
public class ItemToPurchase {
// Define the variables.
// Private fields.
private String itemName;
private int itemPrice;
private int itemQuantity;
// Definition of the method ItemToPurchase().
// Default Constructor.
public ItemToPurchase(){
this.itemName=”none”;
this.itemPrice=0;
this.itemQuantity=0;
}
// Definition of the method setName().
// Mutator method.
public void setName(String itemName){
this.itemName=itemName;
}
// Definition of the method getName().
// Accessor method.
public String getName(){
return this.itemName;
}
// Definition of the method setPrice().
// Mutator method.
public void setPrice(int itemPrice){
this.itemPrice=itemPrice;
}
// Definition of the method getName().
// Accessor method.
public int getPrice(){
return this.itemPrice;
}
// Definition of the method setQuality().
// Mutator method.
public void setQuantity(int itemQuantity){
this.itemQuantity=itemQuantity;
}
// Definition of the method getQuality().
// Accessor method.
public int getQuantity(){
return this.itemQuantity;
}
}
Answer
ShoppingCartManager.javaimport java.util.Scanner;
public class ShoppingCartManager {
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println(“Enter Customer’s Name: “);
String customerName = scan.nextLine();
System.out.println(“Enter Today’s Date: “);
String currentDate = scan.nextLine();
ShoppingCart s = new ShoppingCart(customerName, currentDate);
System.out.println();
System.out.println(“Customer Name: “+s.getCustomerName());
System.out.println(“Today’s Date: “+currentDate);
printMenu(s);
}
public static void printMenu(ShoppingCart s){
while(true){
System.out.println(“MENUna – Add item to cartnd – Remove item from cartnc – Change item quantityni – Output items’ descriptionsno – Output shopping cartnq – QuitnnChoose 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();
ItemToPurchase item = new ItemToPurchase(name, itemDescritpion, itemPrice, quantity);
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.printDescriptions();
}
else if(ch == ‘O’ || ch == ‘o’){
System.out.println(“OUTPUT SHOPPING CART”);
s.printTotal();
}
else if(ch == ‘q’ || ch == ‘Q’){
break;
}
}
}
} ShoppingCart.java
import java.util.ArrayList; public class ShoppingCart {
private String customerName;
private String currentDate ;
ArrayList<ItemToPurchase> cartItems = new ArrayList<ItemToPurchase>();;
public ShoppingCart() {
currentDate = “January 1, 2016”;
customerName = “none”;
}
public ShoppingCart(String name , String date) {
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;
}
public void addItem( ItemToPurchase i) {
cartItems.add(i);
}
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”);
}
public void modifyItem(ItemToPurchase item) {
boolean found = false;;
for(ItemToPurchase i: cartItems){
if(i.getName().equalsIgnoreCase(item.getName())) {
if(i.getItemQuantity()!=0){
i.setItemQuantity(item.getItemQuantity());
}
found = true;
break;
}
}
if(!found)
System.out.println(“Item not found in cart. Nothing removed”);
}
public int getNumItemsInCart() {
int sum = 0;
for(ItemToPurchase i: cartItems){
sum = sum + i.getItemQuantity();
}
return sum;
}
public double getCostOfCart() {
double sum = 0;
for(ItemToPurchase i: cartItems){
sum = sum + i.getItemPrie();
}
return sum;
}
public void printTotal() {
if(cartItems!=null&& cartItems.size() >0 ){
System.out.println(customerName+”‘s Shopping Cart – “+currentDate);
System.out.println(“Number of Items: “+cartItems.size());
System.out.println();
for(ItemToPurchase i: cartItems){
i.printItemCost();
}
}
else{
System.out.println(“SHOPPING CART IS EMPTY”);
}
}
public void printDescriptions() {
System.out.println(customerName+”‘s Shopping Cart – “+currentDate);
System.out.println(“Number of Items: “+cartItems.size());
System.out.println();
System.out.println(“Item Descriptions”);
for(ItemToPurchase i: cartItems){
i.printItemDescription();
}
}
} ItemToPurchase.java
public class ItemToPurchase {
private String itemDescription;
private String name;
private double itemPrie;
private int itemQuantity;
public ItemToPurchase() {
itemDescription = “none”;
itemQuantity = 0;
itemPrie = 0;
name = “”;
}
public ItemToPurchase(String name, String description, double price, int itemQuantity) {
this.itemDescription = description;
this.name = name;
this.itemPrie = price;
this.itemQuantity = itemQuantity;
}
public String getItemDescription() {
return itemDescription;
}
public void setItemDescription(String itemDescription) {
this.itemDescription = itemDescription;
}
public void printItemCost() {
System.out.println(name+” “+itemQuantity+” @ “+itemPrie+” = $”+(itemQuantity * itemPrie) );
}
public void printItemDescription() {
System.out.println(name+” “+itemDescription);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getItemPrie() {
return itemPrie;
}
public void setItemPrie(double itemPrie) {
this.itemPrie = itemPrie;
}
public int getItemQuantity() {
return itemQuantity;
}
public void setItemQuantity(int itemQuantity) {
this.itemQuantity = itemQuantity;
}
} Output: Enter Customer’s Name:
John Doe
Enter Today’s Date:
February 1, 2016 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:
a
ADD ITEM TO CART
Enter Item Name:
Nike Romaleos
Enter Item Description:
Volt color, Weightlifting shoes
Enter Item Price:
2
Enter Item Quantity:
189
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:
a
ADD ITEM TO CART
Enter Item Name:
Chocolate Chips
Enter Item Description:
Semi-sweet
Enter Item Price:
5
Enter Item Quantity:
3
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:
a
ADD ITEM TO CART
Enter Item Name:
Powerbeats 2 Headphones
Enter Item Description:
Bluetooth headphones
Enter Item Price:
2
Enter Item Quantity:
128
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:
a
ADD ITEM TO CART
Enter Item Name:
aaaa
Enter Item Description:
bbbb
Enter Item Price:
3
Enter Item Quantity:
4
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:
d
REMOVE ITEM FROM CART
Enter name of item to remove:
aaaa
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:
c
CHANGE ITEM QUANTITY
Enter the item name:
Chocolate Chips
Enter the new quantity:
7
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:
i
OUTPUT ITEMS’ DESCRIPTIONS
John Doe’s Shopping Cart – February 1, 2016
Number of Items: 3 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:
o
OUTPUT SHOPPING CART
John Doe’s Shopping Cart – February 1, 2016
Number of Items: 3 Nike Romaleos 189 @ 2.0 = $378.0
Chocolate Chips 7 @ 5.0 = $35.0
Powerbeats 2 Headphones 128 @ 2.0 = $256.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:
q