Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Can someone help with a step by step solution with Java Programming Chapter 5 Ca

ID: 3807679 • Letter: C

Question

Can someone help with a step by step solution with Java Programming Chapter 5 Case 1 "Carly's Catering?

a. Carly's Catering provides meals for parties and special events. In Chapter 3 and 4, you created an Event class for the company. Now, make the following changes to the class:

·         Currently, the class contains a field that holds the price for an Event. Now add another field that holds the price per guest, and add a public method to return its value.

Currently, the class contains a constant for the price per guest. Replace that field with two fields--a lower price per guest that is $32, and a higher price per guest that is $35.

·         Add a new method named isLargeEvent() that returns true if the number of guests is 50 or greater and otherwise returns false. -Modify the method that sets the number of guests so that a large Event (over 50 guests) uses the lower price per guest to set the new pricePerGuest field and calculate the total Event price. A small Event uses the higher price.

Save the file as Event.java.

b. In Chapter 4, you modified the EventDemo class to demonstrate two Event objects. Now, modify that class again as follows:

·         Instantiate three Event objects, and prompt the user for values for each object.

·         Change the method that displays Event details to use the new isLargeEvent() method and the new price per guest value. Use the display method with all three objects.

Create a method that accepts two Event objects and returns the larger one based on number of guests. (If the Events have the same number of guests, you can return either object.) Call this method three times--once with each pair of instantiated Events--and display the event number and number of guests for each argument as well as the event number and number of guests for the larger Event.

Save the file as EventDemo.java.

Explanation / Answer

package myProject;
import java.util.*;
//Class Event definition
class Event
{
   //Instance variable
   int eventNumber;
   int numberOfGuest;
   float price;
   float pricePerGuest;
   final int lower = 32;
   final int higher = 35;
   //Returns price per guest
   float getPricePerGuest()
   {
       return pricePerGuest;
   }
   //Sets price per guest
   void setPricePerGuest(float p)
   {
       pricePerGuest = p;
   }
   //Returns true if number of guest is >= 50 otherwise false
   boolean isLargeEvent()
   {
       //Checks number of guest is >= 50 then set the price per guest to lower, calculates price and return true
       if(numberOfGuest >= 50)
       {
           setPricePerGuest(lower);
           price = numberOfGuest * getPricePerGuest();
           return true;
       }//End of if
      
       //Otherwise set the price per guest to lower, calculates price and return false
       else
       {
           setPricePerGuest(higher);
           price = numberOfGuest * getPricePerGuest();
           return false;
       }//End of else
   }//End of method
   //Returns largest event object
   Event findLarge(Event e1, Event e2)
   {
       //Compares object's number of guest
       if(e1.numberOfGuest >= e2.numberOfGuest)
           return e1;
       else
           return e2;          
   }//End of method
   //Method to display event information
   void display()
   {
       System.out.println("Event Number: " + eventNumber);
       System.out.println("Number of Guest: " + numberOfGuest);
       isLargeEvent();
       System.out.println("Price per Guest: " + getPricePerGuest());
       System.out.println("Total Event price: " + price);
   }//End of method
}//End of class
//Driver class
public class EventDemo
{
   //Main method
   public static void main(String ss[])
   {
       //Creates an array of objects
       Event e[] = new Event[3];
       //Scanner class object created to accept data
       Scanner sc = new Scanner(System.in);
       //Loops 3 times to accept data
       for(int x = 0; x < 3; x++)
       {
           e[x] = new Event();
           System.out.println("Enter the Event Number: ");
           e[x].eventNumber = sc.nextInt();
           System.out.println("Enter Number of Guests: ");
           e[x].numberOfGuest = sc.nextInt();
       }//End of loop
       //Creates a temporary object to store the largest object
       Event ev;
           ev = e[0].findLarge(e[0], e[1]);
           System.out.println();
           e[0].display();
           e[1].display();
           System.out.println(" Larger Event");
           ev.display();
          
           ev = e[0].findLarge(e[0], e[2]);
           System.out.println();
           e[0].display();
           e[2].display();
           System.out.println(" Larger Event");
           ev.display();

           ev = e[0].findLarge(e[1], e[2]);
           System.out.println();
           e[1].display();
           e[2].display();
           System.out.println(" Larger Event");
           ev.display();
   }//End of main  
}//End of class

Output:

Enter the Event Number:
111
Enter Number of Guests:
54
Enter the Event Number:
222
Enter Number of Guests:
65
Enter the Event Number:
333
Enter Number of Guests:
35

Event Number: 111
Number of Guest: 54
Price per Guest: 32.0
Total Event price: 1728.0
Event Number: 222
Number of Guest: 65
Price per Guest: 32.0
Total Event price: 2080.0

Larger Event
Event Number: 222
Number of Guest: 65
Price per Guest: 32.0
Total Event price: 2080.0

Event Number: 111
Number of Guest: 54
Price per Guest: 32.0
Total Event price: 1728.0
Event Number: 333
Number of Guest: 35
Price per Guest: 35.0
Total Event price: 1225.0

Larger Event
Event Number: 111
Number of Guest: 54
Price per Guest: 32.0
Total Event price: 1728.0

Event Number: 222
Number of Guest: 65
Price per Guest: 32.0
Total Event price: 2080.0
Event Number: 333
Number of Guest: 35
Price per Guest: 35.0
Total Event price: 1225.0

Larger Event
Event Number: 222
Number of Guest: 65
Price per Guest: 32.0
Total Event price: 2080.0