In: Computer Science
Programming language: Java
If any more information is needed please let me know exactly what you need.
Though there are a bunch of files they are small and already done. Modify the driver file ,Starbuzz coffee, to be able to order each blend and be able to add each condiment to each of the blends. The price should be set accordingly. Be able to: order 1 of each type of beverage, add multiple toppings to each ordered beverage and use each condiment at least once.
Beverage.java:
public abstract class Beverage {
String description = "Unknown Beverage";
public String getDescription() {
return description;
}
public abstract double cost();
}
CondimentDecorator.java:
public abstract class CondimentDecorator extends Beverage
{
public abstract String getDescription();
}
DarkRoast.java:
public class DarkRoast extends Beverage {
public DarkRoast() {
description = "Dark Roast
Coffee";
}
public double cost() {
return .99;
}
}
Decaf.java:
public class Decaf extends Beverage {
public Decaf() {
description = "Decaf Coffee";
}
public double cost() {
return 1.05;
}
}
Espresso.java:
public class Espresso extends Beverage {
public Espresso() {
description = "Espresso";
}
public double cost() {
return 1.99;
}
}
HouseBlend.java:
public class HouseBlend extends Beverage {
public HouseBlend() {
description = "House Blend
Coffee";
}
public double cost() {
return .89;
}
}
Caramel.java:
public class Caramel extends Beverage {
public Caramel() {
description = "Caramel
Coffee";
}
public double cost() {
return 1.35;
}
}
Chocolate.java:
public class Chocolate extends CondimentDecorator {
Beverage beverage;
public Chocolate(Beverage beverage) {
this.beverage = beverage;
}
public String getDescription() {
return beverage.getDescription() +
", Chocolate";
}
public double cost() {
return .20 + beverage.cost();
}
}
Cinnamon.java:
public class Cinnamon extends CondimentDecorator {
Beverage beverage;
public Cinnamon(Beverage beverage) {
this.beverage = beverage;
}
public String getDescription() {
return beverage.getDescription() +
", Cinnamon";
}
public double cost() {
return .15 + beverage.cost();
}
}
Milk.java:
public class Milk extends CondimentDecorator {
Beverage beverage;
public Milk(Beverage beverage) {
this.beverage = beverage;
}
public String getDescription() {
return beverage.getDescription() +
", Milk";
}
public double cost() {
return .10 + beverage.cost();
}
}
Mint.java:
public class Mint extends CondimentDecorator {
Beverage beverage;
public Mint(Beverage beverage) {
this.beverage = beverage;
}
public String getDescription() {
return beverage.getDescription() +
", Mint";
}
public double cost() {
return .15 + beverage.cost();
}
}
Mocha.java:
public class Mocha extends CondimentDecorator {
Beverage beverage;
public Mocha(Beverage beverage) {
this.beverage = beverage;
}
public String getDescription() {
return beverage.getDescription() +
", Mocha";
}
public double cost() {
return .20 + beverage.cost();
}
}
Soy.java:
public class Soy extends CondimentDecorator {
Beverage beverage;
public Soy(Beverage beverage) {
this.beverage = beverage;
}
public String getDescription() {
return beverage.getDescription() +
", Soy";
}
public double cost() {
return .15 + beverage.cost();
}
}
Whip.java:
public class Whip extends CondimentDecorator {
Beverage beverage;
public Whip(Beverage beverage) {
this.beverage = beverage;
}
public String getDescription() {
return beverage.getDescription() +
", Whip";
}
public double cost() {
return .10 + beverage.cost();
}
}
StarbuzzCoffee.java:
public class StarbuzzCoffee {
public static void main(String args[]) {
Beverage beverage = new
Espresso();
System.out.println(beverage.getDescription()
+ " $" + beverage.cost());
Beverage beverage1 = new
Decaf();
beverage1 = new
Soy(beverage1);
beverage1 = new
Mocha(beverage1);
beverage1 = new
Whip(beverage1);
beverage1 = new
Cinnamon(beverage1);
beverage1 = new
Mint(beverage1);
beverage1 = new
Chocolate(beverage1);
System.out.println(beverage1.getDescription()
+ " $" + beverage1.cost());
Beverage beverage2 = new
DarkRoast();
beverage2 = new
Soy(beverage2);
beverage2 = new
Mocha(beverage2);
beverage2 = new
Whip(beverage2);
beverage2 = new
Cinnamon(beverage2);
beverage2 = new
Mint(beverage2);
beverage2 = new
Chocolate(beverage2);
System.out.println(beverage2.getDescription()
+ " $" + beverage2.cost());
Beverage beverage3 = new
HouseBlend();
beverage3 = new
Soy(beverage3);
beverage3 = new
Mocha(beverage3);
beverage3 = new
Whip(beverage3);
beverage3 = new
Cinnamon(beverage3);
beverage3 = new
Mint(beverage3);
beverage3 = new
Chocolate(beverage3);
System.out.println(beverage3.getDescription()
+ " $" + beverage3.cost());
Beverage beverage4 = new
Hazelnut();
beverage4 = new
Soy(beverage4);
beverage4 = new
Mocha(beverage4);
beverage4 = new
Whip(beverage4);
beverage4 = new
Cinnamon(beverage4);
beverage4 = new
Mint(beverage4);
beverage4 = new
Chocolate(beverage4);
System.out.println(beverage4.getDescription()
+ " $" + beverage4.cost());
Beverage beverage5 = new
Caramel();
beverage5 = new
Soy(beverage5);
beverage5 = new
Mocha(beverage5);
beverage5 = new
Whip(beverage5);
beverage2 = new
Cinnamon(beverage5);
beverage2 = new
Mint(beverage5);
beverage2 = new
Chocolate(beverage5);
System.out.println(beverage5.getDescription()
+ " $" + beverage5.cost());
}
}
After modifying the StarbuzzCoffee.java
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
Beverage beverage = new Espresso();
System.out.println(beverage.getDescription()
+ " $" + beverage.cost());
Beverage beverage1 = new Decaf();
beverage1 = new Soy(beverage1);
beverage1 = new Mocha(beverage1);
beverage1 = new Whip(beverage1);
beverage1 = new Cinnamon(beverage1);
beverage1 = new Mint(beverage1);
beverage1 = new Chocolate(beverage1);
System.out.println(beverage1.getDescription()
+ " $" + beverage1.cost());
Beverage beverage2 = new DarkRoast();
beverage2 = new Soy(beverage2);
beverage2 = new Mocha(beverage2);
beverage2 = new Whip(beverage2);
beverage2 = new Cinnamon(beverage2);
beverage2 = new Mint(beverage2);
beverage2 = new Chocolate(beverage2);
System.out.println(beverage2.getDescription()
+ " $" + beverage2.cost());
Beverage beverage3 = new HouseBlend();
beverage3 = new Soy(beverage3);
beverage3 = new Mocha(beverage3);
beverage3 = new Whip(beverage3);
beverage3 = new Cinnamon(beverage3);
beverage3 = new Mint(beverage3);
beverage3 = new Chocolate(beverage3);
System.out.println(beverage3.getDescription()
+ " $" + beverage3.cost());
Beverage beverage4 = new Hazelnut();
beverage4 = new Soy(beverage4);
beverage4 = new Mocha(beverage4);
beverage4 = new Whip(beverage4);
beverage4 = new Cinnamon(beverage4);
beverage4 = new Mint(beverage4);
beverage4 = new Chocolate(beverage4);
System.out.println(beverage4.getDescription()
+ " $" + beverage4.cost());
Beverage beverage5 = new Caramel();
beverage5 = new Soy(beverage5);
beverage5 = new Mocha(beverage5);
beverage5 = new Whip(beverage5);
beverage2 = new Cinnamon(beverage5);
beverage2 = new Mint(beverage5);
beverage2 = new Chocolate(beverage5);
System.out.println(beverage5.getDescription()
+ " $" + beverage5.cost());
System.out.println("Coffee types: 1.Decaf Coffee 2.DarkRoast Coffee 3.HouseBlend Coffee 4. Hazelnut coffee 5.caramel Coffee");
System.out.println("Select the type of coffee you want");
int choice = sc.nextInt();
double price=0;
if (choice==1){
price= beverage1.cost();
}
else if (choice==2){
price=beverage2.cost();
}
else if(choice==3){
price=beverage3.cost();
}
else if(choice==4){
price=beverage4.cost();
}
else if(choice==5){
price=beverage5.cost();
}
System.out.println("Do you want to add soy? Y/N");
char c = sc.next().charAt(0);
if(c=='y'||c=='Y'){
price=price+0.15;
}
System.out.println("Do you want to add Mocha? Y/N");
c = sc.next().charAt(0);
if(c=='y'||c=='Y'){
price=price+0.20;
}
System.out.println("Do you want to add Whip? Y/N");
c = sc.next().charAt(0);
if(c=='y'||c=='Y'){
price=price+0.15;
}
System.out.println("Do you want to add Cinnamon? Y/N");
c = sc.next().charAt(0);
if(c=='y'||c=='Y'){
price=price+0.15;
}
System.out.println("Do you want to add Mint? Y/N");
c = sc.next().charAt(0);
if(c=='y'||c=='Y'){
price=price+0.15;
}
System.out.println("Do you want to add Chocolate? Y/N");
c = sc.next().charAt(0);
if(c=='y'||c=='Y'){
price=price+0.20;
}
System.out.println("The total cost your coffee is:"+price);
}
}
Output is as follows: