Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

How Do I fix this code? /* * To change this license header, choose License Headers in Project Properties. * To change this template file,

How Do I fix this code?

/*

* To change this license header, choose License Headers in Project Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.

*/

package finalproject;

/**

*

* @author Athena

*/

public class FinalProject {

private String nameOfIngredient;

private float numberCups;

private int numberCaloriesPerCup;

private double totalCalories;

/**

* @return the nameOfIngredient

*/

public String getNameOfIngredient() {

return nameOfIngredient;

}

/**

* @param nameOfIngredient the nameOfIngredient to set

*/

public void setNameOfIngredient(String nameOfIngredient) {

this.nameOfIngredient = nameOfIngredient;

}

/**

* @return the numberCups

*/

public float getNumberCups() {

return numberCups;

}

/**

* @param numberCups the numberCups to set

*/

public void setNumberCups(float numberCups){

this.numberCups = numberCups;

}

/**

* @param numberCaloriesPerCup the numberCaloriesPerCup to set

*/

public void setNumberCaloriesPerCup(int numberCaloriesPerCup) {

this.numberCaloriesPerCup = numberCaloriesPerCup;

}

/**

* @return the totalCalories

* I basically set up all the individual codes with the total calories

* to make sure that they will go together accordingly.

*/

public double getTotalCalories() {

return totalCalories;

}

/**

* @param totalCalories the totalCalories to set

*/

public void setTotalCalories(double totalCalories) {

this.totalCalories = totalCalories;

}

public FinalProject() {

this.nameOfIngredient = "";

this.numberCups = 0;

this.numberCaloriesPerCup = 0;

this.totalCalories = 0.0;

}

public FinalProject(String nameOfIngredient, float numberCups,

int numberCaloriesPerCup, double totalCalories) {

this.nameOfIngredient = nameOfIngredient;

this.numberCups = numberCups;

this.numberCaloriesPerCup = numberCaloriesPerCup;

this.totalCalories = totalCalories;

}

public static void main(String[] args) {

int numberCups = -1;

final int MAX_CUPS = 100;

Scanner scnr = new Scanner(System.in);

System.out.printIn("Please enter the number of cups (between 1 and 100): ");

if (scnr.hasNextInt()) {

numberCups = scnr.nextInt();

if (numberCups >= 1 && numberCups <= MAX_CUPS) {

System.out.printIn(numberCups + " is a valid number of cups!");

} else {

System.out.printIn(numberCups + " is a not valid number of cups!");

System.out.printIn("Please enter another number of cups between 1 and 100: ");

numberCups = scnr.nextInt();

if (numberCups >= 1 && numberCups <= MAX_CUPS) {

System.out.printIn(numberCups + " is a valid number of cups!");

} else if (numberCups < 1) {

System.out.printIn(numberCups + " is less than 1. Sorry you are out of tries.");

} else {

System.out.printIn(numberCups + " is larger than 100. Sorry you are out of tries.");

} else {

System.out.printIn("Error: That is not a number. Try again.");

/**

* I made the code so that there will be a clean setup of amount of cups per recipe.

*/

}

public static void main(String[] args) {

Scanner scnr = new Scanner(System.in);

String recipeName = "";

ArrayList ingredientList = new ArrayList();

String newIngredient = "";

boolean addMoreIngredients = true;

System.out.println("Please enter the recipe name: ");

recipeName = scnr.nextLine();

do {

System.out.println("Would you like to enter an ingredient?: ");

String reply = scnr.next().toLowerCase();

if (reply.equals("y")) {

System.out.println("What is the ingredient?");

newIngredient = scnr.next();

ingredientList.add(newIngredient);

} else if (!reply.equals("n")) {

System.out.println("Please enter y or n");

} else {

addMoreIngredients = false;

}

} while (addMoreIngredients) ;

for (int i = 0; i < ingredientList.size(); i++ ) {

System.out.println(ingredientList.get(i));

}

/**

*Getting a system of the whether or not the ingredients go in the recipe.

*/

private String recipeName;

private int servings;

private ArrayList recipeIngredients;

private double totalRecipeCalories;

/**

* @return the recipeName

*/

public String getRecipeName() {

return recipeName;

}

/**

* @param recipeName the recipeName to set

*/

public void setRecipeName(String recipeName) {

this.recipeName = recipeName;

}

/**

* @return the servings

*/

public int getServings() {

return servings;

}

/**

* @param servings the servings to set

*/

public void setServings(int servings) {

this.servings = servings;

}

/**

* getting the servings setup.

*/

/**

* @return the recipeIngredients

*/

public ArrayList getRecipeIngredients() {

return recipeIngredients;

}

/**

* @param recipeIngredients the recipeIngredients to set

*/

public void setRecipeIngredients(ArrayList recipeIngredients) {

this.recipeIngredients = recipeIngredients;

}

/**

* @return the totalRecipeCalories

*/

public double getTotalRecipeCalories() {

return totalRecipeCalories;

}

/**

*getting the calorie count up.

*/

/**

* @param totalRecipeCalories the totalRecipeCalories to set

*/

public void setTotalRecipeCalories(double totalRecipeCalories) {

this.totalRecipeCalories = totalRecipeCalories;

}

public SteppingStone5_Recipe() {

this.recipeName = "";

this.servings = 0;

this.recipeIngredients = new ArrayList<>();

this.totalRecipeCalories = 0;

}

public SteppingStone5_Recipe(String recipeName, int servings, ArrayList recipeIngredients, double totalRecipeCalories) {

this.recipeName = recipeName;

this.servings = servings;

this.recipeIngredients = recipeIngredients;

this.totalRecipeCalories = totalRecipeCalories;

}

public void printRecipe() {

double singleServingCalories = totalRecipeCalories / servings;

System.out.println("Recipe: " + getRecipeName());

System.out.println("Yield: " + getServings() + " servings");

System.out.println("Ingredients:");

/*

for (Ingredient currentIngredient: recipeIngredients)

System.out.println(currentIngredient.getIngredientName());

*/

for (int i = 0; i < recipeIngredients.size(); i++) {

Ingredient currentIngredient = recipeIngredients.get(i);

String currentIngredientName = currentIngredient.getIngredientName();

System.out.println(currentIngredientName);

}

System.out.println("Total Calories per serving: " + singleServingCalories);

}

public SteppingStone5_Recipe createNewRecipe() { //Comment out for Stepping Stone 6

//public SteppingStone5_Recipe createNewRecipe() { //uncomment for Stepping Stone 6

double totalRecipeCalories = 0;

ArrayList recipeIngredients = new ArrayList();

boolean addMoreIngredients = true;

Scanner scnr = new Scanner(System.in);

System.out.println("Please enter the recipe name: ");

String recipeName = scnr.nextLine();

System.out.println("How many servings: ");

int servings = scnr.nextInt();

do {

System.out.println("Please enter the ingredient name or type 'e' if you are done: ");

String ingredientName = scnr.next();

if (ingredientName.toLowerCase().equals("e")) {

addMoreIngredients = false;

}

else {

Ingredient tempIngredient = new Ingredient().enterNewIngredient(ingredientName);

recipeIngredients.add(tempIngredient);

}

} while (addMoreIngredients);

for (int i = 0; i < recipeIngredients.size(); i++) {

Ingredient currentIngredient = recipeIngredients.get(i);

float ingredientAmount = currentIngredient.getIngredientAmount();

int ingredientCalories = currentIngredient.getIngredientCalories();

double ingredientTotalCalories = ingredientAmount * ingredientCalories;

totalRecipeCalories += ingredientTotalCalories;

}

//Declaring instance variables private ArrayList of the type of SteppingStone5_Recipe

private ArrayList listOfRecipes;

//Accessors and Mutators for listOfRecipes

/**

* @return the listOfRecipes

*/

public ArrayList getListOfRecipes() {

return listOfRecipes;

}

/**

* @param listOfRecipes the listOfRecipes to set

*/

public void setListOfRecipes(ArrayList listOfRecipes) {

this.listOfRecipes = listOfRecipes;

}

/**

* @param listOfRecipes

*/

//Contructors for SteppingStone6_RecipeBox()

public SteppingStone6_RecipeBox(ArrayList listOfRecipes) {

this.listOfRecipes = listOfRecipes;

}

public SteppingStone6_RecipeBox() {

this.listOfRecipes = new ArrayList<>();

}

//custom method to printAllRecipeDetails

void printAllRecipeDetails(String selectedRecipe){

for (SteppingStone6_RecipeBox recipe : listOfRecipes){

if(recipe.().equalsIgnoreCase(selectedRecipe)) {

recipe.printRecipe();

return;

}

}

//custom method to AddRecipe

public void addRecipe(SteppingStone5_Recipe tempRecipe){

listOfRecipes.add(tempRecipe);

}

/**

* getting the recipe code set up with the list of recipes

*/

/**

* @param args the command line arguments

*/

public static void main(String[]args) {

//Create a Recipe Box

SteppingStone6_RecipeBox myRecipeBox = new SteppingStone6_RecipeBox();

Scanner menuScnr = new Scanner(System.in);

//printing menu for user to select the available options

System.out.printIn("Menu/n" + "1. Add Recipe/n" + "2. Print All Recipe Details/n" + "3. Print All Recipe Names/n" + "/nPlease select a menu item');"

while (menuScnr.hasNextInt() || menuScnr.hasNextLine()) {

int input = menuScnr.nextInt();

/**

* The code below has two variations:

* 1. Code used with the SteppingStone6_RecipeBox_tester.

* 2. Code used with the public static main() method

*

* One of the sections should be commented out depending on the use.

*/

/**

* This could should remain uncommented when using the

* SteppingStone6_RecipeBox_tester.

*

* Comment out this section when using the

* public static main() method

*/

/** if (input == 1) {

recipe1();

} else if (input == 2) {

System.out.println("Which recipe? ");

String selectedRecipeName = menuScnr.next();

printAllRecipeDetails(selectedRecipeName);

} else if (input == 3) {

for (int j = 0; j < listOfRecipes.size(); j++) {

System.out.println((j + 1) + ": " + listOfRecipes.get(j).getRecipeName());

}

} else {

System.out.println(" Menu " + "1. Add Recipe " + "2. Print Recipe " + "3. Adjust Recipe Servings " + " Please select a menu item:");

}

**/

/**

* This could should be uncommented when using the

* public static main() method

*

* Comment out this section when using the

* SteppingStone6_RecipeBox_tester.

*

**/

//Using if-else to select three custom methods.

if (input == 1) {

myRecipeBox.recipe1();

} else if (input == 2) {

System.out.println("Which recipe? ");

String selectedRecipeName = menuScnr.next();

myRecipeBox.printAllRecipeDetails(selectedRecipeName);

} else if (input == 3) {

for (int j = 0; j < myRecipeBox.listOfRecipes.size(); j++) {

System.out.println((j + 1) + ": " + myRecipeBox.listOfRecipes.get(j).getRecipeName());

}

} else {

System.out.println(" Menu " + "1. Add Recipe " + "2. Print Recipe " + "3. Adjust Recipe Servings " + " Please select a menu item:");

}

System.out.println("Menu " + "1. Add Recipe " + "2. Print All Recipe Details " + "3. Print All Recipe Names " + " Please select a menu item:");

}

}

public void recipe1() {

double totalRecipeCalories = 0.0;

ArrayList recipeIngredients = new ArrayList();

boolean addMoreIngredients = true;

Scanner scnr = new Scanner(System.in);

System.out.println("Please enter the recipe name: "); //prompt user to enter recipe name.

String recipeName = scnr.nextLine(); //checks if valid input was entered.

System.out.println("Please enter the number of servings: "); //prompt user to enter number of servings for recipe.

int servings = scnr.nextInt(); //checks if valid input was entered.

do {

//prompt user to enter ingredients or type end to finish loop.

System.out.println("Please enter the ingredient name or type end if you are finished entering ingredients: ");

String ingredientName = scnr.next().toLowerCase();

//if user type end loop will end and print the recipe with ingredient, serving and calories.

if (ingredientName.toLowerCase().equals("end")) {

addMoreIngredients = false;

} else {

//if user enter the ingredient loop will start ask for ingredient details.

recipeIngredients.add(ingredientName); //creating array list for recipe ingredients.

//prompt user to enter ingredient amount

System.out.println("Please enter an ingredient amount: ");

float ingredientAmount = scnr.nextFloat();

//prompt user to enter measuring unit of ingredient

System.out.println("Please enter the measurement unit for an ingredient: ");

String unitMeasurement = scnr.next();

//promt user to enter ingredient calories

System.out.println("Please enter ingredient calories: ");

int ingredientCalories = scnr.nextInt();

//Expression to calculate total calories

totalRecipeCalories = (ingredientCalories * ingredientAmount);

//prints the ingredient name with required amount, measuring unit and total calories.

System.out.println(ingredientName + " uses " + ingredientAmount + " " + unitMeasurement + " and has " + totalRecipeCalories + " calories.");

} //end else loop.

} while (addMoreIngredients);

// Now create a recipe object and add it to the list

SteppingStone5_Recipe recipe = new SteppingStone5_Recipe(recipeName, servings, recipeIngredients, totalRecipeCalories);

addRecipe(recipe);

}

}

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions

Question

Identify areas for self-development in relation to own job role

Answered: 1 week ago