/* Rafay Ahmad 23I-2526 */ #include using namespace std; class HotelBooking{ string bookingID; string customerName; string hotelName; string roomType; string checkIn; string checkOut; int stayDuration; double roomRate; public: HotelBooking(string bookingID, string customerName, string hotelName, string roomType, string checkIn, string checkOut) : bookingID(bookingID), customerName(customerName), hotelName(hotelName), roomType(roomType), checkIn(checkIn), checkOut(checkOut){} bool validateBookingID() const{ for(int i=0;this->bookingID[i]!='\0';i++){ if(i<8){ switch(this->bookingID[i]){ case 'a'...'z': case 'A'...'Z': break; default: return false; } } else if(i<10){ switch(this->bookingID[i]){ case 'a'...'z': case 'A'...'Z': case '0'...'9': return false; } } else if(i<14){ switch(this->bookingID[i]){ case '0'...'9': break; default: return false; } } else return false; } int sum = 0; for(int i=0;i<4;i++) sum += this->bookingID[i+10] - '0'; return sum<18; } int calculateRoomRate() const{ if(this->roomType == "single") return 10; else if(this->roomType == "double") return 20; else if(this->roomType == "suite") return 50; } int calculateTotalCost() const{ return this->roomRate*this->stayDuration; } void getBookingDetails() const{ cout<<"Booking ID: "<bookingID<roomType<stayDuration<roomRate<>choice; switch(choice){ case 1: cout<<"Enter new room type: "; cin>>this->roomType; break; case 2: cout<<"Enter new stay duration: "; cin>>this->stayDuration; break; case 3: cout<<"Enter new check in date: "; cin>>this->checkIn; break; case 4: cout<<"Enter new check out date: "; cin>>this->checkOut; break; case 5: break; default: cout<<"Invalid choice\n"; } } }; int main(){ string bookingID, customerName, hotelName, roomType, checkIn, checkOut; do{ cout<<"Enter booking ID: "; getline(cin, bookingID); cout<<"Enter customer name: "; getline(cin, customerName); cout<<"Enter hotel name: "; getline(cin, hotelName); cout<<"Enter room type: "; getline(cin, roomType); cout<<"Enter check in date: "; getline(cin, checkIn); cout<<"Enter check out date: "; getline(cin, checkOut); HotelBooking booking1(bookingID, customerName, hotelName, roomType, checkIn, checkOut); }while(!booking1.validateBookingID(bookingID)); booking1.getBookingDetails(); booking1.updateBookingInfo(); booking1.getBookingDetails(); return 0; }