HM141 电脑零件抽象组装
HM141 电脑零件抽象组装
来源: 第 141 集 类和对象-多态-案例3-电脑组装需求分析
难度: 入门
时间限制: 1s
空间限制: 64MB
题目描述
一台电脑主板上至少要插三样零件:CPU(负责计算)、显卡(负责显示)、内存条(负责存储)。不同厂商可以生产同一种零件,主板上也可以混插不同厂商的零件。
请按下面的抽象来实现,不能只把品牌名拼成字符串打印:
- 先抽象出三个零件基类,基类里**只声明纯虚接口、不写具体实现**:
CPU:纯虚函数calculate()VideoCard:纯虚函数display()Memory:纯虚函数storage()
- 再写电脑类
Computer。构造时传入三个零件指针;提供work(),内部依次调用三个零件的工作接口:先计算,再显示,再存储。 - 两个具体厂商各自实现全部三种零件:
- Intel:
IntelCPU、IntelVideoCard、IntelMemory - Lenovo:
LenovoCPU、LenovoVideoCard、LenovoMemory
- Intel:
- 具体零件必须公有继承对应抽象类,并重写纯虚函数。重写后的函数按下面固定句子输出一行。
读入若干台电脑的零件搭配。对每一台电脑,先用对应厂商的具体零件对象组装,再调用 work()。
输入格式
第一行一个整数 \(n\)(\(1 \le n \le 100\)),表示要组装的电脑台数。
接下来 \(n\) 行,每行三个单词 \(c\)、\(v\)、\(m\),分别是该台电脑的 CPU、显卡、内存品牌,每个单词只可能是 Intel 或 Lenovo。
输出格式
对每一台电脑输出恰好三行(work 的三次调用),行末换行:
- CPU 为 Intel:
Intel的CPU开始计算了! - CPU 为 Lenovo:
Lenovo的CPU开始计算了! - 显卡为 Intel:
Intel的显卡开始显示了! - 显卡为 Lenovo:
Lenovo的显卡开始显示了! - 内存为 Intel:
Intel的内存条开始存储了! - 内存为 Lenovo:
Lenovo的内存条开始存储了!
感叹号是中文全角 !。
样例
输入 #1
3
Intel Intel Intel
Lenovo Lenovo Lenovo
Intel Lenovo Intel
输出 #1
Intel的CPU开始计算了!
Intel的显卡开始显示了!
Intel的内存条开始存储了!
Lenovo的CPU开始计算了!
Lenovo的显卡开始显示了!
Lenovo的内存条开始存储了!
Intel的CPU开始计算了!
Lenovo的显卡开始显示了!
Intel的内存条开始存储了!
输入 #2
1
Lenovo Intel Lenovo
输出 #2
Lenovo的CPU开始计算了!
Intel的显卡开始显示了!
Lenovo的内存条开始存储了!
说明
- 样例 #1 对应三种典型搭配:全 Intel、全 Lenovo、以及交叉插零件。
- 抽象基类不能实例化;电脑只依赖三个抽象指针,因此换厂商不必改
Computer。 - 必须通过虚函数动态绑定打出句子,不能按输入单词直接拼输出。
信息
- ID
- 1140
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者