Develop a library management system in Java that allows users to search for books by title or author, borrow available books, and return them once they have read them. The system should also allow administrators to add new books to the catalog and manage book loans.
- Introduce students to the basic concepts of object-oriented programming.
- Apply encapsulation to hide the internal implementation of classes and protect data.
- Use inheritance to create a hierarchy of classes that represent different types of books (e.g., fiction, nonfiction, reference) and add specific functionality.
- Develop a flowchart that explains the library management system.
- Desarrollar el código que represente el diagrama planteado