A. Sammy\'s Seashore Supplies rents beach equipment such as kayaks, canoes, beac
ID: 3846838 • Letter: A
Question
A. Sammy's Seashore Supplies rents beach equipment such as kayaks, canoes, beach chairs, and umbrellas to tourists. Develop an application that prompts the user for the number of minutes a piece of sports equipment was rented, displays the company motto with a border, and displays the price for the rental. Now modify the program so that the main() method conatins only three executable statments that each call a method as follows:
- The first executable statement calls a method that prompts the user for the rental time in minutes and returns the value as the main()method
- The first executable statement calls a method that displays the company motto with the border.
- The last executable statement passes the number of minutes to a method that computes the hours, extra minutes, and price for the rental, and then displays all the details.
Save the file as SammyRentalPriceWithMethods.java
B. Create a class to hold the rental data for Sammy's Seashore Supplies. The class contains:
- Two public final static fields that hold the number for minutes in an hour and hourly rate ($40)
- Four private fields that hold a contract number, number of hours for the rental, number of minutes over an hour, and the price. The contract number is stored as String because Sammy plans to assign contract numbers such as K681.
- Two public set methods. One sets the contract number (setContractNumber()). The other is named setHoursandMinutes(). and it accepts the number of minutes for the rental and then sets the hours,extra minutes over an hour, and the total price. The price is $40 per hour plus $1 for every extra minute.
- Four public get methods that return the values in the four nonstatic fields.
Save the file as Rental.java
C. Use the SammysRentalPriceWithMethods class you created in Step 2a as a starting point for a program that demonstrates the Rental class you created in Step 2b, but make the following changes:
- You already have a method that gets the number of minutes from a user; biw add a method that gets a contract number. The main() method should declare a Rental object, call the two data entry methods, and use their returned values to set the fields in the Rental object.
- From the SammyRentalPriceWithMethods class, call the Rental Demo method that displays that company motto with the border. The method is accessible becuase it is public, but you must fully qualify the name becuase it is in another class.
- Revise the method that displays the rental details so that it accepts the newly created Rental object. The method should display the contract nuber, and it should still display the hours and minutes, the hourly rate, and the total price.
D. Save the program as RentalDemo.java
What additional information is missing? This question comes from the Java Programming 7th edition Chapter 3 problem 2CP. Thanks!
Explanation / Answer
a. SammysRentalPriceWithMethods.java
import java.util.*;
public class SammysRentalPriceWithMethods
{
public static void main(String args[])
{
int rentalTime = getRentalTime();
displayMotto();
computeRentedTime(rentalTime);
}
//The first executable statement calls a method that prompts the user for the rental time in minutes and returns the value //as the main()method
public static int getRentalTime()
{
int time;
Scanner scan = new Scanner(System.in);
System.out.println("Enter rental time in minutes ");
time = scan.nextInt();
return time;
}
//The first executable statement calls a method that displays the company motto with the border.
public static void displayMotto()
{
String motto = "Sammy’s makes it fun in the sun.";
System.out.println("Sammy's Motto");
System.out.println("*************************************************");
System.out.println("* "+motto+" *");
System.out.println("*************************************************");
}
//The last executable statement passes the number of minutes to a method that computes the hours, extra minutes, and //price for the rental, and then displays all the details.
public static void computeRentedTime(int rentalTime)
{
int rentalHours = rentalTime/60;
int rentalMinutes = rentalTime - rentalHours*60;
final int HOURLY_RATE = 40;
int price;
price = rentalHours * HOURLY_RATE + rentalMinutes;
System.out.println("Hours: " + rentalHours);
System.out.println("Additional Minutes: " + rentalMinutes);
System.out.println("Total Price: " + price+"$");
}
}
b. Rental.java
import java.util.*;
public class Rental
{
//Two public final static fields
public final static int MINUTES_IN_HOUR = 60;
public final static int HOURLY_RATE = 40;
//Four private fields
private int rentalHours, rentalMinutes, price;
private String contractNumber;
//Two public set methods
public void setContractNumber(String number)
{
contractNumber = number;
}
public void setHoursandMinutes(int rentalTime)
{
rentalHours = rentalTime/MINUTES_IN_HOUR;
rentalMinutes = rentalTime - rentalHours * MINUTES_IN_HOUR;
price = rentalHours * HOURLY_RATE + rentalMinutes;
}
//Four public get methods
public int getRentalHours()
{
return rentalHours;
}
public int getRentalMinutes()
{
return rentalMinutes;
}
public int getPrice()
{
return price;
}
public String getContractNumber()
{
return contractNumber;
}
}
c. RentalDemo.java
import java.util.*;
public class RentalDemo
{
public static void main(String args[])
{
//From the SammyRentalPriceWithMethods class, calling the Rental Demo method that displays that company motto with //the border
int numberOfMinutes = SammysRentalPriceWithMethods.getRentalTime();
String contractNumber = getContractNumber();
//Revise the method that displays the rental details so that it accepts the newly created Rental object.
Rental rental = new Rental();
rental.setContractNumber(contractNumber);
rental.setHoursandMinutes(numberOfMinutes);
SammysRentalPriceWithMethods.displayMotto();
SammysRentalPriceWithMethods.computeRentedTime(numberOfMinutes);
}
// adding a method that gets a contract number.
public static String getContractNumber()
{
String number;
Scanner scan = new Scanner(System.in);
System.out.println("Enter contract number:");
number = scan.nextLine();
return number;
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.