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

Parking Ticket Simulator (Java) For this assignment you will design a set of cla

ID: 3873545 • Letter: P

Question

Parking Ticket Simulator (Java)

For this assignment you will design a set of classes that work together to simulate a police officer issuing a ticket. The classes you should design are:

The ParkedCar Class: This class should simulate a parked car. The class's responsibilites are: To know the car's make, model, color, license #, and the number of minutes that the car has been parked.

The ParkingMeter Class: This class should simulate a parking meter. The class's only responsibility is: To know the number of minutes of parking time has been purchased.

The ParkingTicket Class: This class should simulate a parking ticket. The class's responsibilities are: To report the make, model, color, and license of the illegally parked car. To report the amount of the fine, which is $25 for the first hour or part of an hour that a car is illegally parked. To report the name and badge number of the police officer issuing the ticket.

The PoliceOfficer Class: This class should simulate a police officer inspecting parked cars. The class's responsibilities are: To know the police officer's name and badge number. To examine a ParkedCar object and a ParkingMeter object, and determine whether the car's time has expired. To issue a parking ticket (generate a ParkingTicket object) if the car's time has expired.

Write a program that demonstrates how these classes collaborate.

Explanation / Answer

public class ParkedCar {

private String make;

private String model;

private String color;

private String licenceNumber;

private int minutesParked;

public ParkedCar(String make, String model, String color, String licenceNumber, int minutesParked) {

super();

this.make = make;

this.model = model;

this.color = color;

this.licenceNumber = licenceNumber;

this.minutesParked = minutesParked;

}

public ParkedCar(ParkedCar object)

{

}

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 getLicenceNumber() {

return licenceNumber;

}

public void setLicenceNumber(String licenceNumber) {

this.licenceNumber = licenceNumber;

}

public int getMinutesParked() {

return minutesParked;

}

public void setMinutesParked(int minutesParked) {

this.minutesParked = minutesParked;

}

@Override

public String toString() {

return "ParkedCar [make=" + make + ", model=" + model + ", color=" + color + ", licenceNumber=" + licenceNumber

+ ", minutesParked=" + minutesParked + "]";

}

}

public class ParkingMeter {

int minutesPurchased;

public ParkingMeter(int minutesPurchased) {

this.minutesPurchased = minutesPurchased;

}

public int getMinutesPurchased() {

return minutesPurchased;

}

public void setMinutesPurchased(int minutesPurchased) {

this.minutesPurchased = minutesPurchased;

}

@Override

public String toString() {

return "ParkingMeter [minutesPurchased=" + minutesPurchased + "]";

}

}

public class ParkingTicket {

ParkedCar car;

ParkingMeter meter;

int fine;

PoliceOfficer officer;

public ParkingTicket(ParkedCar car, ParkingMeter meter,PoliceOfficer officer, int fine) {

super();

this.car = car;

this.meter = meter;

this.fine = fine;

}

public ParkedCar getCar() {

return car;

}

public void setCar(ParkedCar car) {

this.car = car;

}

public ParkingMeter getMeter() {

return meter;

}

public void setMeter(ParkingMeter meter) {

this.meter = meter;

}

public int getFine() {

return fine;

}

public void setFine(int fine) {

this.fine = fine;

}

public PoliceOfficer getOfficer() {

return officer;

}

public void setOfficer(PoliceOfficer officer) {

this.officer = officer;

}

@Override

public String toString() {

return "ParkingTicket [car=" + car + ", meter=" + meter + ", fine=" + fine + ", officer=" + officer + "]";

}

}

public class PoliceOfficer {

private String name;

private String id;

public PoliceOfficer(String name, String id) {

super();

this.name = name;

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

@Override

public String toString() {

return "PoliceOfficer [name=" + name + ", id=" + id + "]";

}

}

public class ParkingTicketSimulator{
  
public static void main(String[] args){
  
// create a ParkedCar object, the car was parked for 125 minutes
ParkedCar car = new ParkedCar("Volkswagen", "1972", "Red", "147RHZM", 125);

// create a ParkingMeter object, 60 minutes were purchased
ParkingMeter meter = new ParkingMeter(60);

// create a PoliceOfficer object
PoliceOfficer officer = new PoliceOfficer("Joe Friday", "4788");

// create a ParkingTicket object
ParkingTicket ticket = new ParkingTicket(car, meter, officer, car.getMinutesParked()-meter.getMinutesPurchased());
// print Parking ticket information
if(ticket.getFine() > 0)
System.out.println(ticket);
else
System.out.println("No ticket issued!");   

}
}