HM160 花名册全员展示

HM160 花名册全员展示

HM160 花名册全员展示

来源: 第 160 集 职工管理系统-显示职工功能

难度: 入门

时间限制: 1s

空间限制: 64MB

题目描述

人事系统用一个统一标志 fileIsEmpty 描述档案状态:文件不存在,或者文件存在但一条记录都没有,都把该标志置为真。不必分别维护「是否存在」和「是否为空」两个标志;当然你也可以拆成两个标志,本题按统一处理。

实现成员函数 showEmp

  1. fileIsEmpty 为真,没有可展示的内容,输出一行 文件不存在或记录为空
  2. 若标志为假,按下标从 \(0\) 遍历到人数减一,通过父类指针调用虚函数 showInfoshowInfo 在基类中是纯虚函数,由子类各自实现:同一接口、不同对象打印的岗位和职责不同。
  3. 部门编号 \(1\) 为普通员工,\(2\) 为经理,\(3\) 为总裁。岗位名称由 getDeptName() 得到,职责如下。
部门编号 岗位 职责
\(1\) 员工 完成经理交给的任务
\(2\) 经理 完成老板交给的任务,并下发任务给员工
\(3\) 总裁 管理公司所有事务

每位职工一行,格式为:

职工编号:编号职工姓名:姓名岗位:岗位岗位职责:职责

冒号为中文全角。各字段之间恰好一个空格;全角冒号后紧跟内容,不要再插空格。

启动后还可以再添加一名职工:新人要挂进内存数组,并把 fileIsEmpty 改为假,再调用一次 showEmp。这样显示结果必须与刚写入档案的内容一致。

输入格式

第一行一个整数 \(t\)。

  • \(t=0\):文件不存在,fileIsEmpty 为真,后面没有数据。
  • \(t=1\):文件存在但记录为空,fileIsEmpty 为真,后面没有数据。
  • \(t=2\):文件存在且有记录。接下来一行整数 \(n\)(\(1 \le n \le 1000\)),再接下来 \(n\) 行,每行编号 \(id\)、不含空白的姓名 \(s\)、部门编号 \(d\)(\(1 \le id \le 10^9\),\(1 \le |s| \le 20\),\(d \in \{1,2,3\}\))。
  • \(t=3\):先按 \(t=2\) 的格式读入已有职工,再多读一行新人(编号、姓名、部门编号),把这人追加后再显示。

输出格式

按题目描述输出若干行,每行末尾换行。

样例

输入 #1

3
3
1 张三 1
2 李四 2
3 王五 3
4 赵六 1

输出 #1

职工编号:1 职工姓名:张三 岗位:员工 岗位职责:完成经理交给的任务
职工编号:2 职工姓名:李四 岗位:经理 岗位职责:完成老板交给的任务,并下发任务给员工
职工编号:3 职工姓名:王五 岗位:总裁 岗位职责:管理公司所有事务
职工编号:4 职工姓名:赵六 岗位:员工 岗位职责:完成经理交给的任务

输入 #2

0

输出 #2

文件不存在或记录为空

说明

  • \(t=0\) 与 \(t=1\) 输出完全相同,因为共用一个空档标志。
  • 必须用多态接口打印职工信息,不能只按部门编号写一串无关的分支应付输出。
  • \(t=3\) 用来确认:添加成功后,内存和显示里都能看到新人。

信息

ID
1159
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
上传者