In JAVA write the following program:
Objective:
Practice object-oriented principles by making two Peanut Butter and Jelly Sandwiches. The program must create two sandwiches based on user input. The sandwich information for both must then print out their details and determine if the two sandwiches are equal.
Requirements:
Write a class called Bread with the following
o Calories: The number of calories per slice assumed to be between 50 and 250 inclusively.
Write a class called PeanutButter with the following
Write a class called Jelly with the following
Write a class called PBJSandwich with the following
Write a class called PBJFrontEnd with the following
Example Output:
-----------------------------------
Welcome to the PBJ Sandwich Maker!
-----------------------------------
-----Sandwich 1-----
Top Slice of Bread Information
Enter name of the bread
Wonder Bread
Enter the number of calories
80
Enter the type of bread. Must be "Honey Wheat", "White", "Whole Grain", or "Whole Wheat"
whole wheat
Peanut Butter Information
Enter name of the peanut butter
JIF
Enter the number of calories
190
Is it crunchy? Enter "true", or "false"
false
Jelly Information
Enter name of the jelly
Smuckers
Enter the number of calories
150
Enter the type of bread. Must be "Apple", "Blueberry", "Grape", "Strawberry", or "Tomato"
Apple
Bottom Slice of Bread Information
Enter name of the bread
Wonder Bread
Enter the number of calories
120
Enter the type of bread. Must be "Honey Wheat", "White", "Whole Grain", or "Whole Wheat"
honey Wheat
-----Sandwich 2-----
Top Slice of Bread Information
Enter name of the bread
Pepperidge Farm
Enter the number of calories
100
Enter the type of bread. Must be "Honey Wheat", "White", "Whole Grain", or "Whole Wheat"
Whole grain
Peanut Butter Information
Enter name of the peanut butter
Peter Pan
Enter the number of calories
180
Is it crunchy? Enter "true", or "false"
true
Jelly Information
Enter name of the jelly
Welch's
Enter the number of calories
150
Enter the type of bread. Must be "Apple", "Blueberry", "Grape", "Strawberry", or "Tomato"
Grape
Bottom Slice of Bread Information
Enter name of the bread
Lender's
Enter the number of calories
150
Enter the type of bread. Must be "Honey Wheat", "White", "Whole Grain", or "Whole Wheat"
Whole Wheat
-----Sandwich 1-----
PBJ Sandwich
Top Slice:
Bread
Name: Wonder Bread
Calories: 80
Type: whole wheat
Peanut Butter:
Peanut Butter
Name: JIF
Calories: 190
Is Crunchy: true
Jelly:
Jelly
Name: Smuckers
Calories: 100
Fruit Type: Apple
Bottom Slice:
Bread
Name: Wonder Bread
Calories: 120
Type: honey Wheat
-----Sandwich 2-----
PBJ Sandwich
Top Slice:
Bread
Name: Pepperidge Farm
Calories: 100
Type: Whole grain
Peanut Butter:
Peanut Butter
Name: Peter Pan
Calories: 180
Is Crunchy: true
Jelly:
Jelly
Name: Welch's
Calories: 100
Fruit Type: Grape
Bottom Slice:
Bread
Name: Lender's
Calories: 150
Type: Whole Wheat
Are they the same sandwich? false
Example Output 2:
-----------------------------------
Welcome to the PBJ Sandwich Maker!
-----------------------------------
-----Sandwich 1-----
Top Slice of Bread Information
Enter name of the bread
Wonder
Enter the number of calories
100
Enter the type of bread. Must be "Honey Wheat", "White", "Whole Grain", or "Whole Wheat"
White
Peanut Butter Information
Enter name of the peanut butter
JIF
Enter the number of calories
150
Is it crunchy? Enter "true", or "false"
false
Jelly Information
Enter name of the jelly
Welchs
Enter the number of calories
150
Enter the type of bread. Must be "Apple", "Blueberry", "Grape", "Strawberry", or "Tomato"
Grape
Bottom Slice of Bread Information
Enter name of the bread
Wonder
Enter the number of calories
100
Enter the type of bread. Must be "Honey Wheat", "White", "Whole Grain", or "Whole Wheat"
White
-----Sandwich 2-----
Top Slice of Bread Information
Enter name of the bread
Wonder
Enter the number of calories
100
Enter the type of bread. Must be "Honey Wheat", "White", "Whole Grain", or "Whole Wheat"
white
Peanut Butter Information
Enter name of the peanut butter
JIF
Enter the number of calories
150
Is it crunchy? Enter "true", or "false"
false
Jelly Information
Enter name of the jelly
Welchs
Enter the number of calories
150
Enter the type of bread. Must be "Apple", "Blueberry", "Grape", "Strawberry", or "Tomato"
grape
Bottom Slice of Bread Information
Enter name of the bread
wonder
Enter the number of calories
100
Enter the type of bread. Must be "Honey Wheat", "White", "Whole Grain", or "Whole Wheat"
white
-----Sandwich 1-----
PBJ Sandwich
Top Slice:
Bread
Name: Wonder
Calories: 100
Type: White
Peanut Butter:
Peanut Butter
Name: JIF
Calories: 150
Is Crunchy: true
Jelly:
Jelly
Name: Welchs
Calories: 100
Fruit Type: Grape
Bottom Slice:
Bread
Name: Wonder
Calories: 100
Type: White
-----Sandwich 2-----
PBJ Sandwich
Top Slice:
Bread
Name: Wonder
Calories: 100
Type: white
Peanut Butter:
Peanut Butter
Name: JIF
Calories: 150
Is Crunchy: true
Jelly:
Jelly
Name: Welchs
Calories: 100
Fruit Type: grape
Bottom Slice:
Bread
Name: wonder
Calories: 100
Type: white
Are they the same sandwich? true
import java.util.Scanner;
// ------------------------------- Bread.java ------------------------------- //
class Bread{
// @_ All required fields
private String Name;
private int Calories; // 50 - 250
private String Type;
// --- All mutators & Accessors
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public int getCalories() {
return Calories;
}
public void setCalories(int calories) {
// @ - Check validation rule that number of calories must be
between 50 and 250
// @ - If not within given range, assign 50 to calories
if(calories >= 50 && calories <= 250)
Calories = calories;
else
Calories = 50;
}
public String getType() {
return Type;
}
public void setType(String type) {
// Type must be Honey Wheat, white, Whole Grain, or Whole Wheat, if
not, assign default "Honey Wheat"
if(type.equalsIgnoreCase("Honey Wheat") ||
type.equalsIgnoreCase("White") ||
type.equalsIgnoreCase("Whole Grain") ||
type.equalsIgnoreCase("Whole Wheat"))
Type = type;
else
Type = "Honey Wheat";
}
// @ - The below method check whether every instance of a Bread
matches with every instance of passed Bread object
// @ - For name & type, ignoring case
public boolean Equals(Bread second){
return (this.Name.equalsIgnoreCase(second.Name) &&
this.Type.equalsIgnoreCase(second.Type) && this.Calories ==
second.Calories);
}
public String ToString() {
return "Bread"+
"\nName: "+Name+
"\nCalories: "+Calories+
"\nType: "+Type;
}
}
// ------------------------------- PeanutButter.java ------------------------------- //
class PeanutButter{
private String Name;
private int Calories; // 100 - 300
private boolean IsCrunchy;
// All Accessors & Mutators
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public int getCalories() {
return Calories;
}
public void setCalories(int calories) {
// @ - Check validation rule that number of calories must be
between 100 - 300
// @ - If not within given range, assign 100 to calories
if(calories >= 100 && calories <= 300)
Calories = calories;
else
Calories = 100;
}
public boolean isCrunchy() {
return IsCrunchy;
}
public void setCrunchy(boolean crunchy) {
IsCrunchy = crunchy;
}
public boolean Equals(PeanutButter second){
return (this.Name.equalsIgnoreCase(second.Name) &&
this.Calories == second.Calories && this.IsCrunchy ==
second.IsCrunchy);
}
// -- Other methods as specified in statement
public String ToString() {
return "Peanut Butter"+
"\nName: "+Name+
"\nCalories: "+Calories+
"\nIs Crunchy: "+IsCrunchy;
}
}
// ------------------------------- Jelly.java ------------------------------- //
class Jelly{
private String Name;
private int Calories; // 50 - 200
private String FruitType;
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public int getCalories() {
return Calories;
}
public void setCalories(int calories) {
// @ - Check validation rule that number of calories must be
between 50 - 200
// @ - If not within given range, assign 50 to calories
if(calories >= 50 && calories <= 200)
Calories = calories;
else
Calories = 50;
}
public String getFruitType() {
return FruitType;
}
public void setFruitType(String fruitType) {
// -- Fruit type must be apple, blueberry, strawberry, Grape or tomato, if not any one of these types assign apple
if(fruitType.equalsIgnoreCase("Apple") ||
fruitType.equalsIgnoreCase("Blueberyy") ||
fruitType.equalsIgnoreCase("StrawBerry") ||
fruitType.equalsIgnoreCase("Grape") ||
fruitType.equalsIgnoreCase("Tomato"))
FruitType = fruitType;
else
FruitType = "Apple";
}
public boolean Equals(Jelly second){
return (this.Name.equalsIgnoreCase(second.Name) &&
this.Calories == second.Calories &&
this.FruitType.equalsIgnoreCase(second.FruitType));
}
// -- Other methods as specified in statement
public String ToString() {
return "Jelly"+
"\nName: "+Name+
"\nCalories: "+Calories+
"\nFruit Type: "+FruitType;
}
}
// ------------------------------- PBJSandwich.java ------------------------------- //
class PBJSandwich{
// --- All required instance variables as mentioned in statement
private Bread topSlice;
private PeanutButter peanutButter;
private Jelly jelly;
private Bread bottomSlice;
public PBJSandwich(){ // constructor initializing fields aebove
this.topSlice = new Bread();
this.peanutButter = new PeanutButter();
this.jelly = new Jelly();
this.bottomSlice = new Bread();
}
// --- All mutators & Accessors
public Bread getTopSlice() {
return topSlice;
}
public void setTopSlice(Bread topSlice) {
this.topSlice = topSlice;
}
public PeanutButter getPeanutButter() {
return peanutButter;
}
public void setPeanutButter(PeanutButter peanutButter) {
this.peanutButter = peanutButter;
}
public Jelly getJelly() {
return jelly;
}
public void setJelly(Jelly jelly) {
this.jelly = jelly;
}
public Bread getBottomSlice() {
return bottomSlice;
}
public void setBottomSlice(Bread bottomSlice) {
this.bottomSlice = bottomSlice;
}
// The Equals method will check that whether the passed PBJSandwich object matches with this one or not
public boolean Equals(PBJSandwich second){
return (this.topSlice.Equals(second.topSlice) &&
this.peanutButter.Equals(second.peanutButter)
&& this.jelly.Equals(second.jelly) &&
bottomSlice.Equals(second.bottomSlice));
}
// TOString() will return all (Information) Strings of above instance variables
public String toString(){
// -- Just calling their ToString() methods
return topSlice.ToString() + peanutButter.ToString()+
jelly.ToString() + bottomSlice.ToString();
}
}
// ------------------------------- PBJFrontEnd.java ------------------------------- //
public class PBJFrontEnd {
public static void main(String[] args) {
System.out.println("--------------------------------------\n"
+
"Welcome to the PBJ Sandwich Maker\n"+
"--------------------------------------");
// -- Creating two instances of PBJSandwich
PBJSandwich sandwich1 = new PBJSandwich();
PBJSandwich sandwich2 = new PBJSandwich();
// -- Entering information of Sandwiches from user
System.out.println("----- Sandwich 1 -----");
enterInformation(sandwich1);
System.out.println("----- Sandwich 2 -----");
enterInformation(sandwich2);
// Then showing information
System.out.println("----- Sandwich 1 -----");
showInformation(sandwich1);
System.out.println("----- Sandwich 2 -----");
showInformation(sandwich2);
// -- checking for equality
System.out.print("\nAre they the same sandwich? ");
if(sandwich1.Equals(sandwich2))
System.out.println("true");
else
System.out.println("false");
}
// --- A function to prompt user to enter information for sandwich & according to that set these things i.e Jelly
public static void enterInformation(PBJSandwich sandwich){
Scanner input = new Scanner(System.in);
// --------------------- Top Slice of Bread Information -------------------- //
System.out.println("Top Slice of Bread Information");
System.out.println("Enter name of the Bread ");
String b1Name = input.nextLine();
System.out.println("Enter the number of calories ");
int cal1 = input.nextInt();
System.out.println("Enter the type of bread. Must be \"Honey
Wheat\", \"White\", \"Whole Grain\", or \"Whole Wheat\"");
input.nextLine();
String b1Type = input.nextLine();
sandwich.getTopSlice().setName(b1Name);
sandwich.getTopSlice().setCalories(cal1);
sandwich.getTopSlice().setType(b1Type);
// --------------------- Peanut Butter Information -------------------- //
System.out.println("Peanut Butter Information");
System.out.println("Enter name of the Peanut Butter ");
String pName = input.nextLine();
System.out.println("Enter the number of calories ");
int pCal = input.nextInt();
System.out.println("Is it crunchy? Enter \"true\", or \"false\"
");
input.nextLine();
String isCrunchy = input.nextLine();
sandwich.getPeanutButter().setName(pName);
sandwich.getPeanutButter().setCalories(pCal);
if(isCrunchy.equalsIgnoreCase("true"))
sandwich.getPeanutButter().setCrunchy(true);
else
sandwich.getPeanutButter().setCrunchy(false);
// --------------------- Jelly Information -------------------- //
System.out.println("Jelly Information");
System.out.println("Enter name of the Jelly ");
String jName = input.nextLine();
System.out.println("Enter the number of calories ");
int jCal = input.nextInt();
System.out.println("Enter the type of Fruit. Must be \"Apple\",
\"Blueberry\", \"Grape\", \"Strawberry\", or \"Tomato\"");
input.nextLine();
String jFruit = input.nextLine();
sandwich.getJelly().setName(jName);
sandwich.getJelly().setCalories(jCal);
sandwich.getJelly().setFruitType(jFruit);
// --------------------- Bottom Slice of Bread Information -------------------- //
System.out.println("Bottom Slice of Bread Information");
System.out.println("Enter name of the Bread ");
String b2Name = input.nextLine();
System.out.println("Enter the number of calories ");
int cal2 = input.nextInt();
System.out.println("Enter the type of bread. Must be \"Honey
Wheat\", \"White\", \"Whole Grain\", or \"Whole Wheat\"");
input.nextLine();
String b2Type = input.nextLine();
sandwich.getBottomSlice().setName(b2Name);
sandwich.getBottomSlice().setCalories(cal2);
sandwich.getBottomSlice().setType(b2Type);
}
// -- A method for showing information of sandwich
public static void showInformation(PBJSandwich sandwich){
System.out.println("PBJ Sandwich");
System.out.println("Top Slice:");
System.out.println(sandwich.getTopSlice().ToString());
System.out.println("Peanut Butter:");
System.out.println(sandwich.getPeanutButter().ToString());
System.out.println("Jelly:");
System.out.println(sandwich.getJelly().ToString());
System.out.println("Bottom Slice:");
System.out.println(sandwich.getBottomSlice().ToString());
}
}
Sample output:
Get Answers For Free
Most questions answered within 1 hours.