Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Overview: In your final project, you will create a program that will help you manage a collection of recipes. The Recipe class you build for

Overview: In your final project, you will create a program that will help you manage a collection of recipes. The Recipe class you build for this milestone will hold all the details of the recipe, the methods to create a new recipe, and a method to print a recipe. In your final project submission, this class will also contain a custom method to add a new feature. In your submission for Milestone Two, you will include commented out pseudocode for this method.

Prompt: In this milestone, you submit the final project version of your Recipe class. Your submission should include the Recipe.java file and a Recipe_Test.java file.

Your Recipe class should include the following items:

Instance variables: recipeName, servings, recipeIngredients, and totalRecipeCalories

Accessors and mutators for the instance variables

Constructors

A printRecipe() method

A createNewRecipe() method to build a recipe from user input

Pseudocode for the custom method selected from the list in Stepping Stone Lab Five Your Recipe_Test.java file containing a main() method that:

Uses a constructor to create a new recipe

Accesses the printRecipe() method to print the formatted recipe

Invokes the createNewRecipe() method to accept user input

Specifically, the following critical elements of the final project are addressed:

I. Data Types: Your Recipe class should properly employ each of the following data types that meet the scenarios requirements where necessary:

A. Utilize appropriate numerical and string data types to represent values for variables and attributes in your program.

B.Populate a list or array that allows the management of a set of values as a single unit in your program.

II. Algorithms and Control Structure: Your Recipe class should properly employ each of the following control structures as required or defined by the scenario where necessary:

A. Utilize expressions or statements that carry out appropriate actions or that make appropriate changes to your programs state as represented in your programs variables.

B. Employ the appropriate conditional control structures that enable choosing between options in your program.

C. Utilize iterative control structures that repeat actions as needed to achieve the programs goal.

II. Methods: Your Recipe class should properly employ each of the following aspects of method definition as determined by the scenarios requirements where necessary:

A. Use formal parameters that provide local variables in a functions definition.

B. Use actual parameters that send data as arguments in function calls.

C. Create both value-returning and void functions to be parts of expressions or stand-alone statements in your program.

D. Invoke methods that access the services provided by an object.

E. Describe a user-defined method that provides custom services for an object.

F. Create unit tests that ensure validity of the methods.

IV. Classes: Construct classes for your program that include the following as required by the scenario where necessary:

A. Include attributes that allow for encapsulation and information hiding in your program.

B. Include appropriate methods that provide an objects behaviors.

V. Documentation: Utilize inline comments directed toward software engineers for the ongoing maintenance of your program that explain the decisions you made in the construction of the classes in your program.

This is the code I did for SteppingStone5_Recipe (Can I add more to these for the requirements above in bold)

/* * 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 steppingstone5_recipe;

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

/** * * @author orges.zoto_snhu */ public class SteppingStone5_Recipe {

private String recipeName;

private int servings;

ArrayList recipeIngredients = new ArrayList();

private int totalRecipeCalories;

//Here I Added mutators and accessors (setters and getters) for each class field/var. public void setRecipeName(String recipeName) { this.recipeName = recipeName; }

public String getRecipeName() { return recipeName; }

public void setServings(int servings) { this.servings = servings; }

public int getServings() { return servings; }

public void setRecipeIngredients(ArrayList recipeIngredients) { this.recipeIngredients = recipeIngredients; }

public ArrayList getRecipeIngredients() { return recipeIngredients; }

public void setTotalRecipeCalories(int totalRecipeCalories) { this.totalRecipeCalories = totalRecipeCalories; }

public int getTotalRecipeCalories() { return totalRecipeCalories; }

//Initial Constructor, this will be creating new object with intialized field public SteppingStone5_Recipe() { this.recipeName = ""; this.servings = 0;// here I added the value this.recipeIngredients = new ArrayList(); //creaing String for empty ArrayList this.totalRecipeCalories = 0; }

//Overloaded Constructor public SteppingStone5_Recipe(String recipeName, int servings, ArrayList recipeIngredients, int totalRecipeCalories) { this.recipeName = recipeName; this.servings = servings; this.recipeIngredients = recipeIngredients; this.totalRecipeCalories = totalRecipeCalories; }

//Print Recipe Method which will be called in the Main public void printRecipe() {

int singleServingCalories = (totalRecipeCalories / servings);

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

System.out.println("Serves: " + servings);

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

for (int i = 0; i < recipeIngredients.size(); i++) { String ingredient = recipeIngredients.get(i); System.out.println(ingredient); }

System.out.println("Each Serving Has " + singleServingCalories + " Calories."); }

public static void main(String[] args) { int 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("Please enter the number of servings: "); int servings = scnr.nextInt();

//Here I did Do-While loop to add more ingredients (this is basically similar to Stepping Stone 4). do { System.out.println("Please enter the ingredient name or type 'done' if you are finished entering ingredients: "); String ingredientName = scnr.next();

if (ingredientName.toLowerCase().equals("done")) {// here done will end the ingrident list addMoreIngredients = false; break; } else { recipeIngredients.add(ingredientName); addMoreIngredients = true;

System.out.println("Please enter the number of units of the ingredient to be used: "); int ingredientAmount = scnr.nextInt();

System.out.println("Please enter the ingredient Calories per unit: "); int ingredientCalories = scnr.nextInt();

totalRecipeCalories = (ingredientCalories * ingredientAmount);

} // here I will add the total calories from from this ignredient to the totalRecipiCalorie. } while (addMoreIngredients == true); SteppingStone5_Recipe recipe1; recipe1 = new SteppingStone5_Recipe(recipeName, servings, recipeIngredients, totalRecipeCalories); recipe1.printRecipe();

} }

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

Modern Database Management

Authors: Jeff Hoffer, Ramesh Venkataraman, Heikki Topi

13th Edition Global Edition

1292263350, 978-1292263359

More Books

Students also viewed these Databases questions