HM299 检测重复账号
HM299 检测重复账号
来源: 第 299 集 机房预约系统-检测账号重复的功能实现
难度: 普及
时间限制: 1s
空间限制: 64MB
题目描述
管理员增加 checkRepeat(id, type):参数一是待测学号或职工号,参数二是类型。**返回 true 表示已经重复,false 表示没有重复。**
type == 1:用迭代器遍历vStu,若某名学生的学号等于id,立即返回true;- 否则遍历
vTea,比较的是职工号mEmpId。
类型必须用添加时的选项传入,不能写死成 \(1\),否则教师侧永远走学生容器。姓名重复**不要**拦截。
addPerson 在写入编号后进入循环:调用 checkRepeat,若为真则输出 学号重复,请重新输入 或 职工号重复,请重新输入,**不写入文件**;若为假则 break,再写入并输出 添加成功。
本问添加成功后**并不**把新人立刻放进容器,也不重新读文件。因此同一轮会话里刚写入的新号,再用一次相同号,检测仍会放行——这是当前实现的真实行为。
先按 HM298 的规则装入两份名册(本题保证两份文件都存在),再处理 \(q\) 次添加。每次 t id name pwd。全部结束后再输出两份文件的当前内容。
输入格式
第一行整数 \(n\),接下来 \(n\) 行学生名册。
下一行整数 \(m\),接下来 \(m\) 行教师名册。
下一行整数 \(q\)。
接下来 \(q\) 行:t id name pwd。
输出格式
每次添加输出一行提示(重复或 添加成功)。
然后一行 student.txt 及学生文件各行,一行 teacher.txt 及教师文件各行。
样例
输入 #1
2
1 Zhang 123
2 Li 654321
1
5 Wang 123
5
1 1 Chen 1
1 3 Wu 456
1 3 Zhao 789
2 5 New 1
2 6 Qian 2
输出 #1
学号重复,请重新输入
添加成功
添加成功
职工号重复,请重新输入
添加成功
student.txt
1 Zhang 123
2 Li 654321
3 Wu 456
3 Zhao 789
teacher.txt
5 Wang 123
6 Qian 2
输入 #2
1
8 Same 111
0
2
1 9 Same 222
2 8 Other 222
输出 #2
添加成功
添加成功
student.txt
8 Same 111
9 Same 222
teacher.txt
8 Other 222
说明
\(0 \le n,m \le 200\),\(1 \le q \le 200\)。学生与教师的号段相互独立,同号可以分属两侧。
样例 #1 第三次再次添加学号 \(3\) 仍成功,因为新人还没进容器。样例 #2 学生侧同名不同号可以并存;职工号 \(8\) 与已有学号 \(8\) 分属两侧,不算冲突。
信息
- ID
- 1298
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者