Code:
#include<iostream>
#include<conio.h>
#include<cctype>
#include<string>
#include<stdlib.h>
#include<fstream>
#include<iomanip>
#include<time.h>
#include<string>
#include<stdio.h>
const char *filename="c:\\information.txt";
const char *file="c:\\rooms.txt";
using namespace std;
class hotel
{
private:
//string name;
//string family;
//string city;
//string telephone;
//int time;
//char type_room;
//double cost_perday;
int single;
int doubler;
int triple;
public:
ifstream infile,in,inp;
ofstream outfile,out,outp;
void menu();
void submenu();
void bill();
hotel(){single=100;doubler=200;triple=300;};
~hotel(){};
};
class information : public hotel
{
public:
string name;
string family;
string city;
string telephone;
int time;
char type_room;
double cost_perday;
//int single;
//int doubler;
//int triple;
};
int main()
{
hotel custom;
custom.menu();
getch();
return 0;
}
void hotel::menu()
{
char selection;
cout<<"****************************************************************"<<endl;
cout<<"XXX Hotel."<<endl;
cout<<"R-> Reservation."<<endl;
cout<<"B-> Bill."<<endl;
cout<<"Q-> Quit."<<endl;
cout<<"****************************************************************";
cout<<"Enter your choose: "<<endl;
cin>>selection;
cin.get();
selection=(char)toupper(selection);
switch(selection)
{
case 'R':
{
submenu();
break;
}
case 'B':
{
bill();
break;
}
case 'Q':
{
exit(1);
break;
}
default:
{
menu();
}
}
}
void hotel::submenu()
{
information n;
char choose;
int number=0;
int room;
char continues;
outfile.open (filename,ios::out|ios::app);
outfile.close();
int single=100;
int doubler=200;
int triple=300;
cout<<"*******************"<<endl;
cout<<"Reservation"<<endl;
cout<<" --------------- "<<endl;
cout<<"S->Single"<<endl;
cout<<"D->Double"<<endl;
cout<<"T->Triple"<<endl;
cout<<"Q->Quit "<<endl;
cout<<"*******************"<<endl;
cout<<"Enter the Type of Room you want: "<<endl;
cin>>choose;
cin.get();
choose=(char)toupper(choose);
n.type_room=choose;
int account_s=0;
int account_d=0;
int account_t=0;
int r_number;
char type;
string r_name;
string r_family;
string r_city;
string r_telephone;
int r_time;
double r_price;
if (choose=='S'||choose=='D'||choose=='T')
{
infile.open(filename,ios::in);
if (infile==NULL)
cout<<"Error opening the file"<<endl;
while(!infile.eof())
{
infile>>r_number>>r_name>>r_family>>r_city>>r_telephone>>type>>r_price>>r_time;
if(type=='S')
{
account_s++;
}
if (type=='D')
{
account_d++;
}
if (type=='T')
{
account_t++;
}
}
single=single-account_s;
doubler=doubler-account_d;
triple=triple-account_t;
infile.close();
if (type=='S')
{
single=single+1;
}
if (type=='D')
{
doubler=doubler+1;
}
if (type=='T')
{
triple=triple+1;
}
if (n.type_room=='S')
{
if (single!=0)
{
cout<<"Total single bed available is "<<single;
cout<<"\nHow many single bed you need?";
cin>>number;
}
else
{
cout<<"\nSorry,No Room available,Try at YMCA";
}
}
if (n.type_room=='D')
{
if (doubler!=0)
{
cout<<"Total double bed available is "<<doubler;
cout<<"\nHow many double bed you need?";
cin>>number;
}
else
{
cout<<"\nSorry,no room available,try at YMCA";
}
}
if (n.type_room=='T')
{
if (triple!=0)
{
cout<<"Total triple bed available is "<<triple;
cout<<"\nHow many bed you need?";
cin>>number;
}
else
{
cout<<"Sorry,no any room Available,Try at YMCA";
}
}
cin.get();
cout<<"First Name : ";
cin>>n.name;
cout<<"Family Name : ";
cin>>n.family;
cout<<"City : ";
cin>>n.city;
cout<<"Tel : ";
cin>>n.telephone;
cout<<"Charge :";
cin>>n.cost_perday;
cout<<"Days : ";
cin>>n.time;
int flag=0;
for (int i=1;i<=number;i++)
{
cout<<"Room NO.: "<<endl;
cin>>room;
if (n.type_room=='S')
{
if(room<100 || room>199)
{
cout<<"You Should Choose The Number Between 100 And 199"<<endl;
cout<<endl;
i=i-1;
continue;
}
infile.open(filename,ios::in);
while (!infile.eof())
{
infile>>r_number>>r_name>>r_family>>r_city>>r_telephone>>type>>r_price>>r_time;
if (room==r_number)
{
cout<<"You Should Choose Other Room.This is occupied."<<endl;
cout<<endl;
flag=1;
i=i-1;
break;
}
else
{
flag=0;
}
}
infile.close();
if (flag==1)
{
continue;
}
}
if (n.type_room=='D')
{
if(room<200 || room>399)
{
cout<<"YOU Should Choose The Number Between 200 And 399"<<endl;
cout<<endl;
i=i-1;
continue;
}
infile.open(filename,ios::in);
while (!infile.eof())
{
infile>>r_number>>r_name>>r_family>>r_city>>r_telephone>>type>>r_price>>r_time;
if (room==r_number)
{
cout<<"You must choose other room.This is occupied."<<endl;
cout<<endl;
flag=1;
i=i-1;
break;
}
else
{
flag=0;
}
}
infile.close();
if (flag==1)
{
continue;
}
if (n.type_room=='T')
{
if(room<400 || room>499)
{
cout<<"You should Choose The Number Between 400 And 499"<<endl;
cout<<endl;
i=i-1;
continue;
}
infile.open(filename,ios::in);
while (!infile.eof())
{
infile>>r_number>>r_name>>r_family>>r_city>>r_telephone>>type>>r_price>>r_time;
if (room==r_number)
{
cout<<"You Should choose other room.This is occupied."<<endl;
cout<<endl;
flag=1;
i=i-1;
break;
}
else
{
flag=0;
}
}
infile.close();
if(flag==1)
{
continue;
}
}
outfile.open (filename,ios::out|ios::app);
outfile<<room<<" ";
outfile<<n.name<<" ";
outfile<<n.family<<" ";
outfile<<n.city<<" ";
outfile<<n.telephone<<" ";
outfile<<n.type_room<<" ";
outfile<<n.cost_perday<<" ";
outfile<<n.time<<endl;
outfile.close();
}
cout<<"The Reservation Is Finished"<<endl;
cout<<endl;
}
if (choose=='Q')
{
menu();
}
cout<<"Another Reservation? (Y/N)"<<endl;
cin>>continues;
if(continues=='y'||continues=='Y')
menu();
}
void hotel::bill()
{
int temp_room,n=3,r_number,amount;
char type;
string temp_name;
string r_name;
string r_family;
string r_city;
string r_telephone;
int r_time;
double r_price;
double total,discount,sum=0,tax;
double service_tax;
int i;
cout<<endl;
cout<<"How many rooms you want to pay ? "<<endl;
cin>>amount;
for (int k=0;k<amount;k++)
{
cout<<"Please input the room number: "<<endl;
cin>> temp_room;
}
infile.open(filename,ios::in);
cout<<"Customer Information"<<endl;
for (i=0;i<78;i++)
{
cout<<"_";
}
cout<<endl;
cout<<"|"<<setw(4)<<"NO."<<"|"<<setw(12)<<"First Name"<<"|"<<setw(12)<<"Family Name"<<"|"<<setw(10)<<"City"<<"|"<<setw(15)<<"Telephone"<<"|"<<setw(5)<<"Type"<<"|"<<setw(6)<<"Price"<<"|"<<setw(6)<<"Days"<<"|";
cout<<endl;
cout<<"|";
for (int l=1;l<78;l++)
{
cout<<"_";
}
cout<<"|";
int nobody=0;
for (int m=0;m<amount;m++)
{
while (!infile.eof())
{
infile>>r_number>>r_name>>r_family>>r_city>>r_telephone>>type>>r_price>>r_time;
if (temp_room==r_number )
{
cout<<endl;
cout<<"|"<<setw(4)<<r_number<<"|"<<setw(13-r_name.length())<<r_name<<"|"<<setw(13-r_family.length())<<r_family<<"|"<<setw(11-r_city.length())<<r_city<<"|"<<setw(16-r_telephone.length())<<r_telephone<<"|"<<setw(5)<<type<<"|"<<setw(6)<<r_price<<"|"<<setw(6)<<r_time<<"|";
cout<<endl;
cout<<"|";
for (int i=0;i<77;i++)
{
cout<<"_";
}
cout<<"|";
sum=sum+r_price*r_time;
nobody=1;
break;
}
else
{
nobody=0;
}
}
if (nobody==0)
{
cout<<"\nThe room "<<temp_room<<" is empty.";
}
}
infile.close();
if (sum>0 && sum<=500)
{
total=sum*(1+0.15+0.05);
discount=0;
tax=sum*0.15;
service_tax=sum*0.05;
}
else
{
if (sum<=1000)
{
discount=sum*0.1;
total=sum*(1+0.15+0.05-0.1);
tax=sum*0.15;
service_tax=sum*0.05;
}
else
{
if (sum<=5000)
{
discount=sum*0.15;
total=sum*(1+0.15+0.05-0.15);
tax=sum*0.15;
service_tax=sum*0.05;
}
else
{
discount=sum*0.2;
total=sum*(1+0.15+0.05-0.2);
tax=sum*0.15;
service_tax=sum*0.05;
}
}
}
cout<<endl<<endl<<endl;
cout<<"----------------------"<<endl;
cout<<"Sub Total : "<<sum<<endl;
cout<<"Discount : "<<discount<<endl;
cout<<"Tax : "<<tax<<endl;
cout<<"Service Tax : "<<service_tax<<endl;
cout<<"Total : "<<total<<endl;
cout<<"----------------------"<<endl;
cout<<"\nPress any key to return main menu.";
getch();
int comp=0;
for (i=0;i<amount;i++)
{
infile.open(filename,ios::in);
while (infile)
{
infile>>r_number>>r_name>>r_family>>r_city>>r_telephone>>type>>r_price>>r_time;
if (temp_room!=r_number && r_number!=comp )
{
out.open(file,ios::out|ios::app);
out<<r_number<<" ";
out<<r_name<<" ";
out<<r_family<<" ";
out<<r_city<<" ";
out<<r_telephone<<" ";
out<<type<<" ";
out<<r_price<<" ";
out<<r_time<<endl;
out.close();
}
else
{
continue;
}
comp=r_number;
}
infile.close();
}
menu();
}
something is wrong , but i dont know how to slove it, plz help!!~