HM166 确认后清空档案

HM166 确认后清空档案

HM166 确认后清空档案

来源: 第 166 集 职工管理系统-清空文件实现

难度: 入门

时间限制: 1s

空间限制: 64MB

题目描述

清空会把磁盘档案和内存里的职工一起丢掉,必须先让用户确认,防止误操作。实现 cleanFile

  1. 读入选择 \(x\)。\(x=1\) 表示确定清空,\(x=2\) 表示返回,不改任何数据。
  2. 若确定清空:用 ofstreamios::trunc 打开 empFile.txt。这种打开方式会删掉原文件再新建空文件;只要不再往里写数据,档案就被清空。打开后立刻 close
  3. 若内存指针数组不为空:先循环 delete 每一个职工对象,并把该格指针置空;再 delete[] 整块指针数组,把数组指针置空。人数改为 \(0\),空档标志 fileIsEmpty 改为真。
  4. 输出一行 清空成功

析构函数也必须改成同样的释放顺序:先判断数组指针是否为空,再释放每个堆区对象,最后释放数组本身。不要只 delete[] 数组而漏掉里面的对象。

若选择返回,输出一行 返回,花名册保持原样。

展示规则与之前相同:空档时输出 文件不存在或记录为空;否则每人一行 showInfo(格式见说明)。清空成功后再展示,必须走空档分支。

输入格式

第一行一个整数 \(n\)(\(0 \le n \le 1000\))。

\(n \ge 1\) 时,接下来 \(n\) 行:编号 \(id\)、不含空白的姓名 \(s\)、岗位 \(d\)(\(d \in \{1,2,3\}\))。

再一行整数 \(q\)(\(1 \le q \le 1000\))。随后 \(q\) 个操作:

  • 1 x:执行清空确认,\(x \in \{1,2\}\)。
  • 2:展示当前花名册。

输出格式

按操作依次输出,行末换行。

showInfo 格式:

职工编号:编号职工姓名:姓名岗位:岗位岗位职责:职责

岗位:\(1\) 员工,\(2\) 经理,\(3\) 总裁。

样例

输入 #1

1
1 张三 1
5
2
1 2
2
1 1
2

输出 #1

职工编号:1 职工姓名:张三 岗位:员工 岗位职责:完成经理交给的任务
返回
职工编号:1 职工姓名:张三 岗位:员工 岗位职责:完成经理交给的任务
清空成功
文件不存在或记录为空

输入 #2

0
2
1 1
2

输出 #2

清空成功
文件不存在或记录为空

说明

  • \(x=2\) 只返回,不得截断文件,也不得释放内存。
  • 清空后人数为 \(0\)、数组指针为空、空档标志为真,再展示只能走空档提示。
  • 释放顺序必须是「每个对象 → 指针数组」,析构函数同样遵守。

信息

ID
1165
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
上传者