Project: Parking Ticket Simulator Problem Description: For this assignment you w
ID: 3569990 • Letter: P
Question
Project: Parking Ticket Simulator
Problem Description:
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:
Explanation / Answer
/** * This class should simulate a parked car, see exercise for description of * responsibilities * */ class ParkedCar { private String make; private String model; private String color; private String licenseNumber; private int minutesParked; //omitted getter/setters } class ParkingMeter { private int minutesPurchased; //omitted getter/setters } class PoliceOfficer { private String name; private String badgeNumber; public ParkingTicket patrol(ParkedCar car, ParkingMeter meter) { ParkingTicket ticket = null; // Calculate the total number of minutes parked over minutes // purchased int illegalMinutes = car.getMinutesParked() - meter.getMinutesPurchased(); // if illegalMinutes, give ticket if (illegalMinutes > 0) { // Yes, it is illegally parked. ticket = new ParkingTicket(car, this, illegalMinutes); } return ticket; } //omitted getter/setters } 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++; } // Assign the base fine. fine = BASE_FINE; // Add the additional hourly fines. fine += (hoursAsInt * HOURLY_FINE); } //omitted getter/setters } public static void main(String[] args) { // A green car was parked for 125 minutes ParkingTicketSimulator parkingTicketSimulator = new ParkingTicketSimulator(); ParkedCar car = parkingTicketSimulator.new ParkedCar("Toyota", "2005", "Green", "ABC123", 125); // 60 minutes of time was purchased ParkingMeter meter = parkingTicketSimulator.new ParkingMeter(60); // Officer Jack was on duty PoliceOfficer officer = parkingTicketSimulator.new PoliceOfficer( "Sargent Jack Johnson", "8909"); ParkingTicket ticket = officer.patrol(car, meter); // Did the officer issue a ticket? if (ticket != null) { System.out.println(ticket); } else { System.out.println("No crimes committed!"); } }
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.