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

Parking Ticket Simulator For this assignment you will have a set of classes that

ID: 3738069 • Letter: P

Question

Parking Ticket Simulator For this assignment you will have a set of classes that work together to simulate a police officer issuing a parking ticket. These are the following classes

===============================================

============================

===========================================

=====================================

Ticket should look something like this for 5 diffrent people all in the same output

Ticket for 2007 Honda

Car Data:

Make: Honda

Year: 2007

Color: Black

License Number: VA12345

Minutes Parked: 125

Officer Data:

Name: Smith

BadgeNumber: 2930

Minutes Illegaly Parked: 65

Fine: $45.00

Explanation / Answer

here is the code fr the parking ticket simulator written in java,

let me know if any corrections needed.

public class ParkingTicketSim {

    class ParkedCar {

       private String make;
       private String model;
       private String color;
       private String licenseNum;
       private int minsparked;

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

       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 licenseNum;
       }

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

       public int getMinutesParked() {
           return minsparked;
       }

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

    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;
       }
   }

    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;

            int illegalMinutes = car.getMinutesParked()
                   - meter.getMinutesPurchased();

            if (illegalMinutes > 0) {
                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;
       }
   }

    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++;
           }

            fine = BASE_FINE;

            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 [car=" + car + ", officer=" + officer
                   + ", fine=" + fine + ", minutes=" + minutes
                   + ", BASE_FINE=" + BASE_FINE + ", HOURLY_FINE="
                   + HOURLY_FINE + "]";
       }

   }

   public static void main(String[] args) {

        ParkingTicketSim parkingTicketSimulator = new ParkingTicketSim();
       ParkedCar car = parkingTicketSimulator.new ParkedCar("Toyota", "2005",
               "Green", "ABC123", 125);

        ParkingMeter meter = parkingTicketSimulator.new ParkingMeter(60);

     PoliceOfficer officer = parkingTicketSimulator.new PoliceOfficer(
               "Sargent Jack Johnson", "8909");

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

        if (ticket != null) {
           System.out.println(ticket);
       } else {
           System.out.println("No crimes committed!");
       }
   }

}