假设一个公司员工的正式员工实行终身编号制,第一个正式 的员工编号为1+入职时间,第二个正式员工编号为2+入职时 间。 (例如第一个员工是2023年3月20日入职,那么他的编号自动 生成为120230320,第二个员工也是2023年3月20日入职,那 么他的编号自动生成为:220230320,第三个员工是2023年3 月21日入职,那么他的编号自动生成为:320230321) 。请编写程序设计员工类,其基本属性包括员工工号、姓年龄 。工号按照上述规则自动生成,请设计必要的成员函数完成 改类。用c++写
时间: 2023-05-28 18:05:24 浏览: 213
#include <iostream>
#include <string>
using namespace std;
class Employee {
private:
string id; // 员工编号
string name; // 姓名
int age; // 年龄
static int count; // 员工计数器
public:
Employee(string name, int age) {
this->name = name;
this->age = age;
count++; // 计数器加1
int year = 2023, month = 3, day = 20; // 假设公司成立于2023年3月20日
int num = count % 10000; // 前四位是员工计数器,最多到9999
id = to_string(num); // 将数字转换为字符串
if (count <= 9999) {
id = "0" + id; // 如果数字不足4位,前面要补0
}
if (count > 9999) { // 如果员工数目超过9999,则第5位为1,第6位为0
id = "1" + id;
}
if (count > 19999) { // 如果员工数目超过19999,则第6位为1,第7位为0
id = "2" + id;
}
// 拼接年月日
id = to_string(year).substr(2) + to_string(month) + to_string(day) + id;
}
void display() {
cout << "工号:" << id << endl;
cout << "姓名:" << name << endl;
cout << "年龄:" << age << endl;
}
};
int Employee::count = 0; // 静态成员变量初始化
int main() {
Employee e1("张三", 25);
Employee e2("李四", 30);
Employee e3("王五", 35);
e1.display();
e2.display();
e3.display();
return 0;
}
阅读全文