HM164 双路查档

HM164 双路查档

HM164 双路查档

来源: 第 164 集 职工管理系统-查找职工功能实现

难度: 入门

时间限制: 1s

空间限制: 64MB

题目描述

查找职工有两种方式。编号一般不重复(添加时应拒绝重复编号,本题花名册保证编号互异);姓名允许重名,按姓名查必须把所有同名人全部列出来——他们编号不同,岗位和职责也可能不同。

函数 findEmp

  1. 档案为空或文件不存在:输出 文件不存在或记录为空 并结束。
  2. 否则每次先读查找方式 \(op\)。\(op=1\) 按编号查,\(op=2\) 按姓名查。其他值输出 输入选项有误,本次不再读关键字。
  3. 按编号:调用 isExist。找到则先输出 查找成功,再输出 该职工信息如下,再调用虚函数打印该人;找不到输出 查找失败,下一行 查无此人
  4. 按姓名:先准备布尔标志,默认认为找不到(false)。扫描全表,姓名相等就把标志改为 true,输出 查找成功,再输出 职工编号为编号的职工信息如下(编号与「的」之间无空格),再打印该人信息。不要找到一个就停。扫完后若标志仍为 false,输出 查找失败查无此人

每人信息一行,格式与展示功能相同:

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

岗位:\(1\) 员工,\(2\) 经理,\(3\) 总裁。

输入格式

第一行一个整数 \(n\)(\(0 \le n \le 1000\))。\(n=0\) 后面没有数据。

\(n \ge 1\) 时,接下来 \(n\) 行:编号 \(id\)、不含空白的姓名 \(s\)、岗位 \(d\)(\(d \in \{1,2,3\}\),编号互异)。

再一行整数 \(q\)(\(1 \le q \le 1000\))。随后 \(q\) 组询问:每组第一行 \(op\);若 \(op=1\) 下一行一个整数编号;若 \(op=2\) 下一行一个姓名;若 \(op\) 为其他值则没有下一行。

输出格式

\(n=0\) 时只输出 文件不存在或记录为空

否则按询问依次输出,行末换行。

样例

输入 #1

5
2 赵四 1
3 王五 3
4 赵六 1
5 王五 1
6 王五 2
6
1
5
1
9
2
王五
2
张三
1
2
3

输出 #1

查找成功
该职工信息如下
职工编号:5 职工姓名:王五 岗位:员工 岗位职责:完成经理交给的任务
查找失败
查无此人
查找成功
职工编号为3的职工信息如下
职工编号:3 职工姓名:王五 岗位:总裁 岗位职责:管理公司所有事务
查找成功
职工编号为5的职工信息如下
职工编号:5 职工姓名:王五 岗位:员工 岗位职责:完成经理交给的任务
查找成功
职工编号为6的职工信息如下
职工编号:6 职工姓名:王五 岗位:经理 岗位职责:完成老板交给的任务,并下发任务给员工
查找失败
查无此人
查找成功
该职工信息如下
职工编号:2 职工姓名:赵四 岗位:员工 岗位职责:完成经理交给的任务
输入选项有误

输入 #2

0

输出 #2

文件不存在或记录为空

说明

  • 三个王五岗位分别是总裁、员工、经理,按姓名查要出三个人。
  • 按编号查只对应一个人。
  • 姓名查找的「是否找到」必须靠循环外的布尔标志判断,不能只看最后一次比较。

信息

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