HM158 统计档案人数
HM158 统计档案人数
来源: 第 158 集 职工管理系统-文件交互-读文件3-统计人数
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
当档案存在并且里面已经有记录时,启动时不能再把人数当成 \(0\)。在开辟堆区数组、把记录读回内存之前,要先知道文件里到底有多少人。
请在管理类中实现成员函数 getEmpNum():
- 用
ifstream以ios::in打开empFile.txt(与保存时用的宏路径相同)。 - 档案是按空格分隔写入的,因此也可以按空格用
>>依次读回编号、姓名、部门编号。 - 用
while循环:成功读完一行的三个字段后,计数器加一,再读下一行;读尽后循环结束。 - 返回计数器。构造函数在“文件存在且有数据”这一支里调用它,并把成员人数更新为返回值。
本题先根据输入写出档案,再调用 getEmpNum() 统计。人数必须来自把文件读一遍,不能直接把输入里的 \(n\) 当答案。
输入格式
第一行一个整数 \(n\)(\(0 \le n \le 100\))。
接下来 \(n\) 行,每行一个整数编号 \(id\)、一个不含空白的姓名 \(s\)、一个整数部门编号 \(d\)(\(1 \le id \le 10^6\),\(1 \le |s| \le 20\),\(1 \le d \le 3\))。这些行按“编号 姓名 部门编号”写入 empFile.txt,一人一行。
输出格式
一行一个整数,表示 getEmpNum() 的返回值,行末换行。
样例
输入 #1
3
1 张三 1
2 李四 2
3 王五 3
输出 #1
3
输入 #2
0
输出 #2
0
说明
- 统计时要把文件完整读一遍;空文件时
while一次都不进入,返回 \(0\)。 - 读字段的顺序必须与保存时一致:先编号,再姓名,再部门编号。
- 得到人数后,下一阶段才会按这个人数去
new数组并真正恢复每条记录。
信息
- ID
- 1157
- 难度
- 9
- 分类
- (无)
- 标签
- (无)
- 递交数
- 3
- 已通过
- 1
- 通过率
- 33%
- 上传者