Should Be Files Programs Whole Project As A Zip Filename

Shuld Be Files Programswhole Project As A Zip Filename The Pro

Shuld Be Files Programswhole Project As A Zip Filename The Pro

Develop a comprehensive C++ project structured into multiple classes, encapsulating vacation packages, cruise options, airfare choices, and passenger lists. The entire project should be packaged as a zip file named "Barbour_Vacation". The project comprises several classes with specific functionalities as follows:

  • Main Class: Vacation
  • Base Class: Vacation_Package
  • Subclass 1 (Derived): Cruise_Package
  • Subclass 2 (Derived): Airfare_Package
  • Subclass 3 (Derived): Passenger_List

Details of Class Structures and Functionalities

Vacation Class (Vacation):

This is the main class that initiates the vacation selection process. It will instantiate and manage instances of the other classes and provide a user interface for selecting vacation options.

Vacation_Package Class (Vacation_Package):

This is the base class containing common attributes and functions for all vacation packages. It should include a header defining at least one virtual function to facilitate polymorphism.

Functions to Implement in Vacation_Package:

  • A function that allows the user to select one vacation out of ten options, five of which are cruises and five are other destinations.
  • A function to create and display the list of vacation spots: the cruise options (e.g., cruise to Bahamas, cruise to Mexico, etc.) and other destinations like New York.
  • A function to prompt the user to select a departure date in the order: month, day, and year, returning the date as a string.

Cruise_Package Class (Cruise_Package):

This derived class extends Vacation_Package and includes specific functionalities for cruises.

  • A header for the class.
  • A function listing four cruise lines for user selection, returning the chosen cruise line.
  • A function listing five departure locations for user selection, returning the chosen departure place.

Airfare_Package Class (Airfare_Package):

This derived class handles airfare options for the vacation packages.

  • A header for the class.
  • A function listing four airlines for user selection, returning the chosen airline.
  • A function requesting the user to specify departure time, returning it as a string.

Passenger_List Class (Passenger_List):

This derived class manages the list of passengers associated with the booked vacation.

  • A header for the class.
  • A function to set the list of passengers’ first names, last names, and ages (using loops to input multiple passengers).
  • A function to return the passenger list.

Implementation Details

Implement all classes with appropriate constructors and destructors. Use inheritance to extend the base class functionalities for specific packages. Ensure user interaction functions prompt for input via console and handle input validation appropriately. The overall program should run seamlessly in a console environment, guiding the user through selection menus, data entry, and displaying summaries of their choices.

The entire project should be organized into header and implementation files for each class, compiled properly, and packaged as a zip file named "Barbour_Vacation". Ensure that the code is well-commented, follows good programming practices, and is suitable for demonstration or academic submission.

Note

The project structure should follow standard C++ conventions with clear separation of interface (header files) and implementation (source files). The user interface should be menu-driven, allowing easy navigation through options like choosing destinations, cruises, airlines, departure dates, and passenger details.

References

  • Abd-El-Halim, H. (2020). Object-Oriented Programming in C++. Academic Press.
  • Bjarne Stroustrup. (2013). The C++ Programming Language. Addison-Wesley.
  • Lippman, S. B., Lajoie, J., & Moo, B. E. (2012). C++ Primer. Addison-Wesley.
  • Stroustrup, B. (2018). Programming: Principles and Practice Using C++. Addison-Wesley.
  • ISO/IEC Standard 14882:2011(e). (2011). The C++ Programming Language (ISO/IEC 14882:2011).
  • Meyers, S. (2005). Effective C++: 55 Specific Ways to Improve Your Programs and Designs. Addison-Wesley.
  • Alexander, M. (2021). Object-Oriented Programming in C++. O'Reilly Media.
  • Stroustrup, B. (2014). The C++ Programming Language, 4th Edition. Addison-Wesley.
  • Hinnant, S. (2013). C++ Concurrency in Action. Manning Publications.
  • Gschwind, R. (2019). Design Patterns in C++. Manning Publications.