C
curiousEngine
how to make provision of a dynamic array say of size 5 with each slot
holding a structure of type passenger?
/*
* Labsheet Queues
Question 1
Implement a program that shows a queue of people lining at a bus-stop.
The first one in the queue is the first one to get on the bus.
Your program should display the following data :
Id
First Name
Last Name
DestinationAddress
The id is to be incremented automatically. By default, it can be set
to 0.
*
* IMPLEMENTATION USING AN ARRAY
*/
#include <iostream>
using namespace std;
struct passenger{
int id;
char first_name[15];
char last_name[30];
char dest_add[20];
};
typedef passenger QueueElementType;
class Queue{
private:
QueueElementType * elements;
int MaxQueue;
int Front;
int Rear;
int fullqueue();
int emptyqueue();
public:
Queue(int MS);
void Enq(QueueElementType apassenger);
QueueElementType Deq();
void printQueue();
~Queue();
};
Queue::Queue(int MS){
elements = new QueueElementType;
MaxQueue = MS;
Front = MaxQueue -1;
Rear = MaxQueue -1;
}
Queue::~Queue(){
delete [] elements;
MaxQueue = 0;
Front = MaxQueue -1;
Rear = MaxQueue -1;
}
int Queue::fullqueue(){
return(Front = (Rear + 1) % MaxQueue);
}
int Queue::emptyqueue(){
return (Front == Rear);}
void Queue::Enq(QueueElementType apassenger){
if (fullqueue())
cout<<"Queue is Full";
else{
Rear = (Rear +1) % MaxQueue;
cout<<"Enter passenger first name:";
cin>> apassenger.first_name;
cout<<endl<<"Enter passenger last name:";
cin>>apassenger.last_name;
cout<<endl<<"Enter destination address:";
cin>>apassenger.dest_add;
apassenger.id = 1;
elements[Rear] = apassenger;
}
}
QueueElementType Queue:
eq(){
QueueElementType mypass;
if (emptyqueue())
cout<<"Queue is empty";
else{
Front = (Front + 1) % MaxQueue;
mypass = elements[Front];
}
return(mypass);
}
void Queue:
rintQueue(){
for(int i = Front ; i<= Rear; i++){
cout<<elements.id;
cout<<elements.first_name;
cout<<elements.last_name;
cout<<elements.dest_add;
}
}
int main(int argc, char** argv)
{
Queue myqueue(5);
QueueElementType mypass;
myqueue.Enq(mypass);
myqueue.printQueue();
myqueue.Enq(mypass);
myqueue.printQueue();
return 0;
}
holding a structure of type passenger?
/*
* Labsheet Queues
Question 1
Implement a program that shows a queue of people lining at a bus-stop.
The first one in the queue is the first one to get on the bus.
Your program should display the following data :
Id
First Name
Last Name
DestinationAddress
The id is to be incremented automatically. By default, it can be set
to 0.
*
* IMPLEMENTATION USING AN ARRAY
*/
#include <iostream>
using namespace std;
struct passenger{
int id;
char first_name[15];
char last_name[30];
char dest_add[20];
};
typedef passenger QueueElementType;
class Queue{
private:
QueueElementType * elements;
int MaxQueue;
int Front;
int Rear;
int fullqueue();
int emptyqueue();
public:
Queue(int MS);
void Enq(QueueElementType apassenger);
QueueElementType Deq();
void printQueue();
~Queue();
};
Queue::Queue(int MS){
elements = new QueueElementType;
MaxQueue = MS;
Front = MaxQueue -1;
Rear = MaxQueue -1;
}
Queue::~Queue(){
delete [] elements;
MaxQueue = 0;
Front = MaxQueue -1;
Rear = MaxQueue -1;
}
int Queue::fullqueue(){
return(Front = (Rear + 1) % MaxQueue);
}
int Queue::emptyqueue(){
return (Front == Rear);}
void Queue::Enq(QueueElementType apassenger){
if (fullqueue())
cout<<"Queue is Full";
else{
Rear = (Rear +1) % MaxQueue;
cout<<"Enter passenger first name:";
cin>> apassenger.first_name;
cout<<endl<<"Enter passenger last name:";
cin>>apassenger.last_name;
cout<<endl<<"Enter destination address:";
cin>>apassenger.dest_add;
apassenger.id = 1;
elements[Rear] = apassenger;
}
}
QueueElementType Queue:
QueueElementType mypass;
if (emptyqueue())
cout<<"Queue is empty";
else{
Front = (Front + 1) % MaxQueue;
mypass = elements[Front];
}
return(mypass);
}
void Queue:
for(int i = Front ; i<= Rear; i++){
cout<<elements.id;
cout<<elements.first_name;
cout<<elements.last_name;
cout<<elements.dest_add;
}
}
int main(int argc, char** argv)
{
Queue myqueue(5);
QueueElementType mypass;
myqueue.Enq(mypass);
myqueue.printQueue();
myqueue.Enq(mypass);
myqueue.printQueue();
return 0;
}