Create a ShoppingCart class in java that simulates the operation of a shopping cart. The ShoppingCart instance should contain a BagInterface implementation that will serve to hold the Items that will be added to the cart. Use the implementation of the Item object provided in Item.java. Note that the price is stored as the number of cents so it can be represented as an int (e.g., an Item worth $19.99 would have price = 1999).
Your shopping cart should support the following operations:
Add an item
Add multiple quantities of a given item (e.g., add 3 of Item __)
Remove an unspecified item
Remove a specified item
Checkout – should "scan" each Item in the shopping cart (and display its
information), sum up the total cost and display the total cost
Check budget – Given a budget amount, check to see if the budget is large
enough to pay for everything in the cart. If not, remove an Item from the shopping cart, one at a time, until under budget.
Write a driver program to test out your ShoppingCart implementation.
I have covered functions as much as possible , Please Thumbs Up If you found this helpful , Thank you!!
*********************************************************
BagInterface.java
public interface BagInterface {
Item bag[]=new Item[10];
public void AddItemToBag(Item i);
}
*****************************************
ShoppingCart.java
import java.util.*;
import java.io.*;
public class ShoppingCart implements BagInterface{
int index=0;
@Override
public void AddItemToBag(Item i) {
bag[index]=i;
index++;
System.out.println("added to
cart");
}
public void DisplayItems()
{
for(int
i=0;i<bag.length-1;i++)
{
if(bag[i]!=null)
{
System.out.print(bag[i].getItemId()+"\t");
System.out.print(bag[i].getItemName()+"\t");
System.out.println(bag[i].getItemPrice());
}
}
}
public void Checkout()
{
DisplayItems();
int sum=0;
for(int i=0;i<bag.length-1
&& bag[i]!=null ;i++)
{
sum=sum+bag[i].getItemPrice();
}
System.out.println("Total price
is:"+sum);
}
public void addItem(Item i)
{
AddItemToBag(i);
}
public void addMultipleItem(Item items[])
{
for(int i=0;i<3;i++)
{
AddItemToBag(items[i]);
}
}
public void removeItem(Item i)
{
for(int
j=0;j<bag.length-1;j++)
{
if(bag[j].getItemId()==i.getItemId())
{
for(int k = j; k < bag.length - 1;
k++){
bag[k] = bag[k+1];
}
break;
}
}
}
}
//********************************************************************
Item.java
public class Item {
private int itemId;
private int itemPrice;
private String itemName;
public String getItemName() {
return itemName;
}
public void setItemName(String itemName) {
this.itemName = itemName;
}
public int getItemId() {
return itemId;
}
public void setItemId(int itemId) {
this.itemId = itemId;
}
public int getItemPrice() {
return itemPrice;
}
public void setItemPrice(int itemPrice) {
this.itemPrice = itemPrice;
}
public Item(int itemId, int itemPrice, String
itemName) {
super();
this.itemId = itemId;
this.itemPrice = itemPrice;
this.itemName =itemName;
}
}
******************************************
Test.java
import java.util.*;
import java.io.*;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method
stub
Scanner sc=new
Scanner(System.in);
System.out.println("************Item List***********");
System.out.println("id\tname\tprice\n");
System.out.println("1\ta\t10\n");
System.out.println("2\tb\t15\n");
System.out.println("3\tc\t30\n");
System.out.println("4\td\t20\n");
Item i=new Item(1,10,"a");
Item i1=new Item(2,15,"b");
Item i2=new Item(3,30,"c");
Item i3=new Item(4,20,"d");
ShoppingCart scart=new
ShoppingCart();
System.out.println("adding first
item");
scart.addItem(i);
scart.DisplayItems();
System.out.println("adding
second,third,fourth item at same time");
Item itemarr[]=new Item[3];
itemarr[0]=i1;
itemarr[1]=i2;
itemarr[2]=i3;
scart.addMultipleItem(itemarr);
scart.DisplayItems();
System.out.println("Removing second
item");
scart.removeItem(i1);
scart.DisplayItems();
System.out.println("Calling
checkout function");
scart.Checkout();
}
}
******************************************************
Output Screenshot
Get Answers For Free
Most questions answered within 1 hours.