#include <iostream>
#include <vector>
#include <ctime>
using namespace std;
class Tour {
private:
int tourID;
string destination;
int duration; // in days
double price;
string departureDate;
string returnDate;
int availability;
public:
// Constructors
Tour(int id, string dest, int dur, double prc, string depDate, string retDate, int avail)
: tourID(id), destination(dest), duration(dur), price(prc), departureDate(depDate), returnDate(retDate), availability(avail) {}
// Accessors
int getTourID() const { return tourID; }
string getDestination() const { return destination; }
int getDuration() const { return duration; }
double getPrice() const { return price; }
string getDepartureDate() const { return departureDate; }
string getReturnDate() const { return returnDate; }
int getAvailability() const { return availability; }
// Mutators
void setPrice(double prc) { price = prc; }
void setAvailability(int avail) { availability = avail; }
};
class Customer {
private:
int customerID;
string name;
int age;
char gender;
string address;
string email;
string phoneNumber;
public:
// Constructors
Customer
(int id
, string nm
, int ag
, char gen
, string addr
, string
mail, string phone
) : customerID
(id
), name
(nm
), age
(ag
), gender
(gen
), address
(addr
), email
(mail), phoneNumber
(phone
) {}
// Accessors
int getCustomerID() const { return customerID; }
string getName() const { return name; }
int getAge() const { return age; }
char getGender() const { return gender; }
string getAddress() const { return address; }
string getEmail() const { return email; }
string getPhoneNumber() const { return phoneNumber; }
// Mutators
void setAddress(string addr) { address = addr; }
void setEmail
(string
mail) { email
= mail; } void setPhoneNumber(string phone) { phoneNumber = phone; }
};
class Booking {
private:
int bookingID;
int customerID;
int tourID;
string bookingDate;
int numAdults;
int numChildren;
double totalCost;
public:
// Constructors
Booking(int id, int custID, int tID, string bDate, int adults, int children, double cost)
: bookingID(id), customerID(custID), tourID(tID), bookingDate(bDate), numAdults(adults), numChildren(children), totalCost(cost) {}
// Accessors
int getBookingID() const { return bookingID; }
int getCustomerID() const { return customerID; }
int getTourID() const { return tourID; }
string getBookingDate() const { return bookingDate; }
int getNumAdults() const { return numAdults; }
int getNumChildren() const { return numChildren; }
double getTotalCost() const { return totalCost; }
// Mutators
void setTotalCost(double cost) { totalCost = cost; }
};
int main() {
// Test code
Tour tour1(1, "Paris", 5, 1500.0, "2024-06-15", "2024-06-20", 20);
cout << "Tour ID: " << tour1.getTourID() << endl;
cout << "Destination: " << tour1.getDestination() << endl;
cout << "Duration: " << tour1.getDuration() << " days" << endl;
cout << "Price: $" << tour1.getPrice() << endl;
cout << "Departure Date: " << tour1.getDepartureDate() << endl;
cout << "Return Date: " << tour1.getReturnDate() << endl;
cout << "Availability: " << tour1.getAvailability() << endl;
Customer customer1(101, "John Doe", 30, 'M', "123 Main St", "john.doe@example.com", "123-456-7890");
cout << "\nCustomer ID: " << customer1.getCustomerID() << endl;
cout << "Name: " << customer1.getName() << endl;
cout << "Age: " << customer1.getAge() << endl;
cout << "Gender: " << customer1.getGender() << endl;
cout << "Address: " << customer1.getAddress() << endl;
cout << "Email: " << customer1.getEmail() << endl;
cout << "Phone Number: " << customer1.getPhoneNumber() << endl;
Booking booking1(1001, 101, 1, "2024-04-17", 2, 1, 4500.0);
cout << "\nBooking ID: " << booking1.getBookingID() << endl;
cout << "Customer ID: " << booking1.getCustomerID() << endl;
cout << "Tour ID: " << booking1.getTourID() << endl;
cout << "Booking Date: " << booking1.getBookingDate() << endl;
cout << "Number of Adults: " << booking1.getNumAdults() << endl;
cout << "Number of Children: " << booking1.getNumChildren() << endl;
cout << "Total Cost: $" << booking1.getTotalCost() << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y3RpbWU+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgVG91ciB7CnByaXZhdGU6CiAgICBpbnQgdG91cklEOwogICAgc3RyaW5nIGRlc3RpbmF0aW9uOwogICAgaW50IGR1cmF0aW9uOyAvLyBpbiBkYXlzCiAgICBkb3VibGUgcHJpY2U7CiAgICBzdHJpbmcgZGVwYXJ0dXJlRGF0ZTsKICAgIHN0cmluZyByZXR1cm5EYXRlOwogICAgaW50IGF2YWlsYWJpbGl0eTsKCnB1YmxpYzoKICAgIC8vIENvbnN0cnVjdG9ycwogICAgVG91cihpbnQgaWQsIHN0cmluZyBkZXN0LCBpbnQgZHVyLCBkb3VibGUgcHJjLCBzdHJpbmcgZGVwRGF0ZSwgc3RyaW5nIHJldERhdGUsIGludCBhdmFpbCkKICAgICAgICA6IHRvdXJJRChpZCksIGRlc3RpbmF0aW9uKGRlc3QpLCBkdXJhdGlvbihkdXIpLCBwcmljZShwcmMpLCBkZXBhcnR1cmVEYXRlKGRlcERhdGUpLCByZXR1cm5EYXRlKHJldERhdGUpLCBhdmFpbGFiaWxpdHkoYXZhaWwpIHt9CgogICAgLy8gQWNjZXNzb3JzCiAgICBpbnQgZ2V0VG91cklEKCkgY29uc3QgeyByZXR1cm4gdG91cklEOyB9CiAgICBzdHJpbmcgZ2V0RGVzdGluYXRpb24oKSBjb25zdCB7IHJldHVybiBkZXN0aW5hdGlvbjsgfQogICAgaW50IGdldER1cmF0aW9uKCkgY29uc3QgeyByZXR1cm4gZHVyYXRpb247IH0KICAgIGRvdWJsZSBnZXRQcmljZSgpIGNvbnN0IHsgcmV0dXJuIHByaWNlOyB9CiAgICBzdHJpbmcgZ2V0RGVwYXJ0dXJlRGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGRlcGFydHVyZURhdGU7IH0KICAgIHN0cmluZyBnZXRSZXR1cm5EYXRlKCkgY29uc3QgeyByZXR1cm4gcmV0dXJuRGF0ZTsgfQogICAgaW50IGdldEF2YWlsYWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIGF2YWlsYWJpbGl0eTsgfQoKICAgIC8vIE11dGF0b3JzCiAgICB2b2lkIHNldFByaWNlKGRvdWJsZSBwcmMpIHsgcHJpY2UgPSBwcmM7IH0KICAgIHZvaWQgc2V0QXZhaWxhYmlsaXR5KGludCBhdmFpbCkgeyBhdmFpbGFiaWxpdHkgPSBhdmFpbDsgfQp9OwoKY2xhc3MgQ3VzdG9tZXIgewpwcml2YXRlOgogICAgaW50IGN1c3RvbWVySUQ7CiAgICBzdHJpbmcgbmFtZTsKICAgIGludCBhZ2U7CiAgICBjaGFyIGdlbmRlcjsKICAgIHN0cmluZyBhZGRyZXNzOwogICAgc3RyaW5nIGVtYWlsOwogICAgc3RyaW5nIHBob25lTnVtYmVyOwoKcHVibGljOgogICAgLy8gQ29uc3RydWN0b3JzCiAgICBDdXN0b21lcihpbnQgaWQsIHN0cmluZyBubSwgaW50IGFnLCBjaGFyIGdlbiwgc3RyaW5nIGFkZHIsIHN0cmluZyBtYWlsLCBzdHJpbmcgcGhvbmUpCiAgICAgICAgOiBjdXN0b21lcklEKGlkKSwgbmFtZShubSksIGFnZShhZyksIGdlbmRlcihnZW4pLCBhZGRyZXNzKGFkZHIpLCBlbWFpbChtYWlsKSwgcGhvbmVOdW1iZXIocGhvbmUpIHt9CgogICAgLy8gQWNjZXNzb3JzCiAgICBpbnQgZ2V0Q3VzdG9tZXJJRCgpIGNvbnN0IHsgcmV0dXJuIGN1c3RvbWVySUQ7IH0KICAgIHN0cmluZyBnZXROYW1lKCkgY29uc3QgeyByZXR1cm4gbmFtZTsgfQogICAgaW50IGdldEFnZSgpIGNvbnN0IHsgcmV0dXJuIGFnZTsgfQogICAgY2hhciBnZXRHZW5kZXIoKSBjb25zdCB7IHJldHVybiBnZW5kZXI7IH0KICAgIHN0cmluZyBnZXRBZGRyZXNzKCkgY29uc3QgeyByZXR1cm4gYWRkcmVzczsgfQogICAgc3RyaW5nIGdldEVtYWlsKCkgY29uc3QgeyByZXR1cm4gZW1haWw7IH0KICAgIHN0cmluZyBnZXRQaG9uZU51bWJlcigpIGNvbnN0IHsgcmV0dXJuIHBob25lTnVtYmVyOyB9CgogICAgLy8gTXV0YXRvcnMKICAgIHZvaWQgc2V0QWRkcmVzcyhzdHJpbmcgYWRkcikgeyBhZGRyZXNzID0gYWRkcjsgfQogICAgdm9pZCBzZXRFbWFpbChzdHJpbmcgbWFpbCkgeyBlbWFpbCA9IG1haWw7IH0KICAgIHZvaWQgc2V0UGhvbmVOdW1iZXIoc3RyaW5nIHBob25lKSB7IHBob25lTnVtYmVyID0gcGhvbmU7IH0KfTsKCmNsYXNzIEJvb2tpbmcgewpwcml2YXRlOgogICAgaW50IGJvb2tpbmdJRDsKICAgIGludCBjdXN0b21lcklEOwogICAgaW50IHRvdXJJRDsKICAgIHN0cmluZyBib29raW5nRGF0ZTsKICAgIGludCBudW1BZHVsdHM7CiAgICBpbnQgbnVtQ2hpbGRyZW47CiAgICBkb3VibGUgdG90YWxDb3N0OwoKcHVibGljOgogICAgLy8gQ29uc3RydWN0b3JzCiAgICBCb29raW5nKGludCBpZCwgaW50IGN1c3RJRCwgaW50IHRJRCwgc3RyaW5nIGJEYXRlLCBpbnQgYWR1bHRzLCBpbnQgY2hpbGRyZW4sIGRvdWJsZSBjb3N0KQogICAgICAgIDogYm9va2luZ0lEKGlkKSwgY3VzdG9tZXJJRChjdXN0SUQpLCB0b3VySUQodElEKSwgYm9va2luZ0RhdGUoYkRhdGUpLCBudW1BZHVsdHMoYWR1bHRzKSwgbnVtQ2hpbGRyZW4oY2hpbGRyZW4pLCB0b3RhbENvc3QoY29zdCkge30KCiAgICAvLyBBY2Nlc3NvcnMKICAgIGludCBnZXRCb29raW5nSUQoKSBjb25zdCB7IHJldHVybiBib29raW5nSUQ7IH0KICAgIGludCBnZXRDdXN0b21lcklEKCkgY29uc3QgeyByZXR1cm4gY3VzdG9tZXJJRDsgfQogICAgaW50IGdldFRvdXJJRCgpIGNvbnN0IHsgcmV0dXJuIHRvdXJJRDsgfQogICAgc3RyaW5nIGdldEJvb2tpbmdEYXRlKCkgY29uc3QgeyByZXR1cm4gYm9va2luZ0RhdGU7IH0KICAgIGludCBnZXROdW1BZHVsdHMoKSBjb25zdCB7IHJldHVybiBudW1BZHVsdHM7IH0KICAgIGludCBnZXROdW1DaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG51bUNoaWxkcmVuOyB9CiAgICBkb3VibGUgZ2V0VG90YWxDb3N0KCkgY29uc3QgeyByZXR1cm4gdG90YWxDb3N0OyB9CgogICAgLy8gTXV0YXRvcnMKICAgIHZvaWQgc2V0VG90YWxDb3N0KGRvdWJsZSBjb3N0KSB7IHRvdGFsQ29zdCA9IGNvc3Q7IH0KfTsKCmludCBtYWluKCkgewogICAgLy8gVGVzdCBjb2RlCiAgICBUb3VyIHRvdXIxKDEsICJQYXJpcyIsIDUsIDE1MDAuMCwgIjIwMjQtMDYtMTUiLCAiMjAyNC0wNi0yMCIsIDIwKTsKICAgIGNvdXQgPDwgIlRvdXIgSUQ6ICIgPDwgdG91cjEuZ2V0VG91cklEKCkgPDwgZW5kbDsKICAgIGNvdXQgPDwgIkRlc3RpbmF0aW9uOiAiIDw8IHRvdXIxLmdldERlc3RpbmF0aW9uKCkgPDwgZW5kbDsKICAgIGNvdXQgPDwgIkR1cmF0aW9uOiAiIDw8IHRvdXIxLmdldER1cmF0aW9uKCkgPDwgIiBkYXlzIiA8PCBlbmRsOwogICAgY291dCA8PCAiUHJpY2U6ICQiIDw8IHRvdXIxLmdldFByaWNlKCkgPDwgZW5kbDsKICAgIGNvdXQgPDwgIkRlcGFydHVyZSBEYXRlOiAiIDw8IHRvdXIxLmdldERlcGFydHVyZURhdGUoKSA8PCBlbmRsOwogICAgY291dCA8PCAiUmV0dXJuIERhdGU6ICIgPDwgdG91cjEuZ2V0UmV0dXJuRGF0ZSgpIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJBdmFpbGFiaWxpdHk6ICIgPDwgdG91cjEuZ2V0QXZhaWxhYmlsaXR5KCkgPDwgZW5kbDsKCiAgICBDdXN0b21lciBjdXN0b21lcjEoMTAxLCAiSm9obiBEb2UiLCAzMCwgJ00nLCAiMTIzIE1haW4gU3QiLCAiam9obi5kb2VAZXhhbXBsZS5jb20iLCAiMTIzLTQ1Ni03ODkwIik7CiAgICBjb3V0IDw8ICJcbkN1c3RvbWVyIElEOiAiIDw8IGN1c3RvbWVyMS5nZXRDdXN0b21lcklEKCkgPDwgZW5kbDsKICAgIGNvdXQgPDwgIk5hbWU6ICIgPDwgY3VzdG9tZXIxLmdldE5hbWUoKSA8PCBlbmRsOwogICAgY291dCA8PCAiQWdlOiAiIDw8IGN1c3RvbWVyMS5nZXRBZ2UoKSA8PCBlbmRsOwogICAgY291dCA8PCAiR2VuZGVyOiAiIDw8IGN1c3RvbWVyMS5nZXRHZW5kZXIoKSA8PCBlbmRsOwogICAgY291dCA8PCAiQWRkcmVzczogIiA8PCBjdXN0b21lcjEuZ2V0QWRkcmVzcygpIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJFbWFpbDogIiA8PCBjdXN0b21lcjEuZ2V0RW1haWwoKSA8PCBlbmRsOwogICAgY291dCA8PCAiUGhvbmUgTnVtYmVyOiAiIDw8IGN1c3RvbWVyMS5nZXRQaG9uZU51bWJlcigpIDw8IGVuZGw7CgogICAgQm9va2luZyBib29raW5nMSgxMDAxLCAxMDEsIDEsICIyMDI0LTA0LTE3IiwgMiwgMSwgNDUwMC4wKTsKICAgIGNvdXQgPDwgIlxuQm9va2luZyBJRDogIiA8PCBib29raW5nMS5nZXRCb29raW5nSUQoKSA8PCBlbmRsOwogICAgY291dCA8PCAiQ3VzdG9tZXIgSUQ6ICIgPDwgYm9va2luZzEuZ2V0Q3VzdG9tZXJJRCgpIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJUb3VyIElEOiAiIDw8IGJvb2tpbmcxLmdldFRvdXJJRCgpIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJCb29raW5nIERhdGU6ICIgPDwgYm9va2luZzEuZ2V0Qm9va2luZ0RhdGUoKSA8PCBlbmRsOwogICAgY291dCA8PCAiTnVtYmVyIG9mIEFkdWx0czogIiA8PCBib29raW5nMS5nZXROdW1BZHVsdHMoKSA8PCBlbmRsOwogICAgY291dCA8PCAiTnVtYmVyIG9mIENoaWxkcmVuOiAiIDw8IGJvb2tpbmcxLmdldE51bUNoaWxkcmVuKCkgPDwgZW5kbDsKICAgIGNvdXQgPDwgIlRvdGFsIENvc3Q6ICQiIDw8IGJvb2tpbmcxLmdldFRvdGFsQ29zdCgpIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0=
#include <iostream>
#include <vector>
#include <ctime>
using namespace std;
class Tour {
private:
int tourID;
string destination;
int duration; // in days
double price;
string departureDate;
string returnDate;
int availability;
public:
// Constructors
Tour(int id, string dest, int dur, double prc, string depDate, string retDate, int avail)
: tourID(id), destination(dest), duration(dur), price(prc), departureDate(depDate), returnDate(retDate), availability(avail) {}
// Accessors
int getTourID() const { return tourID; }
string getDestination() const { return destination; }
int getDuration() const { return duration; }
double getPrice() const { return price; }
string getDepartureDate() const { return departureDate; }
string getReturnDate() const { return returnDate; }
int getAvailability() const { return availability; }
// Mutators
void setPrice(double prc) { price = prc; }
void setAvailability(int avail) { availability = avail; }
};
class Customer {
private:
int customerID;
string name;
int age;
char gender;
string address;
string email;
string phoneNumber;
public:
// Constructors
Customer(int id, string nm, int ag, char gen, string addr, string mail, string phone)
: customerID(id), name(nm), age(ag), gender(gen), address(addr), email(mail), phoneNumber(phone) {}
// Accessors
int getCustomerID() const { return customerID; }
string getName() const { return name; }
int getAge() const { return age; }
char getGender() const { return gender; }
string getAddress() const { return address; }
string getEmail() const { return email; }
string getPhoneNumber() const { return phoneNumber; }
// Mutators
void setAddress(string addr) { address = addr; }
void setEmail(string mail) { email = mail; }
void setPhoneNumber(string phone) { phoneNumber = phone; }
};
class Booking {
private:
int bookingID;
int customerID;
int tourID;
string bookingDate;
int numAdults;
int numChildren;
double totalCost;
public:
// Constructors
Booking(int id, int custID, int tID, string bDate, int adults, int children, double cost)
: bookingID(id), customerID(custID), tourID(tID), bookingDate(bDate), numAdults(adults), numChildren(children), totalCost(cost) {}
// Accessors
int getBookingID() const { return bookingID; }
int getCustomerID() const { return customerID; }
int getTourID() const { return tourID; }
string getBookingDate() const { return bookingDate; }
int getNumAdults() const { return numAdults; }
int getNumChildren() const { return numChildren; }
double getTotalCost() const { return totalCost; }
// Mutators
void setTotalCost(double cost) { totalCost = cost; }
};
int main() {
// Test code
Tour tour1(1, "Paris", 5, 1500.0, "2024-06-15", "2024-06-20", 20);
cout << "Tour ID: " << tour1.getTourID() << endl;
cout << "Destination: " << tour1.getDestination() << endl;
cout << "Duration: " << tour1.getDuration() << " days" << endl;
cout << "Price: $" << tour1.getPrice() << endl;
cout << "Departure Date: " << tour1.getDepartureDate() << endl;
cout << "Return Date: " << tour1.getReturnDate() << endl;
cout << "Availability: " << tour1.getAvailability() << endl;
Customer customer1(101, "John Doe", 30, 'M', "123 Main St", "john.doe@example.com", "123-456-7890");
cout << "\nCustomer ID: " << customer1.getCustomerID() << endl;
cout << "Name: " << customer1.getName() << endl;
cout << "Age: " << customer1.getAge() << endl;
cout << "Gender: " << customer1.getGender() << endl;
cout << "Address: " << customer1.getAddress() << endl;
cout << "Email: " << customer1.getEmail() << endl;
cout << "Phone Number: " << customer1.getPhoneNumber() << endl;
Booking booking1(1001, 101, 1, "2024-04-17", 2, 1, 4500.0);
cout << "\nBooking ID: " << booking1.getBookingID() << endl;
cout << "Customer ID: " << booking1.getCustomerID() << endl;
cout << "Tour ID: " << booking1.getTourID() << endl;
cout << "Booking Date: " << booking1.getBookingDate() << endl;
cout << "Number of Adults: " << booking1.getNumAdults() << endl;
cout << "Number of Children: " << booking1.getNumChildren() << endl;
cout << "Total Cost: $" << booking1.getTotalCost() << endl;
return 0;
}