C++ Project on Railway Reservation System

Submitted by Editor

Railway Reservation System

 

#include
#include
#include
#include
#include
#include
#include
#include
char f[10]="f";
char s[10]="s";
int addr,ad,flag,f1,d,m,i,amt;
float tamt;
class login
{
public:
char id[100];
char pass[100];
char *password;
void getid()
{
cout< <"Enter your id:";gets(id);
password=getpass("Enter the password:");
strcpy(pass,password);
}
void displayid()
{
cout<<"Id:";puts(id);
cout<<"Password:";puts(pass);
}
};
class detail
{
public:
int tno;
char tname[100];

char bp[100];
char dest[100];
int c1,c1fare;
int c2,c2fare;
int d,m,y;
void getdetail()
{
cout<<"Enter the details as follows\n";
cout<<"Train no:";cin>>tno;
cout< <"Train name:";gets(tname);
cout<<"Boarding point:";gets(bp);
cout<<"Destination pt:";gets(dest);
cout<<"No of seats in first class & fare per ticket:";
cin>>c1>>c1fare;
cout< <"No of seats in second class & fare per ticket:";
cin>>c2>>c2fare;
cout< <"Date of travel:";cin>>d>>m>>y;
}
void displaydetail()
{
cout< >tno;
cout< <"Train name:";gets(tname);
cout<<"Boarding point:";gets(bp);
cout<<"Destination pt:";gets(dest);
cout<<"No of seats required:";cin>>nosr;
for(i=0;i>age[i];
}
cout< <"Enter the class f-first class s-second class:";
gets(clas);
cout<<"Date of travel:";cin>>d>>m>>y;
cout< <"Enter the concession category\n";
cout<<"1.Military\n2.Senior citizen\n";
cout<<"3.Children below 5 yrs\n4.None\n";
cin>>con;
cout< <"............END OF GETTING DETAILS............\n";
}
void displayresdet()
{
cout<<"...............................................\n";
cout<<"...............................................\n";
cout<<"Pnr no:"<>pnr;
cout< <"Date of cancellation:";cin>>d>>m>>y;
cout< <"...........END OF GETTING DETAILS...........\n";
}
void displaycancdet()
{
cout<<"...........................................\n";
cout<<"...........................................\n";
cout<<"Pnr no:"<>ch;
cout< >ch;


cout< >c;
}while(c=='y');
f.close();
break;
case 2:
f.open("t.txt",ios::in|ios::out|ios::binary|ios::app);
a.getdetail();
f.write((char *) & a,sizeof(a));
f.close();
break;
case 3:
f.open("t.txt",ios::in|ios::out|ios::binary|ios::app);
f.seekg(0);
while(f.read((char *) & a,sizeof(a)))
{
a.displaydetail();
}
f.close();
break;
case 4:
manage();
break;
case 5:
displaypassdetail();
break;
}
}while(ch< =5);

f.close();
}
h:
}
void reserve()
{
int ch;
do
{
cout<<"1.Reserve\n2.Return to the main menu\n";
cout<<"Enter your choice:";
cin>>ch;
cout< =b.nosr)

{
amt=a.c1fare;
addr=f1.tellg();
ad=sizeof(a.c1);
f1.seekp(addr-(7*ad));
a.c1=a.c1-b.nosr;
f1.write((char *) & a.c1,sizeof(a.c1));
if(b.con==1)
{
cout< <"Concession category:MILITARY PERSONNEL\n";

b.amc=b.nosr*((amt*50)/100);
}
else if(b.con==2)
{
cout<<"Concession category:SENIOR CITIZEN\n";
b.amc=b.nosr*((amt*60)/100);
}
else if(b.con==3)
{
cout<<"Concession category:CHILDERN BELOW FIVE\n";
b.amc=0.0;
}
else if(b.con==4)
{
cout<<"You cannot get any concession\n";
b.amc=b.nosr*amt;
}
srand((unsigned) time(&t));
b.pnr=rand();
f2.write((char *) & b,sizeof(b));
b.displayresdet();
cout<<"------------------------------------------------------\n";
cout<<"--------------Your ticket is reserved-----------\n";
cout<<"-----------------End of reservation menu-------\n";
}
else
{
cout<<"**********Sorry req seats not available********\n";

}
}
else if(strcmp(b.clas,s)==0)
{
if(a.c2>=b.nosr)
{
amt=a.c2fare;
addr=f1.tellg();
ad=sizeof(a.c2);
f1.seekp(addr-(5*ad));
a.c2=a.c2-b.nosr;
f1.write((char *) & a.c2,sizeof(a.c2));
if(b.con==1)
{
cout< <"Concession category:MILITARY PRESONNEL\n";
b.amc=b.nosr*((amt*50)/100);
}
else if(b.con==2)
{
cout<<"Concession category:SENIOR CITIZEN\n";
b.amc=b.nosr*((amt*60)/100);
}
else if(b.con==3)
{
cout<<"Concession category:CHILDERN BELOW FIVE\n";
b.amc=0.0;
}
else if(b.con==4)
{
cout<<"You cannot get any concession\n";
b.amc=b.nosr*amt;
}
f2.write((char *) & b,sizeof(b));
b.displayresdet();
cout<<"---------------------------------------\n";
cout<<"--------Your ticket is reserved--------\n";
cout<<"------------End of reservation---------\n";
}
else


{
cout<<"********Sorry req no of seats not available*******\n";
}
}
getch();

goto h;
}
else
{
flag=0;
}
}
if(flag==0)
{
cout<<"............Wrong train no......................\n";
cout<<"......Enter the train no from the data base.....\n";
}
f1.close();
f2.close();
getch();
h:
}
void displaypassdetail()
{
fstream f;
reser b;
f.open("p.txt",ios::in|ios::out|ios::binary);
f.seekg(0);
while(f.read((char *) & b,sizeof(b)))
{
b.displayresdet();
}
f.close();
getch();
}
void enquiry()
{

fstream f;
f.open("t.txt",ios::in|ios::out|ios::binary);
detail a;
while(f.read((char *) & a,sizeof(a)))
{
a.displaydetail();
}
getch();
}
void cancell()
{
detail a;
reser b;
canc c;
fstream f1,f2,f3;
f1.open("t.txt",ios::in|ios::out|ios::binary);
f2.open("p.txt",ios::in|ios::out|ios::binary);
f3.open("cn.txt",ios::in|ios::out|ios::binary);
cout<<"**********CANCELLATION MENU*********\n";
c.getcancdet();
while(f2.read((char *) & b,sizeof(b)))
{
if(b.pnr==c.pnr)
{
c.tno=b.tno;
strcpy(c.tname,b.tname);
strcpy(c.bp,b.bp);
strcpy(c.dest,b.dest);
c.nosc=b.nosr;
for(int j=0;jc.m)
{
cout< <"You are cancelling one month before the date of departure\n";
c.amr=tamt-((tamt*20)/100);
}
else
{
cout<<"Cancelling after the departure\n";
cout<<"Your request cannot be completed\n";
}
goto h;
c.displaycancdet();
}
}
}
else if(strcmp(c.clas,s)==0)
{
while(f1.read((char *) & a,sizeof(a)))
{

if(a.tno==c.tno)
{
a.c2=a.c2+c.nosc;
d=a.d;
m=a.m;
addr=f1.tellg();
ad=sizeof(a.c2);
f1.seekp(addr-(5*ad));
f1.write((char *) & a.c2,sizeof(a.c2));
tamt=b.amc;
if((c.d==d)&&(c.m==m))
{
cout<<"You are cancelling at the date of departure\n";
c.amr=tamt-((tamt*60)/100);
}
else if(c.m==m)
{
cout<<"You are cancelling at the month of departure\n";
c.amr=tamt-((tamt*50)/100);
}
else if(m>c.m)
{
cout< <"You are cancelling one month before the date of departure\n";
c.amr=tamt-((tamt*20)/100);
}
else
{
cout<<"Cancelling after the departure\n";
cout<<"Your request cannot be completed\n";
}
goto h;
c.displaycancdet();
}
}
}
}
else
{
flag=0;

}
}
h:
if(flag==0)
{
cout<<"Enter the correct pnr no\n";
}
f1.close();
f2.close();
f3.close();
getch();
}
void can()
{
int ch;
do
{
cout<<".................CANCELLATION MENU.........\n";
cout<<"1.Cancell\n2.Return to the main menu\n";
cout<<"Enter your choice:";
cin>>ch;
cout< >ch;
cout< >ch;
cout< >c;
}while(c=='y');
f.close();
break;
case 2:
f.open("id.txt",ios::in|ios::out|ios::binary|ios::app);
a.getid();
f.write((char *) & a,sizeof(a));
f.close();
break;
case 3:
f.open("id.txt",ios::in|ios::out|ios::binary);

f.seekg(0);
while(f.read((char *) & a,sizeof(a)))
{
a.displayid();
}
f.close();
break;
}
}while(ch< =3);
getch();
}

OUTPUT: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .......WELCOME TO RAILWAY RESERVATION SYSTEM..................... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^^^^^^^^^^^^^^^^^^^^^^MAIN MENU^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1.Admin mode 2.User mode 3.Exit Enter your choice:1

Enter the admininistrator password:********* Enter the password correctly You are not permitted to logon this mode ^^^^^^^^^^^^^^^^^^^^^^MAIN MENU^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1.Admin mode 2.User mode 3.Exit Enter your choice:1

Enter the admininistrator password:********* .............................ADMINISTRATOR MENU......................................... 1.Create detail data base 2.Add details 3.Display details 4.User management 5.Display passenger details 6.Return to main menu Enter your choice:1

Enter the details as follows Train no:123 Train name:yercaud exp Boarding point:erode Destination pt:chennai No of seats in first class & fare per ticket:100 200 No of seats in second class & fare per ticket:200 100 Date of travel:2 3 2009 Do you want to add one more record? y-for Yes n-for No y Enter the details as follows Train no:124 Train name:shatapti exp Boarding point:chennai Destination pt:bombay No of seats in first class & fare per ticket:300 200 No of seats in second class & fare per ticket:200 300 Date of travel:4 5 2009 Do you want to add one more record? y-for Yes n-for No n .............................ADMINISTRATOR MENU.................................... 1.Create detail data base 2.Add details 3.Display details 4.User management 5.Display passenger details 6.Return to main menu Enter your choice:2

Enter the details as follows Train no:126 Train name:kurula exp Boarding point:bombay Destination pt:chennai No of seats in first class & fare per ticket:200 300 No of seats in second class & fare per ticket:300 200 Date of travel:4 3 2009

.............................ADMINISTRATOR MENU....................................... 1.Create detail data base 2.Add details 3.Display details 4.User management 5.Display passenger details 6.Return to main menu Enter your choice:3 Trno Trname Bpt Dest Fs Ffare Ss Sfare Date of dep 123 yercaud exp erode chennai 100 200 200 100 2-3-2009

124 shatapti exp chennai bombay 300 200 200 300 4-5-2009

126 kurula exp bombay chennai 200 300 300 200 4-3-2009

.............................ADMINISTRATOR MENU................................................. 1.Create detail data base 2.Add details 3.Display details 4.User management 5.Display passenger details 6.Return to main menu Enter your choice:4

……………..........WELCOME TO THE USER MANAGEMENT MENU........ 1.Create id data base 2.Add details 3.Display details 4.Return to the main menu Enter your choice:1

Enter your id:ashwin Enter the password:********** Do you want to add one more record y-Yes n-No y Enter your id:ajinth Enter the password:********** Do you want to add one more record y-Yes n-No y Enter your id:bala Enter the password:******** Do you want to add one more record y-Yes n-No y Enter your id:hemanth Enter the password:********* Do you want to add one more record y-Yes n-No n 1.Create id data base 2.Add details 3.Display details 4.Return to the main menu Enter your choice:2 Enter your id:berlin Enter the password:********* 1.Create id data base 2.Add details 3.Display details 4.Return to the main menu Enter your choice:3 Id:ashwin Password:11111111 Id:ajinth Password:22222222 Id:bala Password:33333333 Id:prem Password:44444444 Id:hemanth Password:55555555 Id:berlin Password:66666666 1.Create id data base 2.Add details 3.Display details 4.Return to the main menu Enter your choice:4

. .............................ADMINISTRATOR MENU........................ 1.Create detail data base 2.Add details 3.Display details 4.User management 5.Display passenger details 6.Return to main menu Enter your choice:5 .

.............................ADMINISTRATOR MENU................................... 1.Create detail data base 2.Add details 3.Display details 4.User management 5.Display passenger details 6.Return to main menu Enter your choice:6 ^^^^^^^^^^^^^^^^^^^^^^MAIN MENU^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1.Admin mode 2.User mode 3.Exit Enter your choice:2 ************************************************************************ **********WELCOME TO THE USER MENU******************** ************************************************************************ Enter your id: ashwin Enter your password:********* Enter your user id and password correctly ^^^^^^^^^^^^^^^^^^^^^^MAIN MENU^^^^^^^^^^^^^^^^^^^^^^^ 1.Admin mode 2.User mode 3.Exit Enter your choice:2 ********************************************************************** **********WELCOME TO THE USER MENU****************** ********************************************************************** Enter your id: ashwin Enter your password:********* 1.Reserve 2.Cancell 3.Enquiry 4.Return to the main menu Enter your choice:1 1.Reserve 2.Return to the main menu Enter your choice:1 Enter the details as follows Train no:123 Train name:yercaud Boarding point:erode Destination pt:chennai No of seats required:10 Passenger name:raja Passenger age:45 Passenger name:ragu Passenger age:32 Passenger name:ravi Passenger age:34 Passenger name:vinoth Passenger age:23 Passenger name:raju Passenger age:24 Passenger name:latha Passenger age:45 Passenger name:mala Passenger age:23 Passenger name:vimala Passenger age:32 Passenger name:kathir Passenger age:12 Passenger name:kosi Passenger age:43 Enter the class f-first class s-second class:f Date of travel:2 2 2009 Enter the concession category 1.Military 2.Senior citizen 3.Children below 5 yrs 4.None 4 ..................................END OF GETTING DETAILS.............................. You cannot get any concession .............................................................................................................. ............................................................................................................... Pnr no:10770 Train no:123 Train name:yercaud Boarding point:erode Destination pt:chennai No of seats reserved:10Passenger name:raja Passenger age:45Passenger name:ragu Passenger age:32Passenger name:ravi Passenger age:34Passenger name:vinoth Passenger age:23Passenger name:raju Passenger age:24Passenger name:latha Passenger age:45Passenger name:mala Passenger age:23Passenger name:vimala Passenger age:32Passenger name:kathir Passenger age:12Passenger name:kosi Passenger age:43 Your class:f Date of reservation:2-2-2009 Your concession category:4 You must pay:2000 ************************************************************************************* ......................................END OF RESERVATION........................................ ************************************************************************************* ------------------------------------------------------------------------------------------------------ ----------------------------------Your ticket is reserved------------------------------------ ------------------------------------End of reservation menu------------------------------- 1.Reserve 2.Return to the main menu Enter your choice:2

1.Reserve 2.Cancell 3.Enquiry 4.Return to the main menu Enter your choice:3

Trno Trname Bpt Dest Fs Ffare Ss Sfare Date of dep

123 yercaud exp erode chennai 90 200 200 100 2-3-2009

124 shatapti exp chennai bombay 300 200 200 300 4-5-2009

126 kurula exp bombay chennai 200 300 300 200 4-3-2009

1.Reserve 2.Cancell 3.Enquiry 4.Return to the main menu Enter your choice:2

*********************************CANCELLATION MENU****************************** Enter the details as follows Pnr no:10770 Date of cancellation:2 3 2009 ..............................................END OF GETTING DETAILS..................................... You are cancelling at the date of departure .................................................................................................................................. ...................................................................................................................................

Pnr no:10770 Train no:123 Train name:yercaud Boarding point:erode Destination pt:chennai Your class:f no of seats to be cancelled:10 Passenger name: raja passenger age: 45 Passenger name: ragu passenger age: 32 Passenger name: ravi passenger age: 34 Passenger name: vinoth passenger age: 23 Passenger name: raju passenger age: 24 Passenger name: latha passenger age:45 Passenger name: mala passenger age: 23 Passenger name: vimala passenger age: 32 Passenger name: kathir passenger age: 12 Passenger name: kosi passenger age: 43 Date of cancellation:2-3-2009 You can collect: 800rs ********************************************************************************* ……………………..........END OF CANCELLATION................................ ********************************************************************************* 1.Reserve 2.Cancell 3.Enquiry 4.Return to the main menu Enter your choice:2 **************************CANCELLATION MENU*************************** Enter the details as follows Pnr no:12234 Date of cancellation:2 3 2009 ……………............END OF GETTING DETAILS...................................... Enter the correct pnr no

1.Reserve 2.Cancell 3.Enquiry 4.Return to the main menu Enter your choice:3

Trno Trname Bpt Dest Fs Ffare Ss Sfare Date of dep

123 yercaud exp erode chennai 100 200 200 100 2-3-2009

124 shatapti exp chennai bombay 300 200 200 300 4-5-2009

126 kurula exp bombay chennai 200 300 300 200 4-3-2009

1.Reserve 2.Cancell 3.Enquiry 4.Return to the main menu Enter your choice:3

Trno Trname Bpt Dest Fs Ffare Ss Sfare Date of dep

123 yercaud exp erode chennai 100 200 200 100 2-3-2009

124 shatapti exp chennai bombay 300 200 200 300 4-5-2009

126 kurula exp bombay chennai 200 300 300 200 4-3-2009

1.Reserve 2.Cancell 3.Enquiry 4.Return to the main menu Enter your choice:1

1.Reserve 2.Return to the main menu Enter your choice:1 Enter the details as follows Train no:12345 Train name:shatapti Boarding point:chennai Destination pt:bombay No of seats required:1 Passenger name:raja Passenger age:23 Enter the class f-first class s-second class:f Date of travel:3 2 2009 Enter the concession category 1.Military 2.Senior citizen 3.Children below 5 yrs 4.None 4 .....................................END OF GETTING DETAILS................................... ………………............Wrong train no............................................................. ……………………......Enter the train no from the data base......................... 1.Reserve 2.Return to the main menu Enter your choice:2 1.Reserve 2.Cancell 3.Enquiry 4.Return to the main menu Enter your choice:4

^^^^^^^^^^^^^^^^^^^^^^^MAIN MENU^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1.Admin mode 2.User mode 3.Exit

^^^^^^^^^^^^^^^^^^^^^^MAIN MENU^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1.Admin mode 2.User mode 3.Exit Enter your choice:1 Enter the admininistrator password:********* .............................ADMINISTRATOR MENU.................................... 1.Create detail data base 2.Add details 3.Display details 4.User management 5.Display passenger details 6.Return to main menu Enter your choice:5 . .............................ADMINISTRATOR MENU...................................

1.Create detail data base 2.Add details 3.Display details 4.User management 5.Display passenger details 6.Return to main menu Enter your choice:6 ^^^^^^^^^^^^^^^^^^^^^^MAIN MENU^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1.Admin mode 2.User mode 3.Exit Enter your choice:3


Add Your Comment - Guidelines
You can express your opinion or reaction in the form below!

100 characters required

1 Comment:

Avatar What things we have to write in files f1,f2,f3 ....this project doesn't require database na??plz do reply

You may also want to see:
QUOTE OF THE DAY
Love cures people - both the ones who give it and the ones who receive it. - Karl A. Menninger
April 23rd, 2024 - Tuesday
background

Sign in to continue