إدارة مكتبة الكتب باستخدام الفئات

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".

تنسيق الإدخال

<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