USING C++ PROGRAMING LANGUAGE Parking Ticket Simulator For this assignment you w
ID: 3829207 • Letter: U
Question
USING C++ PROGRAMING LANGUAGE
Parking Ticket Simulator 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 car's make, model, color, license number, 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 that 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 number 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 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 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
Here is your code: -
main.cpp
#include<string>
#include"ParkedCar.h"
#include"ParkingMeter.h"
#include"PoliceOfficer.h"
#include<iostream>
using namespace std;
int main()
{
int option;
ParkedCar car;
ParkingMeter meter;
do {
string aname, abadge, amake, amodel, alicensenumber, acolor;
int aminutespurchased, aparkedminutes;
cout << "--------------------------------" << endl;
cout << " ~Parking Ticket Simulator~" << endl;
cout << "--------------------------------" << endl;
cout << endl;
cout << "Vehicle Information:" << endl;
cout << "Make: ";
cin>>amake;
cout << "Model: ";
cin>>amodel;
cout << "Color: ";
cin>>acolor;
cout << "License Number: ";
cin>>alicensenumber;
cout << "Parked Minutes: ";
cin>> aparkedminutes;
car.set(amake, amodel, acolor, alicensenumber, aparkedminutes);
cout << "Minutes Purchased: ";
cin >> aminutespurchased;
meter.setparkingmeter(aminutespurchased);
cout << endl;
cout << "Officer Information:" << endl;
cout << "Name: ";
cin>>aname;
cout << "Badge ID: ";
cin>>abadge;
PoliceOfficer officer(aname, abadge,amake,amodel,acolor,alicensenumber,aparkedminutes,aminutespurchased);
system("cls");
officer.patrol();
cout << endl;
cout << "Enter 0 to exit or any number to restart: ";
cin >> option;
} while (option != 0);
system("pause");
return 0;
}
ParkedCar.h
#pragma once
#include<iostream>
#include<string>
using namespace std;
class ParkedCar
{
private:
string make;
string model;
string color;
string licensenumber;
int parkedminutes;
public:
ParkedCar();
ParkedCar(string, string, string, string, int);
~ParkedCar();
void setmake(string);
void setmodel(string);
void setcolor(string);
void setlicensenumber(string);
void setparkedminutes(int);
void set(string, string, string, string, int);
string getmake() const;
string getmodel()const;
string getcolor()const;
string getlicensenumber()const;
int getparkedminutes()const;
void parkedcardisplay() const;
};
ParkedCar.cpp
#include"ParkedCar.h"
ParkedCar::ParkedCar()
{
make=" ";
model = " ";
color = " ";
licensenumber = " ";
parkedminutes = 0;
}
ParkedCar::ParkedCar(string amake, string amodel, string acolor, string alicensenumber, int aparkedminutes)
{
make = amake;
model = amodel ;
color = acolor;
licensenumber = alicensenumber;
parkedminutes = aparkedminutes;
}
ParkedCar::~ParkedCar() {}
void ParkedCar::setmake(string amake)
{
make = amake;
}
void ParkedCar::setmodel(string amodel)
{
model = amodel;
}
void ParkedCar::setcolor(string acolor)
{
color = acolor;
}
void ParkedCar::setlicensenumber(string alicensenumber)
{
licensenumber = alicensenumber;
}
void ParkedCar::setparkedminutes(int aparkedminutes)
{
parkedminutes = aparkedminutes;
}
void ParkedCar::set(string amake, string amodel, string acolor, string alicensenumber, int aparkedminutes)
{
make = amake;
model = amodel;
color = acolor;
licensenumber = alicensenumber;
parkedminutes = aparkedminutes;
}
string ParkedCar::getmake() const
{
return make;
}
string ParkedCar::getmodel()const
{
return model;
}
string ParkedCar::getcolor()const
{
return color;
}
string ParkedCar::getlicensenumber()const
{
return licensenumber;
}
int ParkedCar::getparkedminutes()const
{
return parkedminutes;
}
void ParkedCar::parkedcardisplay() const
{
cout << "Make: " << make << endl;
cout << "Model: " << model << endl;
cout << "Color: " << color << endl;
cout << "License Number: " << licensenumber << endl;
}
ParkingMeter.h
#pragma once
#include<iostream>
using namespace std;
class ParkingMeter {
private:
int minutespurchased;
public:
ParkingMeter();
ParkingMeter(int);
~ParkingMeter();
void setparkingmeter(int);
int getparkingmeter() const;
};
ParkingMeter.cpp
#include"ParkingMeter.h"
ParkingMeter::ParkingMeter()
{
minutespurchased = 0;
}
ParkingMeter::ParkingMeter(int aminutespurchased)
{
minutespurchased = aminutespurchased;
}
ParkingMeter::~ParkingMeter() {}
void ParkingMeter::setparkingmeter(int aminutespurchased)
{
minutespurchased = aminutespurchased;
}
int ParkingMeter::getparkingmeter() const
{
return minutespurchased;
}
ParkingTicket.h
#pragma once
#include<iostream>
//#include"PoliceOfficer.h"
#include<string>
using namespace std;
class ParkingTicket {
private:
int fine;
ParkedCar PC;
ParkingMeter PM;
// PoliceOfficer PO;
public:
ParkingTicket();
ParkingTicket(PoliceOfficer PO);
ParkingTicket(string aname, string abadge, string amake, string amodel, string acolor, string alicensenumber, int aparkedminutes, int aminutespurchased);
~ParkingTicket();
int getfine() const;
void generateticket();
void reportCarInfo();
void reportfine();
void reportOfficer();
};
ParkingTicket.cpp
#include"ParkingTicket.h"
ParkingTicket::ParkingTicket()
{
fine = 0;
}
ParkingTicket::ParkingTicket(string aname, string abadge, string amake, string amodel, string acolor, string alicensenumber, int aparkedminutes, int aminutespurchased)
{
PC.set(amake, amodel, acolor, alicensenumber, aparkedminutes);
PM.setparkingmeter(aminutespurchased);
//PO.setOfficer(aname, abadge);
}
ParkingTicket::ParkingTicket(PoliceOfficer PO)
{
PC.set(PO.getCar().getmake(),PO.getCar().getmodel(),PO.getCar().getcolor(),PO.getCar().getlicensenumber(),PO.getCar().getparkedminutes());
PM.setparkingmeter(PO.getMeter().getparkingmeter());
//PO.setOfficer(PO.getname(),PO.getbadge());
}
ParkingTicket::~ParkingTicket()
{
}
void ParkingTicket::reportCarInfo()
{
PC.parkedcardisplay();
}
void ParkingTicket::reportfine()
{
int illegaltime = PC.getparkedminutes() - PM.getparkingmeter();
if (illegaltime> 0 && illegaltime <= 60) {
fine = 25;
}
else {
if (illegaltime > 60)
{
int temp = illegaltime;
fine = 25;
while (temp > 0 || temp > 60)
{
fine += 10;
temp -= 60;
}
}
}
cout << "Fine: $" << getfine() << endl;
}
void ParkingTicket::reportOfficer()
{
//PO.displayofficer();
}
int ParkingTicket::getfine() const
{
return fine;
}
void ParkingTicket::generateticket()
{
cout << endl;
cout << "-----------------------------" << endl;
cout << " ~ILLEGAL PARKING TICKET~" << endl;
cout << "-----------------------------" << endl;
reportCarInfo();
reportfine();
//reportOfficer();
cout << endl;
}
ParkingOfficer.h
#include<iostream>
#include"ParkedCar.h"
#include"ParkingMeter.h"
#include<string>
using namespace std;
class PoliceOfficer {
private:
string name;
string badge;
ParkedCar PC;
ParkingMeter PM;
public:
ParkedCar getCar();
ParkingMeter getMeter();
PoliceOfficer();
PoliceOfficer(string aname, string abadge, string amake, string amodel, string acolor, string alicensenumber, int aparkedminutes, int aminutespurchased);
~PoliceOfficer();
void setname(string);
void setbadge(string);
void setOfficer(string, string);
string getname() const;
string getbadge() const;
void patrol();
void displayofficer() const;
};
ParkingOfficer.cpp
#include"PoliceOfficer.h"
#include"ParkingTicket.h"
#include<iostream>
#include<string>
using namespace std;
PoliceOfficer::PoliceOfficer()
{
badge = " ";
name = " ";
}
PoliceOfficer::PoliceOfficer(string aname, string abadge, string amake, string amodel, string acolor, string alicensenumber, int aparkedminutes, int aminutespurchased)
{
PC.set(amake, amodel, acolor, alicensenumber, aparkedminutes);
PM.setparkingmeter(aminutespurchased);
setOfficer(aname, abadge);
}
PoliceOfficer::~PoliceOfficer()
{
}
void PoliceOfficer::setname(string aname)
{
name = aname;
}
void PoliceOfficer::setbadge(string abadge)
{
badge = abadge;
}
void PoliceOfficer::setOfficer(string aname, string abadge)
{
badge = abadge;
name = aname;
}
string PoliceOfficer::getname() const
{
return name;
}
ParkedCar PoliceOfficer::getCar()
{
return PC;
}
ParkingMeter PoliceOfficer::getMeter()
{
return PM;
}
string PoliceOfficer::getbadge() const
{
return badge;
}
void PoliceOfficer::displayofficer() const
{
cout << "Name: " << getname() << endl;
cout << "Badge ID: " << getbadge() << endl;
}
void PoliceOfficer::patrol()
{
if (PC.getparkedminutes() > PM.getparkingmeter()) /*parked minutes >= minutes purchased*/
{
ParkingTicket PT(*this);
PT.generateticket();
displayofficer();
}
else
{
cout << "No crime has been commited." << endl;
}
}
Sample Output: -
--------------------------------
~Parking Ticket Simulator~
--------------------------------
Vehicle Information:
Make: Honda
Model: Civic
Color: Black
License Number: 232323
Parked Minutes: 120
Minutes Purchased: 60
Officer Information:
Name: Susy
Badge ID: 2636
-----------------------------
~ILLEGAL PARKING TICKET~
-----------------------------
Make: Honda
Model: Civic
Color: Black
License Number: 232323
Fine: $25
Name: Susy
Badge ID: 2636
Enter 0 to exit or any number to restart:
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.