BubbleSort Problem

Call to undefined bubbleSort. why this happend?

class hotel
{
//========================== customer variable declarations ==============
int room_no;
char name[30];
char address[30];
char phone[10];
int date;

int getDate() { return date;}
int z;

char type[25];


//========================== staff menu ============================
public:
void main_menu(); //to display main menu
void staff_menu(); //to display staff menu
void cust_menu(); //to display customer menu

//================== staff role ====================================

void display_rec(); //to display customer record
void edit(); //edit customer record
void modify(int); //to modify record
void delete_rec(int); //to delete cust record
void availability(); //to check room available or not


//============================= cust role ====================
void room_info(); //to display room type, price, facilities, number
void book_room(); //to book a room
int check(int);
void BubbleSort();

void getData();
void print( );



};


//============================= prompt user to select role =====================
void hotel::main_menu()
{

int apps;

cout << "\n\n\n\n\t\tSelect user : ";
cout << "\n\n\n\n\t\t1. Staff ";
cout << "\n\n\t\t2. Customer ";
cout<<"\n\n\t\tEnter Your Choice: ";
cin>>apps;

switch(apps)
{
case 1: staff_menu();
break;
case 2: cust_menu();
break;
default: cout<<"\n Wrong Choice.....!!";
}
cout<<"\n Press any key to continue....!!!";

getch();

}
void hotel::staff_menu()
{ clrscr();
int choice;
while(choice!=4)
{

cout<<"\n\t\t\t\t*************************";
cout<<"\n\t\t\t\t* STAFF MENU *";
cout<<"\n\t\t\t\t*************************";
cout<<"\n\n\t\t\t\t1.Display Customer Record";
cout<<"\n\n\t\t\t\t2.Check Availabilty";
cout<<"\n\n\t\t\t\t3.Edit Customer Record";
cout<<"\n\n\t\t\t\t4.Exit";
cout<<"\n\n\n\t\t\t\tEnter Your Choice: ";
cin>>choice;

switch(choice)
{
case 1: display_rec();
break;
case 2: availability();
break;
case 3: edit();
break;
case 4: break;
default:
{
cout<<"\n\n\t\t\tWrong choice.....!!!";
cout<<"\n\t\t\tPress any key to continue....!!";
}
}
}
}
//===================================================================
void hotel::book_room()
{
clrscr();
int r,flag;
ofstream fout("Record.dat",ios::app); //ofstream:Stream class to write on files

cout<<"\n Enter Customer Detalis";
cout<<"\n ----------------------";
cout<<"\n\n Room no: ";
cin>>r;
flag=check(r);

if(flag)
cout<<"\n Sorry..!!!Room is already booked";

else
{
room_no=r;

cout<<" Name: ";
gets(name);

cout<<" Address: ";
gets(address);

cout<<" Phone No: ";
gets(phone);


fout.write((char*)this,sizeof(hotel));

cout<<" Booking Date: ";
cin>>date;

cout<<"\n Room is booked...!!!";
}

cout<<"\n Press any key to continue.....!!";
getch();
clrscr();
fout.close();


}

//========================== View Record ============================
void hotel::display_rec()
{
clrscr();
ifstream fin("Record.dat",ios::in);

cout<<"\n\t\t\t List Of Customer and Room";
cout<<"\n\t\t\t ----------------------";
cout<<"\n\n Room No.\tName\t\tAddress\t\tPhone No.\t\tDate\n";

while(!fin.eof())
{
fin.read((char*)this,sizeof(hotel));
cout<<"\n\n "<<room_no<<"\t\t"<<name;
cout<<"\t\t"<<address<<"\t\t"<<phone;
}
cout<<"\n\n\n\t\t\tPress any key to continue.....!!";
getch();
fin.close();
clrscr();
}

//===============================================================
int hotel::check(int r)
{

int flag=0;
ifstream fin("Record.dat",ios::in);
while(!fin.eof())
{
fin.read((char*)this,sizeof(hotel));
if(room_no==r)
{
flag=1;
break;
}
}

fin.close();
return(flag);

}

//===================== Search for room availability ==================================
void hotel::availability()
{
clrscr();
int r,flag;
ofstream fout("Record.dat",ios::app);

cout<<"\n Room Availability";
cout<<"\n ----------------------";
cout<<"\n\n Room no: ";
cin>>r;
flag=check(r);

if(flag){
cout<<"\n Sorry..!!!Room is already booked by : ";
cout<< name << "\n\n";}

else
{
room_no=r;

cout << "\nThe room is vacant. You can book it.\n\n";
}

cout<<"\n Press any key to continue.....!!";
getch();
fout.close();
clrscr();
}

//======================= Staff can edit / delete cust record ==========================================
void hotel::edit()
{
clrscr();
int choice,r;

cout<<"\n EDIT MENU";
cout<<"\n ---------";
cout<<"\n\n 1.Modify Customer Record";
cout<<"\n 2.Delete Customer Record";

cout<<"\n Enter your choice: ";
cin>>choice;
clrscr();
cout<<"\n Enter room no: " ;
cin>>r;

switch(choice)
{
case 1: modify(r);
break;
case 2: delete_rec(r);
break;
default: cout<<"\n Record Not Found.....!!";
}
cout<<"\n Press any key to continue....!!!";
getch();
}

//=================================modify record ==================
void hotel::modify(int r)
{
long pos,flag=0;
fstream file("Record.dat",ios::in|ios::out|ios::binary);
while(!file.eof())
{
pos=file.tellg();
file.read((char*)this,sizeof(hotel));
if(room_no==r)
{
cout<<"\n Enter New Details";
cout<<"\n -----------------";

cout<<"\n Name: ";
gets(name);
cout<<" Address: ";
gets(address);
cout<<" Phone no: ";
gets(phone);
//cout<<" Booking Date: ";
//get(date);


file.seekg(pos);
file.write((char*)this,sizeof(hotel));
cout<<"\n Record is modified....!!";
flag=1;
break;
}
}

if(flag==0)
cout<<"\n Sorry Room no. not found or vacant...!!";
file.close();
}

//============================ delete record =========================
void hotel::delete_rec(int r)
{
int flag=0;
char ch;
ifstream fin("Record.dat",ios::in);
ofstream fout("temp.dat",ios::out);
while(!fin.eof())
{
fin.read((char*)this,sizeof(hotel));
if(room_no==r)
{
cout<<"\n Name: "<<name;
cout<<"\n Address: "<<address;
cout<<"\n Pone No: "<<phone;
cout<<"\n\n Do you want to delete this record(y/n): ";
cin>>ch;

if(ch=='n')
fout.write((char*)this,sizeof(hotel));
flag=1;
}
else
fout.write((char*)this,sizeof(hotel));
}

fin.close();
fout.close();
if(flag==0)
cout<<"\n Sorry room no. not found or vacant...!!";
else
{
remove("Record.dat");
rename("temp.dat","Record.dat");
}
}

//=========================== Customer Menu ===================================
void hotel::cust_menu()
{
clrscr();
int cust;
while(cust!=4)
{

cout<<"\n\t\t\t\t****************************";
cout<<"\n\t\t\t\t* CUSTOMER MENU *";
cout<<"\n\t\t\t\t****************************";
cout<<"\n\n\n\n\t\t\t\t1.Display Room Info";
cout<<"\n\n\t\t\t\t2.Check Availabilty";
cout<<"\n\n\t\t\t\t3.Book A Room";
cout<<"\n\n\t\t\t\t4.Exit";
cout<<"\n\n\n\n\t\t\t\tEnter Your Choice: ";
cin>>cust;

switch(cust)
{
case 1: room_info();
break;
case 2: availability();
break;
case 3: book_room();
break;
case 4: break;
default:
{
cout<<"\n\n\t\t\tWrong choice.....!!!";
cout<<"\n\t\t\tPress any key to continue....!!";
}
}
}
}

//=============================== room info =================
void hotel::room_info(){}

//==================view Room Alloted(sorted view)====================================
void hotel::BubbleSort(hotel data[],int listSize)
{
int x ;
hotel tempValue;

for ( int pass =1;pass < listSize; pass++ )

if (data[x].getDate()> data[x+1].getDate()) // swap if the data is not in the right order
{
tempValue = data[x];
data[x] = data[x+1];
data[x+1] = tempValue;
}
}

//==================== main ================================

main()
{
hotel h;

cout<<"\n\t\t\t****************************";
cout<<"\n\t\t\t* HOTEL BOOKING SYSTEM *";
cout<<"\n\t\t\t****************************";



hotel myHotel[size];
for (int j=0; j<size; j++)
{
myHotel[j].getData();
}

for (int j=0; j<size; j++)
{
myHotel[j].print();
}

BubbleSort(myHotel,size) ; // sort the array using bubble sort
cout << "\nThe list after sort based on the date -> \n";

for (int j=0; j<size; j++)
myHotel[j].print();

getch();

h.main_menu();


}
You have defined BubbleSort() as a method of hotel; did you really mean to do that?
i already define bublesort as a method of hotel. but still... it doesn't work. :(
Topic archived. No new replies allowed.