

Lista 1 - Exercícios Programação Orientado a Objetos Iniciante
1. Sistema de Biblioteca
Crie uma classe Livro que represente um livro de uma biblioteca.
Atributos: título, autor, ano de publicação, ISBN, disponibilidade (True/False).
Métodos: emprestar(), devolver(), exibirInformacoes().
Implemente a lógica para controlar o empréstimo e devolução de livros, garantindo que um livro só possa ser emprestado se estiver disponível.2. Gerenciador de Funcionários
Crie uma classe Funcionario para representar um colaborador de uma empresa.
Atributos: nome, cargo, salário, matrícula, departamento.
Métodos: promover(novo_cargo, aumento), transferir(novo_departamento), exibirDados().
Simule a promoção e transferência de funcionários, atualizando os dados conforme necessário.3. Controle de Animais em um Pet Shop
Crie uma classe Animal para representar os animais hospedados no pet shop.
Atributos: nome, espécie, idade, peso, dono.
Métodos: alimentar(quantidade), darBanho(), exibirFicha().
Implemente ações que alterem o estado do animal (como peso) e registrem os cuidados recebidos.4. Sistema de Reservas de Hotel
Crie uma classe Quarto que represente um quarto de hotel.
Atributos: número, tipo (simples, duplo, suíte), preço por noite, estáOcupado (True/False).
Métodos: reservar(), liberar(), calcularValor(dias).
Simule o processo de reserva e liberação de quartos, incluindo cálculo de valor total da estadia.5. Gestão de Alunos
Crie uma classe Aluno para representar um estudante.
Atributos: nome, idade, matrícula, curso, lista de notas.
Métodos: adicionarNota(nota), calcularMedia(), verificarAprovacao().
Implemente a lógica para calcular a média e verificar se o aluno está aprovado (média ≥ 7).6. Sistema de Vendas
Crie uma classe Produto para representar um item à venda.
Atributos: nome, código, preço, estoque.
Métodos: vender(quantidade), repor(quantidade), exibirProduto().
Simule vendas e reposição de estoque, garantindo que não seja possível vender mais do que o disponível.7. Controle de Veículos
Crie uma classe Veiculo para representar um carro em uma locadora.
Atributos: modelo, placa, ano, estáAlugado (True/False), quilometragem.
Métodos: alugar(), devolver(kmRodados), exibirStatus().
Implemente o controle de aluguel e devolução, atualizando a quilometragem e disponibilidade.a.8. Sistema de Pedidos em Restaurante
Crie uma classe Pedido que represente um pedido feito por um cliente.
Atributos: número do pedido, itens (lista), valor total, status (em preparo, pronto, entregue).
Métodos: adicionarItem(item, valor), alterarStatus(novo_status), exibirResumo().
Simule o fluxo de um pedido desde a criação até a entrega, com atualização de status e valor..9. Gerenciador de Eventos
Crie uma classe Evento para representar um evento público.
Atributos: nome, data, local, capacidade, inscritos (lista de nomes).
Métodos: inscrever(nome), verificarDisponibilidade(), exibirDetalhes().
Controle as inscrições, impedindo que ultrapassem a capacidade máxima.10. Sistema de Pagamento de Mensalidades
Crie uma classe Mensalidade para representar o pagamento de um aluno.
Atributos: aluno, valor, data de vencimento, estáPago (True/False).
Métodos: pagar(), verificarAtraso(dataAtual), exibirStatus().
Implemente a lógica para registrar pagamentos e verificar se há atraso com base na data atual.