Menu

(Solved) : Final Project Details Final Project Submission Add Menu Item Method Access Custom Method D Q30033417 . . .

Final Project Details: For your final project submission, youshould add a menu item and a method to access the custom method youdeveloped for the Recipe class based on the Stepping Stone 5 Lab.Here is the Recipe class code:

package recipe.collection;
import java.util.ArrayList;
import java.util.Scanner;

/**
*
* @author
*/
public class Recipe {
    private String recipeName;
    private int servings;
    private ArrayListrecipeIngredients;
    private double totalRecipeCalories;
  
    /**
     *
     */
    public Recipe() {
        this.recipeName =””;
        this.servings = 0;//<— assignment value with appropriate data type
        this.recipeIngredients =new ArrayList(); //<– assignment value for emptyArrayList
        this.totalRecipeCalories= 0;
    }

    /**
     *This is the recipe class and in thisclass the user can print the recipe and create a new recipe aswell.
     *When Printing the recipe the user willsee the Recipe name, the serving size, and the ingredients
     *When creating a new recipe the user isasked to name the recipe, how many servings the recipe yields, andthen they are asked to add
     *the ingredients one at a time. It isduring this process that the ingredient class is called.
     * @param args
     */
    public static void main(String[] args){
        Recipe r =createNewRecipe();//constructor to create new recipe
       r.printRecipe();//Accessor for the printRecipe() method
      
    }
    //

    /**
     *constructor that retrieves the recipename
     * @return recipeName
     */
    public String getRecipeName() {
        return recipeName;
    }
    //

    /**
     *mutator that sets the recipe name
     * @param recipeName
     */
    public void setRecipeName(StringrecipeName){
        this.recipeName =recipeName;
    }
    //

    /**
     *constructor to retrieve the servingsize
     * @return serving
     */
    public int getServing() {
        return servings;
    }
    //

    /**
     *mutator to set the serving size
     * @param serving size
     */
    public void setServing(int serving) {
        this.servings =serving;
    }

    /**
     * calls the Array that holds the recipeingredients
     * @return recipe ingredients
     */
    public ArrayList getRecipeIngredients() {
        returnrecipeIngredients;
    }
    //

    /**
     *sets the ingredients held by thearray
     * @param recipeIngredients
     */
    public void setRecipeIngredients(ArrayListrecipeIngredients){
        this.recipeIngredients =recipeIngredients;
    }
    //accessor that calls the total recipecalories

    /**
     *
     * @return Total calories in therecipe
     */
    public double getTotalRecipeCalories(){
        returntotalRecipeCalories;
    }
    //mutator that sets the total recipecalories

    /**
     *
     * @param totalRecipeCalories
     */
    public void setTotalRecipeCalories(doubletotalRecipeCalories){
        this.totalRecipeCalories= totalRecipeCalories;
    }
    //Recipe class

    /**
     *
     * @param recipeName
     * @param servings
     * @param recipeIngredients
     * @param totalRecipeCalories
     */
    public Recipe(String recipeName, intservings,
    ArrayList recipeIngredients, doubletotalRecipeCalories)
    //<– use appropriate data type for theArrayList and the servings arguments
    {
        this.recipeName =recipeName;
        this.servings =servings;
        this.recipeIngredients =recipeIngredients;
        this.totalRecipeCalories= totalRecipeCalories;
    }

    /**
     *
     */
    public void printRecipe() {
       //printRecipeWithDifferentServings(servings);
        doublesingleServingCalories = totalRecipeCalories / servings;
       System.out.println(“Recipe: ” + getRecipeName());
       System.out.println(“Yield: ” + getServing() + ” servings”);
       System.out.println(“Ingredients:”);
        for (int i = 0; i <recipeIngredients.size(); i++) {
           Ingredient currentIngredient = recipeIngredients.get(i);
           String currentIngredientName =currentIngredient.getNameOfIngredient();
           System.out.println(currentIngredientName);
        }
        System.out.print(“.Eachserving has ” + singleServingCalories + ” calories”);
    }

    /**
     *
     * @return recipe1
     */
    public static Recipe createNewRecipe(){
        doubletotalRecipeCalories = 0;
        ArrayListrecipeIngredients = new ArrayList();
        booleanaddMoreIngredients = true;
        String reply=”Y”;
        Scanner scnr = newScanner(System.in);
       System.out.println(“Please enter the recipe name: “);
        String recipeName =scnr.nextLine();
       System.out.println(“Please enter the number of servings: “);
       @SuppressWarnings(“LocalVariableHidesMemberVariable”)
        int servings =scnr.nextInt();

        do {
           System.out.println(“Please enter the ingredient name or type end ifyou are finished entering ingredients: “);
           String ingredientName = scnr.next();
           if (ingredientName.toLowerCase().equals(“end”)) {
           addMoreIngredients = false;
           } else {
               Ingredient tempIngredient = new Ingredient().addIngredient();
               recipeIngredients.add(tempIngredient);
               System.out.println(“Please enter the ingredient amount: “);
               float ingredientAmount = scnr.nextFloat();
               System.out.println(“Please enter the ingredient Calories: “);
               int ingredientCalories = scnr.nextInt();
               totalRecipeCalories = ingredientCalories * ingredientAmount;
               System.out.println(“Do you want to continue. Y/N”);
               reply = scnr.nextLine();
           }
        } while(!reply.equals(“n”)) ;
           scnr.close();
           Recipe recipe1 = new Recipe(recipeName, servings,recipeIngredients, totalRecipeCalories);
           return recipe1;
    }
}

Recipe Collection Box Code:

package recipe.collection;

import java.util.ArrayList;
import java.util.Scanner;

/**
*This is a collection spot for all the recipes currently beingmaintain by the user.
* @author
*/
public class RecipeBox {
  
    private static ArrayList listOfRecipes;
   //Accessor Recipe Array

    /**
     *Gathers the list of recipes and storesthem in an array
     * @return
     */
          publicArrayList getListOfRecipes(){
           return listOfRecipes;
          }
          //Mutatorfor Array List

    /**
     *All of the recipes that are currentlybeing stored by the user are set with this mutator
     * @param listOfRecipes
     */
          public voidsetListOfRecipes(ArrayList listOfRecipes){
            this.listOfRecipes = listOfRecipes;
          }
        //Constructor for recipebox
   void RecipeBox(){
           listOfRecipes = new ArrayList();
        }
        void RecipeBox(ArrayListlistOfRecipes)
        {
           this.listOfRecipes=listOfRecipes;
        }
        
        static voidprintAllRecipeDetails(String selectedRecipe)
        {
           for (int i = 0; i < listOfRecipes.size(); i++)
           { // traverse ArrayList
               // fetches the element at i position and compare its name with theaargument string
               if(listOfRecipes.get(i).getRecipeName().equals(selectedRecipe))
               {
                   listOfRecipes.get(i).printRecipe(); // if matches then printsRecipes detail
               }
           }  
        }

    public void printAllRecipeNames()
        {
           System.out.println(“List of Recipes are : “);
           for (int i = 0; i < listOfRecipes.size(); i++){
               System.out.println(listOfRecipes.get(i).getRecipeName()); // justprints Recipe names
           }
        }
        static voidaddRecipe()
        {
           Recipe r= new Recipe();
           Recipe tmpRecipe = r.createNewRecipe(); // creates new Recipe
           listOfRecipes.add(tmpRecipe); // adds it to the ArrayList
        }
     
    /**
     *If the user enters a 1 they will proceedto add a recipe, if they enter a 2 the list of recipes will beprinted, and if they enter a 3 they will be prompted to enter a newrecipe
     * @param args
     */
    public static void main(String[] args ){
       // Create a Recipe Box
           Scanner menuScnr = new Scanner(System.in);
           System.out.println(“Menun” + “1. Add Recipen” + “2. Print AllRecipe Detailsn” + “3. Print All Recipe Namesn” + “nPleaseselect a menu item:”);
           while (menuScnr.hasNextInt() || menuScnr.hasNextLine()){
               System.out.println(“Menun” + “1. Add Recipen” + “2. Print AllRecipe Detailsn” + “3. Print All Recipe Namesn” + “nPleaseselect a menu item:”);
               int input = menuScnr.nextInt();
               String myRecipeBox=””;
               if (input == 1) {
                   addRecipe();
               }else if (input == 2) {
                   System.out.println(“Which recipe?n”);
                   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(“nMenun” + “1. Add Recipen” + “2. PrintRecipen” + “3. Adjust Recipe Servingsn” + “nPlease select a menuitem:”);
           }
        }
    }
}

Expert Answer


Answer to Final Project Details Final Project Submission Add Menu Item Method Access Custom Method D Q30033417 . . .

OR