My photo
Bangalore, Karnataka, India
Extending one hand to help someone has more value rather than joining two hands for prayer

Archives

simple program of railway reservation

Tuesday, September 1, 2009

#include<iostream.h>
#include<conio.h>
#include<stdio.h>

struct rail
{

    int seatNo;
    int isEmpty;

}seat[67];

void reserve(int n);
int arrRowState[15];

void main()
{
    for(int i = 0 ; i <67 ; i++)
    {
       seat[i].seatNo=(i+1);
       seat[i].isEmpty=1;
    }
    for(i=0 ; i<13 ; i++)
       arrRowState[i]=5;

    arrRowState[13]=2;
    arrRowState[14]=67;

    char res='y';
    do
    {
        int n;
        clrscr();
        printf("Enter d no of seats u want to reserve : ");
        cin>>n;
        reserve(n);
        printf("Do u want to reserve more seats?");
        res=getchar();
    }while(res!='n');
}

void reserve(int n)
{
    if(n>arrRowState[14])
    {
        printf("Too large group to accomodate");
        getch();
        return;
    }

    int flag=0;
    int seatbook;
    for(int i = 0 ; flag==0&&i<=13 ; i++)
    {
        if(arrRowState[i] >= n)
        {
            flag=1;

            seatbook=(((i)*5)+(6-arrRowState[i]));
            for(int j = 0 ; j < n ; j++)
            {
                printf("&d",seatbook+j);
                seat[(seatbook+j)].isEmpty=0;
            }
            arrRowState[i]=arrRowState[i]-n;
            arrRowState[14]=arrRowState[14]-n;
        }
    }
    if(flag==0)
    {
        while(n!=0)
        {
            int max,rowNo=0;
            max=arrRowState[0];
            for( int j = 0 ; j<14 ; j++)
            {
                if(arrRowState[j] > max)
                {
                    max=arrRowState[j];
                    rowNo=j;
                }

            }
            if(n>max)
            {
                n=n-max;
                seatbook=(((rowNo)*5)+(6-arrRowState[rowNo]));
                arrRowState[rowNo]=arrRowState[rowNo]-max;
                for( int j = 0 ; j<max ; j++)
                {
                   cout<<" "<<(seatbook+j)<<" ";
                   seat[(seatbook+j)].isEmpty=0;
                }
            }
            else
            {
                reserve(n);
                n=0;
            }

        }

    }

    getch();
}

2 comments:

Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...
This comment has been removed by a blog administrator.