HM163 在岗改档
HM163 在岗改档
来源: 第 163 集 职工管理系统-修改职工功能实现
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
职工的编号、姓名或岗位都可能变动,岗位升迁后对象类型也要跟着变。修改函数 modEmp 按下面做:
- 档案为空或文件不存在时,输出
文件不存在或记录为空并结束。 - 否则读入要改的原编号 \(x\),用
isExist顺序查找得到数组下标;找不到返回 \(-1\)。 - 找不到:输出
修改失败,再输出一行查无此人。 - 找到下标 \(p\):必须先
delete掉该下标上原来的堆区对象,再读入新的编号、姓名、岗位编号。岗位 \(1\) 新建普通员工,\(2\) 新建经理,\(3\) 新建老板。基类指针先置空,再用分支(if或switch均可)指向新对象,写回数组的同一个下标 \(p\)。人数不变。 - 改完后输出
修改成功,并调用保存函数把内存同步回empFile.txt。
岗位变了,职责也变:员工完成经理交给的任务,经理完成老板交给的任务并下发任务给员工,总裁管理公司所有事务。showInfo 的格式与展示功能相同:
职工编号:编号职工姓名:姓名岗位:岗位岗位职责:职责
岗位名称:\(1\) 员工,\(2\) 经理,\(3\) 总裁。全角冒号后紧跟内容,各字段之间一个空格。
全部修改结束后,按数组下标调用 showInfo 输出当前全部职工。
输入格式
第一行一个整数 \(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\) 行,每行四个字段:待改原编号 \(x\)、新编号 \(nid\)、新姓名 \(ns\)、新岗位 \(nd\)。
输出格式
若 \(n=0\),只输出一行 文件不存在或记录为空。
否则先输出每次修改的结果:成功一行 修改成功;失败两行 修改失败 与 查无此人。再按数组下标输出当前全部职工,每人一行 showInfo。
样例
输入 #1
2
1 李四 3
4 赵六 1
2
1 1 张三 1
2 2 鲍勃 2
输出 #1
修改成功
修改失败
查无此人
职工编号:1 职工姓名:张三 岗位:员工 岗位职责:完成经理交给的任务
职工编号:4 职工姓名:赵六 岗位:员工 岗位职责:完成经理交给的任务
输入 #2
0
输出 #2
文件不存在或记录为空
说明
- 必须先释放旧对象再
new新对象,不能只改几个字段凑合。 - 新对象放回原来的下标,不要另开一个数组尾部。
- 样例 1 把总裁李四改成普通员工张三,编号仍是 \(1\)。
信息
- ID
- 1162
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者