Skip to content

Feature branch #19

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package org.launchcode;

public enum Category {
APPETIZER, MAIN_COURSE, DESSERT
}
Original file line number Diff line number Diff line change
@@ -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<MenuItem> 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();
}
}
Original file line number Diff line number Diff line change
@@ -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<MenuItem> items;

public Menu(Date d, ArrayList<MenuItem> 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);
}

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<MenuItem> items) {
this.items = items;
}

public Date getLastUpdated() {
return lastUpdated;
}

public ArrayList<MenuItem> getItems() {
return items;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
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;
}

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;
}

@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;
}

public void setNew(boolean aNew) {
isNew = aNew;
}
}
Original file line number Diff line number Diff line change
@@ -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<MenuItem> 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 );
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.launchcode;
package org.launchcode;//package org.launchcode;

import java.util.Scanner;

Expand Down
Original file line number Diff line number Diff line change
@@ -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);

}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package org.launchcode;

public class InputOutput {

}
16 changes: 16 additions & 0 deletions inheritance/studio/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>org.example</groupId>
<artifactId>studio</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>

</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package org.launchcode;

import java.util.List;



class CheckboxQuestion extends Question {
private List<String> choices;
private List<String> correctAnswers;

public CheckboxQuestion(String questionText, List<String> choices, List<String> 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
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package org.launchcode;

import java.util.List;

class MultipleChoiceQuestion extends Question {
private List<String> choices;

public MultipleChoiceQuestion(String questionText, List<String> 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());
}
}
Loading