HM290 机房总台
HM290 机房总台
来源: 第 290 集 机房预约系统-管理员类创建
难度: 普及-
时间限制: 1s
空间限制: 64MB
题目描述
身份档案 Identity 仍是抽象基类(用户名、密码、纯虚 operMenu)。学生、教师、管理员三类都以 public 方式继承它。本问只操纵管理员。
管理员 Manager 没有职工号,只有姓名和密码。需要:
- 默认构造:姓名与密码为
#; - 有参构造:传入姓名、密码;
- 重写
operMenu:打印管理子菜单; addPerson:添加学生账号(类型 \(1\):学号、姓名、密码)或教师账号(类型 \(2\):职工号、姓名、密码);showPerson:先输出全部学生,再输出全部教师;若两类都空,输出NONE;showComputer:输出全部机房(机房号与容量);若没有机房,输出NONE;cleanFile:清空全部预约记录,并输出被清空的条数。
先用有参构造建好一名管理员,再读入已有学生、教师、机房和预约,然后处理指令:
WHO:输出该管理员的姓名、密码;MENU:输出管理子菜单;ADD t id name pwd:添加一类账号;SHOW:查看账号;COMP:查看机房;CLEAN:清空预约,输出CLEARED x(\(x\) 为清空前的条数);DEF:用默认构造再建一名管理员并输出其姓名、密码;BASE:输出ABSTRACT。
必须用身份抽象基类加管理员派生类实现,添加/查看/机房/清空必须走对应成员函数。
输入格式
第一行:管理员姓名、密码。
第二行四个整数 \(n\)、\(m\)、\(p\)、\(r\):已有学生数、教师数、机房数、预约条数。
接下来 \(n\) 行:学号、姓名、密码。
接下来 \(m\) 行:职工号、姓名、密码。
接下来 \(p\) 行:机房号、容量。
接下来 \(r\) 行:每行一个预约记号(一个不含空白的字符串,只用于计数,清空时整表丢掉)。
下一行一个整数 \(q\)。
接下来 \(q\) 行,每行一条指令。
输出格式
按指令依次输出。管理子菜单固定五行:
1.添加账号
2.查看账号
3.查看机房
4.清空预约
0.注销登录
SHOW 时每名学生一行,前缀 stu;每名教师一行,前缀 tea。COMP 时机房号与容量用空格分隔。
样例
输入 #1
admin 123
2 1 2 3
1 Zhang 123
2 Li 456
5 Wang 111
1 20
2 30
a
b
c
7
WHO
MENU
SHOW
COMP
ADD 1 3 Chen 789
SHOW
CLEAN
输出 #1
admin 123
1.添加账号
2.查看账号
3.查看机房
4.清空预约
0.注销登录
stu 1 Zhang 123
stu 2 Li 456
tea 5 Wang 111
1 20
2 30
stu 1 Zhang 123
stu 2 Li 456
stu 3 Chen 789
tea 5 Wang 111
CLEARED 3
输入 #2
root 666
0 0 0 0
4
SHOW
COMP
CLEAN
DEF
输出 #2
NONE
NONE
CLEARED 0
# #
说明
\(0 \le n,m,p,r \le 100\),\(1 \le q \le 200\)。编号为不超过 \(10^9\) 的非负整数。本问不检测重复账号。
管理员有参构造只接收姓名和密码,不要给管理员加职工号。
信息
- ID
- 1289
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者