Question
C++ Code Help !!! At the checkout function, after a customer has checked out the customer records should be gone as well. Currently, I've added
C++ Code Help !!! At the checkout function, after a customer has checked out the customer records should be gone as well. Currently, I've added the delete function in if and else statements but then the customer records still exists . Is there any other ways to fix this ?
It would be a great help if anyone can correct the code and send the corrected source code. Thanks in advance!!
#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"; delete_rec(room_no); } else if (h1.room_no>=35&&h1.room_no<=45) { cout<<"your bill = 5000" ; delete_rec(room_no); } else { cout<<"your bill = 7000"; delete_rec(room_no); } } else { cout<<"room no. not found";} } 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