Question
C++ Code Urgent Help!! In the checkout function, after a customer has checked out , the records should be deleted as well. But currently, in
C++ Code Urgent Help!! In the checkout function, after a customer has checked out , the records should be deleted as well. But currently, in my code the record of checked out customers still exist.
It will be of great help if anyone can modify my code and send the corrected source code. I am not sure on how to modify it since I'm a beginner. Thanks !!
#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<<" \t\t\t\t*************************"; cout<<" \t\t\t\t SIMPLE HOTEL MANAGEMENT "; cout<<" \t\t\t\t * MAIN MENU *"; cout<<" \t\t\t\t*************************"; cout<<" \t\t\t1.Book A Room"; cout<<" \t\t\t2.Customer Records"; cout<<" \t\t\t3.Rooms Allotted"; cout<<" \t\t\t4.Edit Record"; cout<<" \t\t\t5.Additional Facilities"; cout<<" \t\t\t6.Checkout"; cout<<" \t\t\t7.Exit"; cout<<" \t\t\tEnter Your Choice: "; cin>>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<<" \t\t\tWrong choice.....!!!"; cout<<" \t\t\tPress any key to continue....!!"; getch();
}
}
}
}
//END OF MENU FUNCTION
//FUNCTION FOR BOOKING OF ROOM
void hotel::add() {
system("cls"); int r,flag; ofstream fout("Record.dat",ios::app);
cout<<" Enter Customer Detalis"; cout<<" ----------------------"; cout<<" Room no: "; cout<<" Total no. of Rooms - 50"; cout<<" Ordinary Rooms from 1 - 30"; cout<<" Luxuary Rooms from 31 - 45"; cout<<" Royal Rooms from 46 - 50"; cout <<" Enter The Room no. you want to stay in :- "<
if (r>50) cout<<" Room does not exist"; else{
flag=check(r);
if(flag) cout<<" Sorry..!!!Room is already booked";
else {
room_no=r; cout<<" Name: "; cin>>name; cout<<" Address: "; cin>>address; cout<<" Phone No: "; cin>>phone;
fout.write((char*)this,sizeof(hotel)); cout<<" Room is booked...!!!";
} }
cout<<" Press any key to continue.....!!";
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<<" Enter room no. for a particular customer`s details :- "<
while(!fin.eof()) {
fin.read((char*)this,sizeof(hotel)); if(room_no==r) {
system("cls"); cout<<" Cusromer Details"; cout<<" ----------------"; cout<<" Room no: "< } } if(flag==0) cout<<" Sorry Room no. not found or vacant....!!"; cout<<" Press any key to continue....!!"; 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<<" \t\t\t List Of Rooms Allotted"; cout<<" \t\t\t ----------------------"; cout<<" Room No.\tName\t\tAddress\t\t\t\tPhone No. "; while(!fin.eof()) { fin.read((char*)this,sizeof(hotel)); cout<<" "< } cout<<" \t\t\tPress any key to continue.....!!"; getch(); fin.close(); } //FUNCTION FOR EDITING RECORDS AND FOR BILL void hotel::edit() { system("cls"); int choice,r; cout<<" EDIT MENU"; cout<<" ---------"; cout<<" 1.Modify Customer Record"; cout<<" 2.Delete Customer Record"; cout<<" Enter your choice: "; cin>>choice; system("cls"); cout<<" Enter room no: " ; cin>>r; switch(choice) { case 1: modify(r); break; case 2: delete_rec(r); break; default: cout<<" Wrong Choice.....!!"; } cout<<" Press any key to continue....!!!"; 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<<" Enter New Details"; cout<<" -----------------"; cout<<" Name: "; cin>>name; cout<<" Address: "; cin>>address; cout<<" Phone no: "; cin>>phone; file.seekg(pos); file.write((char*)this,sizeof(hotel)); cout<<" Record is modified....!!"; flag=1; break; } } if(flag==0) cout<<" Sorry Room no. not found or vacant...!!"; file.close(); } //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<<" Name: "< 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<<" Sorry room no. not found or vacant...!!"; 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<<" Enter your room no. :- "< while(!fin.eof()) { fin.read((char*)this,sizeof(hotel)); if(room_no==r) { system("cls"); int r,flag; cout<<" Additional Facilities Provided"; cout<<" ----------------------"; cout<<" 1. Gym "; cout<<" 2. Sauna"; cout<<" 3. Karaoke"; cout<<" 4. BBQ Facilities"; cout<<" 5. Bicycles"; cout <<" Enter the additional facility you'd like with your stay:- "< flag=check(r); if(r>6) cout<<" Sorry..!!!Facility is not available"; else { room_no=r; unit=unit; cout<<" Number of units/persons: "; cin>>unit; if (unit<20) cout<<" Order added to your booking!!!"; else { cout<<" Sorry! The facility you chose is fully booked"; } } cout<<" Press any key to continue.....!!"; 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<<" Enter your room no. :- "; 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<<"cannot open"; 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<=30) cout<<"your bill = 2000"; else if (h1.room_no>=35&&h1.room_no<=45) cout<<"your bill = 5000" ; else cout<<"your bill = 7000"; } else { cout<<"room no. not found";} } cout<<" Successfully checked out.....!!"; cout<<" Press any key to continue.....!!"; f1.close(); getch(); } } } //END OF CHECKOUT FUNCTION //START OF MAIN PROGARM int main() { hotel h; system("cls"); cout<<" \t\t\t****************************"; cout<<" \t\t\t* HOTEL MANAGEMENT PROJECT *"; cout<<" \t\t\t****************************"; cout<<" \t\tDeveloped By:"; cout<<"\t G. Rohit"; cout<<" \t\t\t\t\tPress any key to continue....!!"; getch(); h.main_menu(); return 0; } //END OF MAIN PROGRAM
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started