Projeto_faculdade


SUBMITTED BY: Guest

DATE: May 4, 2024, 4:13 p.m.

FORMAT: Python 3

SIZE: 6.6 kB

HITS: 122

  1. # criação da classe livro
  2. class Livro:
  3. # criando atributos
  4. def __init__(self, Nome_livro, autor, qtda_copias, usuario_emprestimo=None):
  5. self.titulo = Nome_livro
  6. self.autor = autor
  7. self.num_copias = qtda_copias
  8. self.num_copias_disponiveis = qtda_copias
  9. self.usuario_emprestimo = usuario_emprestimo
  10. # criando função para edição
  11. def alterar_usuario_emprestimo(self, novo_usuario_emprestimo):
  12. self.usuario_emprestimo = novo_usuario_emprestimo
  13. # criação classe Usario para cadstro
  14. class Usuario:
  15. def __init__(self, nome, Matricula, CPF, contato):
  16. self.nome = nome
  17. self.Matricula = Matricula
  18. self.CPF = CPF
  19. self.contato = contato
  20. # Criação classe biblioteca
  21. class Biblioteca:
  22. # Inicialização da classe Biblioteca com duas listas vazias para armazenar os livros e usuários cadastrados.
  23. def __init__(self):
  24. self.livros = []
  25. self.usuarios = []
  26. #Método para cadastrar um livro na biblioteca.
  27. def cadastrar_livro(self, livro):
  28. self.livros.append(livro)
  29. # Método para cadastrar um usuário na biblioteca.
  30. def cadastrar_usuario(self, usuario):
  31. self.usuarios.append(usuario)
  32. # Emprestimo com a atribuição da pessoa ao livro e subtração de unidades disponiveis
  33. #bloco # método emprestar_livro E # método devolver_livro :Solcita as informações para baixa ou ingresso da unidade disponivel
  34. # emprestar_livro
  35. def emprestar_livro(self, titulo, matricula_usuario):
  36. usuario = next((u for u in self.usuarios if u.Matricula == matricula_usuario), None)
  37. if usuario:
  38. for livro in self.livros:
  39. if livro.titulo == titulo:
  40. if livro.num_copias_disponiveis > 0:
  41. livro.num_copias_disponiveis -= 1
  42. livro.alterar_usuario_emprestimo( usuario.nome + " Matricula: " + usuario.Matricula)
  43. print(f"{livro.titulo} emprestado para {usuario.nome}.")
  44. return
  45. else:
  46. print("Este livro não está disponível para empréstimo.")
  47. return
  48. print("Livro não encontrado.")
  49. else:
  50. print("Usuário não encontrado.")
  51. # devolver_livro
  52. def devolver_livro(self, titulo):
  53. for livro in self.livros:
  54. if livro.titulo == titulo:
  55. livro.num_copias_disponiveis += 1
  56. livro.alterar_usuario_emprestimo(None)
  57. print(f"{livro.titulo} devolvido com sucesso.")
  58. return
  59. print("Livro não encontrado.")
  60. # método método para pesquisar livros
  61. def consultar_livros(self, termo):
  62. encontrados = []
  63. for livro in self.livros:
  64. if termo.lower() in livro.titulo.lower() or termo.lower() in livro.autor.lower():
  65. encontrados.append(livro)
  66. if encontrados:
  67. print("Livros encontrados:")
  68. for livro in encontrados:
  69. print(f"Título: {livro.titulo}, Autor: {livro.autor}, Disponíveis: {livro.num_copias_disponiveis}")
  70. else:
  71. print("Nenhum livro encontrado.")
  72. # Metódos para para extração de relatórios
  73. def relatorio_livros_disponiveis(self):
  74. print("Lista de livros disponíveis:")
  75. for livro in self.livros:
  76. print(f"Título: {livro.titulo}, Autor: {livro.autor}, Disponíveis: {livro.num_copias_disponiveis}")
  77. def relatorio_livros_emprestados(self):
  78. print("Lista de livros emprestados:")
  79. for livro in self.livros:
  80. if livro.usuario_emprestimo:
  81. print(f"Título: {livro.titulo}, Autor: {livro.autor}, Usuário de empréstimo: {livro.usuario_emprestimo}")
  82. def relatorio_usuarios(self):
  83. print("Lista de usuários cadastrados:")
  84. for usuario in self.usuarios:
  85. print(f"Nome: {usuario.nome}, Matrícula: {usuario.Matricula}, CPF: {usuario.CPF}, Contato: {usuario.contato}")
  86. # interface simples para usuario
  87. def exibir_menu():
  88. print("\n Gerenciamento de biblioteca")
  89. print("(1) Cadastro de livro")
  90. print("(2) Cadastro de usuário")
  91. print("(3) Emprestimo de livro")
  92. print("(4) Devolução de livro")
  93. print("(5) Procurar livros")
  94. print("(6) Livros disponíveis")
  95. print("(7) Livros emprestados")
  96. print("(8) Usuários cadastrados")
  97. print("(9) Finalizar sessão")
  98. #lógica para execução do menu
  99. def main():
  100. biblioteca = Biblioteca()
  101. while True:
  102. exibir_menu()
  103. opcao = input("Escolha uma das opções: ")
  104. if opcao == "1":
  105. Nome_livro = input("Digite o Nome do livro: ")
  106. autor = input("Digite o nome do autor: ")
  107. qtda_copias = int(input("Digite o número de cópias disponíveis: "))
  108. livro = Livro(Nome_livro, autor, qtda_copias)
  109. biblioteca.cadastrar_livro(livro)
  110. print("Livro cadastrado com sucesso.")
  111. elif opcao == "2":
  112. nome = input("Digite o nome do usuário: ")
  113. Matricula = input("Digite o número de Matrícula: ")
  114. CPF = input("Digite o número de CPF: ")
  115. contato = input("Digite as informações de contato: ")
  116. usuario = Usuario(nome, Matricula, CPF, contato)
  117. biblioteca.cadastrar_usuario(usuario)
  118. print("Usuário cadastrado com sucesso.")
  119. elif opcao == "3":
  120. Nome_livro = input("Digite o título do livro a ser emprestado: ")
  121. matricula_usuario = input("Digite o número de matrícula do usuário: ")
  122. biblioteca.emprestar_livro(Nome_livro, matricula_usuario)
  123. elif opcao == "4":
  124. Nome_livro = input("Digite o título do livro a ser devolvido: ")
  125. biblioteca.devolver_livro(Nome_livro)
  126. elif opcao == "5":
  127. termo = input("Digite o termo de busca (título ou autor): ")
  128. biblioteca.consultar_livros(termo)
  129. elif opcao == "6":
  130. biblioteca.relatorio_livros_disponiveis()
  131. elif opcao == "7":
  132. biblioteca.relatorio_livros_emprestados()
  133. elif opcao == "8":
  134. biblioteca.relatorio_usuarios()
  135. elif opcao == "9":
  136. print("Voltar")
  137. break
  138. else:
  139. print("Opção inválida. Tente novamente.")
  140. if __name__ == "__main__":
  141. main()

comments powered by Disqus