Question: C++ Code Help!! In the checkout function, after the total bill is displayed, it's supposed to return to the main menu when I press any

C++ Code Help!! In the checkout function, after the total bill is displayed, it's supposed to return to the main menu when I press any keys but then it keeps on displaying the total bill for a few times. I have pasted the output below.

It would be of great help if someone could correct my code and send the corrected source code. Thank you in advance !!

C++ Code Help!! In the checkout function, after the total bill is

#include #include #include #include #include #include

using namespace std;

//START OF CLASS class hotel {

int room_no; int unit; char name[30]; char address[50]; char phone[10];

public:

void additional_facilities (); //to display additional facilities void main_menu(); //to dispay the main menu void add(); //to book a room void display(); //to display the customer record void rooms(); //to display alloted rooms void edit(); //to edit the customer record void checkout(int); //for the bill of a record int check(int); //to check room status void modify(int); //to modify the record void delete_rec(int); //to delete the record

}; //END OF CLASS

//FOR DISPLAYING MAIN MENU void hotel::main_menu() {

int choice; while(choice!=7) {

system("cls"); cout>choice;

switch(choice) {

case 1: add(); break;

case 2: display(); break;

case 3: rooms(); break;

case 4: edit(); break;

case 5: additional_facilities(); break;

case 6: checkout(room_no); break;

case 7: break;

default: {

cout

}

}

}

}

//END OF MENU FUNCTION

//FUNCTION FOR BOOKING OF ROOM

void hotel::add() {

system("cls"); int r,flag; ofstream fout("Record.dat",ios::app);

cout>r;

if (r>50) cout

flag=check(r);

if(flag) cout

else {

room_no=r; cout>name; cout>address; cout>phone;

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

} }

cout

getch(); fout.close();

}

//END OF BOOKING FUNCTION //FUNCTION FOR DISPLAYING A PARTICULAR CUSTOMER`S RECORD void hotel::display() {

system("cls");

ifstream fin("Record.dat",ios::in); int r,flag;

cout>r;

while(!fin.eof()) {

fin.read((char*)this,sizeof(hotel)); if(room_no==r) {

system("cls"); cout

}

}

if(flag==0) cout

getch(); fin.close(); }

//END OF DISPLAY FUNCTION //FUNCTION TO DISPLAY ALL ROOMS OCCUPIED void hotel::rooms() {

system("cls");

ifstream fin("Record.dat",ios::in); cout

while(!fin.eof()) {

fin.read((char*)this,sizeof(hotel)); cout

}

cout

} //FUNCTION FOR EDITING RECORDS AND FOR BILL

void hotel::edit() {

system("cls");

int choice,r; cout

cin>>choice; system("cls");

cout>r;

switch(choice) {

case 1: modify(r); break;

case 2: delete_rec(r); break;

default: cout

} cout

getch(); }

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);

}

//FUNCTION TO MODIFY CUSTOMERS 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>name; cout>address; cout>phone; file.seekg(pos); file.write((char*)this,sizeof(hotel)); cout

}

}

if(flag==0) cout

}

//END OF MODIFY FUNCTION //FUNCTION FOR DELETING 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>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

else {

remove("Record.dat"); rename("temp.dat","Record.dat");

}

}

//END OF DELETE FUNCTION //START OF ADDITIONAL FACILITIES void hotel::additional_facilities() { system("cls");

ifstream fin("Record.dat",ios::in); int r,flag;

cout>r;

while(!fin.eof()) {

fin.read((char*)this,sizeof(hotel)); if(room_no==r) { system("cls"); int r,flag;

cout>r;

flag=check(r);

if(r>6) cout

else {

room_no=r; unit=unit; cout>unit;

if (unit

cout

getch();

} } }

//END OF ADDITIONAL FACILITIES //FUNCTION FOR CHECKOUT void hotel::checkout(int r)

{

int room_no;

system("cls");

ifstream fin("Record.dat",ios::in);

cout

cin>>room_no;

while(!fin.eof())

{

fin.read((char*)this,sizeof(hotel));

if(room_no==r)

{

hotel h1;

ifstream f1;

f1.open("record.dat",ios::in|ios::binary);

if(!f1)

cout

else

{

f1.read((char*)&h1,sizeof (hotel));

while(f1)

{

f1.read((char*)&h1,sizeof(hotel));

}

if (h1.room_no == r)

{

if(h1.room_no>=1&&h1.room_no

cout

else if (h1.room_no>=35&&h1.room_no

cout

else

cout

}

else

{ cout

}

f1.close();

getch();

}

}

}

//END OF CHECKOUT FUNCTION

//START OF MAIN PROGARM

int main() { hotel h;

system("cls");

cout

getch();

h.main_menu(); return 0; }

//END OF MAIN PROGRAM

Enter your roon no. 1. 36 your biti Selyour bll seeyour bll seeyour bill your bill seeyour bill your bill - Socyour bi 150your bill - 5000

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!