This is a C++ program that implements an Automatic Performance Appraisal System for a company. The system allows different team members (Developers, Designers, and Architects) to input their self-ratings and managers to provide ratings for their team members. Additionally, the HR department can provide normalized ratings based on certain constraints.
- C++ compiler (Supporting C++11 or higher)
- Input CSV file containing employee data
- Compile the code using a C++ compiler.
- Set the environment variable
FOLDER_PATH_ENV_VAR
to the folder path containing the input CSV file. - The CSV file should contain data in the following format:
- Each row represents a different team member, and each column represents their corresponding tasks.
- The Developer Task, Designer Task, and Architect Task should be semicolon-separated strings.
- Run the compiled executable.
- Use the menu options to input self-ratings, manager ratings, HR ratings, and view departmental ratings.
- The CEO can view overall department ratings and generate a CSV file containing CEO ratings.
- Abstract base class for all team members (Developer, Designer, Architect).
- Defines common methods for inputting and printing ratings.
- Derived classes from the TeamMember class.
- Overrides the
inputSelfRatings()
method to input self-ratings for specific tasks. - Overrides the
getTaskName()
method to get the task names for each team member.
- Derived from the TeamMember class.
- Allows managers to input ratings for their team members.
- Overrides the
getTaskName()
method to display "Employee X" for each team member.
- Derived from the TeamMember class.
- Allows HR to input normalized ratings for all team members.
- Uses constraints to ensure a balanced distribution of ratings.
deepCopyVector
: Creates a deep copy of a vector of TeamMember objects.getFolderPathFromEnvVar
andgetFullFilePath
: Helper functions to retrieve the folder path and construct the full file path.
- Run the program and choose the appropriate options from the menu.
- Input self-ratings for individual team members.
- Managers can input ratings for their team members.
- HR can input normalized ratings based on constraints.
- The CEO can view overall department ratings and generate a CSV file containing CEO ratings.
- Make sure to set the environment variable
FOLDER_PATH_ENV_VAR
to the correct folder path containing the input CSV file before running the program. - The program uses console input/output for simplicity.
Here is an example of the input CSV file format:
Developer Name,Developer Task,Designer Name,Designer Task,Architect Name,Architect Task
This project is licensed under the MIT License.
Feel free to contribute and improve this project!