Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Need help with the following Java code: /* * To change this license header, choose License Headers in Project Properties. * To change this template

Need help with the following Java 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 SteppingStones;

import java.util.ArrayList;

/**

*

* @author snhu.edu

*/

public class SteppingStone6_RecipeBox {

/**

* Declare instance variables:

* a private ArrayList of the type SteppingStone5_Recipe named listOfRecipes

*

*/

/**

* Add accessor and mutator for listOfRecipes

*

*/

/**

* Add constructors for the SteppingStone6_RecipeBox()

*

*/

/**

* Add the following custom methods:

*

* //printAllRecipeDetails(SteppingStone5_Recipe selectedRecipe)

* This method should accept a recipe from the listOfRecipes ArrayList

* recipeName and use the SteppingStone5_Recipe.printRecipe() method

* to print the recipe

*

* //printAllRecipeNames() <-- This method should print just the recipe

* names of each of the recipes in the listOfRecipes ArrayList

*

* //addRecipe(SteppingStone5_Recipe tmpRecipe) <-- This method should use

* the SteppingStone5_Recipe.addRecipe() method to add a new

* SteppingStone5_Recipe to the listOfRecipes

*

*/

/**

* A variation of following menu method should be used as the actual main

* once you are ready to submit your final application. For this

* submission and for using it to do stand-alone tests, replace the

* public void menu() with the standard

* public static main(String[] args)

* method

*

*/

public void menu() {

// Create a Recipe Box

//SteppingStone6_RecipeBox myRecipeBox = new SteppingStone6_RecipeBox(); //Uncomment for main method

Scanner menuScnr = new Scanner(System.in);

/**

* Print a menu for the user to select one of the three options:

*

*/

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

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

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

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) {

newRecipe();

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

*

if (input == 1) {

myRecipeBox.newRecipe();

} else if (input == 2) {

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

String selectedRecipeName = menuScnr.next();

myRecipesBox.printAllRecipeDetails(selectedRecipeName);

} else if (input == 3) {

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

System.out.println((j + 1) + ": " + myRecipesBox.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:");

}

}

}

/**

*

* Final Project Details:

*

* For your final project submission, you should add a menu item and a method

* to access the custom method you developed for the Recipe class

* based on the Stepping Stone 5 Lab.

*

*/

/*

* 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 SteppingStones;

import java.util.Scanner;

import java.util.ArrayList;

/**

*

* @author snhu.edu

*/

public class SteppingStone5_Recipe {

private String recipeName;

/**

* Add three variables:

*

* 1. a variable 'servings' to store how many people the recipe will feed;

*

* 2. an ArrayList variable 'recipeIngredients' to store the text for the

* names (recipeName) each recipe ingredient added

*

* 3. a variable totalRecipeCalories

*

*/

/**

* Add mutators and accessors for the class variable.

*

*/

Details of code for SttepingStone_5

_____________________________________________

public SteppingStone5_Recipe() {

this.recipeName = "";

this.servings = ??? //<--- assignment value with appropriate data type

this.recipeIngredients = ???; //<-- assignment value for empty ArrayList

this.totalRecipeCalories = 0;

}

public SteppingStone5_Recipe(String recipeName, ??? servings,

ArrayList recipeIngredients, double totalRecipeCalories)

//<-- use appropriate data type for the ArrayList and the servings arguments

{

this.recipeName = recipeName;

this.servings = servings;

this.recipeIngredients = recipeIngredients

this.totalRecipeCalories = totalRecipeCalories;

}

public void printRecipe() {

/**

* Declare an int variable singleServingCalories.

* Assign singleServingCalories to

* the totalRecipeCalories divided by the servings

*

*/

/**

* Print the following recipe information:

* Recipe: <>

* Serves: <>

* Ingredients:

* <>

* <>

* ...

* <>

*

* Each serving has <> Calories.

*

* HINT --> Use a for loop to iterate through the ingredients

*/

}

public static void main(String[] args) {

??? totalRecipeCalories = ???;

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("Please enter the number of servings: ");

//correct data type & Scanner assignment method for servings variable

???? servings = ????

do {

System.out.println("Please enter the ingredient name

or type end if you are finished entering ingredients: ");

String ingredientName = scnr.next();

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

addMoreIngredients = false;

} else {

/**

* Add the ingredient name to recipeIngredients

*

*/

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

float ingredientAmount = scnr.nextFloat();

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

int ingredientCalories = scnr.nextInt();

/**

* Add the total Calories from this ingredient

* (ingredientCalories * ingredientAmount)

* to the totalRecipeCalories

*

*/

}

} while (!reply.equals("n") ;

SteppingStone5_Recipe recipe1 = new SteppingStone5_Recipe(recipeName,

servings, recipeIngredients, totalRecipeCalories);

recipe1.printRecipe();

}

}

/**

* Final Project

*

* For your Final Project:

*

* 1. Modify this code to develop a Recipe class:

* a. change the void main method createNewRecipe() that returns a Recipe

*

* 2. FOR FINAL SUBMISSION ONLY:Change the ArrayList type to an

* Ingredient object. When a user adds an ingredient to the recipe,

* instead of adding just the ingredient name, you will be adding the

* actual ingredient including name, amount, measurement type, calories.

* For the Milestone Two submission, the recipeIngredients ArrayList can

* remain as a String type.

*

* 3. Adapt the printRecipe() method to print the amount and measurement

* type as well as the ingredient name.

*

* 4. Create a custom method in the Recipe class.

* Choose one of the following options:

*

* a. print out a recipe with amounts adjusted for a different

* number of servings

*

* b. create an additional list or ArrayList that allow users to

* insert step-by-step recipe instructions

*

* c. conversion of ingredient amounts from

* English to metric (or vice versa)

*

* d. calculate select nutritional information

*

* e. calculate recipe cost

*

* f. propose a suitable alternative to your instructor

*

*/

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

Recommended Textbook for

More Books

Students also viewed these Databases questions