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

**JAVA** You have been hired by TAMU Transportation Services to write a program

ID: 3778449 • Letter: #

Question

**JAVA**

You have been hired by TAMU Transportation Services to write a program that simulates all parts of a TAMU police officer issuing a parking ticket.
The classes you need to create are:
ParkedCar
- Has fields for the car's make, model, color, license plate and number of minutes parked.

- Appropriate constructor and accessor methods

ParkingMeter
- A field for the parking lot number
- A field for the number of minutes that were purchased on the meter.
- Appropriate accessor methods

PoliceOfficer
- Has fields for the officer's name and officer's badge number
- A method called examine which takes as arguments a ParkedCar and ParkingMeter and determines if the car is parked illegally.
The officer then determines a fine which is calculated as $1 for each minute over the limit.
It returns a ParkingTicket if required, or returns null if not.
- Appropriate constructor and accessor methods

ParkingTicket
- Has fields which contain the fine amount, the parking lot number, the car's information and the police officer's information.
- Appropriate constructor and accessor methods

Now, write a main in which you create 3 ParkedCar objects and 3 ParkingMeter objects.
Initialize each of these 6 objects with a random number (between 1-500) for the minutes (make up the rest of the Car information).
Now create 1 PoliceOfficer (make up a name and badge number) that examines each ParkedCar and its associated ParkingMeter objects and generates a ParkingTicket if required.
Your final output should be the number of ParkingTickets generated, along with the information about the ParkedCar, PoliceOfficer and the ticket amount, for each ticket.
If there were no tickets generated, display "No tickets generated!"

Name your main class Hw6pr3 and your file Hw6pr3.java. Submit all .java files

Explanation / Answer

//ParkedCar.java

public class ParkedCar {
   String make;
   String model;
   String color;
   String licence;
   int numberOfMinParked;
  
   public ParkedCar(){
      
   }
  
   public ParkedCar(String make, String model, String color, String licence,
           int numberOfMinParked) {
       super();
       this.make = make;
       this.model = model;
       this.color = color;
       this.licence = licence;
       this.numberOfMinParked = numberOfMinParked;
   }
   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 getLicence() {
       return licence;
   }
   public void setLicence(String licence) {
       this.licence = licence;
   }
  

   public int getNumberOfMinParked() {
       return numberOfMinParked;
   }
   public void setNumberOfMinParked(int numberOfMinParked) {
       this.numberOfMinParked = numberOfMinParked;
   }
   @Override
   public String toString() {
       return ": [make=" + make + ", model=" + model + ", color="
               + color + ", licence=" + licence + ", numberOfMinParked="
               + numberOfMinParked + "]";
   }

}

// ParkingMeter.java

public class ParkingMeter {

String parkingLotNum;
int numOfMinPurchased;

public String getParkingLotNum() {
   return parkingLotNum;
}
public void setParkingLotNum(String parkingLotNum) {
   this.parkingLotNum = parkingLotNum;
}
public int getNumOfMinPurchased() {
   return numOfMinPurchased;
}
public void setNumOfMinPurchased(int numOfMinPurchased) {
   this.numOfMinPurchased = numOfMinPurchased;
}
@Override
public String toString() {
   return "ParkingMeter [parkingLotNum=" + parkingLotNum
           + ", numOfMinPurchased=" + numOfMinPurchased + "]";
}

}

//PoliceOfficer.java

public class PoliceOfficer {

String officerName;
String badgeNumber;

public String getOfficerName() {
   return officerName;
}

public void setOfficerName(String officerName) {
   this.officerName = officerName;
}

public String getBadgeNumber() {
   return badgeNumber;
}

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

public ParkingTicket checkParkingLegalOrNot(ParkedCar parkedCar, ParkingMeter parkingMeter){
   ParkingTicket parkingTicket;
   if(parkingMeter.getNumOfMinPurchased() == 0){
       // take it as illegally
       return null;
   }
   else{
       if(parkingMeter.getNumOfMinPurchased() < parkedCar.getNumberOfMinParked()){
           int fine = parkedCar.getNumberOfMinParked() - parkingMeter.getNumOfMinPurchased();
           parkingTicket = new ParkingTicket(fine,parkingMeter.getParkingLotNum(),parkedCar,this);
          
       }
       else{
           parkingTicket = new ParkingTicket(0,parkingMeter.getParkingLotNum(),parkedCar,this);
       }
      
   }
   return parkingTicket;
  
  
   }

@Override
public String toString() {
   return " : [officerName=" + officerName + ", badgeNumber="
           + badgeNumber + "]";
}

  
}

//ParkingTicket.java

public class ParkingTicket {
int fineAmount;
String parkingLotNum;
ParkedCar parkedCar;
PoliceOfficer policeOfficer;

public ParkingTicket() {

}
public ParkingTicket(int fineAmount, String parkingLotNum, ParkedCar parkedCar,
       PoliceOfficer policeOfficer) {
   super();
   this.fineAmount = fineAmount;
   this.parkingLotNum = parkingLotNum;
   this.parkedCar = parkedCar;
   this.policeOfficer = policeOfficer;
}
public int getFineAmount() {
   return fineAmount;
}
public void setFineAmount(int fineAmount) {
   this.fineAmount = fineAmount;
}
public String getParkingLotNum() {
   return parkingLotNum;
}
public void setParkingLotNum(String parkingLotNum) {
   this.parkingLotNum = parkingLotNum;
}
public ParkedCar getParkedCar() {
   return parkedCar;
}
public void setParkedCar(ParkedCar parkedCar) {
   this.parkedCar = parkedCar;
}
public PoliceOfficer getPoliceOfficer() {
   return policeOfficer;
}
public void setPoliceOfficer(PoliceOfficer policeOfficer) {
   this.policeOfficer = policeOfficer;
}
@Override
public String toString() {
   return "ParkingTicket : [fineAmount=" + fineAmount + ", parkingLotNum="
           + parkingLotNum + ", parkedCar=" + parkedCar + ", policeOfficer="
           + policeOfficer + "]";
}


}

//Hw6pr3.java // main

import java.util.Random;

public class Hw6pr3 {

   public static void main(String[] args) {
       Random random = new Random();
       ParkedCar parkedCar1 = new ParkedCar();
       ParkedCar parkedCar2 = new ParkedCar();
       ParkedCar parkedCar3 = new ParkedCar();
      
       //initialize 1st
       parkedCar1.setColor("red");
       parkedCar1.setLicence("LIM10000");
       parkedCar1.setMake("1990");
       parkedCar1.setModel("2000 toyota camry");
       parkedCar1.setNumberOfMinParked(random.nextInt(500)+1);
      
       //initialize 2nd
       parkedCar2.setColor("black");
       parkedCar2.setLicence("LIM20011");
       parkedCar2.setMake("2010");
       parkedCar2.setModel("BMW");
       parkedCar2.setNumberOfMinParked(random.nextInt(500)+1);
  
       //initialize 3rd
       parkedCar3.setColor("White");
       parkedCar3.setLicence("LIM50005");
       parkedCar3.setMake("2016");
       parkedCar3.setModel("mercedes benz");
       parkedCar3.setNumberOfMinParked(random.nextInt(500)+1);      
      
      
       ParkingMeter parkingMeter1 = new ParkingMeter();
       ParkingMeter parkingMeter2 = new ParkingMeter();
       ParkingMeter parkingMeter3 = new ParkingMeter();
      
       //1st
       parkingMeter1.setNumOfMinPurchased(random.nextInt(500)+1);
       parkingMeter1.setParkingLotNum("PKG0001");

       //1st
       parkingMeter2.setNumOfMinPurchased(random.nextInt(500)+1);
       parkingMeter2.setParkingLotNum("PKG0002");
      
       //1st
       parkingMeter3.setNumOfMinPurchased(random.nextInt(500)+1);
       parkingMeter3.setParkingLotNum("PKG0003");
      
       PoliceOfficer policeOfficer = new PoliceOfficer();
       policeOfficer.setBadgeNumber("POL1000L");
       policeOfficer.setOfficerName("Alen kyan");
      
       ParkingTicket parkingTicket1 = policeOfficer.checkParkingLegalOrNot(parkedCar1, parkingMeter1);
       ParkingTicket parkingTicket2 = policeOfficer.checkParkingLegalOrNot(parkedCar2, parkingMeter2);
       ParkingTicket parkingTicket3 = policeOfficer.checkParkingLegalOrNot(parkedCar3, parkingMeter3);
      
       if(null != parkingTicket1){
           System.out.println(parkingTicket1);
       }else{
           System.out.println("No ticket Generated");
       }
      
       if(null != parkingTicket2){
           System.out.println(parkingTicket2);
       }else{
           System.out.println("No ticket Generated");
       }
      
       if(null != parkingTicket3){
           System.out.println(parkingTicket3);
       }else{
           System.out.println("No ticket Generated");
       }
      
   }

}