由于人事管理系统涉及的功能较多,这里我不能直接提供完整的代码。但是,我可以提供一个简单的C++人事管理系统框架,以及实现考勤、增删减员工、工资计算等功能的思路。您可以根据这些建议自行完善代码。
- 首先,设计一个员工类,包含员工的基本信息(如姓名、工号、入职时间等)。
class Employee {
public:
Employee(const std::string &name, int id, const std::string &position)
: name_(name), id_(id), position_(position) {}
const std::string &getName() const { return name_; }
int getId() const { return id_; }
const std::string &getPosition() const { return position_; }
private:
std::string name_;
int id_;
std::string position_;
};
- 创建一个人事管理系统类,包含员工列表,以及添加、删除、查找员工等功能。
class EmployeeManager {
public:
void addEmployee(const Employee &employee) {
employee_list_.push_back(employee);
}
void removeEmployee(int id) {
for (auto it = employee_list_.begin(); it != employee_list_.end(); ++it) {
if (it->getId() == id) {
employee_list_.erase(it);
break;
}
}
}
Employee *findEmployee(int id) {
for (auto &employee : employee_list_) {
if (employee.getId() == id) {
return &employee;
}
}
return nullptr;
}
void printEmployeeInfo() {
for (const auto &employee : employee_list_) {
std::cout << employee.getName() << " - " << employee.getId() << " - " << employee.getPosition() << std::endl;
}
}
private:
std::vector<Employee> employee_list_;
};
- 添加考勤功能。您可以根据实际需求,设计一个考勤类,如
Attendance
,包含员工、考勤日期、上班时间、下班时间等属性。然后,在人事管理系统类中添加一个考勤记录成员变量,并将每天的考勤记录添加到该列表中。
class Attendance {
public:
Attendance(const Employee &employee, const std::string &date, int work_hours)
: employee_(employee), date_(date), work_hours_(work_hours) {}
const Employee &getEmployee() const { return employee_; }
const std::string &getDate() const { return date_; }
int getWorkHours() const { return work_hours_; }
private:
Employee employee_;
std::string date_;
int work_hours_;
};
class AttendanceManager {
public:
void addAttendance(const Attendance &attendance) {
attendance_list_.push_back(attendance);
}
void printAttendanceInfo() {
for (const auto &attendance : attendance_list_) {
std::cout << attendance.getEmployee().getName() << " - "
<< attendance.getDate() << " - " << attendance.getWorkHours() << " hours" << std::endl;
}
}
private:
std::vector<Attendance> attendance_list_;
};
// 在EmployeeManager类中添加一个AttendanceManager成员变量
EmployeeManager employee_manager;
AttendanceManager attendance_manager;
实现增删减员工、考勤记录功能。
实现工资计算功能。您可以根据公司工资制度,设计一个计算工资的函数。例如,根据员工的基本工资、加班小时、请假天数等因素计算总工资。
以下是一个简单的工资计算示例:
int calculateSalary(const Employee &employee, int base_salary, int overtime_hours, int leave_days) {
int salary = base_salary;
salary += overtime_hours * 10; // 加班工资:10元/小时
if (leave_days > 0) {
salary -= leave_days * 50; // 请假扣款:50元/天
}
return salary;
}
- 最后,根据实际需求,编写主函数,演示人事管理系统的功能。
这只是一个基本的框架,您可以根据实际需求添加更多功能和细节。同时,如果需要,您还可以考虑使用面向对象编程的思想,将各个功能划分为单独的类。祝您编程愉快!