#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
class Employee {
public:
Employee(std::string name, int performance) : name(name), performance(performance) {}
std::string getName() const {
return name;
}
int getPerformance() const {
return performance;
}
void setPerformance(int newPerformance) {
performance = newPerformance;
}
private:
std::string name;
int performance;
};
class HRSystem {
public:
void addEmployee(const Employee& employee) {
employees.push_back(employee);
}
void evaluatePerformance() {
for (auto& employee : employees) {
int newPerformance = employee.getPerformance() + (std::rand() % 21 - 10); // Random change between -10 and +10
employee.setPerformance(std::clamp(newPerformance, 0, 100)); // Ensure performance is between 0 and 100
}
}
void printEmployees() const {
for (const auto& employee : employees) {
std::cout << "Name: " << employee.getName() << ", Performance: " << employee.getPerformance() << '\n';
}
}
private:
std::vector<Employee> employees;
};
int main() {
std::srand(static_cast<unsigned>(std::time(0)));
HRSystem hr;
// Adding employees
hr.addEmployee(Employee("Alice", 80));
hr.addEmployee(Employee("Bob", 70));
hr.addEmployee(Employee("Charlie", 90));
std::cout << "Initial employee performance:\n";
hr.printEmployees();
int months = 6;
for (int i = 0; i < months; ++i) {
hr.evaluatePerformance();
std::cout << "\nPerformance after month " << (i + 1) << ":\n";
hr.printEmployees();
}
return 0;
}