From fd136b3eacf4b5fe2281caf0c93d1db78e3824ad Mon Sep 17 00:00:00 2001 From: Josephine Wairimu Date: Sun, 10 Sep 2023 19:41:09 -0500 Subject: [PATCH 1/2] my implementations --- .../main/java/org/launchcode/Category.java | 5 ++ .../src/main/java/org/launchcode/Main.java | 41 ++++++++++++- .../src/main/java/org/launchcode/Menu.java | 58 +++++++++++++++++++ .../main/java/org/launchcode/MenuItem.java | 52 ++++++++++++++++- .../src/test/java/MenuTest.java | 38 ++++++++++++ .../org/launchcode/HelloMethods.java | 0 .../{java => }/org/launchcode/Message.java | 0 .../org/launchcode/TempConverter.java | 2 +- .../main/java/org/launchcode/HelloWorld.java | 18 ++++++ .../main/java/org/launchcode/InputOutput.java | 5 ++ .../java/org/launchcode/BalancedBrackets.java | 4 ++ .../org/launchcode/BalancedBracketsTest.java | 46 +++++++++++++++ 12 files changed, 264 insertions(+), 5 deletions(-) create mode 100644 classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Category.java create mode 100644 classes-part-one/studio/restaurant-menu/src/test/java/MenuTest.java rename datatypes/datatype-examples/src/main/{java => }/org/launchcode/HelloMethods.java (100%) rename datatypes/datatype-examples/src/main/{java => }/org/launchcode/Message.java (100%) rename datatypes/datatype-examples/src/main/{java => }/org/launchcode/TempConverter.java (90%) create mode 100644 datatypes/datatypes-exercises/src/main/java/org/launchcode/HelloWorld.java create mode 100644 datatypes/datatypes-exercises/src/main/java/org/launchcode/InputOutput.java diff --git a/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Category.java b/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Category.java new file mode 100644 index 000000000..abcac7212 --- /dev/null +++ b/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Category.java @@ -0,0 +1,5 @@ +package org.launchcode; + +public enum Category { + APPETIZER, MAIN_COURSE, DESSERT +} diff --git a/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Main.java b/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Main.java index cad5849f1..7bc146427 100644 --- a/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Main.java +++ b/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Main.java @@ -1,8 +1,47 @@ package org.launchcode; +import java.util.ArrayList; +import java.util.Date; +import java.util.Scanner; + public class Main { public static void main(String[] args) { - // write your code here + + // Initializing menu items + ArrayList menuItems = new ArrayList<>(); + menuItems.add(new MenuItem(5.99, "Bruschetta", Category.APPETIZER, true)); + menuItems.add(new MenuItem(15.99, "Chicken Alfredo", Category.MAIN_COURSE, false)); + menuItems.add(new MenuItem(7.99, "Brownie", Category.DESSERT, false)); + + // Using the provided constructor to initialize the Menu + Menu menu = new Menu(new Date(), menuItems); + + Scanner scanner = new Scanner(System.in); + + String choice; + + do { + System.out.println("Do you want to print a single item, all menu items, or exit? (Enter 'single', 'all' or '0' to exit)"); + choice = scanner.nextLine().toLowerCase().trim(); + + switch(choice) { + case "single": + System.out.println("Please enter the beginning of the item description:"); + String startOfDescription = scanner.nextLine().toLowerCase().trim(); + menu.printItemsWithDescription(startOfDescription); + break; + case "all": + menu.printMenu(); + break; + case "0": + System.out.println("Exiting the program..."); + break; + default: + System.out.println("Invalid choice."); + break; + } + } while (!"0".equals(choice)); + scanner.close(); } } diff --git a/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Menu.java b/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Menu.java index fc892ffe9..95e954a58 100644 --- a/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Menu.java +++ b/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Menu.java @@ -4,6 +4,16 @@ import java.util.Date; public class Menu { + @Override + public String toString() { +/* return "Menu{" + + "lastUpdated=" + lastUpdated + + ", items=" + items + + '}';*/ + + return "Menu (Last Updated: " + lastUpdated + ")\n items=" + items; + } + private Date lastUpdated; private ArrayList items; @@ -12,6 +22,54 @@ public Menu(Date d, ArrayList i) { this.items = i; } + // Add item to menu and update the lastUpdated date + public void addItem(MenuItem item) { + this.items.add(item); + updateLastUpdated(); + } + + // // Remove item from menu and update the lastUpdated date + public void removeItem(MenuItem item) { + this.items.remove(item); + updateLastUpdated(); + } + + // Print a single menu item + public void printMenuItem(MenuItem item) { + System.out.println("Description: " + item.getDescription()); + System.out.println("Category: " + item.getCategory()); + System.out.println("Price: $" + item.getPrice()); + System.out.println("New Item: " + (item.isNew() ? "Yes" : "No")); + System.out.println(); + } + + // Print the entire menu + public void printMenu() { + System.out.println("Menu (Last Updated: " + lastUpdated + ")"); + for (MenuItem item : items) { + printMenuItem(item); + } + + //System.out.println(this); + } + + public void printItemsWithDescription(String startOfDescription) { + boolean found = false; + for (MenuItem item : items) { + if (item.getDescription().toLowerCase().startsWith(startOfDescription)) { + printMenuItem(item); + found = true; + } + } + if (!found) { + System.out.println("No items matched your description."); + } + } + + private void updateLastUpdated() { + this.lastUpdated = new Date(); + } + public void setLastUpdated(Date lastUpdated) { this.lastUpdated = lastUpdated; } diff --git a/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/MenuItem.java b/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/MenuItem.java index 776c2764d..3e1939232 100644 --- a/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/MenuItem.java +++ b/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/MenuItem.java @@ -1,12 +1,45 @@ package org.launchcode; +import java.util.Objects; + public class MenuItem { private double price; private String description; - private String category; + private Category category; private boolean isNew; - public MenuItem(double p, String d, String c, boolean iN) { + @Override + public String toString() { +/* return "MenuItem{" + + "price=" + price + + ", description='" + description + '\'' + + ", category=" + category + + ", isNew=" + isNew + + '}';*/ + + return "Description: " + description+ + "\nCategory: " + category + + "\nPrice: $" + price + + "\nNew Item: " + (isNew ? "Yes" : "No") + "\n\n"; + } + + public double getPrice() { + return price; + } + + public String getDescription() { + return description; + } + + public Category getCategory() { + return category; + } + + public boolean isNew() { + return isNew; + } + + public MenuItem(double p, String d, Category c, boolean iN) { this.price = p; this.description = d; this.category = c; @@ -21,7 +54,20 @@ public void setDescription(String description) { this.description = description; } - public void setCategory(String category) { + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + MenuItem menuItem = (MenuItem) o; + return Double.compare(menuItem.price, price) == 0 && Objects.equals(description, menuItem.description) && category == menuItem.category; + } + + @Override + public int hashCode() { + return Objects.hash(price, description, category); + } + + public void setCategory(Category category) { this.category = category; } diff --git a/classes-part-one/studio/restaurant-menu/src/test/java/MenuTest.java b/classes-part-one/studio/restaurant-menu/src/test/java/MenuTest.java new file mode 100644 index 000000000..55ca61b88 --- /dev/null +++ b/classes-part-one/studio/restaurant-menu/src/test/java/MenuTest.java @@ -0,0 +1,38 @@ +import org.launchcode.Category; +import org.launchcode.Menu; +import org.launchcode.MenuItem; + + +import java.util.ArrayList; +import java.util.Date; + + +public class MenuTest { + + public static void main(String[] args) { + // Creating some sample menu items + MenuItem item1 = new MenuItem(5.99, "Bruschetta", Category.APPETIZER, true); + MenuItem item2 = new MenuItem(15.99, "Chicken Alfredo", Category.MAIN_COURSE, false); + MenuItem item3 = new MenuItem(7.50, "Chocolate Cake", Category.DESSERT, true); + + // Adding menu items to a list + ArrayList menuItems = new ArrayList<>(); + menuItems.add(item1); + menuItems.add(item2); + menuItems.add(item3); + + // Creating a Menu + Menu menu = new Menu(new Date(), menuItems); + + // Printing the menu items + System.out.println("Menu (Last Updated: " + menu.getLastUpdated() + ")"); + for (MenuItem item : menu.getItems()) { + System.out.println("Description: " + item.getDescription() + + "\nCategory: " + item.getCategory() + + "\nPrice: $" + item.getPrice() + + "\nNew Item: " + (item.isNew() ? "Yes" : "No") + "\n"); + } + + //System.out.println( menu ); + } +} diff --git a/datatypes/datatype-examples/src/main/java/org/launchcode/HelloMethods.java b/datatypes/datatype-examples/src/main/org/launchcode/HelloMethods.java similarity index 100% rename from datatypes/datatype-examples/src/main/java/org/launchcode/HelloMethods.java rename to datatypes/datatype-examples/src/main/org/launchcode/HelloMethods.java diff --git a/datatypes/datatype-examples/src/main/java/org/launchcode/Message.java b/datatypes/datatype-examples/src/main/org/launchcode/Message.java similarity index 100% rename from datatypes/datatype-examples/src/main/java/org/launchcode/Message.java rename to datatypes/datatype-examples/src/main/org/launchcode/Message.java diff --git a/datatypes/datatype-examples/src/main/java/org/launchcode/TempConverter.java b/datatypes/datatype-examples/src/main/org/launchcode/TempConverter.java similarity index 90% rename from datatypes/datatype-examples/src/main/java/org/launchcode/TempConverter.java rename to datatypes/datatype-examples/src/main/org/launchcode/TempConverter.java index d09ac901d..defd49353 100644 --- a/datatypes/datatype-examples/src/main/java/org/launchcode/TempConverter.java +++ b/datatypes/datatype-examples/src/main/org/launchcode/TempConverter.java @@ -1,4 +1,4 @@ -package org.launchcode; +package org.launchcode;//package org.launchcode; import java.util.Scanner; diff --git a/datatypes/datatypes-exercises/src/main/java/org/launchcode/HelloWorld.java b/datatypes/datatypes-exercises/src/main/java/org/launchcode/HelloWorld.java new file mode 100644 index 000000000..96d7b296d --- /dev/null +++ b/datatypes/datatypes-exercises/src/main/java/org/launchcode/HelloWorld.java @@ -0,0 +1,18 @@ +package org.launchcode; + +import java.util.Scanner; + + +public class HelloWorld { + + public static void main(String[] args) { + Scanner input = new Scanner(System.in); + System.out.println("Hello, what is your name? "); + + String name = input.next(); + + System.out.println("Hello " + name); + + } + +} diff --git a/datatypes/datatypes-exercises/src/main/java/org/launchcode/InputOutput.java b/datatypes/datatypes-exercises/src/main/java/org/launchcode/InputOutput.java new file mode 100644 index 000000000..078410618 --- /dev/null +++ b/datatypes/datatypes-exercises/src/main/java/org/launchcode/InputOutput.java @@ -0,0 +1,5 @@ +package org.launchcode; + +public class InputOutput { + +} diff --git a/unit-testing/studio/balanced-brackets/src/main/java/org/launchcode/BalancedBrackets.java b/unit-testing/studio/balanced-brackets/src/main/java/org/launchcode/BalancedBrackets.java index 890783e59..94cb75af8 100644 --- a/unit-testing/studio/balanced-brackets/src/main/java/org/launchcode/BalancedBrackets.java +++ b/unit-testing/studio/balanced-brackets/src/main/java/org/launchcode/BalancedBrackets.java @@ -25,6 +25,10 @@ public static boolean hasBalancedBrackets(String str) { if (ch == '[') { brackets++; } else if (ch == ']') { + if (brackets == 0) { + // If a closing bracket is encountered before an opening bracket, it's unbalanced + return false; + } brackets--; } } diff --git a/unit-testing/studio/balanced-brackets/src/test/java/org/launchcode/BalancedBracketsTest.java b/unit-testing/studio/balanced-brackets/src/test/java/org/launchcode/BalancedBracketsTest.java index a9d8821b3..001d6d11e 100644 --- a/unit-testing/studio/balanced-brackets/src/test/java/org/launchcode/BalancedBracketsTest.java +++ b/unit-testing/studio/balanced-brackets/src/test/java/org/launchcode/BalancedBracketsTest.java @@ -10,4 +10,50 @@ class BalancedBracketsTest { public void emptyTest() { assertEquals(true, true); } + + @Test + public void onlyBracketsReturnsTrue() { + assertTrue(BalancedBrackets.hasBalancedBrackets("[]")); + } + + @Test + public void wordWithBracketsAtTheEndReturnTrue() { + assertTrue(BalancedBrackets.hasBalancedBrackets("[LaunchCode]")); + } + + @Test + public void wordWithBracketsFromTheMiddleToTheEndReturnTrue() { + assertTrue(BalancedBrackets.hasBalancedBrackets("Launch[Code]")); + } + + @Test + public void wordWithBracketsAtTheBeginningReturnTrue() { + assertTrue(BalancedBrackets.hasBalancedBrackets("[]LaunchCode")); + } + + @Test + public void emptyStringReturnTrue() { + assertTrue(BalancedBrackets.hasBalancedBrackets("")); + } + + @Test + public void wordWithOpeningBracketOnlyReturnsFalse() { + assertFalse(BalancedBrackets.hasBalancedBrackets("[LaunchCode")); + } + + @Test + public void wordWithClosingBracketBeforeOpeningBracketFalse() { + assertFalse(BalancedBrackets.hasBalancedBrackets("Launch]Code[")); + } + + @Test + public void openingBracketOnlyReturnsFalse() { + assertFalse(BalancedBrackets.hasBalancedBrackets("[")); + } + + @Test + public void closeingAndOpenningBracketsSideBySideReturnFalse() { + assertFalse(BalancedBrackets.hasBalancedBrackets("][")); + } + } \ No newline at end of file From c7ddd7bd61ce9a6a213a9cabe1a12ddb8d241552 Mon Sep 17 00:00:00 2001 From: Josephine Wairimu Date: Fri, 15 Sep 2023 21:11:06 -0500 Subject: [PATCH 2/2] inheritance studio --- .../main/java/org/launchcode/Category.java | 5 + .../src/main/java/org/launchcode/Main.java | 41 +++++++- .../src/main/java/org/launchcode/Menu.java | 88 ++++++++++++++++++ .../main/java/org/launchcode/MenuItem.java | 79 ++++++++++++++++ .../src/test/java/MenuTest.java | 38 ++++++++ inheritance/studio/pom.xml | 16 ++++ .../java/org/launchcode/CheckboxQuestion.java | 41 ++++++++ .../launchcode/MultipleChoiceQuestion.java | 25 +++++ .../main/java/org/launchcode/Question.java | 28 ++++++ .../src/main/java/org/launchcode/Quiz.java | 44 +++++++++ .../main/java/org/launchcode/QuizRunner.java | 40 ++++++++ .../org/launchcode/TrueFalseQuestion.java | 22 +++++ .../org/launchcode/CheckboxQuestion.class | Bin 0 -> 2394 bytes .../launchcode/MultipleChoiceQuestion.class | Bin 0 -> 2025 bytes .../classes/org/launchcode/Question.class | Bin 0 -> 1498 bytes .../target/classes/org/launchcode/Quiz.class | Bin 0 -> 2166 bytes .../classes/org/launchcode/QuizRunner.class | Bin 0 -> 1715 bytes .../org/launchcode/TrueFalseQuestion.class | Bin 0 -> 1741 bytes 18 files changed, 466 insertions(+), 1 deletion(-) create mode 100644 classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Category.java create mode 100644 classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Menu.java create mode 100644 classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/MenuItem.java create mode 100644 classes-part-one/studio/restaurant-menu/src/test/java/MenuTest.java create mode 100644 inheritance/studio/pom.xml create mode 100644 inheritance/studio/src/main/java/org/launchcode/CheckboxQuestion.java create mode 100644 inheritance/studio/src/main/java/org/launchcode/MultipleChoiceQuestion.java create mode 100644 inheritance/studio/src/main/java/org/launchcode/Question.java create mode 100644 inheritance/studio/src/main/java/org/launchcode/Quiz.java create mode 100644 inheritance/studio/src/main/java/org/launchcode/QuizRunner.java create mode 100644 inheritance/studio/src/main/java/org/launchcode/TrueFalseQuestion.java create mode 100644 inheritance/studio/target/classes/org/launchcode/CheckboxQuestion.class create mode 100644 inheritance/studio/target/classes/org/launchcode/MultipleChoiceQuestion.class create mode 100644 inheritance/studio/target/classes/org/launchcode/Question.class create mode 100644 inheritance/studio/target/classes/org/launchcode/Quiz.class create mode 100644 inheritance/studio/target/classes/org/launchcode/QuizRunner.class create mode 100644 inheritance/studio/target/classes/org/launchcode/TrueFalseQuestion.class diff --git a/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Category.java b/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Category.java new file mode 100644 index 000000000..abcac7212 --- /dev/null +++ b/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Category.java @@ -0,0 +1,5 @@ +package org.launchcode; + +public enum Category { + APPETIZER, MAIN_COURSE, DESSERT +} diff --git a/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Main.java b/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Main.java index cad5849f1..7bc146427 100644 --- a/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Main.java +++ b/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Main.java @@ -1,8 +1,47 @@ package org.launchcode; +import java.util.ArrayList; +import java.util.Date; +import java.util.Scanner; + public class Main { public static void main(String[] args) { - // write your code here + + // Initializing menu items + ArrayList menuItems = new ArrayList<>(); + menuItems.add(new MenuItem(5.99, "Bruschetta", Category.APPETIZER, true)); + menuItems.add(new MenuItem(15.99, "Chicken Alfredo", Category.MAIN_COURSE, false)); + menuItems.add(new MenuItem(7.99, "Brownie", Category.DESSERT, false)); + + // Using the provided constructor to initialize the Menu + Menu menu = new Menu(new Date(), menuItems); + + Scanner scanner = new Scanner(System.in); + + String choice; + + do { + System.out.println("Do you want to print a single item, all menu items, or exit? (Enter 'single', 'all' or '0' to exit)"); + choice = scanner.nextLine().toLowerCase().trim(); + + switch(choice) { + case "single": + System.out.println("Please enter the beginning of the item description:"); + String startOfDescription = scanner.nextLine().toLowerCase().trim(); + menu.printItemsWithDescription(startOfDescription); + break; + case "all": + menu.printMenu(); + break; + case "0": + System.out.println("Exiting the program..."); + break; + default: + System.out.println("Invalid choice."); + break; + } + } while (!"0".equals(choice)); + scanner.close(); } } diff --git a/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Menu.java b/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Menu.java new file mode 100644 index 000000000..a18413dc2 --- /dev/null +++ b/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/Menu.java @@ -0,0 +1,88 @@ +package org.launchcode; + +import java.util.ArrayList; +import java.util.Date; + +public class Menu { + @Override + public String toString() { +/* return "Menu{" + + "lastUpdated=" + lastUpdated + + ", items=" + items + + '}';*/ + + return "Menu (Last Updated: " + lastUpdated + ")\n items=" + items; + } + + private Date lastUpdated; + private ArrayList items; + + public Menu(Date d, ArrayList i) { + this.lastUpdated = d; + this.items = i; + } + + // Add item to menu and update the lastUpdated date + public void addItem(MenuItem item) { + this.items.add(item); + updateLastUpdated(); + } + + // // Remove item from menu and update the lastUpdated date + public void removeItem(MenuItem item) { + this.items.remove(item); + updateLastUpdated(); + } + + // Print a single menu item + public void printMenuItem(MenuItem item) { + System.out.println("Description: " + item.getDescription()); + System.out.println("Category: " + item.getCategory()); + System.out.println("Price: $" + item.getPrice()); + System.out.println("New Item: " + (item.isNew() ? "Yes" : "No")); + System.out.println(); + } + + // Print the entire menu + public void printMenu() { + System.out.println("Menu (Last Updated: " + lastUpdated + ")"); + for (MenuItem item : items) { + printMenuItem(item); + } + + //System.out.println(this);o + } + + public void printItemsWithDescription(String startOfDescription) { + boolean found = false; + for (MenuItem item : items) { + if (item.getDescription().toLowerCase().startsWith(startOfDescription)) { + printMenuItem(item); + found = true; + } + } + if (!found) { + System.out.println("No items matched your description."); + } + } + + private void updateLastUpdated() { + this.lastUpdated = new Date(); + } + + public void setLastUpdated(Date lastUpdated) { + this.lastUpdated = lastUpdated; + } + + public void setItems(ArrayList items) { + this.items = items; + } + + public Date getLastUpdated() { + return lastUpdated; + } + + public ArrayList getItems() { + return items; + } +} diff --git a/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/MenuItem.java b/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/MenuItem.java new file mode 100644 index 000000000..a649a8127 --- /dev/null +++ b/classes-part-one/studio/restaurant-menu/src/main/java/org/launchcode/MenuItem.java @@ -0,0 +1,79 @@ +package org.launchcode; + +import java.util.Objects; + +public class MenuItem { + private double price; + private String description; + private Category category; + private boolean isNew; + + @Override + public String toString() { +/* return "MenuItem{" + + "price=" + price + + ", description='" + description + '\'' + + ", category=" + category + + ", isNew=" + isNew + + '}';*/ + + return "Description: " + description+ + "\nCategory: " + category + + "\nPrice: $" + price + + "\nNew Item: " + (isNew ? "Yes" : "No") + "\n\n"; + } + + public double getPrice() { + return price; + } + + public String getDescription() { + return description; + } + + public Category getCategory() { + return category; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof MenuItem)) return false; + MenuItem menuItem = (MenuItem) o; + return Objects.equals(description, menuItem.description) && category == menuItem.category; + } + + @Override + public int hashCode() { + return Objects.hash(description, category); + } + + public boolean isNew() { + return isNew; + } + + public MenuItem(double p, String d, Category c, boolean iN) { + this.price = p; + this.description = d; + this.category = c; + this.isNew = iN; + } + + public void setPrice(double price) { + this.price = price; + } + + public void setDescription(String description) { + this.description = description; + } + + + + public void setCategory(Category category) { + this.category = category; + } + + public void setNew(boolean aNew) { + isNew = aNew; + } +} diff --git a/classes-part-one/studio/restaurant-menu/src/test/java/MenuTest.java b/classes-part-one/studio/restaurant-menu/src/test/java/MenuTest.java new file mode 100644 index 000000000..55ca61b88 --- /dev/null +++ b/classes-part-one/studio/restaurant-menu/src/test/java/MenuTest.java @@ -0,0 +1,38 @@ +import org.launchcode.Category; +import org.launchcode.Menu; +import org.launchcode.MenuItem; + + +import java.util.ArrayList; +import java.util.Date; + + +public class MenuTest { + + public static void main(String[] args) { + // Creating some sample menu items + MenuItem item1 = new MenuItem(5.99, "Bruschetta", Category.APPETIZER, true); + MenuItem item2 = new MenuItem(15.99, "Chicken Alfredo", Category.MAIN_COURSE, false); + MenuItem item3 = new MenuItem(7.50, "Chocolate Cake", Category.DESSERT, true); + + // Adding menu items to a list + ArrayList menuItems = new ArrayList<>(); + menuItems.add(item1); + menuItems.add(item2); + menuItems.add(item3); + + // Creating a Menu + Menu menu = new Menu(new Date(), menuItems); + + // Printing the menu items + System.out.println("Menu (Last Updated: " + menu.getLastUpdated() + ")"); + for (MenuItem item : menu.getItems()) { + System.out.println("Description: " + item.getDescription() + + "\nCategory: " + item.getCategory() + + "\nPrice: $" + item.getPrice() + + "\nNew Item: " + (item.isNew() ? "Yes" : "No") + "\n"); + } + + //System.out.println( menu ); + } +} diff --git a/inheritance/studio/pom.xml b/inheritance/studio/pom.xml new file mode 100644 index 000000000..a45aa8969 --- /dev/null +++ b/inheritance/studio/pom.xml @@ -0,0 +1,16 @@ + + + 4.0.0 + + org.example + studio + 1.0-SNAPSHOT + + + 17 + 17 + + + \ No newline at end of file diff --git a/inheritance/studio/src/main/java/org/launchcode/CheckboxQuestion.java b/inheritance/studio/src/main/java/org/launchcode/CheckboxQuestion.java new file mode 100644 index 000000000..346c0aeaa --- /dev/null +++ b/inheritance/studio/src/main/java/org/launchcode/CheckboxQuestion.java @@ -0,0 +1,41 @@ +package org.launchcode; + +import java.util.List; + + + +class CheckboxQuestion extends Question { + private List choices; + private List correctAnswers; + + public CheckboxQuestion(String questionText, List choices, List correctAnswers) { + super(questionText, correctAnswers); // Pass correctAnswers to the superclass constructor + this.choices = choices; + this.correctAnswers = correctAnswers; + } + + @Override + public void displayQuestion() { + System.out.println("Question: " + getQuestionText()); + System.out.println("Choices:"); + for (int i = 0; i < choices.size(); i++) { + System.out.println((char)('A' + i) + ") " + choices.get(i)); // Use letters (A, B, C, ...) for choices + } + System.out.println("Select multiple choices separated by commas (e.g., A, C): "); + } + + @Override + public boolean isCorrect(Object answer) { + if (answer instanceof String) { + String[] selectedChoices = ((String) answer).split(","); + for (String choice : selectedChoices) { + choice = choice.trim(); // Remove leading/trailing whitespace + if (!correctAnswers.contains(choice)) { + return false; // If any choice is not correct, the answer is incorrect + } + } + return true; + } + return false; // Incorrect format for answer + } +} diff --git a/inheritance/studio/src/main/java/org/launchcode/MultipleChoiceQuestion.java b/inheritance/studio/src/main/java/org/launchcode/MultipleChoiceQuestion.java new file mode 100644 index 000000000..cca836dc2 --- /dev/null +++ b/inheritance/studio/src/main/java/org/launchcode/MultipleChoiceQuestion.java @@ -0,0 +1,25 @@ +package org.launchcode; + +import java.util.List; + +class MultipleChoiceQuestion extends Question { + private List choices; + + public MultipleChoiceQuestion(String questionText, List choices, String correctAnswer) { + super(questionText, correctAnswer); + this.choices = choices; + } + + @Override + public void displayQuestion() { + System.out.println("Question: " + getQuestionText()); + System.out.println("Choices:"); + for (int i = 0; i < choices.size(); i++) { + System.out.println((i + 1) + ". " + choices.get(i)); + } + } + + public void displayAnswer() { + System.out.println("Correct Answer: " + getCorrectAnswer()); + } +} diff --git a/inheritance/studio/src/main/java/org/launchcode/Question.java b/inheritance/studio/src/main/java/org/launchcode/Question.java new file mode 100644 index 000000000..059193a13 --- /dev/null +++ b/inheritance/studio/src/main/java/org/launchcode/Question.java @@ -0,0 +1,28 @@ +package org.launchcode; + +class Question { + private String questionText; + private Object correctAnswer; + + public Question(String questionText, Object correctAnswer) { + this.questionText = questionText; + this.correctAnswer = correctAnswer; + } + + public String getQuestionText() { + return questionText; + } + + public Object getCorrectAnswer() { + return correctAnswer; + } + + public void displayQuestion() { + System.out.println("Question: " + questionText); + } + + public boolean isCorrect(Object answer) { + // Check if the provided answer is correct + return answer.equals(correctAnswer); + } +} diff --git a/inheritance/studio/src/main/java/org/launchcode/Quiz.java b/inheritance/studio/src/main/java/org/launchcode/Quiz.java new file mode 100644 index 000000000..4c1a8b3c0 --- /dev/null +++ b/inheritance/studio/src/main/java/org/launchcode/Quiz.java @@ -0,0 +1,44 @@ +package org.launchcode; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + + + + +class Quiz { + private List questions; + private int score; + + public Quiz() { + this.questions = new ArrayList<>(); + this.score = 0; + } + + public void addQuestion(Question question) { + questions.add(question); + } + + public void runQuiz() { + Scanner scanner = new Scanner(System.in); + + for (Question question : questions) { + question.displayQuestion(); + String userAnswer = scanner.nextLine(); + + if (question.isCorrect(userAnswer)) { + System.out.println("Correct!"); + score++; + } else { + System.out.println("Incorrect."); + } + } + + scanner.close(); + } + + public void gradeQuiz() { + System.out.println("Quiz Score: " + score + "/" + questions.size()); + } +} diff --git a/inheritance/studio/src/main/java/org/launchcode/QuizRunner.java b/inheritance/studio/src/main/java/org/launchcode/QuizRunner.java new file mode 100644 index 000000000..1a7b91508 --- /dev/null +++ b/inheritance/studio/src/main/java/org/launchcode/QuizRunner.java @@ -0,0 +1,40 @@ +package org.launchcode; + +import java.util.Arrays; +import java.util.List; + +public class QuizRunner { + public static void main(String[] args) { + // Create a quiz + Quiz quiz = new Quiz(); + + // Sample Multiple Choice Question + List mcChoices = Arrays.asList( + "A) Paris", + "B) London", + "C) New York", + "D) Tokyo" + ); + quiz.addQuestion(new MultipleChoiceQuestion("What is the capital of France?", mcChoices, "A")); + + // Sample Checkbox Question + List cbChoices = Arrays.asList( + "A) Red", + "B) Blue", + "C) Green", + "D) Yellow" + ); + List cbCorrectAnswers = Arrays.asList("A", "C"); + quiz.addQuestion(new CheckboxQuestion("Select the primary colors:", cbChoices, cbCorrectAnswers)); + + // Sample True/False Question + quiz.addQuestion(new TrueFalseQuestion("Is the sky blue?", true)); + + // Run the quiz + System.out.println("Welcome to the Quiz!"); + quiz.runQuiz(); + + // Grade the quiz + quiz.gradeQuiz(); + } +} diff --git a/inheritance/studio/src/main/java/org/launchcode/TrueFalseQuestion.java b/inheritance/studio/src/main/java/org/launchcode/TrueFalseQuestion.java new file mode 100644 index 000000000..563625df0 --- /dev/null +++ b/inheritance/studio/src/main/java/org/launchcode/TrueFalseQuestion.java @@ -0,0 +1,22 @@ +package org.launchcode; + +class TrueFalseQuestion extends org.launchcode.Question { + public TrueFalseQuestion(String questionText, boolean correctAnswer) { + super(questionText, correctAnswer); + } + + @Override + public void displayQuestion() { + System.out.println("Question: " + getQuestionText()); + System.out.println("True or False? (Enter 'T' or 'F'): "); + } + + @Override + public boolean isCorrect(Object answer) { + if (answer instanceof String) { + String userAnswer = ((String) answer).trim().toUpperCase(); // Convert to uppercase for case insensitivity + return userAnswer.equals("T") && (boolean) getCorrectAnswer(); // 'T' should be true + } + return false; // Incorrect format for answer + } +} diff --git a/inheritance/studio/target/classes/org/launchcode/CheckboxQuestion.class b/inheritance/studio/target/classes/org/launchcode/CheckboxQuestion.class new file mode 100644 index 0000000000000000000000000000000000000000..81773a2520556956a1cac7c7331c3007ccd17e6a GIT binary patch literal 2394 zcmah~TXz#>6y0BLlcv)Pfq=Er4gzhHUV|l8NHANMt32X>bkbJYTw`9LDK5Bq3MpmV1UkB64%v6 zF-71*GG4-vz(7rRH`y%f_Zf3wBHNK!m}{EC4a;~1hbdP>UDHdprK#>U!>#klaaGG@ z3S(VV>H?O+C=>}tWW0)_0{eaTJ2?tSO^>n3B4oOut|W0>AXy63EA(O<6B4pAa+suC zKIE2^0x`$Pd*+tKFTE-0WTr+!bgT+pkVKF7Vwo_TZ>S+kP?g{aR*A%6_N_8TI z;w5ofpit3G7Eo!lP1k6ex)K&%arCCzQeC~Otgb7X-Ds$eGNI4ZW~P++DW#MxC`r5} zAf{3{fr5-8W(DF-(=HcDr&ans)of1?$CO( zt8WPORE(OXy6qN4JQl!jsXM!OySbvksV-&P6&W6(EhHWw(kt-{vN6ksrC)3}R`u4h zx@yvrF58-FuBa`;TZhJ&TQ|u2NcjaPjfCX8;kgd_JiV8;z`>n+tT#9Jx%J{~y6Uhi zaYYBS8c$8bu)NZ^zTT8SWz-(z|;JQh4# zU3!55sy{|NNw+7*R@;BPqwNE;gzEySirsE$`US(QMrQXcoAIC+de*jG$8D+2CEcyt zRc9c9)f6;TCFtJ4`HUU3y{lo}v)A-+qy|Iff~vW8YhB>$PR&Ed0CYjMs;2H7E8F&3 zyV*I3!z0&`*N(ttR)g9X77WDuQjcXjyuz zWU7v%I}$jHkMBvhTNV;*fsy}rW$A*Hp>T#rIFuv&@KwX9bk1L$=bCSfj&+pJaa^GN zJ$ihJC}OUIsQW z!e#mx@6p-e+|Q66V@%*XjL|$eKYaTu&o=xRQxW`%6Hjo`k9i=(_s{?EB2O`LJFgK) z++jZ%9>5`FFh+(Y-WT~Myn-P=N00LmXXRB?{LHR~*)B7(2a$g`Kc6AbzdmGWK>bgK zc)$yjzv09;I6Fxy={Gm<_R`eF>8Gb-(bMrvJQE}9=}i1&Au*KLz?njV)cb}KkMV8< z-y$A;_#jT!f5jd~9}+7l#2B{(4ikNZ!j5ucD|~Go!7SgKb6lUpan^Nwt2pCKYlS6A z(EAjw;kqyB!dAf+@DXm1wU^8YV$Z2@LPAo)O$oR7W%J_b--th>PZXcfD}qmPoA-V` TskGMotARDzQe2y`(8SPxje%Au literal 0 HcmV?d00001 diff --git a/inheritance/studio/target/classes/org/launchcode/MultipleChoiceQuestion.class b/inheritance/studio/target/classes/org/launchcode/MultipleChoiceQuestion.class new file mode 100644 index 0000000000000000000000000000000000000000..28d5c5463ae63056c6866b915b659eed32d92d3f GIT binary patch literal 2025 zcma)7U31$+6g_LZk?kmT;wEX+KnalM!);=|3vmdvh7ePyA2_5y`KY4oBx)4NNb5p) z=11_x3@<#Ffilel!!z&v8HNGQN^)Yy9$+$A?cTljo^#LMUH|si;V%GQhm}VPX#*J( zr!XLJ)(>{duGRAFUEAN5<=ZV8D#!N(29_PqQ7ZzobM^by1B+hXPPw51$J?oNSZ;3J zm$s_RZ|0Ci&OqM8AWVUaCo-?MT;()fS>5#=TOQ*Wc4PPH!stvgzzhunl++`SmD%F`O5l`#=qKTLAG7}Q9>IVTkIqrfUDb;$kZU+Qo~2p=OP!7#jx<>A4OpoNTdFh-PS|vsB+VeJJs7A9%ju zw*p(PI$EvC{?~s|cQD)Kn(wPn1y*xis$G9OEDYdQ9=GwHfrf664W9Jz?RUHf{+>+U zqWFrgTDJ0o1A%WkHAo!eq-&P9?aFYv?)!VKW}oBkkfAGZg9`U?zuV#8r(Kg2Rm*i7 zj*^uusNG;&%%v%j#RqIJv8ZPs35+E7Wh&N>4(yJa=gFYzT45+d1E26!?NOm$aRxpU zxbW|;eBomyFvW|T;>#yE^6BRHHLg-vLYnhasBpeai^p|_U$b;+;b(}_<)2_YH&6AmX+A{eV^C|p_g+r91 zh_8kC{_o$9`JX3qpuoRj<{ZHciex)NapF#35o@SL6|5yyz00T^Qh#DX{DB2- zT|Xkb!Vq21a7^}vL%b3}YtU3An*KEg;R-kxfoSpRpQKKs9(k_g2EU^e=_dEzkH$OE R_#y6cCr|6g_!Rdr@ekwA2d)4B literal 0 HcmV?d00001 diff --git a/inheritance/studio/target/classes/org/launchcode/Question.class b/inheritance/studio/target/classes/org/launchcode/Question.class new file mode 100644 index 0000000000000000000000000000000000000000..99b9bab59a77cb2d4523a702981cd0bedfd349b3 GIT binary patch literal 1498 zcmaJ>>rN9v6#k|ZmX<9o! zkt9oJ#ARt|M!n!rjjD(v!4RvOmPOGv4f}(zdf}c9f+sPqU_!+trh0^yJGK-}(r30Q z(xewjGxM(~jHFSRfl%qrI_+|r!2Zw$+ZMqy`4|L9|ZnCe1y+v@dlBGacP z)DZ#}d)wHH^i>jNO|x4%?{sMyBAV^HQZcx{38H1QZB@m#=E#qA!7EO+DcY84N?TgI z^<2n?S+nCqxF5v>JXG+=Y4j>X`fSf>#-X_{^4`|-dcV!9(zH4ZpMu5pfgb5oZq#&P zr%R@}-)|Hw`T#9Pf_H$Ue=^23}cO9q?`C^iqWxpW*EXM z>fE-4t>7`k{JA9iX;-kxF!z5bmEKDfDLR@VIx!)7=$yMVI;S)ag3&uq-vwH|rT+so z#&bWwa!W^0a?3}EeRUlc>6=8DzI44f*9JYKh$2Ill;?&laHw<%UPM{D4Si-U& zCQqaDZ!q^A$`_i1;E)fw#+XZ}dH|o0;RaU7;%E#y$NqL6>+76%sU7DHR|$~#hA}7j z38sN#Ts+IrImVzXDUPWCSK?I2O{9Gx>x6W$ktJe^9pma}S_CthbqS_C&}nHRxJ3n_ d+YPr}{2kn-ahNRk=q=D44k{`msZX$lnLie5SpNV3 literal 0 HcmV?d00001 diff --git a/inheritance/studio/target/classes/org/launchcode/Quiz.class b/inheritance/studio/target/classes/org/launchcode/Quiz.class new file mode 100644 index 0000000000000000000000000000000000000000..b55a484b7bd1f5c2f673b85cdc6dabad250fd286 GIT binary patch literal 2166 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 literal 0 HcmV?d00001