HM153 经理与总裁岗
HM153 经理与总裁岗
来源: 第 153 集 职工管理系统-经理类和老板类实现
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
职工抽象类 Worker 里有职工编号、姓名、部门编号,以及两个纯虚函数:showInfo() 与 getDeptName()。派生类必须重写它们,才能被实例化。
请再实现经理类 Manager 和老板类 Boss,均以 public 方式继承 Worker。构造函数接收编号、姓名、部门编号,并写到自身成员上。getDeptName() 返回岗位字符串(为了和 string 一致,C 风格字面量请转成 string)。showInfo() 输出编号、姓名、岗位和职责;岗位必须调用 getDeptName(),不能把岗位名写死在另一处。
三类岗位的职责不同:
| 部门编号 | 类 | 岗位 | 岗位职责 |
|---|---|---|---|
| 1 | 普通员工 Employee |
员工 | 完成经理交给的任务 |
| 2 | 经理 Manager |
经理 | 完成老板交给的任务,并下发任务给员工 |
| 3 | 老板 Boss |
总裁 | 管理公司所有事务 |
用基类指针 Worker* 指向堆上的派生对象,再调用同一个 showInfo():创建的对象不同,输出就不同,这就是一个接口多种形态。用完后必须通过该指针 delete 释放。
普通员工类上一阶段已经出现过;本题仍要能创建它,以便和经理、老板一起对照。
输入格式
第一行一个整数 \(n\)(\(1 \le n \le 100\))。
接下来 \(n\) 行,每行一个整数编号 \(id\)、一个不含空白的姓名 \(s\)、一个部门编号 \(d\)(\(1 \le id \le 10^6\),\(1 \le |s| \le 20\),\(d \in \{1,2,3\}\))。
输出格式
共 \(n\) 行。每行格式为:
职工编号: \(id\) 职工姓名: \(s\) 岗位: 岗位名 岗位职责: 职责
四段之间各有一个空格,行末换行。岗位名与职责必须由对应派生类给出。
样例
输入 #1
3
1 ZhangSan 1
2 LiSi 2
3 WangWu 3
输出 #1
职工编号:1 职工姓名:ZhangSan 岗位:员工 岗位职责:完成经理交给的任务
职工编号:2 职工姓名:LiSi 岗位:经理 岗位职责:完成老板交给的任务,并下发任务给员工
职工编号:3 职工姓名:WangWu 岗位:总裁 岗位职责:管理公司所有事务
输入 #2
2
8 赵六 2
9 钱七 3
输出 #2
职工编号:8 职工姓名:赵六 岗位:经理 岗位职责:完成老板交给的任务,并下发任务给员工
职工编号:9 职工姓名:钱七 岗位:总裁 岗位职责:管理公司所有事务
说明
- 经理、老板的类名、继承方式和纯虚函数重写都要写全;构造里给三个成员赋值。
- 多态体现在
showInfo:同一指针调用,员工、经理、总裁的岗位与职责不同。 - 职责文字必须与表中完全一致,包括经理那句里的逗号。
信息
- ID
- 1152
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者