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!");
}
}