定义一个部门类Department 属性:部门编号、部门名称、部门人数、部门职责、部门经理 定义两个构造方法:无参和有参各一 定义成员方法:输出信息printDetail() --------------------------- 其有一个子类研发部类ResearchDept 属性:研发方向speciality 在构造方法中调用父类构造方法 重写printDetail()方法
时间: 2023-04-03 16:03:15 浏览: 230
好的,我可以回答这个问题。
部门类Department的定义如下:
```c
typedef struct {
int deptNo; // 部门编号
char deptName[50]; // 部门名称
int numOfEmployees; // 部门人数
char deptDuty[100]; // 部门职责
char deptManager[50]; // 部门经理
} Department;
// 无参构造方法
Department createDepartment() {
Department dept;
dept.deptNo = 0;
strcpy(dept.deptName, "");
dept.numOfEmployees = 0;
strcpy(dept.deptDuty, "");
strcpy(dept.deptManager, "");
return dept;
}
// 有参构造方法
Department createDepartmentWithParams(int deptNo, char deptName[], int numOfEmployees, char deptDuty[], char deptManager[]) {
Department dept;
dept.deptNo = deptNo;
strcpy(dept.deptName, deptName);
dept.numOfEmployees = numOfEmployees;
strcpy(dept.deptDuty, deptDuty);
strcpy(dept.deptManager, deptManager);
return dept;
}
// 输出信息
void printDetail(Department dept) {
printf("部门编号:%d\n", dept.deptNo);
printf("部门名称:%s\n", dept.deptName);
printf("部门人数:%d\n", dept.numOfEmployees);
printf("部门职责:%s\n", dept.deptDuty);
printf("部门经理:%s\n", dept.deptManager);
}
```
研发部类ResearchDept的定义如下:
```c
typedef struct {
Department dept; // 继承自Department类
char speciality[100]; // 研发方向
} ResearchDept;
// 构造方法
ResearchDept createResearchDept(int deptNo, char deptName[], int numOfEmployees, char deptDuty[], char deptManager[], char speciality[]) {
ResearchDept rDept;
rDept.dept = createDepartmentWithParams(deptNo, deptName, numOfEmployees, deptDuty, deptManager);
strcpy(rDept.speciality, speciality);
return rDept;
}
// 重写printDetail()方法
void printDetail(ResearchDept rDept) {
printf("部门编号:%d\n", rDept.dept.deptNo);
printf("部门名称:%s\n", rDept.dept.deptName);
printf("部门人数:%d\n", rDept.dept.numOfEmployees);
printf("部门职责:%s\n", rDept.dept.deptDuty);
printf("部门经理:%s\n", rDept.dept.deptManager);
printf("研发方向:%s\n", rDept.speciality);
}
```