HM290 机房总台

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;每名教师一行,前缀 teaCOMP 时机房号与容量用空格分隔。

样例

输入 #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
通过率
?
上传者