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
1 Comment:
Love isn't something you find. Love is something that finds you. - Loretta Young