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

So here\'s the thing...I\'m working on a program called Parking Ticket Simulator

ID: 3828812 • Letter: S

Question

So here's the thing...I'm working on a program called Parking Ticket Simulator, but for reasons that I cannot grasp, the program isn't running properly...I will be posting the code that I've managed to make...Thanks in advance for your assistance.

These are the instructions:

You need to enter the car's information, the cop's information, the amount of time the car has been parked and how much time the car owner purchased on the parking meter. If the time parked is greater than the time payed, the program will generate a ticket with the car's information, cop's information and calculated fine.

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.

P.S. I'm still learning c++, so if you see abnormalities please be nice...lol

ParkedCar.h
[code]
#pragma once

#include
#include
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;

};
[/code]
ParkedCar.cpp
[code]

#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;
}
[/code]
ParkingMeter.h
[code]
#pragma once
#include"ParkedCar.h"
#include"ParkingTicket.h"
#include"PoliceOfficer.h"
#include
using namespace std;

class ParkingMeter {

private:

   int minutespurchased;

public:

   ParkingMeter();
   ParkingMeter(int);
   ~ParkingMeter();

   void setparkingmeter(int);

   int getparkingmeter() const;

};
[/code]

ParkingMeter.cpp
[code]
#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;
}


[/code]

ParkingTicket.h
[code]
#pragma once
#include
#include"ParkedCar.h"
#include"ParkingMeter.h"
#include"PoliceOfficer.h"
#include
using namespace std;

class ParkingTicket {

private:

   int fine;
   ParkingMeter PM;
   ParkedCar PC;
   PoliceOfficer PO;


public:
   ParkingTicket();
   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();


};
[/code]

ParkingTicket.cpp
[code]
#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()
{
}

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;

}
[/code]

PoliceOfficer.h
[code]
#pragma once
#include
#include"ParkingTicket.h"
#include"ParkingMeter.h"
#include"ParkedCar.h"
#include

using namespace std;


class PoliceOfficer {


private:
   string name;
   string badge;
   ParkingMeter PM;
   ParkedCar PC;
  


public:
   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;
};
[/code]

PoliceOfficer.cpp
[code]
#include"ParkedCar.h"
#include"ParkingMeter.h"
#include"ParkingTicket.h"
#include"PoliceOfficer.h"
#include
#include
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;
}
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;

       PT.generateticket();
   }
   else
   {
       cout << "No crime has been commited." << endl;
   }
}
[/code]
Main.cpp
[code]
#include
#include"ParkingTicket.h"
#include"ParkingMeter.h"
#include"ParkedCar.h"
#include"PoliceOfficer.h"
#include

using namespace std;


int main()

{
   int option;
   PoliceOfficer officer;
   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: ";
       getline(cin, amake);
       cout << "Model: ";
       getline(cin, amodel);
       cout << "Color: ";
       getline(cin, acolor);
       cout << "License Number: ";
       getline(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: ";
       getline(cin, aname);
       cout << "Badge ID: ";
       getline(cin, abadge);
       officer.setOfficer(aname, abadge);

       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;

}
[/code]

Explanation / Answer

ParkedCar.h:

#pragma once
#include <iostream>
#include <cstring>
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"ParkedCar.h"
//#include"ParkingTicket.h"
//#include"PoliceOfficer.h"
#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"ParkedCar.h"
#include"ParkingMeter.h"
#include"PoliceOfficer.h"
#include <iostream>
using namespace std;
class ParkingTicket {
private:
int fine;
ParkingMeter PM;
ParkedCar PC;
PoliceOfficer PO;

public:
ParkingTicket();
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()
{
}
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;
}

PoliceOfficer.h:

#pragma once
#include <iostream>
#include"ParkingTicket.h"
#include"ParkingMeter.h"
#include"ParkedCar.h"
#include <cstdlib>
using namespace std;

class PoliceOfficer {

private:
string name;
string badge;
ParkingMeter PM;
ParkedCar PC;
  

public:
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;
};

PoliceOfficer.cpp:

#include"ParkedCar.h"
#include"ParkingMeter.h"
#include"ParkingTicket.h"
#include"PoliceOfficer.h"
#include <iostream>
#include <cstring>
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;
}
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;
PT.generateticket();
}
else
{
cout << "No crime has been commited." << endl;
}
}

ParkingTicketSimulator.cpp (Main.cpp):

#include <iostream>
#include"ParkingTicket.cpp"
#include"ParkingMeter.cpp"
#include"ParkedCar.cpp"
#include"PoliceOfficer.cpp"
//#include
using namespace std;

int main()
{
int option;
PoliceOfficer officer;
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: ";
getline(cin, amake);
cout << "Model: ";
getline(cin, amodel);
cout << "Color: ";
getline(cin, acolor);
cout << "License Number: ";
getline(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: ";
getline(cin, aname);
cout << "Badge ID: ";
getline(cin, abadge);
officer.setOfficer(aname, abadge);
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;
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote