Bus Reservation System project of khwopa engineering college

//HEADER FILES
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<iomanip.h>
#include<dos.h>
#include<fstream.h>
#include<ctype.h>
#include<string.h>
#include<graphics.h>
//GLOBAL VARIABLE
int i=0;
//GLOBAL FUNTIONS
void startup();
void exportrecordfile();
class danphetravel
{
 private:
 char name[50],from[30],add[80],to[30],month[10],flag;
 float price;
 int seatno,day,top2;
 double cellno;
 int fare;
 public:
 int toggle;
 void reserve();
 void displayreservations();
 void showtransportrec();
 void deltransportrec();
 void searchtransportrec();
 void transfertransportdata();
 void edittransportdata();
 void transfertransportdata1();
 void assignprice();
}user,user1[100];


int main()
{
     clrscr();
     startup();                       //FUNTION TO DISPLAY INTRODUCTION SCREEN
     clrscr();
     textbackground(YELLOW);
textcolor(RED);
     int select;
     do
     {
cout<<"\n\n";
cout<<"\t\t\t--->>>D A N P H E___D E L U X E<<<--- \n\n";
cout<<"\t\t\t W E L C O M E--T O--M A I N--M E N U   \n\n\n";
cout<<"\t\t\t1. Make a Reservation\n";
cout<<"\t\t\t2. View Reservations\n";
cout<<"\t\t\t3. Edit a Reservation\n";
cout<<"\t\t\t4. Search for a Reservation\n";
cout<<"\t\t\t5. Delete a Reservation\n";
cout<<"\t\t\t6. Exit\n\n";
cout<<"\t\t\tSelect an option: ";
cin>>select;
switch(select)
{
      case 1:
   exportrecordfile();
   i++;
   break;
      case 2:
   user.showtransportrec();
   //query();
   break;
      case 3:
   user.edittransportdata();
   break;
      case 4:
   user.searchtransportrec();
   break;
      case 5:
   user.deltransportrec();
   break;

      default:
      cout<<"Invalid Input";
      break;
}
     }
     while(select!=6);
     return 0;
}

//TRANSPORTATION RESERVATIONS

//FUNTION USED TO RESERVE TRANSPORTATION.

void danphetravel::reserve()
{
clrscr();
 flag='N';
 while(flag!='Y')
 {
 clrscr();
 assignprice();


   clrscr();
   textbackground(RED);
textcolor(BLUE);
   gotoxy(25,5);cout<<"PLEASE FILL IN THE DETAILS PROPERLY...";
   gotoxy(25,5);cout<<"DANPHE DELUXE TICKET RESERVATION FORM";
   gotoxy(5,8);cout<<"Name: ";
   gotoxy(5,10);cout<<"Address: ";
   gotoxy(5,12);cout<<"From: ";
   gotoxy(30,12);cout<<"To: ";
   gotoxy(5,14);cout<<"Seat No: ";
   gotoxy(5,16);cout<<"Contact No:";
   gotoxy(5,18);cout<<"Month:";
   gotoxy(5,20);cout<<"Day:";
   gotoxy(10,22);cout<<"Is the information correct(y/n)?? ";
   gotoxy(10,8);gets(name);
   gotoxy(13,10);gets(add);
   gotoxy(19,12);gets(from);
   gotoxy(40,12);gets(to);
   gotoxy(16,14);cin>>seatno;
   gotoxy(18,16);cin>>cellno;
   gotoxy(18,18);gets(month);
   gotoxy(18,20);cin>>day;
   gotoxy(45,22);cin>>flag;
 flag=toupper(flag);
}
displayreservations();
}

//FUNTION USED TOASSIGN PRICE ACCORDING TO DESTINATION.

void danphetravel::assignprice()
{
clrscr();
textbackground(GREEN);
textcolor(RED);
int dest;
  gotoxy(20,2);cout<<"\tSELECT DESTINATION: ";
  gotoxy(5,5);cout<<"1. Kathmandu-------->>>Pokhara ";
  gotoxy(5,7);cout<<"2. Kathmandu-------->>>>Biratnagar";
  gotoxy(5,9);cout<<"3. Kathmandu-------->>>Dharan";
  gotoxy(5,23);cout<<"Enter (1-3) to Reserve: ";
  gotoxy(45,23);cin>>dest;
switch(dest)
{
 case 1:
      fare=1200;
      break;
 case 2:
      fare=1500;
      break;
 case 3:
      fare=1200;
      break;
}
}

//FUNTION USED TO SHOW TRANSPORT RESERVATION.

void danphetravel::displayreservations()
{


 clrscr();

 clrscr();
 textbackground(YELLOW);
textcolor(RED);
 gotoxy(25,5);cout<<"WELCOME TO DANPHE DELUXE TICKET RESERVATION  ";
 gotoxy(24,6);cout<<"----------------------------------------------";
 gotoxy(15,8);cout<<"Name:"<<strupr(name);
 gotoxy(15,10);cout<<"Address:"<<strupr(add);
 gotoxy(15,12);cout<<"From:    "<<from
  <<"   To:"<<to;
 gotoxy(15,14);cout<<"Seat no: "<<seatno;
 gotoxy(15,16);cout<<"Contact No:"<<cellno;
 gotoxy(15,18);cout<<"Month:"<<month<<"  Day:"<<day;

 gotoxy(15,20);cout<<"Your Reservations have been done Please pay the Amount!!!";
 gotoxy(25,22);cout<<"Please pay Amount: Rs."<<fare<<"  To Complete Reservation";
 getch();
}

//FUNTION USED TO SHOW ALL TRANSPORT RECORDS.
void danphetravel::showtransportrec()
{
fstream file1;
file1.open("transport.txt",ios::in);
 while(file1.read((char*)&user,sizeof (user)))
 user.displayreservations();;
file1.close();
}

//FUNTION USED TO DELETE A  TRANSPORT RECORDS.

void danphetravel::deltransportrec()
{
clrscr();
textbackground(YELLOW);
textcolor(RED);
  char delname[20];
  gotoxy(20,5);cout<<"Enter name to delete record for...";
  gotoxy(30,7);gets(delname);
  strupr(delname);
    fstream  file2,file3;
    int dele=0;
    file2.open("transport.txt", ios::in);
    file3.open("temp3.txt", ios::out );
       while(file2.read ((char*)&user,sizeof (user)))
       {
       if ((strcmp(name,delname))!=0)
       file3.write((char*)&user,sizeof (user));
       else
       dele++;
       }
       if(dele!=0)
       cout<<endl<<"                    ...Deleted...";
       else
       cout<<endl<<"                  Record not found..";
       getch();
       file2.close();
       file3.close();
       transfertransportdata();
}

//FUNTION USED TO TRANSFER UNDELETED TRANSPORT RECORDS.
void danphetravel::transfertransportdata()
{
fstream oldfile1,newfile1;
oldfile1.open("temp3.txt", ios::in);
newfile1.open("transport.txt", ios::out);
     while(oldfile1.read((char*)&user,sizeof(user)))
     newfile1.write((char*)&user,sizeof (user));
oldfile1.close();
newfile1.close();
}


//FUNTION USED TO SEARCH FOR A TRANSPORT RECORDS.

void danphetravel::searchtransportrec()
{
clrscr();
textbackground(YELLOW);
textcolor(GREEN);
 char sename[20];
 gotoxy(20,5);cout<<"Enter Name to search for..";
 gotoxy(25,7);gets(sename);
 strupr(sename);
    fstream file4;
    file4.open("transport.txt", ios::in);
    int serch=0;
       while(file4.read((char*)&user,sizeof (user)))
       {
if(strcmp(name,sename)==0)
{
serch++;
user.displayreservations();;
}
       }
       if(serch==0)
       cout<<"                       No Record Exists";
       file4.close();
       getch();
}
//FUNTION USED TO EDIT TRANSPORT RECORD.

void danphetravel::edittransportdata()
{
clrscr();
textbackground(BLUE);
textcolor(RED);
  char edname[30];
  int ede1=0;
  gotoxy(20,5);cout<<"Enter Name to Edit Record for...";
  gotoxy(25,7);gets(edname);
  strupr(edname);
  fstream file5,file6;
  file5.open("transport.txt", ios::in) ;
  file6.open("temp2.txt", ios::out ) ;
   while(file5.read((char*)&user,sizeof(user)))
  {
   if (strcmp (edname,name)==0)
   {
    reserve();
    ede1++;
   }
   file6.write((char*)&user,sizeof (user));
  }
if(ede1==0)
{
gotoxy(25,17);cout<<"RECORD DOESNT EXIST!!!!";
}
getch();
file5.close();
file6.close();

transfertransportdata1();                       //TO TRANSFER EDITED TRANSPORT RECORD
}

//FUNTION USED TO TRASFER EDITED TRANSPORT RECORDS.
void danphetravel::transfertransportdata1()
{
fstream oldfile3,newfile3;
oldfile3.open("temp2.txt", ios::in);
newfile3.open("transport.txt",ios::out);
  while(oldfile3.read((char*)&user,sizeof(user)))
  newfile3.write((char*)&user,sizeof (user));
oldfile3.close();
newfile3.close();
}

//FUNTION USED TO MAKE TRANSPORT RECORD.
void exportrecordfile()
{
       fstream file;
       file.open("transport.txt",ios::out |ios::app);
       user1[i].toggle=1;
       user1[i].reserve();
       file.write((char*)&user1[i],sizeof (user1[i]));
       file.close();
}

//FUNTION USED TO DISPLAY INTRODUCTION SCREEN
void startup()
{
clrscr();
textbackground(YELLOW);
textcolor(RED)

;
for(int j=0;j<10;j++)
{
clrscr();
gotoxy(j,6); cputs("        ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ");
gotoxy(j,7); cputs("            ÜÜÜÜÜÜÜ ÜÜÜÜÜÜ ÜÜÜÜÜÜ");
gotoxy(j,8); cputs("               Û    Û    Û Û    Û");
gotoxy(j,9); cputs("               Û    ÛÜÜÜÛ  ÛÜÜÜÜÛ");
gotoxy(j,10);cputs("               Û    Û Û    Û    Û");
gotoxy(j,11);cputs("               Û    Û  ÛÛ  Û    Û");

gotoxy(51-j,6); cputs("ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ \n\r");
gotoxy(51-j,7); cputs(" Ü    Ü ÜÜÜÜÜÜ Ü   \n\r");
gotoxy(51-j,8); cputs(" Û    Û Û      Û    \n\r");
gotoxy(51-j,9); cputs(" Û    Û ÛÜÜÜ   Û    \n\r");
gotoxy(51-j,10);cputs("  Û  Û  Û      Û    \n\r");
gotoxy(51-j,11);cputs("   ÛÛ   ÛÛÛÛÛÛ ÛÛÛÛ \n\r\n\n");

gotoxy(j,12);cputs("                          Ü    Ü ÜÜÜÜÜÜ ");
gotoxy(j,13);cputs("                          ÛÛ   Û Û ");
gotoxy(j,14);cputs("                          Û Û  Û ÛÛÛÛ  ");
gotoxy(j,15);cputs("                          Û  Û Û Û ");
gotoxy(j,16);cputs("                          Û   ÛÛ ÛÛÛÛÛÛÛ   ");
gotoxy(j,17);cputs("                     ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ\n\n");

gotoxy(58-j,12);cputs(" ÜÜÜÜÜÜ  ÜÜÜÜÜÜ Ü   \n\r");
gotoxy(58-j,13);cputs(" Û    Û  Û    Û Û      \n\r");
gotoxy(58-j,14);cputs(" ÛÛÛÛÛÛ  ÛÜÜÜÜÛ Û      \n\r");
gotoxy(58-j,15);cputs(" Û       Û    Û Û      \n\r");
gotoxy(58-j,16);cputs(" Û       Û    Û ÛÛÛÛÛÛÛÛÛ   \n\r");
gotoxy(58-j,17);cputs("ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ \n\r");


}
gotoxy(25,25);
cout<<"press any key to continue...";
getch();
}

No comments