用c++先编写一个日期类Date,包含三个数据成员:Year,Month和day,再编写一个工人类计算工人的总工资,总工资由固定工资、工龄工资和工时工资组成,工人类中设计一个Birthday属性,类型为Data。完成对某个工人总工资及其个人信息的输出(姓名、性别、出生年月日等)。
时间: 2024-12-10 19:39:19 浏览: 20
在C++中,首先我们需要创建一个名为`Date`的类,用于表示日期。然后我们创建一个`Worker`类,它包含了`Date`类型的`Birthday`属性以及计算总工资的功能。以下是这两个类的基本实现:
```cpp
#include <iostream>
#include <string>
class Date {
public:
int Year;
int Month;
int Day;
// 构造函数
Date(int y = 0, int m = 0, int d = 0) : Year(y), Month(m), Day(d) {}
// 显示日期
void display() const {
std::cout << "生日: " << Year << "/" << Month << "/" << Day << std::endl;
}
};
class Worker {
private:
std::string name;
char gender;
Date Birthday; // 工人生日
double fixedSalary; // 固定工资
double seniorityBonus; // 工龄工资
double hourlyWage; // 工时工资
public:
Worker(const std::string& n, char g, double fs, double sb, double hw) :
name(n), gender(g), fixedSalary(fs), seniorityBonus(sb), hourlyWage(hw) {}
// 计算总工资
double calculateTotalSalary(Date birthday) {
return fixedSalary + seniorityBonus + hourlyWage * (getAge(birthday));
}
// 获取年龄
int getAge(const Date& b) {
return currentYear() - b.Year;
}
// 输出个人信息和工资信息
void showInfo() const {
std::cout << "姓名: " << name << std::endl;
std::cout << "性别: " << gender << std::endl;
Birthday.display();
std::cout << "总工资: " << calculateTotalSalary(Birthday) << "元" << std::endl;
}
private:
// 获取当前年份
int currentYear() const {
// 这里只是一个简化的示例,实际获取需要依赖时间库
return 2023; // 假设是2023年
}
};
int main() {
Worker worker("张三", 'M', 5000, 1000, 20); // 创建工人对象
Date birthday(1985, 5, 1); // 设置生日
worker.Birthday = birthday; // 给工人设置生日
worker.showInfo(); // 输出个人信息和工资
return 0;
}
```
在这个例子中,`main`函数中创建了一个`Worker`对象,并设置了其生日。然后通过`showInfo`方法展示了该工人的基本信息和计算出的总工资。
阅读全文