Descrição: Implemente um sistema de gerenciamento de biblioteca com funcionalidades para adicionar, remover, listar livros e gerenciar empréstimos. Os dados da biblioteca e dos usuários devem ser salvos em arquivos para que possam ser carregados posteriormente.
Requisitos:
-
Crie a classe
Livro
no arquivoLivro.py
com os seguintes atributos:titulo
autor
ano
disponivel
(inicialmenteTrue
)
-
Crie a classe
Usuario
no arquivoUsuario.py
com os seguintes atributos:nome
livros_emprestados
(uma lista para armazenar os livros emprestados)
-
Crie a classe
Biblioteca
no arquivoBiblioteca.py
com os seguintes métodos:adicionar_livro(livro)
remover_livro(titulo)
listar_livros()
emprestar_livro(titulo, usuario)
devolver_livro(titulo, usuario)
salvar_dados()
: Salva os dados da biblioteca e dos usuários em arquivos.carregar_dados()
: Carrega os dados da biblioteca e dos usuários a partir de arquivos.
-
Crie um script
main.py
que:- Permita Adicionar livros à biblioteca.
- Permita Criar usuários.
- Permita Realizar operações de empréstimo e devolução.
- Permita Listar todos os livros, indicando quais estão disponíveis e quais estão emprestados.
- Permita Salvar e carregar os dados da biblioteca e dos usuários.
Estrutura de Arquivos:
trabalho_01/
Livro.py
Usuario.py
Biblioteca.py
main.py
Código de Exemplo:
Livro.py
class Livro:
def __init__(self, titulo, autor, ano):
self.titulo = titulo
self.autor = autor
self.ano = ano
self.disponivel = True
Usuario.py
class Usuario:
def __init__(self, nome):
self.nome = nome
self.livros_emprestados = []
Biblioteca.py
class Biblioteca:
def __init__(self):
self.livros = []
self.usuarios = []
def adicionar_livro(self, livro):
pass
def remover_livro(self, titulo):
pass
def listar_livros(self):
pass
def emprestar_livro(self, titulo, usuario):
pass
def devolver_livro(self, titulo, usuario):
pass
def salvar_dados(self):
pass
def carregar_dados(self):
pass
main.py
from Biblioteca import Biblioteca
from Livro import Livro
from Usuario import Usuario
if __name__ == "__main__":
biblio = Biblioteca()
biblio.carregar_dados()
livro1 = Livro("1984", "George Orwell", 1949)
livro2 = Livro("O Senhor dos Anéis", "J.R.R. Tolkien", 1954)
livro3 = Livro("Dom Quixote", "Miguel de Cervantes", 1605)
biblio.adicionar_livro(livro1)
biblio.adicionar_livro(livro2)
biblio.adicionar_livro(livro3)
usuario1 = Usuario("Alice")
usuario2 = Usuario("Bob")
biblio.usuarios.append(usuario1)
biblio.usuarios.append(usuario2)
biblio.emprestar_livro("1984", usuario1)
biblio.emprestar_livro("O Senhor dos Anéis", usuario2)
biblio.devolver_livro("1984", usuario1)
biblio.listar_livros()
biblio.salvar_dados()
Será necessário que os dados tanto do nome dos usuários quanto do livro venham do usuário que está executando o código no terminal
Descrição: Implemente um sistema de gerenciamento de contas bancárias que permita criar contas, depositar, sacar, verificar saldo e realizar transferências entre contas. Os dados das contas devem ser salvos em arquivos para que possam ser carregados posteriormente.
Requisitos:
-
Crie a classe
ContaBancaria
no arquivoContaBancaria.py
com os seguintes atributos:numero
titular
saldo
(inicialmente 0)
-
Adicione os seguintes métodos à classe
ContaBancaria
:depositar(valor)
sacar(valor)
exibir_saldo()
transferir(valor, conta_destino)
to_dict()
: Retorna um dicionário representando a conta.from_dict(d)
: Cria uma conta a partir de um dicionário.
-
Crie uma classe
Banco
no arquivoBanco.py
com os seguintes métodos:adicionar_conta(conta)
remover_conta(numero)
buscar_conta(numero)
salvar_dados()
carregar_dados()
-
Crie um script
main.py
que:- Permita Criar contas bancárias.
- Permita Realizar operações de depósito, saque e transferência.
- Permita Exibir os saldos das contas.
- Permita Salvar e carregar os dados das contas.
Estrutura de Arquivos:
trabalho_02/
ContaBancaria.py
Banco.py
main.py
Código de Exemplo:
ContaBancaria.py
class ContaBancaria:
def __init__(self, numero, titular):
pass
Banco.py
from ContaBancaria import ContaBancaria
class Banco:
def __init__(self):
self.contas = []
def adicionar_conta(self, conta):
pass
def remover_conta(self, numero):
pass
def buscar_conta(self, numero):
pass
def salvar_dados(self):
pass
def carregar_dados(self):
pass
main.py
from Banco import Banco
from ContaBancaria import ContaBancaria
if __name__ == "__main__":
banco = Banco()
banco.carregar_dados()
conta1 = ContaBancaria("001", "Alice")
conta2 = ContaBancaria("002", "Bob")
banco.adicionar_conta(conta1)
banco.adicionar_conta(conta2)
conta1.depositar(1000)
conta1.sacar(250)
conta1.exibir_saldo()
conta2.depositar(500)
conta1.transferir(100, conta2)
conta2.exibir_saldo()
conta1.exibir_saldo()
conta2.exibir_saldo()
banco.salvar_dados()
Onde os do numero da conta será um numero de 4 digitos aleatório. E os dados do nome e dos valores a depositar e sacar deverão vir do input do usuário.
Descrição: Implemente um sistema de gerenciamento de tarefas onde se pode adicionar, remover, listar tarefas e definir a prioridade das tarefas. Os dados das tarefas devem ser salvos em arquivos para que possam ser carregados posteriormente.
Requisitos:
-
Crie a classe
Tarefa
no arquivoTarefa.py
com os seguintes atributos:descricao
status
(inicialmente "Pendente")prioridade
(pode ser "Baixa", "Média" ou "Alta")
-
Adicione os seguintes métodos à classe
Tarefa
:marcar_completa()
__str__()
to_dict()
: Retorna um dicionário representando a tarefa.from_dict(d)
: Cria uma tarefa a partir de um dicionário.
-
Crie uma classe
GerenciadorDeTarefas
no arquivoGerenciadorDeTarefas.py
com os seguintes métodos:adicionar_tarefa(tarefa)
remover_tarefa(descricao)
listar_tarefas()
: Lista todas as tarefas, ordenadas por prioridade.salvar_dados()
carregar_dados()
-
Crie um script
main.py
que:- Permita adicionar tarefas com diferentes prioridades.
- Permita Remover uma tarefa.
- Permita Marcar uma tarefa como completa.
- Permita Listar todas as tarefas, ordenadas por prioridade.
- Permita Salvar e carregue os dados das tarefas.
Estrutura de Arquivos:
trabalho_03/
Tarefa.py
GerenciadorDeTarefas.py
main.py
Código de Exemplo:
Tarefa.py
class Tarefa:
def __init__(self, descricao, prioridade):
pass
def marcar_completa(self):
pass
def to_dict(self):
pass
GerenciadorDeTarefas.py
class GerenciadorDeTarefas:
def __init__(self):
self.tarefas = []
def adicionar_tarefa(self, tarefa):
pass
def remover_tarefa(self, descricao):
pass
main.py
from GerenciadorDeTarefas import GerenciadorDeTarefas
from Tarefa import Tarefa
if __name__ == "__main__":
gerenciador = GerenciadorDeTarefas()
gerenciador.carregar_dados()
tarefa1 = Tarefa("Estudar Python", "Alta")
tarefa2 = Tarefa("Fazer exercícios", "Média")
tarefa3 = Tarefa("Ler um livro", "Baixa")
gerenciador.adicionar_tarefa(tarefa1)
gerenciador.adicionar_tarefa(tarefa2)
gerenciador.adicionar_tarefa(tarefa3)
gerenciador.remover_tarefa("Fazer exercícios")
tarefa1.marcar_completa()
gerenciador.listar_tarefas()
gerenciador.salvar_dados()
Onde os dados da tarefa e a prioridade da mesma deverá vir do input do usuário.