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

JAVA PROGRAM HELP. Can anyone fix my code? the program does not return the car a

ID: 3822375 • Letter: J

Question

JAVA PROGRAM HELP.

Can anyone fix my code? the program does not return the car and officer properly. Thanks for the help.

public class ParkingTicketSimulator {

   /**
   * This class should simulate a parked car, see exercise for description of
   * responsibilities
   *
   */
   class ParkedCar {

       private String make;
       private String model;
       private String color;
       private String licenseNumber;
       private int minutesParked;

       public ParkedCar(String make, String model, String color,
               String licenseNumber, int minutesParked) {
           super();
           this.make = make;
           this.model = model;
           this.color = color;
           this.licenseNumber = licenseNumber;
           this.minutesParked = minutesParked;
       }

       public String getMake() {
           return make;
       }

       public void setMake(String make) {
           this.make = make;
       }

       public String getModel() {
           return model;
       }

       public void setModel(String model) {
           this.model = model;
       }

       public String getColor() {
           return color;
       }

       public void setColor(String color) {
           this.color = color;
       }

       public String getLicenseNumber() {
           return licenseNumber;
       }

       public void setLicenseNumber(String licenseNumber) {
           this.licenseNumber = licenseNumber;
       }

       public int getMinutesParked() {
           return minutesParked;
       }

       public void setMinutesParked(int minutesParked) {
           this.minutesParked = minutesParked;
       }
   }

   /**
   * This class should simulate a parking ticket, see exercise for description
   * of responsibilities
   *
   */
   class ParkingMeter {

       private int minutesPurchased;

       public ParkingMeter(int minutesPurchased) {
           super();
           this.minutesPurchased = minutesPurchased;
       }

       public int getMinutesPurchased() {
           return minutesPurchased;
       }

       public void setMinutesPurchased(int minutesPurchased) {
           this.minutesPurchased = minutesPurchased;
       }
   }

   /**
   * This class should simulate a police officer inspecting parked cars.
   *
   */
   class PoliceOfficer {

       private String name;
       private String badgeNumber;

       public PoliceOfficer(String name, String badgeNumber) {
           super();
           this.name = name;
           this.badgeNumber = badgeNumber;
       }

       public ParkingTicket patrol(ParkedCar car, ParkingMeter meter) {

           ParkingTicket ticket = null;

           // Calculate the total number of minutes parked over minutes
           // purchased
           int illegalMinutes = car.getMinutesParked()
                   - meter.getMinutesPurchased();

           // if illegalMinutes, give ticket
           if (illegalMinutes > 0) {
               // Yes, it is illegally parked.
               ticket = new ParkingTicket(car, this, illegalMinutes);
           }

           return ticket;
       }

       public String getName() {
           return name;
       }

       public void setName(String name) {
           this.name = name;
       }

       public String getBadgeNumber() {
           return badgeNumber;
       }

       public void setBadgeNumber(String badgeNumber) {
           this.badgeNumber = badgeNumber;
       }
   }

   /**
   * This class should simulate a parking ticket.
   *
   */
   class ParkingTicket {

       private ParkedCar car;
       private PoliceOfficer officer;
       private double fine;
       private int minutes;

       public final double BASE_FINE = 25.0;
       public final double HOURLY_FINE = 10.0;

       public ParkingTicket(ParkedCar car, PoliceOfficer officer, int minutes) {
           super();
           this.car = car;
           this.officer = officer;
           this.minutes = minutes;

           calculateFine();
       }

       private void calculateFine() {

           double hours = minutes / 60.0;
           int hoursAsInt = (int) hours;

           if ((hours - hoursAsInt) > 0) {
               hoursAsInt++;
           }

           // Assign the base fine.
           fine = BASE_FINE;

           // Add the additional hourly fines.
           fine += (hoursAsInt * HOURLY_FINE);
       }

       public ParkedCar getCar() {
           return car;
       }

       public void setCar(ParkedCar car) {
           this.car = car;
       }

       public PoliceOfficer getOfficer() {
           return officer;
       }

       public void setOfficer(PoliceOfficer officer) {
           this.officer = officer;
       }

       public double getFine() {
           return fine;
       }

       public void setFine(double fine) {
           this.fine = fine;
       }

       public int getMinutes() {
           return minutes;
       }

       public void setMinutes(int minutes) {
           this.minutes = minutes;
       }

       @Override
       public String toString() {
           return "ParkingTicket [The car is " + car + ", the officer is" + officer + ", the fine is " + fine + ", the minutes are" + minutes
                   + ", BASE_FINE is " + BASE_FINE + ", and the hourly fine is " + HOURLY_FINE + "]";
       }

   }

   public static void main(String[] args) {

       // A green car was parked for 125 minutes
       ParkingTicketSimulator parkingTicketSimulator = new ParkingTicketSimulator();
       ParkedCar car = parkingTicketSimulator.new ParkedCar("Toyota Camry", "1998",
               "Tan", "BGH87", 125);

       // 60 minutes of time was purchased
       ParkingMeter meter = parkingTicketSimulator.new ParkingMeter(60);

       // Officer Binary was on duty
       PoliceOfficer officer = parkingTicketSimulator.new PoliceOfficer(
               "Officer Binary", "01010");

       ParkingTicket ticket = officer.patrol(car, meter);

       // Did the officer issue a ticket?
       if (ticket != null) {
           System.out.println(ticket);
       } else {
           System.out.println("No laws broken");
       }
   }

}

Explanation / Answer

ParkingTicketSimulator.java

public class ParkingTicketSimulator {
/**
* This class should simulate a parked car, see exercise for description of
* responsibilities
*
*/
class ParkedCar {
private String make;
private String model;
private String color;
private String licenseNumber;
private int minutesParked;
public ParkedCar(String make, String model, String color,
String licenseNumber, int minutesParked) {
super();
this.make = make;
this.model = model;
this.color = color;
this.licenseNumber = licenseNumber;
this.minutesParked = minutesParked;
}
public String getMake() {
return make;
}
public void setMake(String make) {
this.make = make;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getLicenseNumber() {
return licenseNumber;
}
public void setLicenseNumber(String licenseNumber) {
this.licenseNumber = licenseNumber;
}
public int getMinutesParked() {
return minutesParked;
}
public void setMinutesParked(int minutesParked) {
this.minutesParked = minutesParked;
}
public String toString() {
   return "[make: "+getMake()+" Model: "+getModel()+" Color: "+getColor()+"]";
}

}
/**
* This class should simulate a parking ticket, see exercise for description
* of responsibilities
*
*/
class ParkingMeter {
private int minutesPurchased;
public ParkingMeter(int minutesPurchased) {
super();
this.minutesPurchased = minutesPurchased;
}
public int getMinutesPurchased() {
return minutesPurchased;
}
public void setMinutesPurchased(int minutesPurchased) {
this.minutesPurchased = minutesPurchased;
}
}
/**
* This class should simulate a police officer inspecting parked cars.
*
*/
class PoliceOfficer {
private String name;
private String badgeNumber;
public PoliceOfficer(String name, String badgeNumber) {
super();
this.name = name;
this.badgeNumber = badgeNumber;
}
public ParkingTicket patrol(ParkedCar car, ParkingMeter meter) {
ParkingTicket ticket = null;
// Calculate the total number of minutes parked over minutes
// purchased
int illegalMinutes = car.getMinutesParked()
- meter.getMinutesPurchased();
// if illegalMinutes, give ticket
if (illegalMinutes > 0) {
// Yes, it is illegally parked.
ticket = new ParkingTicket(car, this, illegalMinutes);
}
return ticket;
}
public String toString() {
   return "[Name: "+getName()+" Badge Number: "+getBadgeNumber()+"]";
}

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getBadgeNumber() {
return badgeNumber;
}
public void setBadgeNumber(String badgeNumber) {
this.badgeNumber = badgeNumber;
}
}
/**
* This class should simulate a parking ticket.
*
*/
class ParkingTicket {
private ParkedCar car;
private PoliceOfficer officer;
private double fine;
private int minutes;
public final double BASE_FINE = 25.0;
public final double HOURLY_FINE = 10.0;
public ParkingTicket(ParkedCar car, PoliceOfficer officer, int minutes) {
super();
this.car = car;
this.officer = officer;
this.minutes = minutes;
calculateFine();
}
private void calculateFine() {
double hours = minutes / 60.0;
int hoursAsInt = (int) hours;
if ((hours - hoursAsInt) > 0) {
hoursAsInt++;
}
// Assign the base fine.
fine = BASE_FINE;
// Add the additional hourly fines.
fine += (hoursAsInt * HOURLY_FINE);
}
public ParkedCar getCar() {
return car;
}
public void setCar(ParkedCar car) {
this.car = car;
}
public PoliceOfficer getOfficer() {
return officer;
}
public void setOfficer(PoliceOfficer officer) {
this.officer = officer;
}
public double getFine() {
return fine;
}
public void setFine(double fine) {
this.fine = fine;
}
public int getMinutes() {
return minutes;
}
public void setMinutes(int minutes) {
this.minutes = minutes;
}
@Override
public String toString() {
return "ParkingTicket [The car is " + car + ", the officer is" + officer + ", the fine is " + fine + ", the minutes are" + minutes
+ ", BASE_FINE is " + BASE_FINE + ", and the hourly fine is " + HOURLY_FINE + "]";
}
}
public static void main(String[] args) {
// A green car was parked for 125 minutes
ParkingTicketSimulator parkingTicketSimulator = new ParkingTicketSimulator();
ParkedCar car = parkingTicketSimulator.new ParkedCar("Toyota Camry", "1998",
"Tan", "BGH87", 125);
// 60 minutes of time was purchased
ParkingMeter meter = parkingTicketSimulator.new ParkingMeter(60);
// Officer Binary was on duty
PoliceOfficer officer = parkingTicketSimulator.new PoliceOfficer(
"Officer Binary", "01010");
ParkingTicket ticket = officer.patrol(car, meter);
// Did the officer issue a ticket?
if (ticket != null) {
System.out.println(ticket);
} else {
System.out.println("No laws broken");
}
}
}

Output:

ParkingTicket [The car is [make: Toyota Camry Model: 1998 Color: Tan],
the officer is[Name: Officer Binary Badge Number: 01010],
the fine is 45.0,
the minutes are65, BASE_FINE is 25.0,
and the hourly fine is 10.0]