Héritage et polymorphisme : système de gestion des véhicules

Swift Hard classes

Tâche «Héritage et polymorphisme : système de gestion des véhicules»

Développez une hiérarchie de classes pour gérer un parc de véhicules. La classe de base Vehicle contient les propriétés brand (String) et year (Int), ainsi qu'une méthode description() retournant une chaîne de la forme "Vehicle: brand year". La classe Car hérite de Vehicle et ajoute la propriété fuelType (String, peut être "petrol", "diesel", "electric") et redéfinit description() pour retourner "Car: brand year, fuel: fuelType". La classe Bicycle hérite de Vehicle et ajoute la propriété type (String, peut être "mountain", "road", "city") et redéfinit description() pour retourner "Bicycle: brand year, type: type". La classe Fleet gère un tableau de Vehicle et possède une méthode addVehicle(_: Vehicle) pour ajouter un véhicule, une méthode listDescriptions() pour afficher (via print) les descriptions de tous les véhicules dans l'ordre d'ajout (chacune sur une nouvelle ligne) et une méthode countByYear(year: Int) -> Int, retournant le nombre de véhicules de l'année spécifiée. Données d'entrée : d'abord un entier N (1 ≤ N ≤ 100) — le nombre de véhicules. Ensuite, pour chaque véhicule, on saisit une chaîne de type ("Car" ou "Bicycle") et les propriétés correspondantes : brand (chaîne sans espaces), year (entier de 1900 à 2023), et pour Car — fuelType (chaîne), pour Bicycle — type (chaîne). Après la saisie de tous les véhicules, saisissez un entier (année) pour le comptage, séparé par un espace. Il est garanti que toutes les données sont correctes. Affichez d'abord les résultats de listDescriptions(), puis sur une nouvelle ligne le nombre de véhicules de l'année spécifiée.

Format d\ entrée

Un entier N. Puis N blocs : une chaîne de type, une chaîne brand, un entier year, pour Car une chaîne fuelType, pour Bicycle une chaîne type. Puis un entier yearForCount.

Format de sortie

D'abord N lignes de descriptions (chaque description sur une ligne séparée), puis sur une nouvelle ligne un entier — le nombre de véhicules dont l'année est égale à yearForCount.

Exemples

Exemple 1

ENTRÉE
10
SORTIE
30

Exemple 2

ENTRÉE
6 4 4 1 1 2 3
SORTIE
1 1 4 4 2 3
main.swift