0% found this document useful (0 votes)
41 views41 pages

Railway Ticket Reservation

This document describes a train reservation system program with three main functions: 1) Enter, display, or modify train details such as train number, seats available, etc. 2) Reserve or cancel train tickets and view reservation status. 3) View details of past reservations like name, age, reservation number, and status. The program uses classes for trains and tickets, and data files to store train and reservation information.

Uploaded by

Nithish S
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views41 pages

Railway Ticket Reservation

This document describes a train reservation system program with three main functions: 1) Enter, display, or modify train details such as train number, seats available, etc. 2) Reserve or cancel train tickets and view reservation status. 3) View details of past reservations like name, age, reservation number, and status. The program uses classes for trains and tickets, and data files to store train and reservation information.

Uploaded by

Nithish S
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 41

COMPUTER PROJECT

TRAIN RESERVATION
Introduction

This is a project based on train reservation. The program helps us to


enter , display or alter the details of different trains. Moreover & most
importantly the program helps us to reserve or cancel a train ticket.
The program also helps us to know the present status of a reserved
ticket, i.e whether the ticket is confirmed or not. It includes various
function programs to do the above mentioned tasks. Data file
handling has been effectively used in the program.
PROGRAM CODE
//PROGRAM - TRAIN RESERVATION

#include<iostream.h>

#include<conio.h>

#include<string.h>

#include<dos.h>

#include<stdio.h>

#include<fstream.h>

#include<process.h>

#include<stdlib.h>

class train

private :

int trainno,nofafseat,nofasseat,noffsseat,nofacseat,nofssseat;

char trainname[60],startingpoint[60],destination[60];

public :

train()

trainno=0;

nofafseat=0;

nofasseat=0;

noffsseat=0;

nofacseat=0;

nofssseat=0;

strcpy(trainname,"/0");

strcpy(startingpoint,"/0");
strcpy(destination,"/0");

void input(); //To input the details

void display(); //To display the details

int returntr();

int returnaf();

int returnas();

int returnfs();

int returnac();

int returnss();

}tr;

int train::returntr()

return trainno;

int train::returnaf()

return nofafseat;

int train::returnas()

return nofasseat;

int train::returnfs()
{

return noffsseat;

int train::returnac()

return nofacseat;

int train::returnss()

return nofssseat;

void train::input()

clrscr();

gotoxy(10,10);

cout<<"ENTER THE TRAIN NUMBER ";

gotoxy(57,10);

cin>>trainno;

gotoxy(10,12);

cout<<"ENTER THE NUMBER OF A/C FIRST CLASS SEATS";

gotoxy(57,12);

cin>>nofafseat;

gotoxy(10,14);

cout<<"ENTER THE NUMBER OF A/C SECOND CLASS SEATS";

gotoxy(57,14);
cin>>nofasseat;

gotoxy(10,16);

cout<<"ENTER THE NUMBER OF FIRST CLASS SLEEPER SEATS";

gotoxy(57,16);

cin>>noffsseat;

gotoxy(10,18);

cout<<"ENTER THE NUMBER OF A/C CHAIR CAR SEATS";

gotoxy(57,18);

cin>>nofacseat;

gotoxy(10,20);

cout<<"ENTER THE NUMBER OF SECOND CLASS SLEEPER SEATS";

gotoxy(57,20);

cin>>nofssseat;

gotoxy(10,22);

cout<<"ENTER THE TRAIN NAME";

gotoxy(57,22);

gets(trainname);

gotoxy(10,24);

cout<<"ENTER THE STARTING POINT ";

gotoxy(57,24);

gets(startingpoint);

gotoxy(10,26);

cout<<"ENTER THE DESTINATION ";

gotoxy(57,26);

gets(destination);

void train::display ()
{

clrscr();

gotoxy(10,10);

cout<<"TRAIN NUMBER ";

gotoxy(47,10);

cout<<trainno;

gotoxy(10,12);

cout<<"TRAIN NAME ";

gotoxy(47,12);

puts(trainname);

gotoxy(10,14);

cout<<"NO OF A/C FIRST CLASS SEATS ";

gotoxy(47,14);

cout<<nofafseat;

gotoxy(10,16);

cout<<"NO OF A/C SECOND CLASS SEATS ";

gotoxy(47,16);

cout<<nofasseat;

gotoxy(10,18);

cout<<"NO OF FIRST CLASS SLEEPER SEATS ";

gotoxy(47,18);

cout<<noffsseat;

gotoxy(10,20);

cout<<"NO OF A/C CHAIR CLASS SEATS ";

gotoxy(47,20);

cout<<nofacseat;

gotoxy(10,22);

cout<<"NO OF SECOND CLASS SLEEPER SEATS ";


gotoxy(47,22);

cout<<nofssseat;

gotoxy(10,24);

cout<<"STARTING POINT ";

gotoxy(47,24);

puts(startingpoint);

gotoxy(10,26);

cout<<"DESTINATION ";

gotoxy(47,26);

puts(destination);

gotoxy(10,28);

cout<<"PRESS ANY KEY TO CONTINUE ";

getch();

class tickets

int resno,toaf,nofaf,toas,nofas,tofs,noffs,toac,nofac,toss,nofss,age;

char status[40],name[40];

public:

tickets();

void reservation(); //For ticket reservation

void cancellation(); //For ticket cancellation

int ret();

void display(); //To display reservation details

}tick;

tickets::tickets()
{

resno=0;

toaf=0;

nofaf=0;

toas=0;

nofas=0;

tofs=0;

noffs=0;

toac=0;

nofac=0;

toss=0;

nofss=0;

age=0;

strcpy(status,"/0");

strcpy(name,"/0");

int tickets::ret()

return resno;

void tickets::display()

int f=0;

clrscr();

ifstream fn("Ticket1.dat",ios::out);

fn.seekg(0);
if(!fn)

cout<<"ERROR IN THE FILE ";

X:

gotoxy(10,10);

cout<<"ENTER THE RESERVATION NO ";

gotoxy(10,12);

int n;

cin>>n;

while(!fn.eof())

fn.read((char*)&tick,sizeof(tick));

gotoxy(10,10);

if(n==resno)

clrscr();

f=1;

gotoxy(10,10);

cout<<"NAME ";

gotoxy(30,10) ;

cout<<name;

gotoxy(10,12);

cout<<"AGE ";

gotoxy(30,12);

cout<<age;

gotoxy(10,14);

cout<<"PRESENT STATUS ";


gotoxy(30,14);

cout<<status;

gotoxy(10,16);

cout<<"RESERVATION NUMBER ";

gotoxy(30,16);

cout<<resno;

gotoxy(10,18);

cout<<"PRESS ANY KEY TO CONTINUE ";

getch();

if(f==0)

clrscr();

gotoxy(10,10);

cout<<"UNRECOGINIZED RESERVATION NO !!! WANNA RETRY ?(Y/N) ";

char a;

gotoxy(10,12);

cin>>a;

if(a=='y'||a=='Y')

clrscr();

goto X;

else

gotoxy(10,12);

cout<<"PRESS ANY KEY TO CONTINUE";


getch();

fn.close();

void tickets::reservation()

clrscr();

gotoxy(10,10);

cout<<"RESERVATION ";

gotoxy(10,12);

cout<<"ENTER THE TRAIN NO: ";

int tno,f=0;

cin>>tno;

ofstream file;

ifstream fin("Train1.dat",ios::out);

fin.seekg(0);

if(!fin)

clrscr();

gotoxy(10,10);

cout<<"ERROR IN THE FILE ";

else

clrscr();

while(!fin.eof())

{
fin.read((char*)&tr,sizeof(tr));

int z;

z=tr.returntr();

if(tno==z)

f=1;

nofaf=tr.returnaf();

nofas=tr.returnas();

noffs=tr.returnfs();

nofac=tr.returnac();

nofss=tr.returnss();

if(f==1)

file.open("Ticket1.dat",ios::app);

S:

clrscr();

gotoxy(10,10);

cout<<"NAME:";

gets(name);

gotoxy(10,12);

cout<<"AGE:";

cin>>age;

clrscr();

gotoxy(10,10);

cout<<"SELECT THE CLASS WHICH YOU WISH TO TRAVEL";

gotoxy(10,12);
cout<<"1.A/C FIRST CLASS " ;

gotoxy(10,14);

cout<<"2.A/C SECOND CLASS " ;

gotoxy(10,16);

cout<<"3.FIRST CLASS SLEEPER " ;

gotoxy(10,18);

cout<<"4.A/C CHAIR CAR " ;

gotoxy(10,20);

cout<<"5.SECOND CLASS SLEEPER ";

gotoxy(10,22);

int c;

cin>>c;

switch(c)

case 1:toaf++;

resno=rand();

if((nofaf-toaf)>0)

strcpy(status,"confirmed");

gotoxy(10,24) ;

cout<<"STATUS";

gotoxy(30,24);

puts(status);

gotoxy(10,26);

cout<<"RESERVATION NO";

gotoxy(30,26);

cout<<resno;

getch();
file.write((char*)&tick,sizeof(tick));

break;

else

strcpy(status,"pending");

gotoxy(10,24);

cout<<"STATUS";

gotoxy(30,24);

puts(status);

gotoxy(10,26);

cout<<"RESERVATION NO";

gotoxy(30,26);

cout<<resno;

getch();

file.write((char*)&tick,sizeof(tick));

break;

case 2:toas++;

resno=rand();

if((nofas-toas)>0)

strcpy(status,"confirmed");

gotoxy(10,24) ;

cout<<"STATUS";

gotoxy(30,24);

puts(status);

gotoxy(10,26);
cout<<"RESERVATION NO";

gotoxy(30,26);

cout<<resno;

getch();

file.write((char*)&tick,sizeof(tick));

break;

else

strcpy(status,"pending");

gotoxy(10,24);

cout<<"STATUS";

gotoxy(30,24);

puts(status);

gotoxy(10,26);

cout<<"RESERVATION NO";

gotoxy(30,26);

cout<<resno;

getch();

file.write((char*)&tick,sizeof(tick));

break;

case 3:tofs++;

resno=rand();

if((noffs-tofs)>0)

strcpy(status,"confirmed");

gotoxy(10,24) ;
cout<<"STATUS";

gotoxy(30,24);

puts(status);

gotoxy(10,26);

cout<<"RESERVATION NO";

gotoxy(30,26);

cout<<resno;

getch();

file.write((char*)&tick,sizeof(tick));

break;

else

strcpy(status,"pending");

gotoxy(10,24);

cout<<"STATUS";

gotoxy(30,24);

puts(status);

gotoxy(10,26);

cout<<"RESERVATION NO";

gotoxy(30,26);

cout<<resno;

getch();

file.write((char*)&tick,sizeof(tick));

break;

case 4:toac++;

resno=rand();
if((nofac-toac)>0)

strcpy(status,"confirmed");

gotoxy(10,24) ;

cout<<"STATUS";

gotoxy(30,24);

puts(status);

gotoxy(10,26);

cout<<"RESERVATION NO";

gotoxy(30,26);

cout<<resno;

getch();

file.write((char*)&tick,sizeof(tick));

break;

else

strcpy(status,"pending");

gotoxy(10,24);

cout<<"STATUS";

gotoxy(30,24);

puts(status);

gotoxy(10,26);

cout<<"RESERVATION NO";

gotoxy(30,26);

cout<<resno;

getch();

file.write((char*)&tick,sizeof(tick));
break;

case 5:toss++;

resno=rand();

if((nofss-toss)>0)

strcpy(status,"confirmed");

gotoxy(10,24) ;

cout<<"STATUS";

gotoxy(30,24);

puts(status);

gotoxy(10,26);

cout<<"RESERVATION NO";

gotoxy(30,26);

cout<<resno;

getch();

file.write((char*)&tick,sizeof(tick));

break;

else

strcpy(status,"pending");

gotoxy(10,24);

cout<<"STATUS";

gotoxy(30,24);

puts(status);

gotoxy(10,26);

cout<<"RESERVATION NO";
gotoxy(30,26);

cout<<resno;

getch();

file.write((char*)&tick,sizeof(tick));

break;

gotoxy(10,28);

cout<<"DO YOU WISH TO CONTINUE BOOKING TICKETS (Y/N) ? ";

gotoxy(10,30);

char n;

cin>>n;

if(n=='y'||n=='Y')

goto S;

if(f==0)

{clrscr();

gotoxy(10,10);

delay(1000);

cout<<"ERROR IN THE TRAIN NUMBER ENTERED !!!";

getch();

file.close();

void tickets::cancellation()
{clrscr();

ifstream fin;

fin.open("Ticket1.dat",ios::out);

ofstream file;

file.open("Temp1.dat",ios::app);

fin.seekg(0);

gotoxy(10,10);

cout<<"ENTER THE RESERVATION NO ";

int r,f=0;

cin>>r;

if(!fin)

cout<<"ERROR IN THE FILE !!!";

while(!fin.eof())

fin.read((char*)&tick,sizeof(tick));

int z;

z=ret();

if(z!=r)

file.write((char*)&tick,sizeof(tick));

if(z==r)

f=1;

}
file.close();

fin.close();

remove("Ticket1.dat");

rename("Temp1.dat","Ticket1.dat");

if(f==0)

{gotoxy(10,12);

cout<<"NO SUCH RESERVATION IS MADE !!! PLEASE RETRY....";

getch();

else

gotoxy(10,12);

cout<<"RESERVATION CANCELLED";

getch();

void main()

int ch,no,i,r=1000,j;

clrscr();

gotoxy(33,22);

cout<<"WELCOME";

delay(1500);

delay(1000);

Z:

clrscr();

gotoxy(25,8) ;
cout<<"RAILWAY TICKET RESERVATION";

gotoxy(25,9);

cout<<"==========================";

gotoxy(20,15) ;

cout<<"1.TRAIN DETAILS";

gotoxy(20,17);

cout<<"2.UPDATE TRAIN DETAILS ";

gotoxy(20,19);

cout<<"3.RESERVING A TICKET ";

gotoxy(20,21);

cout<<"4.CANCELLING A TICKET";

gotoxy(20,23);

cout<<"5.DISPLAY THE PRESENT TICKET STATUS ";

gotoxy(20,25);

cout<<"6.EXIT";

textcolor(1);

gotoxy(20,27);

cout<<"ENTER YOUR CHOICE: ";

cin>>ch;

char n;

switch(ch)

case 1:ifstream fin("Train1.dat",ios::out);

fin.seekg(0);

clrscr();

if(!fin)

clrscr();
gotoxy(10,10);

cout<<"ERROR IN THE FILE !!!";

else

{clrscr();

while(!fin.eof())

fin.read((char*)&tr,sizeof(tr));

tr.display();

fin.close();

goto Z;

case 2:clrscr();

gotoxy(20,10);

cout<<"ENTER THE PASSWORD " ;

cin>>j;

gotoxy(20,30);

cout<<"CHECKING PLEASE WAIT.....................";

delay(2000);

if(j==r)

Y:

ofstream fout("Train1.dat",ios::app);

tr.input();

fout.write((char*)&tr,sizeof(tr));

fout.close();

gotoxy(10,30);
cout<<"DO YOU WISH TO CONTINUE UPDATING ?(Y/N)";

cin>>n;

textcolor(WHITE);

if(n=='y'||n=='Y')

goto Y;

goto Z;

else

goto Z;

case 3:tick.reservation();

goto Z;

case 4:tick.cancellation();

goto Z;

case 5:tick.display();

goto Z;

case 6:exit(0);

getch();

}
SAMPLE
OUTPUT
RAILWAY TICKET RESERVATION

==========================

1.TRAIN DETAILS

2.UPDATE TRAIN DETAILS

3.RESERVING A TICKET

4.CANCELLING A TICKET

5.DISPLAY THE PRESENT TICKET STATUS

6.EXIT

ENTER YOUR CHOICE:2


ENTER THE PASSWORD 1000

CHECKING PLEASE WAIT…………………..


ENTER THE TRAIN NUMBER 2700

ENTER THE NUMBER OF A/C FIRST CLASS SEATS 300

ENTER THE NUMBER OF A/C SECOND CLASS SEATS 450

ENTER THE NUMBER OF FIRST CLASS SLEEPER SEATS 600

ENTER THE NUMBER OF A/C CHAIR CAR SEATS 450

ENTER THE NUMBER OF SECOND CLASS SLEEPER SEATS 600

ENTER THE TRAIN NAME Dreamz Xpress

ENTER THE STARTING POINT Alwaye

ENTER THE DESTINATION Marmagoa

DO YOU WISH TO CONTINUE UPDATING ?(Y/N)N


RAILWAY TICKET RESERVATION

==========================

1.TRAIN DETAILS

2.UPDATE TRAIN DETAILS

3.RESERVING A TICKET

4.CANCELLING A TICKET

5.DISPLAY THE PRESENT TICKET STATUS

6.EXIT

ENTER YOUR CHOICE: 1


TRAIN NUMBER 2700

TRAIN NAME Dreamz Xpress

NO OF A/C FIRST CLASS SEATS 300

NO OF A/C SECOND CLASS SEATS 450

NO OF FIRST CLASS SLEEPER SEATS 600

NO OF A/C CHAIR CLASS SEATS 450

NO OF SECOND CLASS SLEEPER SEATS 600

STARTING POINT Alwaye

DESTINATION Marmagoa

PRESS ANY KEY TO CONTINUE


RAILWAY TICKET RESERVATION

==========================

1.TRAIN DETAILS

2.UPDATE TRAIN DETAILS

3.RESERVING A TICKET

4.CANCELLING A TICKET

5.DISPLAY THE PRESENT TICKET STATUS

6.EXIT

ENTER YOUR CHOICE: 3


RESERVATION

ENTER THE TRAIN NO: 2700


SELECT THE CLASS WHICH YOU WISH TO TRAVEL

1.A/C FIRST CLASS

2.A/C SECOND CLASS

3.FIRST CLASS SLEEPER

4.A/C CHAIR CAR

5.SECOND CLASS SLEEPER

STATUS confirmed

RESERVATION NO 346

DO YOU WISH TO CONTINUE BOOKING TICKETS (Y/N) ? N


RAILWAY TICKET RESERVATION

==========================

1.TRAIN DETAILS

2.UPDATE TRAIN DETAILS

3.RESERVING A TICKET

4.CANCELLING A TICKET

5.DISPLAY THE PRESENT TICKET STATUS

6.EXIT

ENTER YOUR CHOICE: 5


ENTER THE RESERVATION NO

346
NAME Sudhir Mishra

AGE 45

PRESENT STATUS confirmed

RESERVATION NUMBER 346

PRESS ANY KEY TO CONTINUE


RAILWAY TICKET RESERVATION

==========================

1.TRAIN DETAILS

2.UPDATE TRAIN DETAILS

3.RESERVING A TICKET

4.CANCELLING A TICKET

5.DISPLAY THE PRESENT TICKET STATUS

6.EXIT

ENTER YOUR CHOICE: 4


ENTER THE RESERVATION NO 346

RESERVATION CANCELLED
RAILWAY TICKET RESERVATION

==========================

1.TRAIN DETAILS

2.UPDATE TRAIN DETAILS

3.RESERVING A TICKET

4.CANCELLING A TICKET

5.DISPLAY THE PRESENT TICKET STATUS

6.EXIT

ENTER YOUR CHOICE: 6

You might also like