Вы находитесь на странице: 1из 9

Ticket window - Program Using Queue

#include <iostream.h>

#include <conio.h>

#include <process.h>

class ticketqueue{

private:

//Data Members

int q[5];

int front, rear, noe; //noe..to store number of elements

public:

//Member Functions

ticketqueue(){ noe = rear = front = 0;} //Constructor

void enqueue(int);

void ticketchecker();

void print();

int isempty();

void queuebuilder();

void menu();

};

/////////////////////

void ticketqueue :: enqueue(int a)

{
q[rear] = a;

rear++;

noe++;

if (rear == 5)

rear = 0;

cout<<"

"<<a<<" Is Enqeueued....."<<endl;

/////////////////////

void ticketqueue :: ticketchecker()

clrscr();

int not,rt;

if ( !isempty() )

not = q[front];

if (not > 2)

rt = not - 2;

if ( rt > 0 )

enqueue(rt);

front++;

cout<<"
"<<not<<"# Tickets were demanded. 2 Tickets are

given.

"

<<"

Enqueued again for next go to get remaining #"<<rt<<"

Tickets"<<endl;

else if ( rt <= 0 )

front++;

noe--;

else if ( not <= 2 )

front++;

noe--;

cout<<"

"<<not<<"# tickets are given...."<<endl;

else

cout<<"

!!! NO REQUEST IN THE QUEUE " <<endl;


getch();

clrscr();

menu();

/////////////////////

void ticketqueue :: print()

clrscr();

int i = front;

if ( noe > 0 )

cout<<"

REQUESTS ENQUEUED ARE :" ;

do

cout<<q[i]<<" ";

i++;

if ( i == 5 )

i = 0;

while ( i != rear );

else

cout<<"

NO REQUEST IN QUEUE...QUEUE IS EMPTY ";


getch();

clrscr();

menu();

//////////////////

//Utility Fuction

int ticketqueue :: isempty()

if ( noe == 0 )

return 1;

else

return 0;

/////////////////

//This Function takes input from the user and shows Queue graphically

void ticketqueue::queuebuilder(){

clrscr();

int tickets, z = 0, i = 0, x = 20, y = 10, g = 1, h = 17;

char c;

cout<<"Enter number of tickets to purchase... "<<endl;

while (!(c == 'E' || c == 'e'))

{
if ( z > 4)

clrscr();

cout<<"

ERROR!!! Queue Size Violation...Exiting Now "<<endl;

getch();

clrscr();

menu();

else

cout<<"

Enter : ";

cin>>tickets;

enqueue(tickets);

z++;

gotoxy(17,10);

cout<<"->";

gotoxy(20,9);

cout<<"----------------------------------";

gotoxy(x,y);

cout<<q[i];

x+=2;
gotoxy(20,11);

cout<<"----------------------------------";

gotoxy(g,h);

cout<<"PRESS C/c to CONTINUE E/e to


END: ";

cin>>c;

h += 6;

i++;

getch();

clrscr();

menu();

//////////////////

void ticketqueue::menu()

int b;

gotoxy(15,5);

cout<<"Press 1................ENTER NO OF TICKETS

";

gotoxy(15,8);

cout<<"Press 2................TICKET CHECKER

";

gotoxy(15,11);
cout<<"Press 3................ALL TICKET REQUESTS

";

gotoxy(15,15);

cout<<"Press 4................EXIT

";

gotoxy(15,18);

cout<<"NOW ENTER : ";

cin>>b;

if ( b == 1 )

queuebuilder();

else if ( b == 2 )

ticketchecker();

else if ( b == 3 )

print();

else if ( b == 4 )

exit(1);

//////////////////

void main()

clrscr();
ticketqueue t;

t.menu();

getch();

Вам также может понравиться