In this assignment you will simulate traffic flow for a park

In this assignment you will simulate traffic flow for a parking system. Suppose a Parking Garage contains 2 parking lanes, each with a capacity to hold 5 cars at a time. As each car arrives/departs, the values A/G (representing arrival/get out) is entered along. Define L_i to be a lane i where you have two lanes, and C_j to be car j where C_j: 1

Solution

#include <iostream>
#include <fstream>
using namespace std;

void enter (int car);
void depart (int car, char choice);

const int maxqueue = 7;
class queue_type

{
public:
       void clear_queue();
       bool empty_queue();
       bool full_queue();
       void insert_queue(int car);
       void delete_queue(int& car);
       int queue[8];
       int front,rear;
};

//---------------------------------------------------------------------

queue_type bash, knock, street, temp;

int main()
{
   int car;
   char choice;
  
   bash.clear_queue();
   knock.clear_queue();
   street.clear_queue();
   temp.clear_queue();

   cout << \"Enter an \'a\' if your car is arriving or enter a \'d\' if your car is departing. Enter q to quit: \" << endl;
   cin >> choice;
   cout << \"Enter license plate number: \" << endl;
   cin >> car;
  
   while ((choice!=\'q\')||(choice!=\'Q\'))
   {
       if ((choice==\'a\')||(choice==\'A\'))
           enter (car);
       else if ((choice==\'d\')||(choice==\'D\'))
           depart (car, choice);
       cin >> choice;
       cin >> car;
   }
   return 0;
}

//----------------------------------------------------------------------

void enter(int car)
{
   if (!(bash.full_queue()))
   {  
       bash.insert_queue(car);
       cout << \"Car \" << car << \" has been parked in the BASHEMUP parking garage. \" << endl;
   }
   else if(!(knock.full_queue()))
   {  
       knock.insert_queue(car);
       cout << \"BASHEMUP is full! Car \" << car << \" has been parked in the KNOCKEMDEAD parking garage. \" << endl;
   }
   else if (!(street.full_queue()))
   {
       street.insert_queue(car);
       cout << \"Both lots are full! Car \" << car << \" has been parked in the street until a spot opens up. \" << endl;
   }
}

void depart(int car, char choice)
{
   int k=0, i=0, m;
   int c1[7], c2[7], c3[7];
   while(i<7)
   {
       c1[i]=1;
       c2[i]=1;
       c3[i]=1;
       i++;
   }
  
   while (!(bash.empty_queue()))
   {
       bash.delete_queue(car);
       if (choice != car)
       {
           if (k==0)
           {
               m=c1[i];
               m++;
               c1[i]=m;
               cout << \"Car \" << car << \" departed and moved \" << c1[i] << \" times\" << endl;
               i++;
               temp.insert_queue(car);
           }
       }
           else
           {
               cout << \"Car Deleted\" << endl;
               k=1;
           }
   }
   while (!(knock.empty_queue()))
   {
       knock.delete_queue(car);
       if (choice != car)
       {
           if (k==0)
           {
               m=c2[i];
               m++;
               c2[i]=m;
               cout << \"Car \" << car << \" departed and moved \" << c2[i] << \" times\" << endl;
               i++;
               temp.insert_queue(car);
           }
       }
           else
           {
               cout << \"Car Deleted\" << endl;
               k=1;
           }
   }
   while (!(street.empty_queue()))
   {
       street.delete_queue(car);
       if (choice != car)
       {
           if (k==0)
           {
               m=c3[i];
               m++;
               c3[i]=m;
               cout << \"Car \" << car << \" departed and moved \" << c3[i] << \" times\" << endl;
               i++;
               temp.insert_queue(car);
           }
       }
       else
           {
               cout << \"Car Deleted\" << endl;
               k=1;
           }
   }
}


void queue_type::clear_queue()
{
   front = maxqueue;
   rear = maxqueue;
}

//----------------------------------------------------------------------

bool queue_type::empty_queue()
{
   if (rear == front)
       return true;
   else
       return false;
}

//----------------------------------------------------------------------

bool queue_type::full_queue()
{
   int querear;
   if (rear == maxqueue)
       querear = 0;
   else
       querear = rear +1;
   if (querear == front)
       return true;
   else
       return false;
}

//----------------------------------------------------------------------

void queue_type::insert_queue(int car)
{
   if (rear == maxqueue)
       rear =0;
   else
       rear = rear + 1;
   car = queue[rear];
}

//----------------------------------------------------------------------

void queue_type::delete_queue(int& car)
{
   if (front == maxqueue)
       front = 0;
   else
       front = front + 1;
   car = queue[front];
}

 In this assignment you will simulate traffic flow for a parking system. Suppose a Parking Garage contains 2 parking lanes, each with a capacity to hold 5 cars
 In this assignment you will simulate traffic flow for a parking system. Suppose a Parking Garage contains 2 parking lanes, each with a capacity to hold 5 cars
 In this assignment you will simulate traffic flow for a parking system. Suppose a Parking Garage contains 2 parking lanes, each with a capacity to hold 5 cars
 In this assignment you will simulate traffic flow for a parking system. Suppose a Parking Garage contains 2 parking lanes, each with a capacity to hold 5 cars

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site