Gestion d'une bibliothèque de livres avec des structures

Rust Medium structs

Tâche «Gestion d'une bibliothèque de livres avec des structures»

Créez une structure Book avec les champs title (String), author (String), year (u32) et is_available (bool). Implémentez des fonctions pour ajouter un livre, rechercher par auteur et emprunter un livre (qui change is_available à false). Données d'entrée : d'abord un nombre n — le nombre d'opérations, puis n lignes, chacune commençant par une commande : "add" (ajouter un livre avec les paramètres title, author, year), "find" (trouver tous les livres d'un auteur et les afficher dans l'ordre d'ajout), "borrow" (emprunter un livre par title — s'il est disponible, le rendre indisponible). Afficher le résultat pour les commandes find et borrow.

Format d\ entrée

Première ligne : un entier n (1 ≤ n ≤ 1000). Ensuite n lignes : pour la commande "add" — add <title> <author> <year>, pour "find" — find <author>, pour "borrow" — borrow <title>.

Format de sortie

Pour chaque commande find, affichez la liste des livres de l'auteur au format "title by author (year) - available" ou "title by author (year) - borrowed" séparés par une virgule et un espace sur une seule ligne. Pour la commande borrow, affichez "success" si le livre est emprunté, sinon "not available".

Exemples

Exemple 1

ENTRÉE
3 Book1 Author1 2000 0 Book2 Author2 2010 1 Book3 Author3 2020 0 print_all
SORTIE
main.rs