HM166 确认后清空档案
HM166 确认后清空档案
来源: 第 166 集 职工管理系统-清空文件实现
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
清空会把磁盘档案和内存里的职工一起丢掉,必须先让用户确认,防止误操作。实现 cleanFile:
- 读入选择 \(x\)。\(x=1\) 表示确定清空,\(x=2\) 表示返回,不改任何数据。
- 若确定清空:用
ofstream以ios::trunc打开empFile.txt。这种打开方式会删掉原文件再新建空文件;只要不再往里写数据,档案就被清空。打开后立刻close。 - 若内存指针数组不为空:先循环
delete每一个职工对象,并把该格指针置空;再delete[]整块指针数组,把数组指针置空。人数改为 \(0\),空档标志fileIsEmpty改为真。 - 输出一行
清空成功。
析构函数也必须改成同样的释放顺序:先判断数组指针是否为空,再释放每个堆区对象,最后释放数组本身。不要只 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
- 通过率
- ?
- 上传者