Railway Reservation System - Insurance Tips

A Hub of Best Guide Health Insurance Tips

Sunday, May 22, 2022

Railway Reservation System

 

Code :

 

#include<conio.h>

#include<stdio.h>

#include<graphics.h>

#include<stdlib.h>

#include<dos.h>

#include<string.h>

#include<math.h>

 

/***************Global Variable Declarations****************/

 

union REGS i,o;

int xmax,ymax;

int gdriver = DETECT, gmode, errorcode,x,y;

int count=0,no_pass=0;

FILE *ptr1;

char d[8][3]={{"S1"},{"S2"},{"S3"},{"S4"},{"S5"},{"S6"},{"S7"},{"S8"}};

char x1[2];

 

/****************************Global Structures declared**********/

 

struct travel

{

                char tno[5];

                //char doj[10];

                int d1,m1,y1;

                char from[4];

                char to[4];

                char passen[6][20];

                char sex[6][2];

                char age[6][3];

                int seat_no[6];

                char coano[3];

   //         float pnr;

                 long int pnr;

                float bill;

}passenger;

struct

{

//            float pnr;

long int pnr;

}pass;

struct

{

                int seat_no;

                char coano[3];

                char status[1];

}berth;

 

struct

{

                char tno[5];

                char tname[20];

}train;

 

 

/***********************User Defined Functions***********/

 

void firstscreen();

void mainmenu();

void reserv();

void clear();

void setgraph();

void clearline();

void drawbox();

void cancel();

void enquiry();

void color(int,int,int);

void printtic(struct travel);

 

/*****************Main Function*****************************/

void main()

{

                int i;

                FILE *ptr,*tr;

                /***********loop for writing train nos***************/

                if((tr=fopen("tra.dat","r"))==NULL)

                {

                                tr=fopen("tra.dat","w");

                                strcpy(train.tno,"3143");

                                strcpy(train.tname,"Darjeeling Mail");

                                fwrite(&train,sizeof(train),1,tr);

                                strcpy(train.tno,"3147");

                                strcpy(train.tname,"Uttarbanga Exp");

                                fwrite(&train,sizeof(train),1,tr);

                                fclose(tr);

                }

 

                /************loop for writing train berth nos*********/

                if((ptr=fopen("berths3.dat","r"))==NULL)

                {

                    ptr=fopen("berths3.dat","wb");

                    strcpy(berth.coano,d[0]);

                    strcpy(berth.status,"V");

                    for(i=1;i<=73;i++)

                    {

                                   if(i>72)

                                   {

                                                                count++;

                                                                strcpy(berth.coano,d[count]);

                                                                i=1;

                                   }

                                   if(count==8)

                                                   break;

                                   berth.seat_no=i;

                                   fwrite(&berth,sizeof(berth),1,ptr);

 

                    }

                }

                fclose(ptr);

                if((ptr=fopen("berths7.dat","r"))==NULL)

                {

                    ptr=fopen("berths7.dat","wb");

                    strcpy(berth.coano,d[0]);

                    strcpy(berth.status,"V");

                    for(i=1;i<=73;i++)

                    {

                                   if(i>72)

                                   {

                                                                count++;

                                                                strcpy(berth.coano,d[count]);

                                                                i=1;

                                   }

                                   if(count==8)

                                                   break;

                                   berth.seat_no=i;

                                   fwrite(&berth,sizeof(berth),1,ptr);

 

                    }

     }

     fclose(ptr);

                textcolor(WHITE);

                textbackground(BLACK);

                clrscr();

                firstscreen();

                mainmenu();

                reserv();

                cancel();

 

                getch();

}

void firstscreen()

{

                int r,c;

                for(r=4;r<=20;r++)

                {

                                 gotoxy(20,r);

                                 printf("*");

                                 gotoxy(60,r);

                                 printf("*");

                }

                for(c=20;c<60;c++)

                {

                                 gotoxy(c,4);

                                 printf("*");

                                 gotoxy(c,20);

                                 printf("*");

                }

 

                gotoxy(36,6);

                textattr(LIGHTRED);

                cprintf("PROJECT");

 

                gotoxy(39,8);

                textcolor(BLUE);

                cprintf("ON");

 

                gotoxy(32,10);

                textcolor(BROWN);

                cprintf("Railway Reservation");

 

                gotoxy(25,13);

                textcolor(YELLOW);

                putch(1);

 

                textcolor(CYAN);

                cprintf(" DEVELOPERS : ");

                cprintf("Dinesh Chachan");

                gotoxy(40,14);

                cprintf("Ashutosh Kumar");

                gotoxy(40,15);

                cprintf("Deepshikha Deb");

 

                gotoxy(25,17);

                textcolor(YELLOW);

                putch(2);

 

                textcolor(CYAN);

                cprintf(" GUIDE   : ");

                textcolor(CYAN);

                cprintf("Udit Chakraborty");

                gotoxy(28,23); textcolor(MAGENTA + BLINK);

                cprintf("Press a key to continue");

                getch();

}

 

void mainmenu()

{

                char choice;

                setgraph();

                settextjustify(CENTER_TEXT, CENTER_TEXT);

                settextstyle(TRIPLEX_FONT, HORIZ_DIR, 5);

                outtextxy(xmax,45,"Railway Reservation");

                /* draw a rectangle */

                rectangle(100,150,500,350);

                gotoxy(17,12);

                printf("1. For reservation press  1

");

                gotoxy(17,14);

                printf("2. For cancellation press 2

");

                gotoxy(17,16);

                printf("3. For enquiry press 3

");

                gotoxy(17,18);

                printf("4. For closing the program press 4

");

                gotoxy(48,25);

                printf("Created by SOFTECH SOLUTIONS Ltd.");

                gotoxy(20,20);

                printf("Choice : ");

                scanf("%d",&choice);

                switch(choice)

                {

                                case 1:

                                                reserv();

                                                break;

                                case 2:

                                                closegraph();

                                                clrscr();

                                                cancel();

                                                break;

                                case 3:

                                                closegraph();

                                                enquiry();

                                                break;

                                case 4:

                                                exit(1);

                                default:

                                                gotoxy(29,20);

                                                printf("Not a valid choice");

                                                getch();

                                                main();

                }

}

int pass_name(int i,int x, int y)

{

                int flag,pos;

                do

                {

                                flag=1;

                                gotoxy(x,y);

                                fflush(stdin);

                                gets(passenger.passen[i]);

                                fflush(stdin);

                                strupr(passenger.passen[i]);

                                if (strlen(passenger.passen[i]) == 0)

                                {

                                                if(i>0)

                                                {

                                                                return(7);

                                                }

                                                gotoxy(10,24);

                                                printf("aPassenger Name should not be left BLANK");

                                                flag=0;

                                                //i--;

                                                getch();

                                                clearline(24);

                                }

                                else if (strlen(passenger.passen[i]) >20)

                                {

                                                //gotoxy(10,20);

                                                gotoxy(10,24);

                                                printf("aPassenger Name must be less than 20 characters");

                                                flag=0;

                                                getch();

                                                clearline(24);

                                }

                }while(flag==0);

                gotoxy(x,y);

                puts(passenger.passen[i]);

                i++;

                return(i);

}

int pass_sex(int j,int x,int y)

{

                int flag,i;

                char ch[1][1];

                do

                {

                                flag=1;

                                gotoxy(x,y);

                                fflush(stdin);

                                gets(passenger.sex[j]);

                                fflush(stdin);

                                strupr(passenger.sex[j]);

                                if (strlen(passenger.sex[j]) == 0)

                                {

                                                gotoxy(10,24);

                                                printf("aSex should not be left BLANK");

                                                flag=0;

                                                getch();

                                                clearline(24);

                                }

                                else if(strlen(passenger.sex[j])!=1)

                                {

                                                gotoxy(10,24);

                                                printf("aPassenger's Sex must be 1 characters long");

                                                flag=0;

                                                getch();

                                                clearline(24);

                                }

                }while (flag==0);

                gotoxy(x,y);

                puts(passenger.sex[j]);

                j++;

                return(j);

}

 

int pass_age(int k,int x,int y)

{

                int flag,i,j;

                do

                {

                                flag=1;

                                gotoxy(x,y);

                                if(flag==1)

                                                no_pass++;

                                gets(passenger.age[k]);

                                fflush(stdin);

                                strupr(passenger.age[k]);

                                if (strlen(passenger.age[k]) == 0)

                                {

                                                gotoxy(10,24);

                                                printf("aPassenger's Age should not be left BLANK");

                                                flag=0;

                                                getch();

                                                clearline(24);

                                }

                                else if (strlen(passenger.age[k])!=2)

                                {

                                                gotoxy(10,24);

                                                printf("aPassenger's Age must be equal to 2 characters");

                                                flag=0;

                                                //            k--;

                                                getch();

                                                clearline(24);

                                }

                                else if(strcmp(passenger.age[k],"00")==0)

                                {

                                                gotoxy(10,24);

                                                printf("aPassenger's Age cannot be less than 1 year");

                                                flag=0;

                                                getch();

                                                clearline(24);

                                }

                                for(i=k;i<k+1;i++)

                                {

                                                for(j=0;j<2;j++)

                                                {

                                                                if(!isdigit(passenger.age[i][j]))

                                                                {

                                                                                gotoxy(10,24);

                                                                                printf("aEnter a valid age");

                                                                                flag=0;

                                                                                getch();

                                                                                clearline(24);

                                                                }

                                                }

                                }

                }while (flag==0);

                gotoxy(x,y);

                k++;

                puts(passenger.age[k]);

                return(k);

}

 

showmouseptr()

{

                i.x.ax=1;

                int86(0x33,&i,&o);

}

int restrictmouseptr(int x1,int y1,int x2,int y2)

                {

                i.x.ax=7;

                i.x.cx=x1;

                i.x.dx=x2;

                int86(0x33,&i,&o);

 

                i.x.ax=8;

                i.x.cx=y1;

                i.x.dx=y2;

                int86(0x33,&i,&o);

                }

 

void clear()

{

                int i,j;

                for(i=0;i<=80;i++)

                {

                                for(j=0;j<=25;j++)

                                {

                                                printf("%c",' ');

                                                gotoxy(i,j);

                                }

                }

                gotoxy(1,1);

}

void setgraph()

{

 

                clrscr();

 

                /* initialize graphics and local variables */

                initgraph(&gdriver, &gmode, "c:\tc\bgi");

 

                /* read result of initialization */

                errorcode = graphresult();

                /* an error occurred */

                if (errorcode != grOk)

                {

                                   printf("Graphics error: %s

", grapherrormsg(errorcode));

                                   printf("Press any key to halt:");

                                   getch();

                                   exit(1);

                }

 

                xmax = getmaxx()/2;

                ymax = getmaxy()/2;

}

void clearline(int yco)

{

                int i,j;

                gotoxy(5,yco);

                for(i=0;i<70;i++)

                {

                                printf("%c",' ');

                }

}

void drawbox()

{

                int xr,xc;

                int la,ra;

                gotoxy(0,0);

                for(xr=1;xr<=80;xr++)

                                printf("?");

                xc=2;

                for(la=1;la<=23;la++)

                {

                                gotoxy(1,xc);

                                printf("?");

                                gotoxy(80,xc);

                                printf("?");

                                xc++;

                }

                gotoxy(0,25);

                for(xr=1;xr<80;xr++)

                                printf("?");

                gotoxy(1,1);

                printf("?");

                gotoxy(80,24);

                printf("?");

}

 

 

void reserv()

{

                int i,flag,j,k,test,found,set_no,count1=0,year;

                struct date d;

                float pnrno;

                char tno[3],ans;

                char a[1],c,age[3],ch;

                char *p;

                FILE *ptr,*pno,*tr;

                closegraph();

                highvideo();

                //Design Part

                clear();

                drawbox();

                gotoxy(3,2);

                for(i=0;i<74;i++)

                                printf("?");

 

                j=3;

                for(i=0;i<4;i++)

                {

                                gotoxy(3,j);

                                printf("?");

 

                                gotoxy(77,j);

                                printf("?");

                                j++;

                }

                gotoxy(3,6);

                for(i=0;i<75;i++)

                                printf("?");

                gotoxy(6,2);

                printf(" Journey Details ");

                color(15,18,3);

                gotoxy(5,3);

                printf("Train No : ");

                color(32,46,3);

                gotoxy(20,3);

                printf("Train Name :");

                color(67,68,3);

                color(71,72,3);

                color(75,76,3);

                gotoxy(49,3);

                printf("Date of Booking :");

                gotoxy(67,3);

                getdate(&d);

                printf("%d",d.da_day);

                gotoxy(69,3);

                putch('-');

                gotoxy(71,3);

                printf("%d",d.da_mon);

                putch(' -');

                printf("%d",d.da_year);

                color(12,14,5);

                gotoxy(5,5);

                printf("From :");

                color(27,29,5);

                gotoxy(20,5);

                printf("To :");

                color(67,68,5);

                color(71,72,5);

                color(75,76,5);

                gotoxy(49,5);

                printf("Date Of Journey :");

                gotoxy(3,8);

                for(i=0;i<=74;i++)

                                printf("?");

                gotoxy(7,8);

                printf("Passenger Details");

                j=9;

                for(i=0;i<14;i++)

                {

                                gotoxy(3,j);

                                printf("?");

 

                                gotoxy(77,j);

                                printf("?");

                                j++;

                }

                gotoxy(3,23);

                printf("");

                gotoxy(3,23);

                for(i=0;i<74;i++)

                                printf("?");

                gotoxy(4,10);

                for(i=0;i<73;i++)

                                printf("?");

                color(8,31,11);

                gotoxy(22,9);

                printf("NAME");

 

                gotoxy(46,9);

                printf("SEX");

                gotoxy(53,9);

                printf("AGE");

                gotoxy(65,9);

                printf("REMARKS");

                j=9;

                for(i=0;i<14;i++)

                {

                                gotoxy(44,j);

                                printf("?");

 

                                gotoxy(51,j);

                                printf("?");

 

                                gotoxy(58,j);

                                printf("?");

                                j++;

                }

 

                for(i=0;i<6;i++)

                {

                                color(5,38,(11+i));

                                color(46,48,(11+i));

                                color(53,56,(11+i));

                                color(5,38,(16+i));

                                color(46,48,(16+i));

                                color(53,56,(16+i));

                }

 

                //User input part

                gotoxy(15,3);

                do

                {

                                int len;

                                fflush(stdin);

                                //name input

                                gets(passenger.tno);

                                if(len=(strlen(passenger.tno))!=4)

                                {

                                                gotoxy(10,24);

                                                printf("Train No Must be 4 digits long");

                                                getch();

                                                clearline(24); //clears the line

                                                gotoxy(15,3);

                                }

                                tr=fopen("tra.dat","r");

                                fread(&train,sizeof(train),1,tr);

                                while(!feof(tr))

                                {

                                                if((strcmp(passenger.tno,train.tno))==0)

                                                {

                                                                found=0;

                                                                flag=0;

                                                                break;

                                                }

                                                else

                                                                found=2;

                                                fread(&train,sizeof(train),1,tr);

                                }

                                if(found==2)

                                {

                                                gotoxy(8,24);

                                                printf("This Train No does not exist");

                                                getch();

                                                clearline(24);

                                                gotoxy(15,3);

                                                flag=1;

                                }

                }while(strlen(passenger.tno)!=4||flag==1);

                if(found==0)

                {

                                gotoxy(32,3);

                                puts(train.tname);

                                found=1;

                }

 

                fflush(stdin);

                do

                {

                                flag=1;

                                gotoxy(12,5);

                                fflush(stdin);

                                scanf("%[^

]",passenger.from);

                                fflush(stdin);

                                strupr(passenger.from);

                                if (strlen(passenger.from) == 0)

                                {

                                                gotoxy(10,24);

                                                printf("aFrom field should not be left BLANK");

                                                flag=0;

                                                getch();

                                                clearline(24);

                                }

                                else if (strlen(passenger.from) != 3)

                                {

                                                gotoxy(10,24);

                                                printf("aFrom should be equal to 3 characters");

                                                flag=0;

                                                getch();

                                                clearline(24);

                                }

                                for(i=0;i<3;i++)

                                {

                                                ch=passenger.from[i];

                                                if(isdigit(ch))

                                                {

                                                                gotoxy(10,24);

                                                                printf("aEnter a valid Boarding Place");

                                                                flag=0;

                                                                getch();

                                                                clearline(24);

                                                                break;

                                                }

                                }

                }while (flag==0);

                gotoxy(12,5);

                puts(passenger.from);

 

                do

                {

                                flag=1;

                                gotoxy(27,5);

                                fflush(stdin);

                                scanf("%[^

]",passenger.to);

                                fflush(stdin);

                                strupr(passenger.to);

                                if (strlen(passenger.to) == 0)

                                {

                                                gotoxy(10,24);

                                                printf("aTo field should not be left BLANK");

                                                flag=0;

                                                getch();

                                                clearline(24);

                                }

                                else if (strlen(passenger.to) != 3)

                                {

                                                gotoxy(10,24);

                                                printf("aTo should be equal to 3 characters");

                                                flag=0;

                                                getch();

                                                clearline(24);

                                }

                                for(i=0;i<3;i++)

                                {

                                                ch=passenger.to[i];

                                                if(isdigit(ch))

                                                {

                                                                gotoxy(10,24);

                                                                printf("aEnter a valid Destination Place");

                                                                flag=0;

                                                                getch();

                                                                clearline(24);

                                                                break;

                                                }

                                }

                }while (flag==0);

                gotoxy(27,5);

                puts(passenger.to);

                i=j=k=0;

 

                gotoxy(67,5);

                while(c!=13)

                {

                    fflush(stdin);

                    c=getch();

                    if((c<'0'||c>'9')&&c!=13&&c!=8)

                    {

                                                if(c==27)

                                                                  return;

                                                gotoxy(5,24);

                                                printf("Please Enter Valid Date.");

                                                getch();

                                                gotoxy(67,5);

                                                printf("  ");

                                                gotoxy(5,24);

                                                clearline(24);

                                                gotoxy(67,5);

                                                count1=0;

                                                c='a';

                    }

                    else if(c==8)

                    {

                                   if(wherex()>69)

                                   {

                                                  gotoxy(wherex()-1,15);

                                                  putch(' ');

                                                  count1--;

                                                  gotoxy(wherex()-1,15);

                                   }

                    }

                    else if(c!=13)

                    {

                                   if(wherex()<69)

                                   {

                                                  putch(c);

                                                  age[count1]=c;

                                                  count1++;

                                   }

                                   else

                                   {

                                                  gotoxy(5,24);

                                                  printf("Date Can Be Only 2 Digits.");

                                                  getch();

                                                  clearline(24);

                                                  gotoxy(67,5);

                                   }

                    }

                                else

                                {

                                                age[count1]='

No comments:

Post a Comment