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

C++ Medium classes

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

Implement class Book لتخزين معلومات عن كتاب: العنوان (سلسلة نصية)، المؤلف (سلسلة نصية)، سنة النشر (عدد صحيح)، والحالة (متاح أو معار، قيمة منطقية). يجب أن تحتوي الفئة على مُنشئ لتهيئة جميع الحقول، بالإضافة إلى دوال: setStatus(bool) لتغيير الحالة، getInfo() لإرجاع سلسلة نصية تحتوي على معلومات كاملة عن الكتاب. في الدالة main، أنشئ مصفوفة من الكتب (لا تزيد عن 100)، واملأها بالبيانات من ملف الإدخال، ثم قم بمعالجة الأوامر. يُعطى أولاً رقم N — عدد الكتب، ثم N سطرًا من البيانات: العنوان المؤلف سنة_النشر الحالة (0 — متاح، 1 — معار). بعد ذلك، يُعطى أمر: 'print_all' — لعرض معلومات جميع الكتب؛ 'print_available' — لعرض الكتب المتاحة فقط؛ 'borrow <title>' — لتغيير حالة الكتاب بالعنوان المحدد إلى 'معار' (إذا لم يتم العثور على الكتاب أو كان معارًا بالفعل، اطبع رسالة مناسبة).

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

السطر الأول: عدد صحيح N (1 ≤ N ≤ 100). ثم N سطر: الاسم (سلسلة نصية بدون مسافات)، المؤلف (سلسلة نصية بدون مسافات)، السنة (عدد صحيح)، الحالة (0 أو 1). ثم سطر يحتوي على الأمر (أحد الأوامر الموصوفة).

تنسيق الإخراج

بالنسبة للأمرين 'print_all' و 'print_available' — عرض معلومات عن كل كتاب بالتنسيق: "العنوان: <العنوان>, المؤلف: <المؤلف>, السنة: <السنة>, الحالة: <متاح/مُعار>" (كل كتاب في سطر جديد). بالنسبة للأمر 'borrow' — إذا تم العثور على الكتاب وكان متاحًا، عرض "الكتاب '<العنوان>' تم إعارته." وتغيير الحالة؛ إذا لم يتم العثور عليه — "الكتاب '<العنوان>' غير موجود."؛ إذا كان مُعارًا بالفعل — "الكتاب '<العنوان>' مُعار بالفعل.".

أمثلة

مثال 1

الإدخال
2 A B 1999 1 C D 2005 0 print_available
الإخراج
Название: C, Автор: D, Год: 2005, Статус: доступна

مثال 2

الإدخال
1 X Y 2022 0 borrow X
الإخراج
Книга 'X' выдана.

مثال 3

الإدخال
Война и мир,Роман Преступление и наказание,Роман 1984,Антиутопия Мастер и Маргарита,Роман
الإخراج
Роман: 3 Антиутопия: 1
main.cpp