إدارة مكتبة الكتب باستخدام الفئات
Kotlin
Medium
classes
مهمة «إدارة مكتبة الكتب باستخدام الفئات»
أنشئ صنفًا (class) باسم `Book` يحتوي على الحقول `title` (العنوان)، `author` (المؤلف) و `year` (سنة النشر). قم بتنفيذ صنف `Library` يخزن قائمة من الكتب ويوفر دوال (methods) مثل `addBook(book: Book)` لإضافة كتاب، `findBooksByAuthor(author: String): List<Book>` للبحث عن جميع الكتب لمؤلف معين، و `getBooksAfterYear(year: Int): List<Book>` للحصول على الكتب المنشورة بعد سنة محددة.
بيانات الإدخال: أولاً عدد صحيح `N` يمثل عدد العمليات. بعد ذلك، `N` سطر، كل سطر يحتوي على أمر:
`ADD <title> <author> <year>` — لإضافة كتاب؛
`FIND_AUTHOR <author>` — لعرض عناوين كتب هذا المؤلف مفصولة بفاصلة حسب ترتيب الإضافة؛
`FIND_YEAR <year>` — لعرض عناوين الكتب المنشورة بعد السنة المحددة، مفصولة بفاصلة حسب ترتيب الإضافة.
إذا لم يتم العثور على أي كتب، اطبع "Not found".
بيانات الإدخال: أولاً عدد صحيح `N` يمثل عدد العمليات. بعد ذلك، `N` سطر، كل سطر يحتوي على أمر:
`ADD <title> <author> <year>` — لإضافة كتاب؛
`FIND_AUTHOR <author>` — لعرض عناوين كتب هذا المؤلف مفصولة بفاصلة حسب ترتيب الإضافة؛
`FIND_YEAR <year>` — لعرض عناوين الكتب المنشورة بعد السنة المحددة، مفصولة بفاصلة حسب ترتيب الإضافة.
إذا لم يتم العثور على أي كتب، اطبع "Not found".
تنسيق الإدخال
<div class="task-description">
<p>عدد صحيح N (1 ≤ N ≤ 1000). ثم N سطرًا من الأوامر.</p>
</div>
تنسيق الإخراج
لكل أمر FIND_AUTHOR أو FIND_YEAR — سلسلة تحتوي على النتيجة (أسماء الكتب مفصولة بفواصل) أو "Not found".
أمثلة
مثال 1
الإدخال
3
ADD Мастер и Маргарита Булгаков 1967
ADD Собачье сердце Булгаков 1925
FIND_AUTHOR Булгаков
الإخراج
Мастер и Маргарита, Собачье сердце
مثال 2
الإدخال
4
add TheHobbit J.R.R.Tolkien 1937
add TheLordOfTheRings J.R.R.Tolkien 1954
find J.R.R.Tolkien
borrow TheHobbit
الإخراج
مثال 3
الإدخال
4
ADD 1984 Оруэлл 1949
ADD Скотный двор Оруэлл 1945
FIND_YEAR 1946
FIND_AUTHOR Оруэлл
الإخراج
1984
1984, Скотный двор
main.kt