You are on page 1of 10

#include<iostream.

h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<fstream.h>
#include<string.h>
#include<graphics.h>
fstream f,f1,f2,f3,f4,f5;
static int tot,ber,av,trn2_n;
static char trnm[33];
class box
{
public:
class rail;
void draw_line(int,int,int,char);
void draw_ver(int,int,int,char);
void draw_box(int,int,int,int,char);
};
void box::draw_line(int c1,int c2,int r,char c)
{
for(c1;c1<=c2;c1++)
{
gotoxy(c1,r);
cout<<c;
}
}
void box::draw_ver(int r1,int r2,int c1,char c)
{
for(r1;r1<=r2;r1++)
{
gotoxy(c1,r1);
cout<<c;
}
}
void box::draw_box(int col1,int r1,int col2,int r2,char c)
{
char ch=218;
char c1,c2,c3,c4;
char l1=196,l2=179;
if(c==ch)
{
c1=218;
c2=191;
c3=217;
c4=217;
l1=196;
l2=179;
}
else
{
c1=c;
c2=c;
c3=c;
c4=c;
l1=c;
l2=c;
}
gotoxy(col1,r1);
cout<<c1;

gotoxy(col2,r1);
cout<<c2;
gotoxy(col1,r2);
cout<<c3;
gotoxy(col2,r2);
cout<<c4;
col1++;
col2--;
draw_line(col1,col2,r1,l1);
draw_line(col1,col2,r2,l1);
col1--;
col2++;
r1++;
r2--;
draw_ver(r1,r2,col1,l2);
draw_ver(r1,r2,col2,l2);
}
class rail
{
private:
struct booking
{
char trainname[33];
char name[36];
int trn;
float fare;
int tcn;
char from[36];
char to[36];
char date[10];
char sex[8];
int age;
char coachtype[8];
char berth[8];
char bt[8];
char c_date[10];
char c_time[10];
}b;
struct cancel
{
char name[36];
int trn;
int tcn;
char from[36];
char to[36];
char date[10];
char sex[8];
int age;
char coachtype[8];
char berth[8];
char bt[8];
char c_date[10];
char c_time[10];
}c;
struct master
{
int train_no;
int totcoach;
char trainname[12];
int berth;

int avail;
}m;
public:
void booking();
void enquiry();
void delete_a();
void delrec();
void menu();
void master();
void reservationchart();
void cancelchart();
void print();
}h;
void rail::booking()
{
clrscr();
box bx;
int n;
int trn1;
char tname[33];
int tcn1;
char from1[12];
char to1[12];
//int to1;
char date1[12];
char bt1[12];
char ctime1[12];
char cdate1[12];
//textcolor(28);
bx.draw_box(1,1,79,25,219);
int avl;
int i;
char trnm[33];
f3.open("RAIL.DAT",ios::app|ios::binary);
gotoxy(33,2);
cout<<"* BOOKING *";
gotoxy(6,4);
cout<<"TRAIN NO.:";
cin>>trn1;
gotoxy(32,4);
cout<<"TRAIN NAME:";
gets(tname);
gotoxy(57,4);
cout<<"TICKET NO.:";
cin>>tcn1;
gotoxy(6,6);
cout<<"FROM:";
cin>>from1;
gotoxy(32,6);
cout<<"TO:";
cin>>to1;
gotoxy(57,6);
cout<<"DATE:";
cin>>date1;
gotoxy(6,8);
cout<<"Enter no of Passengers:-";
cin>>n;
gotoxy(6,19);
cout<<"BOARDING TIME :";
cin>>bt1;

gotoxy(6,22);
cout<<"CURRENT TIME :";
cin>>ctime1;
gotoxy(55,22);
cout<<"CURRENT DATE :";
cin>>cdate1;
char ch;
switch(ch)
{
case'A':
gotoxy(56,17);
cout<<"FARE IS RS.2000";
b.fare=2000;
break;
case'S':
gotoxy(56,17);
cout<<"FARE IS RS.1000";
b.fare=1000;
break;
case'C':
gotoxy(56,17);
cout<<"FARE IS RS.1400";
b.fare=1400;
break;
}
gotoxy(6,10);
cout<<"NAME:";
gotoxy(29,10);
cout<<"SEX:";
gotoxy(36,10);
cout<<"COACHTYPE:";
gotoxy(53,10);
cout<<"BERTH:";
gotoxy(64,10);
cout<<"AGE:";
int ro=11;
for(i=1;i<=n;i++)
{
b.trn=trn1;
strcpy(b.trainname,tname);
b.tcn=tcn1;
strcpy(b.from,from1);
strcpy(b.to,to1);
strcpy(b.date,date1);
strcpy(b.c_time,ctime1);
strcpy(b.c_date,cdate1);
gotoxy(5,ro);
gets(b.name);
gotoxy(30,ro);
cin>>b.sex;
gotoxy(40,ro);
cin>>b.coachtype;
gotoxy(55,ro);
cin>>b.berth;
gotoxy(65,ro);
cin>>b.age;
ro++;
f3.write((char*)&h,sizeof(h));
}
f3.close();

/* Master Database Administration */


int count=0;
f4.open("MASTER.DAT",ios::binary|ios::in|ios::out);
f4.seekg(0L,ios::beg);
while(f4.read((char*)&m,sizeof(m)))
{
if (trn2_n==m.train_no)
{
m.train_no=trn2_n;
strcpy(m.trainname,trnm);
m.totcoach=tot;
m.berth=ber;
m.avail=av-n;
int pos= count*sizeof(m);
f4.seekp(pos,ios::beg);
f4.write((char*)&m,sizeof(m));
break;
}
count++;
}
gotoxy(5,24);
cout<<"Press any Key ...";
f4.close();
}
void rail::delete_a()
{
clrscr();
//textcolor(125);
int count=0,cnt=0;
long int pos;
int tn;
gotoxy(28,2);
cout<<"ENTER TICKET NO:";
cin>>tn;
f1.open("RAIL.DAT",ios::in|ios::binary);
f1.seekg(ios::beg);
while(f1.read((char*)&h,sizeof(h)))
{
if(b.tcn==tn)
{
cnt++;
pos=count*sizeof(h);
f1.seekp(pos,ios::beg);
break;
}
count++;
gotoxy(33,4);
}
gotoxy(33,6);
cout<<"NAME:"<<b.name;
gotoxy(33,8);
cout<<"AGE:"<<b.age;
gotoxy(33,10);
cout<<"SEX:"<<b.sex;
gotoxy(33,12);

cout<<"TRAIN NO:"<<b.trn;
gotoxy(33,14);
cout<<"TICKET NO:"<<b.tcn;
gotoxy(33,16);
cout<<"BERTH:"<<b.berth;
gotoxy(33,18);
cout<<"TYPE OF COACH:"<<b.coachtype;
gotoxy(33,20);
cout<<"BOARDING TIME:" <<b.bt;
gotoxy(33,22);
cout<<"CACNCELLED";
f3.open("CANCEL.DAT",ios::app|ios::binary);
c.tcn=b.tcn;
strcpy(c.name,b.name);
c.age=b.age;
c.trn=b.trn;
strcpy(c.sex,b.sex);
strcpy(c.coachtype,b.coachtype);
strcpy(c.bt,b.bt);
f3.write((char*)&h,sizeof(h));
f3.close();
f1.close();
fstream e;
f1.open("RAIL.DAT",ios::in|ios::binary);
e.open("F1.DAT",ios::out|ios::binary);
f1.read((char*)&h,sizeof(h));
f1.seekg(0L,ios::beg);
while(f1.read((char*)&h,sizeof(h)))
{
if(b.tcn!=tn)
{
e.write((char*)&h,sizeof(h));
f1.read((char*)&h,sizeof(h));
}
}
e.close();
f1.close();
f1.open("RAIL.DAT",ios::out|ios::binary);
e.open("F1.dat",ios::in|ios::binary);
e.seekg(ios::beg);
while(e.read((char*)&h,sizeof(h)))
{
f1.write((char*)&h,sizeof(h));
e.read((char*)&h,sizeof(h));
}
e.close();
f1.close();
f3.write((char*)&h,sizeof(h));
f3.close();
count=0;
f4.open("MASTER.DAT",ios::binary|ios::in|ios::out);
f4.seekg(0L,ios::beg);
while(f4.read((char*)&m,sizeof(m)))
{
if (trn2_n==m.train_no)
{
m.train_no=trn2_n;
strcpy(m.trainname,trnm);
m.totcoach=tot;

m.berth=ber;
m.avail=av+cnt;
int pos= count*sizeof(m);
f4.seekp(pos,ios::beg);
f4.write((char*)&m,sizeof(m));
break;
}
count++;
}
cout<<"Press any Key ...";
f4.close();
}
void rail::master()
{
clrscr();
box bx;
//
textcolor(25);
bx.draw_box(2,5,79,20,219);
f4.open("MASTER.DAT",ios::app|ios::binary);
gotoxy(30,7);
cout<<" * MASTER DATABASE *";
gotoxy(6,11);
cout<<"TRAIN NO.:";
cin>>m.train_no;
gotoxy(33,11);
cout<<"TOTAL COACHES:";
cin>>m.totcoach;
gotoxy(60,11);
cout<<"TRAIN NAME:";
gets(m.trainname);
gotoxy(20,18);
cout<<"BERTH:";
cin>>m.berth;
gotoxy(49,18);
cout<<"AVAILABLE:";
cin>>m.avail;
f4.write((char*)&m,sizeof(m));
f4.close();
}
void rail::menu()
{
clrscr();
box bx;
bx.draw_box(10,3,68,24,219);
char ch;
gotoxy(20,6);
cout<<"@ FOR RESERVATION PRESS
:-R";
gotoxy(20,8);
cout<<"@ FOR CANCELLATION PRESS
:-C";
gotoxy(20,10);
cout<<"@ FOR ENQUIRY PRESS
:-E";
gotoxy(20,12);
cout<<"@ FOR MASTER DATA BASE PRESS :-D";
gotoxy(20,14);
cout<<"@ FOR RESERVATION CHART PRESS :-L";
gotoxy(20,16);
cout<<"@ FOR CANCELLATION CHART PRESS :-K";
gotoxy(20,18);
cout<<"@ FOR EXIT PRESS
:-X";
gotoxy(20,20);

cout<<"@ ENTER YOUR CHOICE


ch=getche();
switch(ch)
{
case'R':
h.booking();
break;
case'C':
h.delete_a();
break;
case'E':
h.enquiry();
break;
case'D':
h.master();
break;
case'L':
h.reservationchart();
break;
case'K':
h.cancelchart();
break;
case'X':
exit(0);
break;
}
getch();
}
void rail::enquiry()
{
clrscr();
int trn_n;
box bx;
bx. draw_box(10,3,70,24,219);
gotoxy(35,5);
cout<<"* ENQUIRY *";
gotoxy(30,10);
cout<<"ENTER TRAIN NUMBER.:-";
cin>>trn_n;
f4.open("MASTER.DAT",ios::in|ios::binary);
f4.seekg(ios::beg);
while(f4.read((char*)&m,sizeof(m)))
{
if (trn_n==m.train_no)
{
trn2_n=m.train_no;
strcpy(trnm,m.trainname);
tot=m.totcoach;
ber=m.berth;
av=m.avail;
break;
}
}
int n;
gotoxy(30,13);
cout<<"Enter No. Of Passengers:-";
cin>>n;
gotoxy(30,16);
if (av>=n)
{

:-";

cout<<"AVAILABLE BERTHS = "<<av;


gotoxy(30,19);
cout<<"Reservation Possible";
}
else
{
gotoxy(30,20);
cout<<"Berth Not Available";
}
f4.close();
}
void rail::reservationchart()
{
clrscr();
int trn2;
f3.open("RAIL.DAT",ios::in|ios::binary);
f3.seekg(ios::beg);
box bx;
textcolor(28);
bx.draw_box(1,1,79,25,196);
gotoxy(1,6);
cout<<"Enter Train No.";
cin>>trn2;
gotoxy(29,2);
cout<<"* RESERVATION CHART *";
gotoxy(1,5);
cout<<"Train no.:";
gotoxy(25,5);
cout<<"Ticket no.:";
gotoxy(41,5);
cout<<"Name:";
gotoxy(73,5);
cout<<"Age:";
while(f3.read((char*)&h,sizeof(h)))
{
if (b.trn==trn2)
cout<<endl<<endl<<b.trn<<"\t\t\t"<<b.tcn<<"\t\t"<<b.name<<"\t\t"<<b.age;
}
f3.close();
}
void rail::cancelchart()
{
clrscr();
f3.open("CANCEL.DAT",ios::in|ios::binary);
f3.seekg(ios::beg);
gotoxy(28,2);
cout<<"* CANCELLATION CHART *";
gotoxy(8,5);
cout<<"TRAIN NO.:";
gotoxy(25,5);
cout<<"TICKET NO.:";
gotoxy(50,5);
cout<<"NAME:";
gotoxy(70,5);
cout<<"AGE:";
while(f3.read((char*)&h,sizeof(h)))
{
cout<<endl<<endl<<"
"<<c.trn<<"\t\t"<<"
"\t\t\t"<<c.age;

"<<c.tcn<<"\t\t\t"<<c.name<<

}
f3.close();
}

void main()
{
while (1)
{
clrscr();
h.menu();
}
getch();
}

You might also like