From d39634e9a5e9c09922dbb3ffa0deb1cd3540d5e0 Mon Sep 17 00:00:00 2001 From: Bryant Ferguson Date: Mon, 16 Feb 2026 16:30:05 -0500 Subject: [PATCH 1/6] Created Item, Purchase and Customer classes --- .idea/encodings.xml | 7 ++++ .idea/misc.xml | 10 ++++- .idea/vcs.xml | 6 +++ .../java/org/codedifferently/Customer.java | 41 +++++++++++++++++++ src/main/java/org/codedifferently/Item.java | 37 +++++++++++++++++ src/main/java/org/codedifferently/Main.java | 32 ++++++++++----- .../java/org/codedifferently/Purchase.java | 18 ++++++++ 7 files changed, 140 insertions(+), 11 deletions(-) create mode 100644 .idea/encodings.xml create mode 100644 .idea/vcs.xml create mode 100644 src/main/java/org/codedifferently/Customer.java create mode 100644 src/main/java/org/codedifferently/Item.java create mode 100644 src/main/java/org/codedifferently/Purchase.java diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 4b151ab..de5c651 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,14 @@ - + + + + + \ 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/src/main/java/org/codedifferently/Customer.java b/src/main/java/org/codedifferently/Customer.java new file mode 100644 index 0000000..9695fe2 --- /dev/null +++ b/src/main/java/org/codedifferently/Customer.java @@ -0,0 +1,41 @@ +package org.codedifferently; + +public class Customer { + private String name; + private int phoneNumber; + private int points; + + Customer(){ + + } + + Customer(String name, int phoneNumber){ + this.name = name; + this.phoneNumber = phoneNumber; + this.points = 0; + } + + public String getName(){ + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getPhoneNumber() { + return phoneNumber; + } + + public void setPhoneNumber(int phoneNumber) { + this.phoneNumber = phoneNumber; + } + + public int getPoints() { + return points; + } + + public void setPoints(int points) { + this.points = points; + } +} diff --git a/src/main/java/org/codedifferently/Item.java b/src/main/java/org/codedifferently/Item.java new file mode 100644 index 0000000..e4f7817 --- /dev/null +++ b/src/main/java/org/codedifferently/Item.java @@ -0,0 +1,37 @@ +package org.codedifferently; + +public class Item { + private String itemName; + private double price; + private boolean isDrink; + + Item(String itemName, double price, boolean isDrink){ + this.itemName = itemName; + this.price = price; + this.isDrink = isDrink; + } + + public String getItemName(){ + return itemName; + } + + public void setItemName(String itemName) { + this.itemName = itemName; + } + + public double getPrice() { + return price; + } + + public void setPrice(double price) { + this.price = price; + } + + public boolean isDrink() { + return isDrink; + } + + public void setDrink(boolean drink) { + isDrink = drink; + } +} diff --git a/src/main/java/org/codedifferently/Main.java b/src/main/java/org/codedifferently/Main.java index 435139b..5aeb399 100644 --- a/src/main/java/org/codedifferently/Main.java +++ b/src/main/java/org/codedifferently/Main.java @@ -1,17 +1,29 @@ package org.codedifferently; - +import java.util.*; //TIP To Run code, press or // click the icon in the gutter. 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 input = new Scanner(System.in); + + Customer c1 = new Customer("Bryant", 333); + Item i1 = new Item("Cofeee",10.00, true); + Item i2 = new Item("Tea",5.00, true); + Item i3 = new Item("Croissant",10.00, true); + Item i4 = new Item("Cofeee",10.00, true); + Item i5 = new Item("Cofeee",10.00, true); + Item i6 = new Item("Cofeee",10.00, true); + + + //Customer c1 = new Customer("Bryant", 333); + //Customer c1 = new Customer("Bryant", 333); + + // Purchase.displayMenu(c1, 1); + + + + + + } } \ No newline at end of file diff --git a/src/main/java/org/codedifferently/Purchase.java b/src/main/java/org/codedifferently/Purchase.java new file mode 100644 index 0000000..f987f56 --- /dev/null +++ b/src/main/java/org/codedifferently/Purchase.java @@ -0,0 +1,18 @@ +package org.codedifferently; + +public class Purchase { + public static void displayMenu(Customer customer, Item item1, Item item2, Item item3, Item item4, Item item5, Item item6){ + boolean checkout = false; + do { + System.out.println("Welcome, " + customer.getName() + "Coreye’s Coffee Cafe (Triple C’s)!"); + System.out.println("Here is our menu: "); + System.out.println(item.getName); + } while(!checkout); + + + + + } + + +} From b064a6f9bb6716164e0c7da78d9cb29896d7b685 Mon Sep 17 00:00:00 2001 From: Bryant Ferguson Date: Tue, 17 Feb 2026 09:39:38 -0500 Subject: [PATCH 2/6] Pushing some updated changes --- src/main/java/org/codedifferently/Main.java | 18 +++++-------- .../java/org/codedifferently/Purchase.java | 26 +++++++++++++------ 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/src/main/java/org/codedifferently/Main.java b/src/main/java/org/codedifferently/Main.java index 5aeb399..fd15c34 100644 --- a/src/main/java/org/codedifferently/Main.java +++ b/src/main/java/org/codedifferently/Main.java @@ -7,22 +7,18 @@ public static void main(String[] args) { Scanner input = new Scanner(System.in); Customer c1 = new Customer("Bryant", 333); - Item i1 = new Item("Cofeee",10.00, true); - Item i2 = new Item("Tea",5.00, true); - Item i3 = new Item("Croissant",10.00, true); - Item i4 = new Item("Cofeee",10.00, true); - Item i5 = new Item("Cofeee",10.00, true); - Item i6 = new Item("Cofeee",10.00, true); + Item i1 = new Item("Coffee",10.00, true); + Item i2 = new Item("Tea",5.50, true); + Item i3 = new Item("Croissant",12.00, false); + Item i4 = new Item("Pie",17.50, false); + Item i5 = new Item("Waffles",10.50, false); + Item i6 = new Item("Cookies",8.00, false); //Customer c1 = new Customer("Bryant", 333); //Customer c1 = new Customer("Bryant", 333); - // Purchase.displayMenu(c1, 1); - - - - + Purchase.displayMenu(c1,i1,i2,i3,i4,i5,i6); } diff --git a/src/main/java/org/codedifferently/Purchase.java b/src/main/java/org/codedifferently/Purchase.java index f987f56..c2dbce8 100644 --- a/src/main/java/org/codedifferently/Purchase.java +++ b/src/main/java/org/codedifferently/Purchase.java @@ -1,18 +1,28 @@ package org.codedifferently; +import java.util.Scanner; + public class Purchase { public static void displayMenu(Customer customer, Item item1, Item item2, Item item3, Item item4, Item item5, Item item6){ boolean checkout = false; - do { - System.out.println("Welcome, " + customer.getName() + "Coreye’s Coffee Cafe (Triple C’s)!"); + // do { + System.out.println("Welcome, " + customer.getName() + " to Coreye’s Coffee Cafe (Triple C’s)!"); System.out.println("Here is our menu: "); - System.out.println(item.getName); - } while(!checkout); - - - + System.out.println("*****************************"); + System.out.printf("1) %s %.2f%n", item1.getItemName(), item1.getPrice()); + System.out.printf("2) %s %.2f%n", item2.getItemName(), item2.getPrice()); + System.out.printf("3) %s %.2f%n", item3.getItemName(), item3.getPrice()); + System.out.printf("4) %s %.2f%n", item4.getItemName(), item4.getPrice()); + System.out.printf("5) %s %.2f%n", item5.getItemName(), item5.getPrice()); + System.out.printf("6) %s %.2f%n", item6.getItemName(), item6.getPrice()); + System.out.println("*****************************"); + // } while(!checkout); } + public static String createCustomerOrder(){ + System.out.println("Type out the number of "); + return ""; + } -} +}//ends Purchase class From fd7c066cac932c104199908adc9c986ca876c622 Mon Sep 17 00:00:00 2001 From: Bryant Ferguson Date: Wed, 18 Feb 2026 01:06:51 -0500 Subject: [PATCH 3/6] removed Purchased class, added receipt class, removed points fields from Customer class --- .../{Item.java => CoffeeItem.java} | 19 ++-- .../java/org/codedifferently/Customer.java | 44 +++++--- src/main/java/org/codedifferently/Main.java | 103 ++++++++++++++++-- .../java/org/codedifferently/Purchase.java | 28 ----- .../java/org/codedifferently/Receipt.java | 5 + 5 files changed, 135 insertions(+), 64 deletions(-) rename src/main/java/org/codedifferently/{Item.java => CoffeeItem.java} (62%) delete mode 100644 src/main/java/org/codedifferently/Purchase.java create mode 100644 src/main/java/org/codedifferently/Receipt.java diff --git a/src/main/java/org/codedifferently/Item.java b/src/main/java/org/codedifferently/CoffeeItem.java similarity index 62% rename from src/main/java/org/codedifferently/Item.java rename to src/main/java/org/codedifferently/CoffeeItem.java index e4f7817..7e8024a 100644 --- a/src/main/java/org/codedifferently/Item.java +++ b/src/main/java/org/codedifferently/CoffeeItem.java @@ -1,16 +1,18 @@ package org.codedifferently; -public class Item { +public class CoffeeItem { private String itemName; private double price; - private boolean isDrink; - Item(String itemName, double price, boolean isDrink){ + CoffeeItem(String itemName, double price){ this.itemName = itemName; this.price = price; - this.isDrink = isDrink; } + CoffeeItem(String itemName){ + this.itemName = itemName; + this.price = 0; + } public String getItemName(){ return itemName; } @@ -27,11 +29,4 @@ public void setPrice(double price) { this.price = price; } - public boolean isDrink() { - return isDrink; - } - - public void setDrink(boolean drink) { - isDrink = drink; - } -} +} // ends CoffeeItem class diff --git a/src/main/java/org/codedifferently/Customer.java b/src/main/java/org/codedifferently/Customer.java index 9695fe2..c56385e 100644 --- a/src/main/java/org/codedifferently/Customer.java +++ b/src/main/java/org/codedifferently/Customer.java @@ -2,17 +2,18 @@ public class Customer { private String name; - private int phoneNumber; - private int points; + private String email; + private int drinksPurchased; + private double wallet; Customer(){ } - Customer(String name, int phoneNumber){ + Customer(String name, String email, int drinksPurchased){ this.name = name; - this.phoneNumber = phoneNumber; - this.points = 0; + this.email = email; + drinksPurchased = 0; } public String getName(){ @@ -23,19 +24,34 @@ public void setName(String name) { this.name = name; } - public int getPhoneNumber() { - return phoneNumber; + public String getEmail() { + return email; } - public void setPhoneNumber(int phoneNumber) { - this.phoneNumber = phoneNumber; + public void setPhoneNumber(String email) { + this.email = email; } - public int getPoints() { - return points; + public double getWallet() { + return wallet; } - public void setPoints(int points) { - this.points = points; + public void setWallet(double wallet) { + this.wallet = wallet; } -} + + public int getDrinksPurchased() { + return drinksPurchased; + } + + public void setDrinksPurchased(int drinksPurchased) { + this.drinksPurchased = drinksPurchased; + } + + public boolean isEligibleForReward(){ + if(drinksPurchased == 5){ + return true; + } + return false; + } +}// ends Customer class diff --git a/src/main/java/org/codedifferently/Main.java b/src/main/java/org/codedifferently/Main.java index fd15c34..50fcc04 100644 --- a/src/main/java/org/codedifferently/Main.java +++ b/src/main/java/org/codedifferently/Main.java @@ -6,20 +6,103 @@ public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); - Customer c1 = new Customer("Bryant", 333); - Item i1 = new Item("Coffee",10.00, true); - Item i2 = new Item("Tea",5.50, true); - Item i3 = new Item("Croissant",12.00, false); - Item i4 = new Item("Pie",17.50, false); - Item i5 = new Item("Waffles",10.50, false); - Item i6 = new Item("Cookies",8.00, false); + Customer customer1 = new Customer("Bryant", "bob@gmail.com",0); + boolean checkout = false; + String customerOrder; + // do { + System.out.println("Welcome to Triple Cs!"); + System.out.println("Please enter the number(s) of the drink(s) you would like to order."); + System.out.println("Separate multiple items with a comma (e.g., 1,3,5)."); + customerOrder = input.nextLine(); + System.out.println("*************************************"); + System.out.println(createCustomerOrder(customer1, customerOrder)); + System.out.println("*************************************"); - //Customer c1 = new Customer("Bryant", 333); - //Customer c1 = new Customer("Bryant", 333); + System.out.println("Are you ready to checkout? (y/n)"); + // } while(!checkout); - Purchase.displayMenu(c1,i1,i2,i3,i4,i5,i6); +//use contains method } + + public static StringBuilder createCustomerOrder(Customer customer, String customerOrder){ + StringBuilder orderSummary = new StringBuilder("You ordered:\n"); + int drinkCounter = 0; + double total = 0.0; + for (int i=0; i< customerOrder.length(); i++) { + switch (Character.getNumericValue(customerOrder.charAt(i))) { + + case 1: + CoffeeItem item1 = new CoffeeItem("Coffee", 10.00); + orderSummary.append( + String.format("%s $%.2f%n", item1.getItemName(), item1.getPrice()) + ); + drinkCounter++; + total += item1.getPrice(); + break; + + case 2: + CoffeeItem item2 = new CoffeeItem("Tea", 5.50); + orderSummary.append( + String.format("%s $%.2f%n", item2.getItemName(), item2.getPrice()) + ); + drinkCounter++; + total += item2.getPrice(); + break; + + case 3: + CoffeeItem item3 = new CoffeeItem("Lemonade", 12.00); + orderSummary.append( + String.format("%s $%.2f%n", item3.getItemName(), item3.getPrice()) + ); + drinkCounter++; + total += item3.getPrice(); + break; + + case 4: + CoffeeItem item4 = new CoffeeItem("Water", 17.50); + orderSummary.append( + String.format("%s $%.2f%n", item4.getItemName(), item4.getPrice()) + ); + drinkCounter++; + total += item4.getPrice(); + break; + + case 5: + CoffeeItem item5 = new CoffeeItem("Soda", 10.50); + orderSummary.append( + String.format("%s $%.2f%n", item5.getItemName(), item5.getPrice()) + ); + drinkCounter++; + total += item5.getPrice(); + break; + + case 6: + CoffeeItem item6 = new CoffeeItem("Milkshake", 8.00); + orderSummary.append( + String.format("%s $%.2f%n", item6.getItemName(), item6.getPrice()) + ); + drinkCounter++; + total += item6.getPrice(); + break; + } + } + orderSummary.append( + String.format("%nYour total is $%.2f", total) + ); + return orderSummary; + } + + public void checkRewards(Customer customer, double total){ + if (customer.isEligibleForReward()) { + System.out.println("You are eligible for a reward!\n Your next drink is free."); + } + // if (customer) + + } + + + } \ No newline at end of file diff --git a/src/main/java/org/codedifferently/Purchase.java b/src/main/java/org/codedifferently/Purchase.java deleted file mode 100644 index c2dbce8..0000000 --- a/src/main/java/org/codedifferently/Purchase.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.codedifferently; - -import java.util.Scanner; - -public class Purchase { - public static void displayMenu(Customer customer, Item item1, Item item2, Item item3, Item item4, Item item5, Item item6){ - boolean checkout = false; - // do { - System.out.println("Welcome, " + customer.getName() + " to Coreye’s Coffee Cafe (Triple C’s)!"); - System.out.println("Here is our menu: "); - System.out.println("*****************************"); - System.out.printf("1) %s %.2f%n", item1.getItemName(), item1.getPrice()); - System.out.printf("2) %s %.2f%n", item2.getItemName(), item2.getPrice()); - System.out.printf("3) %s %.2f%n", item3.getItemName(), item3.getPrice()); - System.out.printf("4) %s %.2f%n", item4.getItemName(), item4.getPrice()); - System.out.printf("5) %s %.2f%n", item5.getItemName(), item5.getPrice()); - System.out.printf("6) %s %.2f%n", item6.getItemName(), item6.getPrice()); - System.out.println("*****************************"); - - // } while(!checkout); - } - public static String createCustomerOrder(){ - System.out.println("Type out the number of "); - return ""; - } - - -}//ends Purchase class diff --git a/src/main/java/org/codedifferently/Receipt.java b/src/main/java/org/codedifferently/Receipt.java new file mode 100644 index 0000000..c909eb8 --- /dev/null +++ b/src/main/java/org/codedifferently/Receipt.java @@ -0,0 +1,5 @@ +package org.codedifferently; + +public class Receipt +{ +} From 98083c266f24885716dd460a5913b5b2ae0aef7e Mon Sep 17 00:00:00 2001 From: Bryant Ferguson Date: Wed, 18 Feb 2026 01:46:57 -0500 Subject: [PATCH 4/6] Finished receipt class but am having issues with do while loop in main class --- .../java/org/codedifferently/Customer.java | 4 +- src/main/java/org/codedifferently/Main.java | 91 +++---------------- .../java/org/codedifferently/Receipt.java | 79 ++++++++++++++++ 3 files changed, 92 insertions(+), 82 deletions(-) diff --git a/src/main/java/org/codedifferently/Customer.java b/src/main/java/org/codedifferently/Customer.java index c56385e..510a8a0 100644 --- a/src/main/java/org/codedifferently/Customer.java +++ b/src/main/java/org/codedifferently/Customer.java @@ -13,7 +13,7 @@ public class Customer { Customer(String name, String email, int drinksPurchased){ this.name = name; this.email = email; - drinksPurchased = 0; + this.drinksPurchased = drinksPurchased; } public String getName(){ @@ -49,7 +49,7 @@ public void setDrinksPurchased(int drinksPurchased) { } public boolean isEligibleForReward(){ - if(drinksPurchased == 5){ + if(drinksPurchased >= 5){ return true; } return false; diff --git a/src/main/java/org/codedifferently/Main.java b/src/main/java/org/codedifferently/Main.java index 50fcc04..4070995 100644 --- a/src/main/java/org/codedifferently/Main.java +++ b/src/main/java/org/codedifferently/Main.java @@ -9,100 +9,31 @@ public static void main(String[] args) { Customer customer1 = new Customer("Bryant", "bob@gmail.com",0); boolean checkout = false; String customerOrder; - // do { + do { System.out.println("Welcome to Triple Cs!"); System.out.println("Please enter the number(s) of the drink(s) you would like to order."); System.out.println("Separate multiple items with a comma (e.g., 1,3,5)."); customerOrder = input.nextLine(); System.out.println("*************************************"); - System.out.println(createCustomerOrder(customer1, customerOrder)); + Receipt receipt = new Receipt(); + System.out.println(receipt.createCustomerOrder(customer1, customerOrder)); + System.out.println("*************************************"); + receipt.checkRewards(customer1, receipt.totalAmt); System.out.println("*************************************"); System.out.println("Are you ready to checkout? (y/n)"); - // } while(!checkout); + String choice = input.nextLine().toLowerCase(); + if(choice.equals("y")){ + System.out.println("Goodbye, have a great day!"); + checkout = true; + } + } while(!checkout); //use contains method } - public static StringBuilder createCustomerOrder(Customer customer, String customerOrder){ - StringBuilder orderSummary = new StringBuilder("You ordered:\n"); - int drinkCounter = 0; - double total = 0.0; - for (int i=0; i< customerOrder.length(); i++) { - switch (Character.getNumericValue(customerOrder.charAt(i))) { - - case 1: - CoffeeItem item1 = new CoffeeItem("Coffee", 10.00); - orderSummary.append( - String.format("%s $%.2f%n", item1.getItemName(), item1.getPrice()) - ); - drinkCounter++; - total += item1.getPrice(); - break; - - case 2: - CoffeeItem item2 = new CoffeeItem("Tea", 5.50); - orderSummary.append( - String.format("%s $%.2f%n", item2.getItemName(), item2.getPrice()) - ); - drinkCounter++; - total += item2.getPrice(); - break; - - case 3: - CoffeeItem item3 = new CoffeeItem("Lemonade", 12.00); - orderSummary.append( - String.format("%s $%.2f%n", item3.getItemName(), item3.getPrice()) - ); - drinkCounter++; - total += item3.getPrice(); - break; - - case 4: - CoffeeItem item4 = new CoffeeItem("Water", 17.50); - orderSummary.append( - String.format("%s $%.2f%n", item4.getItemName(), item4.getPrice()) - ); - drinkCounter++; - total += item4.getPrice(); - break; - - case 5: - CoffeeItem item5 = new CoffeeItem("Soda", 10.50); - orderSummary.append( - String.format("%s $%.2f%n", item5.getItemName(), item5.getPrice()) - ); - drinkCounter++; - total += item5.getPrice(); - break; - - case 6: - CoffeeItem item6 = new CoffeeItem("Milkshake", 8.00); - orderSummary.append( - String.format("%s $%.2f%n", item6.getItemName(), item6.getPrice()) - ); - drinkCounter++; - total += item6.getPrice(); - break; - } - } - orderSummary.append( - String.format("%nYour total is $%.2f", total) - ); - return orderSummary; - } - - public void checkRewards(Customer customer, double total){ - if (customer.isEligibleForReward()) { - System.out.println("You are eligible for a reward!\n Your next drink is free."); - } - // if (customer) - - } - - } \ No newline at end of file diff --git a/src/main/java/org/codedifferently/Receipt.java b/src/main/java/org/codedifferently/Receipt.java index c909eb8..6f37e6a 100644 --- a/src/main/java/org/codedifferently/Receipt.java +++ b/src/main/java/org/codedifferently/Receipt.java @@ -2,4 +2,83 @@ public class Receipt { + double totalAmt; + + public StringBuilder createCustomerOrder(Customer customer, String customerOrder){ + StringBuilder orderSummary = new StringBuilder("You ordered:\n"); + int drinkCounter = 0; + for (int i=0; i< customerOrder.length(); i++) { + switch (Character.getNumericValue(customerOrder.charAt(i))) { + + case 1: + CoffeeItem item1 = new CoffeeItem("Coffee", 10.00); + orderSummary.append( + String.format("%s $%.2f%n", item1.getItemName(), item1.getPrice()) + ); + drinkCounter++; + totalAmt += item1.getPrice(); + break; + + case 2: + CoffeeItem item2 = new CoffeeItem("Tea", 5.50); + orderSummary.append( + String.format("%s $%.2f%n", item2.getItemName(), item2.getPrice()) + ); + drinkCounter++; + totalAmt += item2.getPrice(); + break; + + case 3: + CoffeeItem item3 = new CoffeeItem("Lemonade", 12.00); + orderSummary.append( + String.format("%s $%.2f%n", item3.getItemName(), item3.getPrice()) + ); + drinkCounter++; + totalAmt += item3.getPrice(); + break; + + case 4: + CoffeeItem item4 = new CoffeeItem("Water", 17.50); + orderSummary.append( + String.format("%s $%.2f%n", item4.getItemName(), item4.getPrice()) + ); + drinkCounter++; + totalAmt += item4.getPrice(); + break; + + case 5: + CoffeeItem item5 = new CoffeeItem("Soda", 10.50); + orderSummary.append( + String.format("%s $%.2f%n", item5.getItemName(), item5.getPrice()) + ); + drinkCounter++; + totalAmt += item5.getPrice(); + break; + + case 6: + CoffeeItem item6 = new CoffeeItem("Milkshake", 8.00); + orderSummary.append( + String.format("%s $%.2f%n", item6.getItemName(), item6.getPrice()) + ); + drinkCounter++; + totalAmt += item6.getPrice(); + break; + } + } + customer.setDrinksPurchased(drinkCounter); + orderSummary.append( + String.format("%nYour total is $%.2f", totalAmt) + ); + return orderSummary; + } + + public void checkRewards(Customer customer, double total){ + if (customer.isEligibleForReward()) { + System.out.println("Congrats, You are eligible for a reward!\nYour next drink is free!"); + } + if (total > 20.00){ + System.out.println("You have gained bonus points on your account."); + } + + } } From 88f5f4341c5fa6be777b317eff06c05f042eddd3 Mon Sep 17 00:00:00 2001 From: Bryant Ferguson Date: Wed, 18 Feb 2026 17:53:41 -0500 Subject: [PATCH 5/6] Added invalid input handling and completed the project fully --- .../java/org/codedifferently/CoffeeItem.java | 10 ++-- .../java/org/codedifferently/Customer.java | 21 +++----- src/main/java/org/codedifferently/Main.java | 49 ++++++++++++++----- .../java/org/codedifferently/Receipt.java | 33 ++++++++++--- 4 files changed, 73 insertions(+), 40 deletions(-) diff --git a/src/main/java/org/codedifferently/CoffeeItem.java b/src/main/java/org/codedifferently/CoffeeItem.java index 7e8024a..3729cc3 100644 --- a/src/main/java/org/codedifferently/CoffeeItem.java +++ b/src/main/java/org/codedifferently/CoffeeItem.java @@ -1,18 +1,16 @@ package org.codedifferently; public class CoffeeItem { - private String itemName; - private double price; + private String itemName; //name of the item + private double price; //price of the item + //constructor for the item CoffeeItem(String itemName, double price){ this.itemName = itemName; this.price = price; } - CoffeeItem(String itemName){ - this.itemName = itemName; - this.price = 0; - } + //setters and getters for the coffee item public String getItemName(){ return itemName; } diff --git a/src/main/java/org/codedifferently/Customer.java b/src/main/java/org/codedifferently/Customer.java index 510a8a0..9b80c25 100644 --- a/src/main/java/org/codedifferently/Customer.java +++ b/src/main/java/org/codedifferently/Customer.java @@ -1,21 +1,20 @@ package org.codedifferently; public class Customer { - private String name; - private String email; - private int drinksPurchased; - private double wallet; - + private String name; //name of the customer + private String email; //email for the customer + private int drinksPurchased; //number of drinks the customer purchased Customer(){ - } + //Constructor for the customer object Customer(String name, String email, int drinksPurchased){ this.name = name; this.email = email; this.drinksPurchased = drinksPurchased; } + //setters and getters for the instance variables public String getName(){ return name; } @@ -32,14 +31,6 @@ public void setPhoneNumber(String email) { this.email = email; } - public double getWallet() { - return wallet; - } - - public void setWallet(double wallet) { - this.wallet = wallet; - } - public int getDrinksPurchased() { return drinksPurchased; } @@ -48,6 +39,8 @@ public void setDrinksPurchased(int drinksPurchased) { this.drinksPurchased = drinksPurchased; } + + //checks to see if the customer is eligible for a reward public boolean isEligibleForReward(){ if(drinksPurchased >= 5){ return true; diff --git a/src/main/java/org/codedifferently/Main.java b/src/main/java/org/codedifferently/Main.java index 4070995..f7ab103 100644 --- a/src/main/java/org/codedifferently/Main.java +++ b/src/main/java/org/codedifferently/Main.java @@ -4,35 +4,58 @@ // click the icon in the gutter. public class Main { public static void main(String[] args) { - Scanner input = new Scanner(System.in); + Scanner input = new Scanner(System.in); //scanner object + //vars for the customer, the customer's order, boolean var for the menu checkout, and the receipt object Customer customer1 = new Customer("Bryant", "bob@gmail.com",0); boolean checkout = false; - String customerOrder; - do { + String customerOrder =""; + Receipt receipt = new Receipt(); - System.out.println("Welcome to Triple Cs!"); + //Prompts the user for their order, displays the menu, and displays their receipt + do { + System.out.println("Welcome " + customer1.getName() + " to Triple Cs!"); + System.out.println("*************************************"); + System.out.println("Our Menu:"); + System.out.println("1) Coffee $10.00"); + System.out.println("2) Tea $5.50"); + System.out.println("3) Lemonade $12.00"); + System.out.println("4) Water $17.50"); + System.out.println("5) Soda $10.50"); + System.out.println("6) Milkshake $8.00"); + System.out.println(); System.out.println("Please enter the number(s) of the drink(s) you would like to order."); System.out.println("Separate multiple items with a comma (e.g., 1,3,5)."); - customerOrder = input.nextLine(); - System.out.println("*************************************"); - Receipt receipt = new Receipt(); - System.out.println(receipt.createCustomerOrder(customer1, customerOrder)); + + boolean validOrder = false; + + while (!validOrder) { + + customerOrder = input.nextLine(); + + // checks if input contains ONLY digits 1-6 and commas + if (customerOrder.matches("[1-6,]+")) { + validOrder = true; + } else { + System.out.println("Invalid selection. Please enter numbers 1-6 only."); + System.out.println("Try again:"); + } + } System.out.println("*************************************"); + receipt.createCustomerOrder(customer1, customerOrder); + System.out.println(receipt.getFullReceipt()); System.out.println("*************************************"); - receipt.checkRewards(customer1, receipt.totalAmt); + receipt.checkRewards(customer1, receipt.getTotalAmt()); System.out.println("*************************************"); + //prompts the user to check out System.out.println("Are you ready to checkout? (y/n)"); String choice = input.nextLine().toLowerCase(); if(choice.equals("y")){ System.out.println("Goodbye, have a great day!"); checkout = true; } - } while(!checkout); - - -//use contains method + } while(!checkout); } diff --git a/src/main/java/org/codedifferently/Receipt.java b/src/main/java/org/codedifferently/Receipt.java index 6f37e6a..3a60eea 100644 --- a/src/main/java/org/codedifferently/Receipt.java +++ b/src/main/java/org/codedifferently/Receipt.java @@ -2,14 +2,24 @@ public class Receipt { - double totalAmt; + private double totalAmt; //customer's total bill amount + private StringBuilder orderSummary = new StringBuilder("You ordered:\n"); //creates the customer's receipt + //setters and getters for the instance variables + public void setTotalAmt(double totalAmt) { + this.totalAmt = totalAmt; + } + + public double getTotalAmt() { + return totalAmt; + } + + //creates the receipt for the customer by creating coffeeItem objects public StringBuilder createCustomerOrder(Customer customer, String customerOrder){ - StringBuilder orderSummary = new StringBuilder("You ordered:\n"); int drinkCounter = 0; for (int i=0; i< customerOrder.length(); i++) { - switch (Character.getNumericValue(customerOrder.charAt(i))) { + switch (Character.getNumericValue(customerOrder.charAt(i))) { case 1: CoffeeItem item1 = new CoffeeItem("Coffee", 10.00); orderSummary.append( @@ -65,13 +75,18 @@ public StringBuilder createCustomerOrder(Customer customer, String customerOrde break; } } - customer.setDrinksPurchased(drinkCounter); - orderSummary.append( - String.format("%nYour total is $%.2f", totalAmt) - ); + + customer.setDrinksPurchased(customer.getDrinksPurchased() + drinkCounter); + return orderSummary; } + //returns the customer's receipt ' + public String getFullReceipt() { + return orderSummary.toString() + String.format("%nYour total is $%.2f", totalAmt); + } + + //checks to see if the customer has earned any awards and displays a message to the user public void checkRewards(Customer customer, double total){ if (customer.isEligibleForReward()) { System.out.println("Congrats, You are eligible for a reward!\nYour next drink is free!"); @@ -80,5 +95,9 @@ public void checkRewards(Customer customer, double total){ System.out.println("You have gained bonus points on your account."); } + if(customer.getDrinksPurchased() < 5){ + System.out.println("Drinks towards reward: " + (5 - customer.getDrinksPurchased())); + } + } } From c0f3909639ec3a226d26322d5a717231ec0701d2 Mon Sep 17 00:00:00 2001 From: Bryant Ferguson Date: Thu, 19 Feb 2026 11:02:05 -0500 Subject: [PATCH 6/6] Added checks for invalid user input. Project is now complete --- src/main/java/org/codedifferently/Main.java | 32 +++++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/codedifferently/Main.java b/src/main/java/org/codedifferently/Main.java index f7ab103..a6fcc7d 100644 --- a/src/main/java/org/codedifferently/Main.java +++ b/src/main/java/org/codedifferently/Main.java @@ -40,7 +40,9 @@ public static void main(String[] args) { System.out.println("Invalid selection. Please enter numbers 1-6 only."); System.out.println("Try again:"); } - } System.out.println("*************************************"); + } + + System.out.println("*************************************"); receipt.createCustomerOrder(customer1, customerOrder); System.out.println(receipt.getFullReceipt()); System.out.println("*************************************"); @@ -49,13 +51,31 @@ public static void main(String[] args) { //prompts the user to check out System.out.println("Are you ready to checkout? (y/n)"); - String choice = input.nextLine().toLowerCase(); - if(choice.equals("y")){ - System.out.println("Goodbye, have a great day!"); - checkout = true; + + boolean validAnswer = false; + String choice = ""; + + while (!validAnswer) { + + choice = input.nextLine().toLowerCase(); + + /*this chunk of code checks to see if the user's choice is a valid input + and if they want to continue shopping or not*/ + if (choice.matches("[yn]")) { + validAnswer = true; + + if (choice.equals("y")) { + System.out.println("Goodbye, have a great day!"); + checkout = true; + } + + } else { + System.out.println("Invalid selection. Please enter y or n."); + System.out.println("Try again:"); + } } - } while(!checkout); + } while(!checkout); }