Tema: Um sistema para gerenciar livros em uma biblioteca, incluindo funcionalidades para adicionar, remover e pesquisar livros, bem como para realizar o empréstimo e a devolução de livros.
Motivação: Muitas bibliotecas precisam de um sistema eficaz para gerenciar seu acervo, rastrear livros emprestados e devolvidos, e garantir que a operação seja eficiente. Este sistema permitirá a automação e a melhoria na organização das operações da biblioteca.
Modelagem UML:
- Classe Livro: Representa um livro na biblioteca.
+---------------------+
| Livro |
+---------------------+
| - titulo: str |
| - autor: str |
| - isbn: str |
| - disponivel: bool |
+---------------------+
| + emprestar(): bool |
| + devolver(): void |
+---------------------+
- Classe Usuario: Representa um usuário da biblioteca.
+---------------------------------------+
| Usuario |
+---------------------------------------+
| - nome: str |
| - id: int |
+---------------------------------------+
| + emprestar_livro(livro: Livro): bool |
| + devolver_livro(livro: Livro): void |
+---------------------------------------+
- Classe Emprestimo: Gerencia o empréstimo de livros.
+---------------------------------+
| Emprestimo |
+---------------------------------+
| - livro: Livro |
| - usuario: Usuario |
| - data_emprestimo: datetime |
| - data_devolucao: datetime |
+---------------------------------+
| + registrar_emprestimo(): void |
| + registrar_devolucao(): void |
+---------------------------------+
- Classe Biblioteca: Coordena os livros e os empréstimos.
+-----------------+
| Biblioteca |
+-----------------+
| - livros: List[Livro] |
| - usuarios: List[Usuario] |
| - emprestimos: List[Emprestimo] |
+-----------------+
| + adicionar_livro(livro: Livro): void |
| + remover_livro(livro: Livro): void |
| + buscar_livro(isbn: str): Livro |
| + registrar_emprestimo(usuario: Usuario, livro: Livro): bool |
| + registrar_devolucao(usuario: Usuario, livro: Livro): void |
+-----------------+