Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file not shown.
Binary file not shown.
Binary file not shown.
56 changes: 56 additions & 0 deletions src/main/java/org/codedifferently/Customer.java
Original file line number Diff line number Diff line change
@@ -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;
}


}
115 changes: 104 additions & 11 deletions src/main/java/org/codedifferently/Main.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,110 @@
package org.codedifferently;

//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
//TIP Press <shortcut actionId="ShowIntentionActions"/> 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 <shortcut actionId="Debug"/> to start debugging your code. We have set one <icon src="AllIcons.Debugger.Db_set_breakpoint"/> breakpoint
// for you, but you can always add more by pressing <shortcut actionId="ToggleLineBreakpoint"/>.
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();




}
}
}




32 changes: 32 additions & 0 deletions src/main/java/org/codedifferently/MenuItem.java
Original file line number Diff line number Diff line change
@@ -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;
}
}
}