In previous chapters, you developed classes that hold rental contract information for Sammy's Seashore Supplies. Now mod

Business, Finance, Economics, Accounting, Operations Management, Computer Science, Electrical Engineering, Mechanical Engineering, Civil Engineering, Chemical Engineering, Algebra, Precalculus, Statistics and Probabilty, Advanced Math, Physics, Chemistry, Biology, Nursing, Psychology, Certifications, Tests, Prep, and more.
Post Reply
answerhappygod
Site Admin
Posts: 899603
Joined: Mon Aug 02, 2021 8:13 am

In previous chapters, you developed classes that hold rental contract information for Sammy's Seashore Supplies. Now mod

Post by answerhappygod »

In previous chapters, you developed classes that hold rentalcontract information for Sammy's Seashore Supplies. Now modify theRental and RentalDemo classes as follows:
Save the filesas Rental.java and RentalDemo.java.
Rental.java
class Rental{ public static final int MINUTES_IN_HOUR = 60; public static final int HOUR_RATE = 40; public static final int CONTRACT_NUM_LENGTH = 4; private String contractNumber; private int hours; private int extraMinutes; private double price; private String contactPhone; public Rental(String num, int minutes) { setContractNumber(num); setHoursAndMinutes(minutes); } public Rental() { this("A000", 0); } public void setContractNumber(String num) { boolean numOk = true; if(num.length() != CONTRACT_NUM_LENGTH|| !Character.isLetter(num.charAt(0))|| !Character.isDigit(num.charAt(1))|| !Character.isDigit(num.charAt(2))|| !Character.isDigit(num.charAt(3))) contractNumber = "A000"; else contractNumber =num.toUpperCase(); } public void setHoursAndMinutes(int minutes) { hours = minutes / MINUTES_IN_HOUR; extraMinutes = minutes %MINUTES_IN_HOUR; if(extraMinutes <= HOUR_RATE) price = hours * HOUR_RATE +extraMinutes; else price = hours * HOUR_RATE +HOUR_RATE; } public String getContractNumber() { return contractNumber; } public int getHours() { return hours; } public int getExtraMinutes() { return extraMinutes; } public double getPrice() { return price; } public String getContactPhone() { String phone; phone = "(" + contactPhone.substring(0, 3) +") " + contactPhone.substring(3, 6) +"-" + contactPhone.substring(6,10); return phone; } public void setContactPhone(String phone) { final int VALID_LEN = 10; final String INVALID_PHONE ="0000000000"; contactPhone = ""; int len = phone.length(); for(int x = 0; x < len; ++x) { if(Character.isDigit(phone.charAt(x))) contactPhone +=phone.charAt(x); } if(contactPhone.length() != VALID_LEN) contactPhone =INVALID_PHONE; }}
/////////////////////////////////////////////////////////////////////////////////////////
RentalDemo.java
import java.util.Scanner;public class RentalDemo{ public static void main(String[] args) { String contractNum; int minutes; contractNum = getContractNumber(); minutes = getMinutes(); Rental r1 = new Rental(contractNum,minutes); r1.setContactPhone(getPhone()); contractNum = getContractNumber(); minutes = getMinutes(); Rental r2 = new Rental(contractNum,minutes); r2.setContactPhone(getPhone()); contractNum = getContractNumber(); minutes = getMinutes(); Rental r3 = new Rental(contractNum,minutes); r3.setContactPhone(getPhone()); displayMotto(); displayDetails(r1); displayDetails(r2); displayDetails(r3); System.out.println("Of Contract #" +r1.getContractNumber() + " with a time of " + r1.getHours() + " hours and " +r1.getExtraMinutes() + " minutes,\n and Contract #" + r2.getContractNumber() + " with atime of " + r2.getHours() + " hours and " + r2.getExtraMinutes() + "minutes,\n the one with the longer time is Contract #"+ getLongerRental(r1,r2).getContractNumber()); System.out.println("Of Contract #" +r1.getContractNumber() + " with a time of " + r1.getHours() + " hours and " +r1.getExtraMinutes() + " minutes,\n and Contract #" + r3.getContractNumber() + " with atime of " + r3.getHours() + " hours and " + r3.getExtraMinutes() + "minutes,\n the one with the longer time is Contract #"+ getLongerRental(r1,r3).getContractNumber()); System.out.println("Of Contract #" +r2.getContractNumber() + " with a time of " + r2.getHours() + " hours and " +r2.getExtraMinutes() + " minutes,\n and Contract #" + r3.getContractNumber() + " with atime of " + r3.getHours() + " hours and " + r3.getExtraMinutes() + "minutes,\n the one with the longer time is Contract #"+ getLongerRental(r2,r3).getContractNumber()); int hoursInRental = r1.getHours(); for(int x = 0; x < hoursInRental;++x) System.out.println("Coupon goodfor 10 percent off next rental"); } public static String getContractNumber() { String num; Scanner input = new Scanner(System.in); System.out.print("Enter contract number>> "); num = input.nextLine(); return num; } public static int getMinutes() { int minutes; final int LOW_MIN = 60; final int HIGH_MIN = 7200; Scanner input = new Scanner(System.in); System.out.print("Enter minutes >>"); minutes = input.nextInt(); while(minutes < LOW_MIN || minutes >HIGH_MIN) { System.out.println("Time must bebetween " + LOW_MIN + " minutes and " +HIGH_MIN + " minutes"); System.out.print("Please reenterminutes >> "); minutes = input.nextInt(); } return minutes; } public static void displayDetails(Rental r) { System.out.println("\nContract #" +r.getContractNumber()); System.out.println("For a rental of " +r.getHours() + " hours and " +r.getExtraMinutes() + " minutes,\n at arate of $" + r.HOUR_RATE + " per hour and $1 per minute,\n the price is $" + r.getPrice()); System.out.println("Contact phone number is: "+ r.getContactPhone()); } public static void displayMotto() { System.out.println("SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS"); System.out.println("S S"); System.out.println("S Sammy's makes itfun in the sun. S"); System.out.println("S S"); System.out.println("SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS"); } public static Rental getLongerRental(Rental r1, Rentalr2) { Rental longer = new Rental(); int minutes1; int minutes2; minutes1 = r1.getHours() *Rental.MINUTES_IN_HOUR + r1.getExtraMinutes(); minutes2 = r2.getHours() *Rental.MINUTES_IN_HOUR + r2.getExtraMinutes(); if(minutes1 >= minutes2) longer = r1; else longer = r2; return longer; } public static String getPhone() { String phone; Scanner input = new Scanner(System.in); System.out.print("Enter contact phone number>> "); phone = input.nextLine(); return phone; } }
Join a community of subject matter experts. Register for FREE to view solutions, replies, and use search function. Request answer by replying!
Post Reply