Untitled
unknown
plain_text
4 years ago
27 kB
5
Indexable
SOURCE CODE :
#include<conio.h>
#include<iostream>
#include<string.h>
#include<fstream>
#include<unistd.h>
#include<time.h>
#include<cmath>
#include<ctime>
#include<stdlib.h>
#include"payment.h"
#include<stdio.h>
using namespace std;
bool datecheck(int, int, int, int);
const char l_destination[5][20]={"LAHORE","ISLAMABAD","KARACHI","PESHAWAR","QUETTA"}; //local Destination
const char i_destination[11][20]={"LONDON","BERLIN","DUBAI","RIYADH","BEIJING","PARIS","CANBERRA","TOKYO","WASHINGTON","DELHI","ISLAMABAD" }; //International Destination
class passenger{
private:
const int bseats;
const int eseats;
protected:
string firstname,lastname, phone, mealtype, passport, Address;
int bus, eco, datedep, payment;
char origin[30];
char destination[30];
public:
passenger(string f_name, string l_name, string phone_no, string add="N/A", string pass_no="N/A", int dd=000000): bseats(50), eseats(250)
{
datedep=dd;
firstname=f_name;
lastname=l_name;
Address=add;
phone=phone_no;
passport=pass_no;
bus = bseats;
eco = eseats;
}
virtual bool ldest()=0;
virtual bool idest(string pass)=0;
virtual void seats()=0;
virtual void Meals()=0;
virtual void Registration()=0;
virtual bool display()=0;
virtual void drive()=0;
};
class booking:public passenger
{
protected:
int i,j,n,m,k,NoOfSeats,choice;
public:
booking(string f,string l,string num,string add,string pass,int dd):passenger(f,l,add,num,pass,dd)
{
n=0;
m=0;
}
bool ldest()
{
cout<<endl<<"These are the local destinations where we are flying: \n";
for(i=0;i<5;i++)
{
for(j=0;j<20;j++)
{
cout<<l_destination[i][j];
}
cout<<"\n";
}
again:
cout<<endl<<"Enter your origin(using BLOCK letters): ";
cin>>origin;
cout<<endl<<"Enter your destination(using BLOCK letters): ";
cin>>destination;
if(strcmp(origin,destination)==0)
{
cout<<"Invalid Origin and Destination Enter again\n";
goto again;
}
else
{
for(i=0;i<5;i++)
{
if(strcmp(l_destination[i],origin)==0)
n++;
}
for(j=0;j<5;j++)
{
if(strcmp(l_destination[j],destination)==0)
m++;
}
if(m==1&&n==1)
{
payment = lpayment(origin, destination);
cout<<endl<<"Price: "<<payment<<" Pkr/seat"<<endl;
return true;
}
else
return false;
}
}
bool idest(string pass)
{
passport = pass;
cout<<endl<<"These are the international destinations where we are flying: \n";
for(i=0;i<11;i++)
{
for(j=0;j<20;j++)
{
cout<<i_destination[i][j];
}
cout<<"\n";
}
again:
cout<<endl<<"Enter your origin(using BLOCK letters): ";
cin>>origin;
cout<<endl<<"Enter your destination(using BLOCK letters): ";
cin>>destination;
if(strcmp(origin,destination)==0)
{
cout<<"Invalid Origin and Destination Enter again\n";
goto again;
}
else
{
for(i=0;i<11;i++)
{
if(strcmp(i_destination[i],origin)==0)
n++;
}
for(j=0;j<11;j++)
{
if(strcmp(i_destination[j],destination)==0)
m++;
}
if(m==1&&n==1)
{
payment = ipayment(origin, destination);
cout<<endl<<"Price: "<<payment<<" Pkr/seat"<<endl;
return true;
}
else
return false;
}
}
void seats()
{
bus_eco:
if(bus>0&&eco>0)
{
cout<<endl<<"1.Business Class\n2.Economy Class\n";
k = getch();
switch(k)
{
case 49:
{
cout<<endl<<"Business Class";
cout<<endl<<"Enter the number of seats: ";
cin>>NoOfSeats;
payment=(payment*NoOfSeats)+5000;
if(NoOfSeats<=bus)
{
cout<<endl<<"Seats are available.\n\n";
bus=bus-NoOfSeats;
}
else
{
cout<<endl<<"Seats are not available.\n\n";
cout<<"we have only "<<bus<<" seats available.\n"<<endl;
cout<<"Do you wish to book remaining seats\nPress 1 for YES\nPress 2 for NO\n";
k = getch();
if(k==49)
{
NoOfSeats = bus;
payment=(payment*NoOfSeats)+5000;
cout<<"Seats are booked\n\n";
bus=0;
}
else
{
cout<<endl<<"See you again.\n";
exit(0);
}
}
break;
}
case 50:
{
cout<<endl<<"Economy Class";
cout<<endl<<"Enter the number of seats: ";
cin>>NoOfSeats;
payment=(payment*NoOfSeats);
if(NoOfSeats<=eco)
{
cout<<endl<<"Seats are available.\n\n";
eco=eco-NoOfSeats;
}
else
{
cout<<endl<<"Seats are not available.\n\n";
cout<<"we have only "<<eco<<" seats available.\n"<<endl;
cout<<"Do you wish to book remaining seats\nPress 1 for YES\nPress 2 for NO\n";
k = getch();
if(k==49)
{
NoOfSeats = eco;
payment=(payment*NoOfSeats);
cout<<endl<<"Seats are booked\n\n";
eco=0;
}
else
{
cout<<endl<<"See you again.\n";
exit(0);
}
}
break;
}
default:
{
cout<<"Error!\n";
goto bus_eco;
}
}
}
else
{
cout<<endl<<"Sorry no seats available\nHave a nice day!";
exit(0);
}
}
void Meals()
{
meal:
int n;
cout<<endl<<"Available meal types:\n1.Vegetarian\n2.Non-Vegetarian\n";
n = getch();
if(n==49)
mealtype="Vegetarian";
else if(n==50)
mealtype="Non Vegetarian";
else
{
cout<<"ERROR!!!"<<endl;
goto meal;
}
}
void Registration()
{
int tkt;
srand (time(NULL));
tkt = rand()%1000;
if(k==49)
{
ofstream outfile;
outfile.open("flight.txt");
outfile<<"|TICKET INFORMATION:"<<endl<<endl
<<"Name: "<<firstname<<" "<<lastname<<endl
<<"Phone: "<<Address<<endl
<<"Address: "<<phone<<endl
<<"Passport Number: "<<passport<<endl
<<"Origin: "<<origin
<<endl<<"Destination: "<<destination
<<endl<<"Food: "<<mealtype
<<endl<<"Number of Seats: "<<NoOfSeats
<<endl<<"Class: Business"
<<endl<<"Date of departure: "<<datedep
<<endl<<"Time: 4.00 PM"
<<endl<<"Ticket: HF"<<tkt
<<endl<<"Bill(in pakistani rupees): "<<payment<<"/-"<<endl;
outfile.close();
}
else if(k==50)
{
ofstream outfile;
outfile.open("flight.txt");
outfile<<"|TICKET INFORMATION:"<<endl<<endl
<<"Name: "<<firstname<<" "<<lastname<<endl
<<"Phone: "<<Address<<endl
<<"Address: "<<phone<<endl
<<"Passport Number: "<<passport<<endl
<<"Origin: "<<origin
<<endl<<"Destination: "<<destination
<<endl<<"Food: "<<mealtype
<<endl<<"Number of Seats: "<<NoOfSeats
<<endl<<"Class: Economy"
<<endl<<"Date of departure: "<<datedep
<<endl<<"Time: 4.00 PM"
<<endl<<"Ticket: HF"<<tkt
<<endl<<"Bill(in pakistani rupees): "<<payment<<"/-"<<endl;
outfile.close();
}
}
bool display()
{
bool ans;
system("cls");
string temp;
ifstream infile;
infile.open("flight.txt");
while(!infile.eof())
{
getline(infile,temp);
cout<<temp<<endl;
}
ans = confirm();
return ans;
}
bool confirm()
{
char ch;
confirm:
cout<<endl<<endl<<"Do you wish to confirm your ticket?(y/n): ";
ch=getch();
if(ch=='Y'||ch=='y')
{
cout<<endl<<endl<<"|STATUS CONFIRMED";
ofstream outfile;
outfile.open("flight.txt",ios::app);
outfile<<endl<<"|STATUS CONFIRMED";
outfile.close();
return true;
}
else if(ch=='N'||ch=='n')
{
ofstream outfile;
outfile.open("flight.txt",ios::app);
outfile<<endl<<"|BOOKING CANCELLED";
cout<<endl<<endl<<"|BOOKING CANCELLED"
<<endl<<"Going back to main page";
sleep(3);
outfile.close();
return false;
}
else
{
cout<<endl<<"ERROR!!!";
goto confirm;
}
}
inline void drive()
{
string pick;
cout<<endl<<"Please enter your pickup point: ";
cin.ignore();
getline(cin,pick);
cout<<endl<<endl<<"Pickup Location: "<<pick;
cout<<endl<<"Drop Off: "<<origin<<" Airport"
<<endl<<"Fare: 300/-";
cout<<endl<<endl<<"You will be contacted by our driver shortly\nHave a nice day!";
fstream ofile;
ofile.open("flight.txt",ios::app);
ofile<<endl<<endl<<"Pick'n Drop: YES"<<endl<<endl
<<"Pickup Location: "<<pick
<<endl<<"Drop Off: "<<origin<<" Airport"
<<endl<<"Fare: 300/-";
ofile.close();
}
};
class Manage
{
private:
string temp,y,c2;
int option;
public:
int change()
{
int i=0;
ifstream file("flight.txt");
if(file.is_open())
{
cout<<endl<<"Enter your Ticket Number or Press 0 to exit\nTicket Number: ";
cin>>temp;
if(temp=="0")
return 1;
string v("Ticket: "+temp);
while(!file.eof())
{
getline(file,y);
if(y==v)
{
file.seekg(0,ios::beg);
while(!file.eof())
{
getline(file,temp);
cout<<temp<<endl;
}
cout<<endl<<endl<<"1.Change date\n2.Cancel the flight\n3.Go Back\n";
option = getch();
switch(option)
{
case 49:
{
file.seekg(0,ios::beg);
ofstream ofile("temp.txt");
cout<<endl<<"Enter the new date of departure(DDMMYYYY): ";
cin>>c2;
string c1("Date of departure: "+c2);
while(!file.eof())
{
getline(file,y);
if(i==11)
{
i++;
ofile<<c1<<endl;
}
else
{
i++;
ofile<<y<<endl;
}
}
file.close();
ofile.close();
ofstream outfile;
outfile.open("flight.txt");
ifstream readfile("temp.txt");
while(!readfile.eof())
{
getline(readfile,y);
outfile<<y<<endl;
}
outfile.close();
readfile.close();
remove("temp.txt");
cout<<endl<<"Date Changed!";
return 1;
break;
}
case 50:
{
file.close();
ofstream ofli;
ofli.open("flight.txt",ios::trunc);
ofli.close();
remove("flight.txt");
system("cls");
cout<<endl<<"Booking cancelled!\n\n";
return 1;
break;
}
case 51:
system("cls");
return 1;
}
}
}
}
else if(!file.is_open())
{
cout<<endl<<endl<<"unable to find any record"<<endl;
cout<<endl<<"going back to main page\n\n";
file.close();
return 1;
}
}
};
class about
{
public:
void Aboutus()
{
cout<<"The height of skies was first touched by our airline in 1969. Since then,\nHigh Fly is the world's leading airline with 4 biggest airplanes.\nWe are at the customers high service in cuisine, comfort and care.\nSo make a plan and fly high with High Fly."<<endl<<endl;
cout<<"Press any key to continue...";
}
};
class complain
{
private:
string f_name, l_name, p_num;
int choice;
string sentence;
string types;
char ch;
public:
complain(string f,string l,string num)
{
f_name = f;
l_name = l;
p_num = num;
}
void type()
{
back:
cout<<endl<<endl<<"Enter the type of complain you want to register:\n1.Airport Handling\n2.Baggage Delivery\n3.Booking and ticketing\n4.Other\n";
choice = getch();
cin.ignore();
cout<<"Enter your complain:\n";
if(choice==49)
{
cout<<"Airport Handling: ";
types = "Aiprort Handling: ";
}
else if(choice==50)
{
cout<<"Baggage Delivery: ";
types = "Baggage Delivery: ";
}
else if(choice==51)
{
cout<<"Booking and Ticketing: ";
types = "Booking and Ticketing: ";
}
else if(choice==52)
{
cout<<"Other: ";
types = "Other: ";
}
getline(cin,sentence);
cout<<endl<<"Do you want to edit your complain(y/n): ";
ch=getch();
if(ch=='Y'||ch=='y')
goto back;
else
{
cout<<endl<<"Complain noted!\n";
ofstream outfile;
outfile.open("complain.txt");
outfile<<"Name: "<<f_name<<" "<<l_name<<endl
<<"Phone: "<<p_num<<endl
<<"Complain:\n"<<types<<sentence;
outfile.close();
sleep(3);
}
}
};
class routes{
public:
bool print()
{
int i,j;
char ch;
cout<<"\n\n\n\n\tFollowing are the international flights available"<<endl;
for(i=0;i<11;i++)
{
cout<<endl;
for(j=0;j<11;j++)
{
if(i==j)
{
continue;
}
else
{
cout<<"Flight from "<<i_destination[i]<<" to "<<i_destination[j]<<endl;
}
}
}
cout<<"\n\n\n\n\tFollowing are the local flights available"<<endl;
for(i=0;i<5;i++)
{
cout<<endl;
for(j=0;j<5;j++)
{
if(i==j)
{
continue;
}
else
{
cout<<"Flight from "<<l_destination[i]<<" to "<<l_destination[j]<<endl;
}
}
}
cout<<endl<<"Do you want to book a flight(y/n) ";
ch=getch();
if(ch=='Y'||ch=='y')
{
cout<<endl<<endl;
return true;
}
else
return false;
}
};
int main()
{
system("COLOR 5f");
cout<<"\n\t\t\t\tCOMPUTER PROGRAMMING LAB PROJECT\n\t\t FLIGHT MANAGEMENT SYSTEM";
cout<<"\nPress Enter to continue: ";
getch();
cout<<endl<<"\n\n\n\tWelcome to HIGH FLY Airline"<<endl;
string f_name, l_name, add, pass_no,phone_no;
int choice, datedep, date, month, year;
bool ans;
char ch;
time_t t= time(NULL);
tm* timePtr=localtime(&t);
date=(timePtr->tm_mday);
month=(timePtr->tm_mon)+1;
year=(timePtr->tm_year)+1900;
back2:
cout<<endl<<"Press 1 for Booking"
<<endl<<"Press 2 for Routes"
<<endl<<"Press 3 for Complaint"
<<endl<<"Press 4 for About"
<<endl<<"Press 5 for Manage"
<<endl<<"Press 0 for Exit\n";
choice = getch();
system("cls");
switch(choice)
{
case 49:
{
my:
cout<<">>>>>>>>>>BOOKING<<<<<<<<<<<\n";
passenger *ptr;
cout<<"Enter Your First Name: ";
cin>>f_name;
cin.ignore();
cout<<"Enter Your Last Name: ";
getline(cin,l_name);
cout<<"Enter Your Address(Using Commas only): ";
getline(cin,add);
cout<<"Enter Your Phone Num(Without -): ";
cin>>phone_no;
date:
cout<<"Enter date of departure(DDMMYYYY): ";
cin>>datedep;
// ans = datecheck(datedep, date, month, year);
// if(ans==false)
// {
// cout<<"WRONG DATE"<<endl<<endl;
// goto date;
// }
booking obj1(f_name,l_name,phone_no,add,pass_no,datedep);
ptr = &obj1;
back:
cout<<endl<<"1.Local Destination\n2.International Destination\n3.Back\n4.Exit\n";
choice = getch();
if(choice==49)
{
if(ptr->ldest()==false)
{
cout<<endl<<"We donot fly to this place\nPlease Choose again\n";
goto back;
}
else
{
cout<<endl<<"Yes we do fly\n";
ptr->seats();
ptr->Meals();
ptr->Registration();
system("cls");
ans = ptr->display();
if(ans==false)
{
system("cls");
goto back2;
}
else if(ans==true)
{
cout<<endl<<"Thanks for Flying With Us"<<endl<<endl
<<"Would you like to avail our Pick'n Drop facility?(y/n)";
ch = getch();
if(ch=='y'||ch=='Y')
ptr->drive();
else if(ch=='n' || ch=='N')
{
ofstream ofile;
ofile.open("flight.txt", ios::app);
ofile<<endl<<endl<<"Pick'n Drop: NO";
ofile.close();
}
getch();
system("cls");
goto back2;
}
}
}
else if(choice==50)
{
cout<<endl<<"Enter Your Passport Num(Without \"-\"): ";
cin>>pass_no;
ans = ptr->idest(pass_no);
if(ans==false)
{
cout<<endl<<"We donot fly to this place\n";
goto back;
}
else
{
cout<<endl<<"Yes we do fly\n";
ptr->seats();
ptr->Meals();
ptr->Registration();
system("cls");
ans = ptr->display();
if(ans==false)
{
system("cls");
goto back2;
}
else if(ans==true)
{
cout<<endl<<"Thanks for Flying With Us"<<endl<<endl
<<"Would you like to avail our Pick'n Drop facility?(y/n)";
ch = getch();
if(ch=='y'||ch=='Y')
ptr->drive();
else if(ch=='n' || ch=='N')
{
ofstream ofile;
ofile.open("flight.txt", ios::app);
ofile<<endl<<endl<<"Pick'n Drop: NO";
ofile.close();
}
getch();
system("cls");
goto back2;
}
}
}
else if(choice==51)
{
system("cls");
goto back2;
}
else
exit(0);
break;
}
case 50: //choice = 2
{
cout<<">>>>>>>>>>ROUTES<<<<<<<<<<<\n";
routes obj;
ans = obj.print();
if(ans==true)
goto my;
else if(ans==false)
{
cout<<endl;
system("cls");
goto back2;
}
break;
}
case 51: //choice = 3
{
cout<<">>>>>>>>>>COMPLAINT<<<<<<<<<<<\n";
cout<<"Enter Your First Name: ";
cin>>f_name;
cin.ignore();
cout<<"Enter Your Last Name: ";
getline(cin,l_name);
cout<<"Enter Your Phone Num(Without -): ";
cin>>phone_no;
complain obj(f_name,l_name,phone_no);
obj.type();
system("cls");
goto back2;
break;
}
case 52: //choice = 4
{
cout<<"\t\t>>>>>>>>>>ABOUT US<<<<<<<<<<<\n";
about obj;
obj.Aboutus();
getch();
system("cls");
goto back2;
break;
}
case 53:
{
cout<<">>>>>>>>>>MANAGE<<<<<<<<<<<\n";
Manage pass;
chnge:
choice= pass.change();
if (choice==1)
{
sleep(2);
system("cls");
goto back2;
}
else
{
cout<<"No record found\n";
goto chnge;
}
break;
}
case 48: //choice = 0
{
exit(0);
}
default:
cout<<endl<<endl<<"ERROR!!!";
goto back2;
}
return 0;
}
bool datecheck(int datedep, int date, int month, int year)
{
if((datedep%10000)>2017&&(datedep%10000)==year)
if(((datedep/10000)%100)>0 && ((datedep/10000)%100)<13&&((datedep/10000)%100)==month)
if((datedep/1000000)>0 && (datedep/1000000)<32&&(datedep/1000000)>date&&(datedep/1000000)<(date+20))
return true;
else
return false;
}
Editor is loading...