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

Parking Ticket Simulater For this assignment you will design a set of classes th

ID: 3557919 • Letter: P

Question

Parking Ticket Simulater

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

-The ParkedCar Class: This class should simulate a parked car. The class's responsibilities are:

-To know the cars make, model, color, license number, and the number of minutes that the car has been parked.

The ParkedMeter Class: This class should simulate a parking meter. The class's only repsonsibility is:

-To know the number of minutes of parking time that has been purchased

The ParkingTicket Class: This class should simulate a parking ticket. The class/s responsiblities are:

-To report the make, model, color, and license number of the illegally parked car.

-To report the amount of the fine, which $25 for the first hour or part of an hour that the car is illegally parked, plus $10 for every additional hour or part of an hour that the 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 polices 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

Program Code:

import java.util.Scanner;
public class CarParkingDemo
{
   public static void main(String args[])
   {
       boolean legal;
       int fine;
       Scanner sc=new Scanner(System.in);
       System.out.println("Welcome to car parking");
       System.out.println("Enter details to park car:");
       ParkedCar pc=new ParkedCar();
       System.out.println("Enter make:");
       pc.setMake(sc.nextLine());
       System.out.println("Enter model:");
       pc.setModel(sc.nextLine());
       System.out.println("Enter color:");
       pc.setColor(sc.nextLine());
       System.out.println("Enter licence number:");
       pc.setLicenceNumber(sc.nextInt());
       System.out.println("Enter number of minutes:");
       pc.setNumberOfMinutes(sc.nextInt());
       int mins=pc.getNumberOfMinutes();
       ParkedMeter pm=new ParkedMeter();
       System.out.println("Enter purchased minutes:");
       pm.setPurchasedMinutes(sc.nextInt());
       int purmins=pm.geturchasedMinutes();
       if(mins==0)
           legal=false;
       else
           legal=true;
       if(purmins<mins)
           fine=((mins-purmins)/60)*10;
       else
           fine=36;
       ParkingTicket pt=new ParkingTicket();
       pt.simulateParking(legal,fine);
       PoliceOfficer po=new PoliceOfficer();
       po.setPname("John Fredrick");
       po.setBadgeNum(1211);
       String pname=po.getPname();
       int bnum=po.getBadgeNum();
   }
}
class ParkedCar
{
   String make, model, color;
   int licenseNumber, numberOfMinutes;
   ParkedCar()
   {
       this.make="";
       this.model="";
       this.color="white";
       this.licenseNumber=0;
       this.numberOfMinutes=0;
   }
   void setMake(String make)
   {
       this.make=make;
   }
   String getMake()
   {
       return make;
   }
   void setModel(String model)
   {
       this.model=model;
   }
   String getModel()
   {
       return model;
   }
   void setColor(String color)
   {
       this.color=color;
   }
   String getColor()
   {
       return color;
   }
   void setLicenceNumber(int licenseNumber)
   {
       this.licenseNumber=licenseNumber;
   }
   int getLicenseNumber()
   {
       return licenseNumber;
   }
   void setNumberOfMinutes(int numberOfMinutes)
   {
       this.numberOfMinutes=numberOfMinutes;
   }
   int getNumberOfMinutes()
   {
       return numberOfMinutes;
   }
  
}
class ParkedMeter
{
   int purchasedMinutes;
   ParkedMeter()
   {
       this.purchasedMinutes=0;
   }
   void setPurchasedMinutes(int purchasedMinutes)
   {
       this.purchasedMinutes=purchasedMinutes;
   }
   int geturchasedMinutes()
   {
       return purchasedMinutes;
   }
  
}
class ParkingTicket extends ParkedCar
{
   boolean legal;
   String ticket;
   ParkingTicket()
   {
       this.legal=true;
       this.ticket="";
   }
   void simulateParking(boolean legal, int fine)
   {
       if(!legal)
       {
           String make=getMake();
           String model=getModel();
           String color=getColor();
           int liNum=getLicenseNumber();
           int mins=getNumberOfMinutes();
           System.out.println("The details of illegally parked car are as shown below:");
           System.out.println("Make: "+make);
           System.out.println("Model: "+model);
           System.out.println("Color: "+color);
           System.out.println("Licence Num: "+liNum);
           System.out.println("number of minutes: "+mins);
           System.out.println("Fine is: "+fine);      
       }      
   }
  
}
class PoliceOfficer
{
   String Pname;
   int badgeNum;
   PoliceOfficer()
   {
       Pname="";
       badgeNum=0;
   }
   void setPname(String name)
   {
       this.Pname=name;
   }
   String getPname()
   {
       return Pname;
   }
   void setBadgeNum(int num)
   {
       this.badgeNum=num;
   }
   int getBadgeNum()
   {
       return badgeNum;
   }
}