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