继承与多态:车辆管理系统

Swift Hard classes

任务 «继承与多态:车辆管理系统»

设计一个用于管理车辆 fleet 的类层次结构。基类 Vehicle 包含属性 brand(字符串)和 year(整数),以及方法 description(),返回格式为 "Vehicle: brand year" 的字符串。Car 类继承 Vehicle 并添加属性 fuelType(字符串,可选值为 "petrol"、"diesel"、"electric"),并重写 description() 使其返回 "Car: brand year, fuel: fuelType"。Bicycle 类继承 Vehicle 并添加属性 type(字符串,可选值为 "mountain"、"road"、"city"),并重写 description() 使其返回 "Bicycle: brand year, type: type"。Fleet 类管理一个 Vehicle 数组,并具有方法 addVehicle(_: Vehicle) 用于添加车辆,方法 listDescriptions() 用于按添加顺序在屏幕上(通过 print)输出所有车辆的描述(每个描述占一行),以及方法 countByYear(year: Int) -> Int,返回指定年份的车辆数量。输入数据:首先是一个整数 N(1 ≤ N ≤ 100)——车辆的数量。然后对于每辆车,输入一行类型("Car" 或 "Bicycle")以及相应的属性:brand(不含空格的字符串)、year(1900 到 2023 之间的整数),对于 Car 还需输入 fuelType(字符串),对于 Bicycle 还需输入 type(字符串)。输入完所有车辆后,输入一个整数 year(年份)用于计数。保证所有数据正确。首先输出 listDescriptions() 的结果,然后在下一行输出指定年份的车辆数量。

输入格式

整数 N。然后是 N 个块:字符串类型,字符串品牌,整数年份,对于 Car 是字符串燃料类型,对于 Bicycle 是字符串类型。然后是整数 yearForCount。

输出格式

首先有 N 行描述(每个描述单独一行),然后在下一行有一个整数——表示年份等于 yearForCount 的交通工具数量。

示例

示例 1

输入
10
输出
30

示例 2

输入
6 4 4 1 1 2 3
输出
1 1 4 4 2 3
main.swift