Implement The Mean Green EagleLift Application In C++
Implement the Mean Green EagleLift Application in C++ Without Inheritance
For this assignment, you are tasked with implementing the Mean Green EagleLift Application that you designed in Homework 2. Your implementation should include creating a user interface menu that matches your design, as well as developing each of the entities as classes in C++. The program must be compiled using the g++ compiler and may utilize any C++ Standard Template Library (STL) components. However, inheritance is not permitted in this project. Instead, it is strongly recommended—and required—to employ a pattern-based solution, such as the transaction pattern discussed in class and incorporated into your design. This approach will facilitate a more manageable development process and ensure adherence to assignment requirements.
Ensure that your implementation accurately reflects your updated design, incorporating any feedback received from your instructor or grader. Utilize the C++ Time class to work with time-related data. Additional resources, including class lectures and videos, will be provided to support your understanding and implementation process. Be prepared to modify your design from Homework 2 based on class discussions and feedback, submitting both your revised design documentation and using it as a blueprint for your code development.
Program Requirements
Your program must be written in C++ and include clear steps or algorithms within your code. While you can paraphrase the implementation steps, they should be present to guide your coding process. The program will be primarily graded on correctness when run on a CSE Department Linux machine and on coding style. Your code should feature a consistent indentation style aligned with class and textbook standards, and use meaningful variable names for clarity.
A block header comment section must be included at the start of each source file, containing your name, email address, and a brief description of the program's purpose. Upon execution, the program should display initial information including the department and course number, program number, your name, and email address.
Develop comprehensive test cases that verify your program's handling of both valid and invalid data for all functions. These tests will help ensure reliability before submission. Your final submission should include:
- The source files for each class, with separate header (.h) and implementation (.cpp) files.
- A main.cpp file, and an additional .h file for main if necessary.
- An updated design document and a brief report on your implementation process.
- A makefile to facilitate compilation.
- A single ZIP file named hw3xxx.zip, where "xxx" are your initials, containing all source code, headers, design documents, report, and makefile.
Test your program thoroughly to confirm correctness. You may verify outputs by desk-checking with paper-based calculations or by intermixed debug statements to monitor intermediate values. The more successful tests you perform, the higher your confidence your program will produce correct results for the grader's test cases.
References
- Gaddis, T. (2019). Starting Out with C++: Early Objects (9th Edition). Pearson.
- Stroustrup, B. (2013). The C++ Programming Language (4th Edition). Addison-Wesley.
- ISO/IEC. (2023). Programming Languages — C++. International Organization for Standardization.
- CppReference. (2024). Standard C++ Library Reference. https://en.cppreference.com
- King, R. (2018). C++ Standard Library Quick Reference. Addison-Wesley.
- Nicolai M., & Lippman, S.B. (2012). C++ Primer (5th Edition). Addison-Wesley.
- Sutter, H. (2004). Exceptional C++. Addison-Wesley.
- Meyers, S. (2005). Effective C++: 55 Specific Ways to Improve Your Programs and Designs. Addison-Wesley.
- ISO/IEC. (2020). ISO/IEC 14882:2011(C++14) Programming Language. International Organization for Standardization.
- Lennon, G. (2017). Mastering C++ Programming. Packt Publishing.