diff --git a/.idea/misc.xml b/.idea/misc.xml index 4b151ab..be5cdaa 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/out/production/coffee-shop-rewards2/org/codedifferently/Customer.class b/out/production/coffee-shop-rewards2/org/codedifferently/Customer.class new file mode 100644 index 0000000..00ec0ba Binary files /dev/null and b/out/production/coffee-shop-rewards2/org/codedifferently/Customer.class differ diff --git a/out/production/coffee-shop-rewards2/org/codedifferently/Main.class b/out/production/coffee-shop-rewards2/org/codedifferently/Main.class new file mode 100644 index 0000000..72f459b Binary files /dev/null and b/out/production/coffee-shop-rewards2/org/codedifferently/Main.class differ diff --git a/out/production/coffee-shop-rewards2/org/codedifferently/MenuItem.class b/out/production/coffee-shop-rewards2/org/codedifferently/MenuItem.class new file mode 100644 index 0000000..0b0563b Binary files /dev/null and b/out/production/coffee-shop-rewards2/org/codedifferently/MenuItem.class differ diff --git a/src/main/java/org/codedifferently/Customer.java b/src/main/java/org/codedifferently/Customer.java new file mode 100644 index 0000000..97de3a5 --- /dev/null +++ b/src/main/java/org/codedifferently/Customer.java @@ -0,0 +1,56 @@ +package org.codedifferently; + +public class Customer { + + //customer info + private String name; + private String phoneNumber; + private int drinksPurchased; + + + //constructor + public Customer(String name, String phoneNumber){ + this.name = name; + this.phoneNumber = phoneNumber; + this.drinksPurchased = 0; + } + //drink count + public void addDrink() { + drinksPurchased++; + } + //redeem drink if applicable + public boolean hasFreeDrink(){ + return drinksPurchased >= 5; + } + //reset reward counter + public void redeemFreeDrink(){ + if (hasFreeDrink()){ + drinksPurchased = 0; + } + + } + + public int getDrinksPurchased() { + return drinksPurchased; + } + + //getters + public String getName(){ + return name; + } + + public String getPhoneNumber(){ + return phoneNumber; + } + + //setters + public void setName(String name){ + this.name = name; + } + + public void setPhoneNumber(String PhoneNumber){ + this.phoneNumber = phoneNumber; + } + + +} diff --git a/src/main/java/org/codedifferently/Main.java b/src/main/java/org/codedifferently/Main.java index 435139b..6d7fdeb 100644 --- a/src/main/java/org/codedifferently/Main.java +++ b/src/main/java/org/codedifferently/Main.java @@ -1,17 +1,110 @@ package org.codedifferently; -//TIP To Run code, press or -// click the icon in the gutter. +import java.util.Scanner; + public class Main { public static void main(String[] args) { - //TIP Press with your caret at the highlighted text - // to see how IntelliJ IDEA suggests fixing it. - System.out.printf("Hello and welcome!"); - - for (int i = 1; i <= 5; i++) { - //TIP Press to start debugging your code. We have set one breakpoint - // for you, but you can always add more by pressing . - System.out.println("i = " + i); + Scanner sc = new Scanner(System.in); + +//Menu items + MenuItem latte = new MenuItem("latte", 4.00); + MenuItem espresso = new MenuItem("espresso", 5.00); + MenuItem hotChocolate = new MenuItem("hotChocolate", 3.00); + MenuItem icedTea = new MenuItem("icedTea", 2.50); + MenuItem bagel = new MenuItem("bagel", 2.00); + MenuItem muffin = new MenuItem("muffin", 2.75); + MenuItem quiche = new MenuItem("quiche", 4.00); + MenuItem donut = new MenuItem("donut", 1.75); + + MenuItem[] menu = {latte, espresso, hotChocolate, icedTea, bagel, muffin, quiche, donut}; + + + System.out.println("Enter customer name: "); + String name = sc.nextLine(); + + System.out.println("Enter phone number: "); + String phone = sc.nextLine(); + + + //welcome message + System.out.println("Welcome to Corey's Crazy Cafe: " + name); + + Customer customer = new Customer(name, phone); + + MenuItem[] order = new MenuItem[20]; + int orderCount = 0; + + boolean ordering = true; + double total = 0.0; + + while (ordering) { + System.out.println("\nMenu:"); + for (int i = 0; i < menu.length; i++){ + System.out.printf("%d. %-15s $%.2f%n", + (i + 1), + menu[i].getName(), + menu[i].getPrice()); + } + + System.out.println("Choose item (0 to checkout): "); + int choice = sc.nextInt(); + sc.nextLine(); + + if (choice == 0) { + ordering = false; + } else if (choice > 0 && choice <= menu.length) { + + MenuItem item = menu[choice -1]; + + if(orderCount < order.length) { + order[orderCount++] = item; + } + + if (customer.hasFreeDrink()){ + System.out.println("Free drink applied!!!!"); + customer.redeemFreeDrink(); + order[orderCount - 1] = new MenuItem(item.getName() + " (FREE)", 0.00); + + }else { + total += item.getPrice(); + } + + customer.addDrink(); + + }else { + System.out.println("Invalid Choice."); + } } + if (total > 20) { + System.out.println("Golden Ticket bonus earned!!!!!!"); + customer.addDrink(); + } + + System.out.println("\n========= RECEIPT ========="); + System.out.println("Customer: " + name); + System.out.println("Phone: " + phone); + System.out.println("---------------------------"); + + for (int i = 0; i < orderCount; i++) { + System.out.printf("%-15s $%.2f%n", + order[i].getName(), + order[i].getPrice()); + } + + System.out.println("---------------------------"); + System.out.printf("TOTAL: $%.2f%n", total); + System.out.println("==========================="); + System.out.println("Thank you for visiting!"); + + + sc.close(); + + + + } -} \ No newline at end of file +} + + + + diff --git a/src/main/java/org/codedifferently/MenuItem.java b/src/main/java/org/codedifferently/MenuItem.java new file mode 100644 index 0000000..86182f5 --- /dev/null +++ b/src/main/java/org/codedifferently/MenuItem.java @@ -0,0 +1,32 @@ +package org.codedifferently; + +public class MenuItem { + private String name; + private double price; + + //Constructor + public MenuItem(String name, double price) { + this.name = name; + this.price = price >= 0 ? price : 0; + } + + //getters + public String getName() { + return name; + } + + public double getPrice() { + return price; + } + //setter + + public void setName(String name) { + this.name = name; + } + + public void setPrice(double price) { + if (price >= 0) { + this.price = price; + } + } +} \ No newline at end of file