HM158 统计档案人数

HM158 统计档案人数

HM158 统计档案人数

来源: 第 158 集 职工管理系统-文件交互-读文件3-统计人数

难度: 入门

时间限制: 1s

空间限制: 64MB

题目描述

当档案存在并且里面已经有记录时,启动时不能再把人数当成 \(0\)。在开辟堆区数组、把记录读回内存之前,要先知道文件里到底有多少人。

请在管理类中实现成员函数 getEmpNum()

  1. ifstreamios::in 打开 empFile.txt(与保存时用的宏路径相同)。
  2. 档案是按空格分隔写入的,因此也可以按空格用 >> 依次读回编号、姓名、部门编号。
  3. while 循环:成功读完一行的三个字段后,计数器加一,再读下一行;读尽后循环结束。
  4. 返回计数器。构造函数在“文件存在且有数据”这一支里调用它,并把成员人数更新为返回值。

本题先根据输入写出档案,再调用 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%
上传者