HM164 双路查档
HM164 双路查档
来源: 第 164 集 职工管理系统-查找职工功能实现
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
查找职工有两种方式。编号一般不重复(添加时应拒绝重复编号,本题花名册保证编号互异);姓名允许重名,按姓名查必须把所有同名人全部列出来——他们编号不同,岗位和职责也可能不同。
函数 findEmp:
- 档案为空或文件不存在:输出
文件不存在或记录为空并结束。 - 否则每次先读查找方式 \(op\)。\(op=1\) 按编号查,\(op=2\) 按姓名查。其他值输出
输入选项有误,本次不再读关键字。 - 按编号:调用
isExist。找到则先输出查找成功,再输出该职工信息如下,再调用虚函数打印该人;找不到输出查找失败,下一行查无此人。 - 按姓名:先准备布尔标志,默认认为找不到(
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
- 通过率
- ?
- 上传者