From fd21d05001173d16faaeacccaaba8927327bdc23 Mon Sep 17 00:00:00 2001 From: Corey Scott Date: Thu, 19 Feb 2026 14:24:13 -0500 Subject: [PATCH] finished assignment --- .idea/misc.xml | 2 +- .idea/vcs.xml | 6 + .../org/codedifferently/Customer.class | Bin 0 -> 1294 bytes .../org/codedifferently/Main.class | Bin 0 -> 3811 bytes .../org/codedifferently/MenuItem.class | Bin 0 -> 918 bytes .../java/org/codedifferently/Customer.java | 56 +++++++++ src/main/java/org/codedifferently/Main.java | 115 ++++++++++++++++-- .../java/org/codedifferently/MenuItem.java | 32 +++++ 8 files changed, 199 insertions(+), 12 deletions(-) create mode 100644 .idea/vcs.xml create mode 100644 out/production/coffee-shop-rewards2/org/codedifferently/Customer.class create mode 100644 out/production/coffee-shop-rewards2/org/codedifferently/Main.class create mode 100644 out/production/coffee-shop-rewards2/org/codedifferently/MenuItem.class create mode 100644 src/main/java/org/codedifferently/Customer.java create mode 100644 src/main/java/org/codedifferently/MenuItem.java 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 0000000000000000000000000000000000000000..00ec0bad6f3889c3f63d7b11848ada6d39524745 GIT binary patch literal 1294 zcmaKqT~8B16o%hvx7~j1ZYu(QfFk%oyAZ31UKk9KV2C7$Bp4FCa@!rsLO;lMG4ZE( z>6JHLXd;?;;Scaf8Q+<1+XWiaWTrEF-simM%=z>8*KYu8SS}!iv7#*)I1tzve)ZHiyI?WZuaV(S+q=7 zuP1#0v032vDGSrMB4F`$Bb4&F3e)!93M^JGCcAi3-J`j6`ev4`V37Q^S8r*%-G!VD239OvYoIz(Ug%6P8P{FZwi?F zw5_{0S*czuK)_+Z&Zu!z^ahHlF+ETfJB&CZDV{kMcDrn~+z3RZu$^Bra5-I+9M#zAm_5QVn- zp)p#hX^JuH8VfisDY;KDjn6RBU#Lk#8CL1Q=n=(sq67Cifl+3Wk+qg4EY<@i_ zUK}gFJ63F;7cY$!-@{^@d6hoZOJwyxjK-k&ey{gF;)GQ*$#BTVRbS5hhl)9z^Q z-gEA`=bZbU$6meu{)Ni`y70FE6jZ421yKpVK}+8v%rFeWyEhXKRRmJ{!V{Ma3z_K=dI+p zsbMuYr5ro&`ZwJytV=9ggII@;5OOEa2>che?ew|?n}#+n_1dnP)sy+0>r8TD8q8mNL$2JeS1D0(HM4OrmAu7jF z!xpX-e94SEwyE3s$^B-wO%L->eL?i&A%S})jR~{cv6F_o%W}s#%ejW_<^&#?&4WA5 zs2I3Q5_A^<2w*FQWWcuxES^Q_ojPR(e3StR$UJJ(kYIi{rdH^U%U7+<>5CdytR8K& z19%ur!CgT-f{{`IcmVVh|1mR5I1d`>yt!>uCR%?vL`4avc^G?w_?W~~9W&h_hD!1t z4dOBEBgW)0KuKcEO6v(=Kawg^(j-}Bh1uie_ovB z%bF?Eocv&S7y^A#;NwAjLJDX`D&^_b@F|M-+YE=5(&;r3UE%NiaH;s763`!X(kau{ zhpps<>FWDgemUJVvUb7l!i5@+FwX)TN{_yyx4XB0`>4PRpThPMrO4YcXSrSXnUR?c$S z&j^`{=Yx1bB2t-5Ghiyd&aOIZ-!x=P_I0zJ5-?fZLtf1e8(wyW2b`pl-f3hlNf((u zcidti=MLOWVLLTWdWz>Xl_yxS-!|_Q5KK(bPdS-N0{70YtJu`3&!6;S$PGqzjK(9g z=;ik%m*i3*rOUreoHJ{h24~K9oI;6&aP0CaE;`|ppo&=R&iRzw2E`L6@S4Y>P$HKY|`9f z$xcu;NXS>nE>GFbj^pOstdSWs-Ek+C)9@>%{4O({DRLs3=(Qv(Knf5zlP{z4!2!jL$Y=%o1nh?l(Oqa5WjnRt<7usA=4Yp^H#Q z&Z6oZ>-i$WBjIQibIze*&?DwWv4F&oN8A_1LK1C0kGemKMoCqA)Z!?bCFS?1rBN)G zl&XY8TTbd{PD`fh#L1NMzpw^7zz2~8b>u= zm1ql`#oF-t8MH5*L04O~q z4-$Yc5w(D z;wfwr&+tC{Ji5eDY!)x0S6o7$c#U_{tJo^uz@T^&L*gx79{-8$;$OTAUdOO_4-YFE zb}At}qRhpJvIM)8wb-L{aNbGY7Cfp9;V~tNeaZw3C5M#q1T3#+uknoUV#&G3UU!vdqI8n|Vy`j}%Q#apq10d{XBwu&Ev)9O3TJr2A7Gl%nc=z5;D?OS z74Zsw#90v6#Bux>KViJy7BAqZl&i%%;yL_`p4Q=A@hpDMh=p*SIKG6ljN{Anb`NT9 zF-Tz*uc%N}IhpnMs)`x!w^hZfLR0`ZQ73L-!%Zv@H?f%8R#x4B%AXRu$spgL(-k;R m6AFHb3w+Pzp?^nME_&l7Z~V14{uY1YdVp)M<1hFt;{O2@wXwed literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..0b0563bc4a2ab6297a74b8d164ea9250b8d09399 GIT binary patch literal 918 zcmaJ<+iuf96r6Q@OX4IYZ9@yCP%f%tB>VwIl@JvYQd&Skd3W4xa7moXb&&W8UU}dH zcmyOWBp&zxK8iBCab1;G$kOiY*>mQc8Sn2uKYsyug8MZXs5me^Sg-{a4x@KbIF8a$ z_+oe{<6OXgoTN##*i%rvnh(D5(l?sNyFdde;WtzMGKz1d_av)9pZ ztjVWwG#*4*qRvIo%-L!6CWw-utB>F{xE|djn|0Y zakoGNagA%6rw_y?_toGBMDXwgPT)5`euCqFhS@wp;~Ot4SmfH)i7wYFzZzCZyu|n& z-je{!=x|p^H53}DmIkg9KY(${biN$d!Ab>!;FR$)U@*WiZs2AyTgY9}SiyHVUkMC7 zhpmGx-Fx20DthyI;Z|8}l*NrN{}eA?S-g(hMe(-w4Y0K%%7S@o_4YyG7DX!Q9euV- z>2@Jq(3FjW>lF=C26>yxS2x(aU}{s}t-dB^Tq(gPWyMzYr{RP}f BkUanZ literal 0 HcmV?d00001 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