HM141 电脑零件抽象组装

HM141 电脑零件抽象组装

HM141 电脑零件抽象组装

来源: 第 141 集 类和对象-多态-案例3-电脑组装需求分析

难度: 入门

时间限制: 1s

空间限制: 64MB

题目描述

一台电脑主板上至少要插三样零件:CPU(负责计算)、显卡(负责显示)、内存条(负责存储)。不同厂商可以生产同一种零件,主板上也可以混插不同厂商的零件。

请按下面的抽象来实现,不能只把品牌名拼成字符串打印:

  1. 先抽象出三个零件基类,基类里**只声明纯虚接口、不写具体实现**:
    • CPU:纯虚函数 calculate()
    • VideoCard:纯虚函数 display()
    • Memory:纯虚函数 storage()
  2. 再写电脑类 Computer。构造时传入三个零件指针;提供 work(),内部依次调用三个零件的工作接口:先计算,再显示,再存储。
  3. 两个具体厂商各自实现全部三种零件:
    • Intel:IntelCPUIntelVideoCardIntelMemory
    • Lenovo:LenovoCPULenovoVideoCardLenovoMemory
  4. 具体零件必须公有继承对应抽象类,并重写纯虚函数。重写后的函数按下面固定句子输出一行。

读入若干台电脑的零件搭配。对每一台电脑,先用对应厂商的具体零件对象组装,再调用 work()

输入格式

第一行一个整数 \(n\)(\(1 \le n \le 100\)),表示要组装的电脑台数。

接下来 \(n\) 行,每行三个单词 \(c\)、\(v\)、\(m\),分别是该台电脑的 CPU、显卡、内存品牌,每个单词只可能是 IntelLenovo

输出格式

对每一台电脑输出恰好三行(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
通过率
?
上传者