HM287 身份基类

HM287 身份基类

HM287 身份基类

来源: 第 287 集 机房预约系统-身份的抽象基类创建

难度: 普及-

时间限制: 1s

空间限制: 64MB

题目描述

预约系统里学生、教师、管理员都要登录,共性是用户名和密码;特性则不同:学生有学号,教师有职工号,管理员没有第三项。请把共性抽到抽象基类 Identity 里:两个字符串字段表示姓名(用户名)和密码,再提供一个纯虚函数 operMenu(子菜单)。纯虚函数没有函数体,子类必须重写,否则子类自己也还是抽象类,不能实例化。基类本身不能直接定义对象。

本题在单文件里完成:基类只保留声明,三个派生类各自重写 operMenu,输出不同的子菜单标题。用基类指针调用时要走到派生类版本,这就是多态。

先输出一行 共性字段 用户名 密码,再按输入顺序对每个人输出:

name pwd 子菜单标题

三种标题固定为:学生子菜单教师子菜单管理员子菜单

输入格式

第一行一个整数 \(n\)。

接下来 \(n\) 行,每行先是身份类型 StudentTeacherAdmin,接着姓名和密码(不含空白)。学生和教师后面再跟一个整数编号(学号或职工号,本题只读入,不输出);管理员没有这项。

输出格式

第一行固定为 共性字段 用户名 密码

随后 \(n\) 行,格式见题目描述。

样例

输入 #1

3
Student 张三 123 1
Teacher 老王 123456 5
Admin admin 123

输出 #1

共性字段 用户名 密码
张三 123 学生子菜单
老王 123456 教师子菜单
admin 123 管理员子菜单

输入 #2

2
Admin root 000
Student 李四 456 2

输出 #2

共性字段 用户名 密码
root 000 管理员子菜单
李四 456 学生子菜单

说明

\(1 \le n \le 100\)。必须通过基类指针(或引用)调用 operMenu,不要按类型字符串直接打印标题。编号范围与 \(int\) 一致。

信息

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