<div> <p>إدارة مكتبة الكتب باستخدام الهياكل</p> </div>
Rust
Medium
structs
مهمة «<div> <p>إدارة مكتبة الكتب باستخدام الهياكل</p> </div>»
أنشئ هيكل `Book` يحتوي على الحقول التالية: `title` (سلسلة نصية)، `author` (سلسلة نصية)، `year` (عدد صحيح u32)، و`is_available` (قيمة منطقية). قم بتنفيذ دوال لإضافة كتاب، والبحث حسب المؤلف، واستعارة كتاب (تغيير `is_available` إلى `false`).
**بيانات الإدخال:** أولاً رقم `n` — عدد العمليات، ثم `n` سطر، يبدأ كل سطر بأمر:
- `"add"` (إضافة كتاب مع المعاملات: العنوان، المؤلف، السنة)،
- `"find"` (إيجاد جميع كتب المؤلف وعرضها حسب ترتيب الإضافة)،
- `"borrow"` (استعارة كتاب حسب العنوان — إذا كان متاحًا، اجعله غير متاح).
**الإخراج:** عرض النتيجة لأوامر `find` و `borrow`.
**بيانات الإدخال:** أولاً رقم `n` — عدد العمليات، ثم `n` سطر، يبدأ كل سطر بأمر:
- `"add"` (إضافة كتاب مع المعاملات: العنوان، المؤلف، السنة)،
- `"find"` (إيجاد جميع كتب المؤلف وعرضها حسب ترتيب الإضافة)،
- `"borrow"` (استعارة كتاب حسب العنوان — إذا كان متاحًا، اجعله غير متاح).
**الإخراج:** عرض النتيجة لأوامر `find` و `borrow`.
تنسيق الإدخال
السطر الأول: عدد صحيح n (1 ≤ n ≤ 1000). ثم n سطر: للأمر "add" — add <title> <author> <year>، للأمر "find" — find <author>، للأمر "borrow" — borrow <title>.
تنسيق الإخراج
لكل أمر `find`، قم بإخراج قائمة كتب المؤلف بتنسيق "title by author (year) - available" أو "title by author (year) - borrowed" مفصولة بفاصلة ومسافة في سطر واحد. بالنسبة لأمر `borrow`، قم بإخراج "success" إذا تم استعارة الكتاب، وإلا "not available".
أمثلة
مثال 1
الإدخال
3
Book1 Author1 2000 0
Book2 Author2 2010 1
Book3 Author3 2020 0
print_all
الإخراج
main.rs