الوراثة وتعدد الأشكال: نظام إدارة المركبات
Swift
Hard
classes
مهمة «الوراثة وتعدد الأشكال: نظام إدارة المركبات»
```html
قم بتطوير تسلسل هرمي للفئات لإدارة أسطول المركبات. تحتوي الفئة الأساسية 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 (سلسلة نصية). بعد إدخال جميع المركبات، قم بإخراج السنة (عدد صحيح) مفصولة بمسافة للعد. يُضمن أن جميع البيانات صحيحة. قم أولاً بإخراج نتائج listDescriptions()، ثم في سطر جديد عدد المركبات في السنة المحددة.
```
قم بتطوير تسلسل هرمي للفئات لإدارة أسطول المركبات. تحتوي الفئة الأساسية 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 (سلسلة نصية). بعد إدخال جميع المركبات، قم بإخراج السنة (عدد صحيح) مفصولة بمسافة للعد. يُضمن أن جميع البيانات صحيحة. قم أولاً بإخراج نتائج listDescriptions()، ثم في سطر جديد عدد المركبات في السنة المحددة.
```
تنسيق الإدخال
عدد صحيح N. ثم N كتلة: سلسلة نوع، سلسلة ماركة، عدد صحيح سنة، للسيارة سلسلة نوع الوقود، للدراجة سلسلة نوع. ثم عدد صحيح سنة للعد.
تنسيق الإخراج
أولاً N سطور من الأوصاف (كل وصف في سطر منفصل)، ثم في سطر جديد عدد صحيح — عدد المركبات التي سنة صنعها تساوي yearForCount.
أمثلة
مثال 1
الإدخال
10
الإخراج
30
مثال 2
الإدخال
6
4 4 1 1 2 3
الإخراج
1 1 4 4 2 3
main.swift