HM287 身份基类
HM287 身份基类
来源: 第 287 集 机房预约系统-身份的抽象基类创建
难度: 普及-
时间限制: 1s
空间限制: 64MB
题目描述
预约系统里学生、教师、管理员都要登录,共性是用户名和密码;特性则不同:学生有学号,教师有职工号,管理员没有第三项。请把共性抽到抽象基类 Identity 里:两个字符串字段表示姓名(用户名)和密码,再提供一个纯虚函数 operMenu(子菜单)。纯虚函数没有函数体,子类必须重写,否则子类自己也还是抽象类,不能实例化。基类本身不能直接定义对象。
本题在单文件里完成:基类只保留声明,三个派生类各自重写 operMenu,输出不同的子菜单标题。用基类指针调用时要走到派生类版本,这就是多态。
先输出一行 共性字段 用户名 密码,再按输入顺序对每个人输出:
name pwd 子菜单标题
三种标题固定为:学生子菜单、教师子菜单、管理员子菜单。
输入格式
第一行一个整数 \(n\)。
接下来 \(n\) 行,每行先是身份类型 Student、Teacher 或 Admin,接着姓名和密码(不含空白)。学生和教师后面再跟一个整数编号(学号或职工号,本题只读入,不输出);管理员没有这项。
输出格式
第一行固定为 共性字段 用户名 密码。
随后 \(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
- 通过率
- ?
- 上传者