employee类用date类表示生日
时间: 2023-10-28 14:05:52 浏览: 42
可以,可以在employee类中添加一个生日属性,将其类型设置为date类。这样可以方便地计算员工的年龄,也可以用于其他需要日期计算的操作。例如,在employee类中添加以下代码:
```
class Employee:
def __init__(self, name, birthday):
self.name = name
self.birthday = birthday
def get_age(self):
today = date.today()
age = today.year - self.birthday.year
if today < date(today.year, self.birthday.month, self.birthday.day):
age -= 1
return age
```
这样,可以通过调用get_age()方法来获取员工的年龄。
相关问题
用c++设计一个employee类,包含员工基本信息:编号、姓名、出生日期、性别和职务等。出生日期使用自定义的Date类。employee类有可以从外部访问类的友元函数。程序基本职能如下:
好的,我可以帮你设计一个employee类,代码如下:
```c++
#include <iostream>
#include <string>
using namespace std;
class Date {
public:
Date(int y = 0, int m = 0, int d = 0) {
year = y;
month = m;
day = d;
}
void setDate(int y, int m, int d) {
year = y;
month = m;
day = d;
}
void showDate() const {
cout << year << "-" << month << "-" << day;
}
private:
int year, month, day;
};
class Employee {
public:
Employee(int num, string name, Date birthday, char sex, string job) {
empNum = num;
empName = name;
empBirthday = birthday;
empSex = sex;
empJob = job;
}
void display() const {
cout << "员工编号:" << empNum << endl;
cout << "员工姓名:" << empName << endl;
cout << "员工生日:";
empBirthday.showDate();
cout << endl;
cout << "员工性别:" << empSex << endl;
cout << "员工职务:" << empJob << endl;
}
friend void modifyBirth(Employee& emp, int y, int m, int d);
private:
int empNum;
string empName;
Date empBirthday;
char empSex;
string empJob;
};
void modifyBirth(Employee& emp, int y, int m, int d) {
emp.empBirthday.setDate(y, m, d);
cout << "修改成功!" << endl;
}
int main() {
Date birth(1990, 1, 1);
Employee emp(1001, "Tom", birth, 'M', "Manager");
emp.display();
modifyBirth(emp, 1995, 6, 15);
emp.display();
return 0;
}
```
在这个程序中,我们定义了一个Date类和一个Employee类。其中,Date类用于表示日期,包含年、月、日三个成员变量和相应的函数;Employee类用于表示员工,包含员工编号、姓名、生日、性别、职务等五个成员变量和相应的函数。我们还定义了一个友元函数modifyBirth用于修改员工的生日。
在main函数中,我们创建了一个Employee对象,并且通过调用display函数来显示员工的基本信息。然后,我们调用modifyBirth函数来修改员工的生日,并再次调用display函数来验证修改结果。
(1)定义date类,数据成员year、month、day,带参数的构造函数用于初始化数据成员。 (2)定义雇员类employee,存储雇员的编号、姓名、生日信息,数据成员生日为date类的对象,完成类的定义使主函数可实现如下语句: //定义一个雇员,编号为10,生日为1980.11.20,姓名为Tom employee Tom(“Tom”,10,1980,11,20); date today(1980,11,20); if(Tom.isbirthday(today)) //今天是否Tom生日
以下是题目的代码实现:
```c++
#include<iostream>
using namespace std;
//日期类的定义
class date {
public:
int year;
int month;
int day;
date(int y, int m, int d) {
year = y;
month = m;
day = d;
}
};
//雇员类的定义
class employee {
public:
int id; //雇员编号
string name; //雇员姓名
date birthday; //雇员生日
employee(string n, int i, int y, int m, int d) :name(n), id(i), birthday(y, m, d) {}
bool isbirthday(date today) {
if (today.year == birthday.year && today.month == birthday.month && today.day == birthday.day) {
return true;
}
return false;
}
};
int main() {
//定义一个雇员
employee Tom("Tom", 10, 1980, 11, 20);
//定义一个日期
date today(1980, 11, 20);
//判断今天是否Tom的生日
if (Tom.isbirthday(today)) {
cout << "Today is Tom's birthday!" << endl;
}
else {
cout << "Today is not Tom's birthday." << endl;
}
return 0;
}
```
输出结果:
```
Today is Tom's birthday!
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)