Fontes Atividade Biblioteca

Fazer download em txt, pdf ou txt
Fazer download em txt, pdf ou txt
Você está na página 1de 5

****************** Fonte Main ****************************

package Bibli;

public class Main {


public static void main(String[] args) {
Biblioteca biblioteca = new Biblioteca();

Livro livro1 = new Livro("O Senhor dos Anéis", "J.R.R. Tolkien",


"123456789", 3);
Livro livro2 = new Livro("1984", "George Orwell", "987654321", 2);

Membro membro1 = new Membro("João", "001", 2);


Membro membro2 = new Membro("Maria", "002", 1);

biblioteca.adicionarLivro(livro1);
biblioteca.adicionarLivro(livro2);
biblioteca.adicionarMembro(membro1);
biblioteca.adicionarMembro(membro2);

biblioteca.emprestarLivro("123456789", "001");
biblioteca.emprestarLivro("987654321", "002");

biblioteca.listarEmprestimos();

biblioteca.devolverLivro("123456789", "001");

biblioteca.listarEmprestimos();
}
}

****************** Fonte Biblioteca ****************************

package Bibli;

import java.util.ArrayList;
import java.util.List;

public class Biblioteca {


private List<Livro> livros;
private List<Membro> membros;
private List<Emprestimo> emprestimos;

public Biblioteca() {
this.livros = new ArrayList<>();
this.membros = new ArrayList<>();
this.emprestimos = new ArrayList<>();
}

public void adicionarLivro(Livro livro) {


livros.add(livro);
}

public void adicionarMembro(Membro membro) {


membros.add(membro);
}

public void emprestarLivro(String isbn, String idMembro) {


Livro livro = encontrarLivroPorIsbn(isbn);
Membro membro = encontrarMembroPorId(idMembro);

if (livro != null && membro != null && livro.estaDisponivel() &&


membro.podeEmprestar()) {
livro.emprestar();
membro.adicionarLivro(livro);
Emprestimo emprestimo = new Emprestimo(livro, membro);
emprestimos.add(emprestimo);
System.out.println("Livro emprestado com sucesso!");
} else {
System.out.println("Não foi possível realizar o empréstimo.");
}
}

public void devolverLivro(String isbn, String idMembro) {


Emprestimo emprestimo = encontrarEmprestimo(isbn, idMembro);
if (emprestimo != null) {
emprestimo.devolver();
emprestimos.remove(emprestimo);
System.out.println("Livro devolvido com sucesso!");
} else {
System.out.println("Empréstimo não encontrado.");
}
}

private Livro encontrarLivroPorIsbn(String isbn) {


for (Livro livro : livros) {
if (livro.getIsbn().equals(isbn)) {
return livro;
}
}
return null;
}

private Membro encontrarMembroPorId(String id) {


for (Membro membro : membros) {
if (membro.getId().equals(id)) {
return membro;
}
}
return null;
}

private Emprestimo encontrarEmprestimo(String isbn, String idMembro) {


for (Emprestimo emprestimo : emprestimos) {
if (emprestimo.getLivro().getIsbn().equals(isbn) &&
emprestimo.getMembro().getId().equals(idMembro)) {
return emprestimo;
}
}
return null;
}

public void listarEmprestimos() {


for (Emprestimo emprestimo : emprestimos) {
System.out.println(emprestimo);
}
}
}

****************** Fonte Livro ****************************

package Bibli;

public class Livro {


private String titulo;
private String autor;
private String isbn;
private int quantidadeDisponivel;

public Livro(String titulo, String autor, String isbn, int


quantidadeDisponivel) {
this.titulo = titulo;
this.autor = autor;
this.isbn = isbn;
this.quantidadeDisponivel = quantidadeDisponivel;
}

public boolean estaDisponivel() {


return quantidadeDisponivel > 0;
}

public void emprestar() {


if (estaDisponivel()) {
quantidadeDisponivel--;
}
}

public void devolver() {


quantidadeDisponivel++;
}

public String getTitulo() {


return titulo;
}

public String getAutor() {


return autor;
}

public String getIsbn() {


return isbn;
}

public int getQuantidadeDisponivel() {


return quantidadeDisponivel;
}

@Override
public String toString() {
return "Livro{" +
"titulo='" + titulo + '\'' +
", autor='" + autor + '\'' +
", isbn='" + isbn + '\'' +
", quantidadeDisponivel=" + quantidadeDisponivel +
'}';
}
}

****************** Fonte Membro ****************************

package Bibli;

import java.util.ArrayList;
import java.util.List;

public class Membro {


private String nome;
private String id;
private int limiteEmprestimos;
private List<Livro> livrosEmprestados;

public Membro(String nome, String id, int limiteEmprestimos) {


this.nome = nome;
this.id = id;
this.limiteEmprestimos = limiteEmprestimos;
this.livrosEmprestados = new ArrayList<>();
}

public boolean podeEmprestar() {


return livrosEmprestados.size() < limiteEmprestimos;
}

public void adicionarLivro(Livro livro) {


if (podeEmprestar()) {
livrosEmprestados.add(livro);
}
}

public void removerLivro(Livro livro) {


livrosEmprestados.remove(livro);
}

public String getNome() {


return nome;
}

public String getId() {


return id;
}

public List<Livro> getLivrosEmprestados() {


return livrosEmprestados;
}

@Override
public String toString() {
return "Membro{" +
"nome='" + nome + '\'' +
", id='" + id + '\'' +
", livrosEmprestados=" + livrosEmprestados.size() +
'}';
}
}
****************** Fonte Emprestimo ****************************

package Bibli;

import java.time.LocalDate;

public class Emprestimo {


private Livro livro;
private Membro membro;
private LocalDate dataEmprestimo;
private LocalDate dataDevolucao;

public Emprestimo(Livro livro, Membro membro) {


this.livro = livro;
this.membro = membro;
this.dataEmprestimo = LocalDate.now();
}

public void devolver() {


this.dataDevolucao = LocalDate.now();
livro.devolver();
membro.removerLivro(livro);
}

public Livro getLivro() {


return livro;
}

public Membro getMembro() {


return membro;
}

public LocalDate getDataEmprestimo() {


return dataEmprestimo;
}

public LocalDate getDataDevolucao() {


return dataDevolucao;
}

@Override
public String toString() {
return "Emprestimo{" +
"livro=" + livro.getTitulo() +
", membro=" + membro.getNome() +
", dataEmprestimo=" + dataEmprestimo +
", dataDevolucao=" + (dataDevolucao != null ? dataDevolucao : "Não
devolvido") +
'}';
}
}

Você também pode gostar