Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos |
Escreva uma classe Biblioteca que possui uma ArrayList de objetos da classe Livro. Forneça um menu para listar, cadastrar, pesquisar e excluir livros - Exercícios Resolvidos de JavaQuantidade de visualizações: 652 vezes |
|
Pergunta/Tarefa: Escreva um programa Java contendo duas classes: Biblioteca e Livro. A classe Biblioteca deverá ter uma coleção de livros, ou seja, uma ArrayList de objetos da classe Livro. Além da coleção de livros a classe Biblioteca deverá conter um atributo nome, que será informado assim que a classe for instanciada. A classe Livro, por sua vez, deverá possuir os atributos id, titulo, autor e paginas. O atributo id deverá ser auto-incremento, isto é, 1 para o primeiro livro cadastrado, 2 para o segundo, e assim por diante. Além disso, a exclusão de livros deverá ser feita de acordo com o seu id ou título. Seu programa deverá exibir um menu de opções para as diversas operações da biblioteca. Uma boa opção em Java é usar a estrutura switch case para a criação do menu de opções. Atenção: todos os métodos de manipulação de livros deverão estar na classe Biblioteca, e não na classe principal do programa Java. Para finalizar, tanto a classe Biblioteca quanto a classe Livro deverão apresentar boas práticas de programação orientada a objetos: nomenclatura correta de classes, atributos e métodos, encapsulamento de dados e construtores. Sua saída deverá ser parecida com: ------------------------------------------------- :: Biblioteca Programação e Artes :: ------------------------------------------------- Bem-vindo(a) ao sistema. Escolha a opção desejada 1 - Novo Livro 2 - Listar Livros 3 - Pesquisar Livro 4 - Excluir Livro 5 - Sair Sua opção: 1 Título: JAVA PARA INICIANTES Autor: OSMAR J SILVA Quant Páginas: 480 O livro foi cadastrado com sucesso Veja a resolução comentada deste exercício em Java: Código para a classe Livro, que deve estar no arquivo Livro.java: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
package estudos;
// definição da classe Livro
public class Livro {
private int id; // id do livro. Não pode repetir
private String titulo;
private String autor;
private int paginas;
// construtor vazio da classe Livro
public Livro() {}
// construtor cheio da classe Livro
public Livro(int id, String titulo, String autor, int paginas) {
this.id = id;
this.titulo = titulo;
this.autor = autor;
this.paginas = paginas;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
public int getPaginas() {
return paginas;
}
public void setPaginas(int paginas) {
this.paginas = paginas;
}
}
Código para a classe Biblioteca, que deve estar no arquivo Biblioteca.java: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
package estudos;
// imports necessários
import java.util.ArrayList;
import java.util.Scanner;
// definição da classe Biblioteca
public class Biblioteca {
String nome;
ArrayList<Livro> livros; // ArrayList para guardar os livros
// variável do tipo int para gerar IDs auto-incremento para os livros
int idUltimoLivroCadastrado = 0;
// construtor da classe
public Biblioteca(String nome) {
this.nome = nome;
this.livros = new ArrayList();
}
// exibe o menu de opções da biblioteca
public void exibirMenu(){
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// variáveis temporárias
Livro temp;
String pesquisaLivro;
// um laço infinito com as opções do menu
while(true){
System.out.println("\n-------------------------------------------------");
System.out.println(":: " + this.nome + " ::");
System.out.println("-------------------------------------------------");
System.out.println("Bem-vindo(a) ao sistema. Escolha a opção desejada\n");
System.out.println("1 - Novo Livro");
System.out.println("2 - Listar Livros");
System.out.println("3 - Pesquisar Livro");
System.out.println("4 - Excluir Livro");
System.out.println("5 - Sair");
System.out.print("\nSua opção: ");
// lê a opção do usuário
int opcao = Integer.parseInt(entrada.nextLine());
// um menu switch para ler as opções do menu
switch(opcao){
case 1: // vamos cadastrar um novo livro
System.out.print("\nTítulo: ");
String titulo = entrada.nextLine();
System.out.print("Autor: ");
String autor = entrada.nextLine();
System.out.print("Quant Páginas: ");
int quantPaginas = Integer.parseInt(entrada.nextLine());
// vamos gerar o id deste livro
int id = ++this.idUltimoLivroCadastrado;
// agora vamos criar um novo objeto da classe Livro
Livro livro = new Livro(id, titulo, autor, quantPaginas);
// e o adicionamos no ArrayList de livros
livros.add(livro);
// e finalmente mostramos uma mensagem de sucesso.
System.out.println("\nO livro foi cadastrado com sucesso");
break;
case 2: // vamos listar os livros cadastrados
if(livros.isEmpty()){
System.out.println("\nNão há nenhum livro cadastrado.");
}
else{
for(int i = 0; i < livros.size(); i++){
temp = livros.get(i); // obtém o livro da iteração atual
System.out.println("\nId: " + temp.getId());
System.out.println("Título: " + temp.getTitulo());
System.out.println("Autor: " + temp.getAutor());
System.out.println("Quant. Paginas: " + temp.getPaginas());
}
}
break;
case 3: // vamos pesquisar um livro
System.out.print("\nInforme o id ou título do livro: ");
pesquisaLivro = entrada.nextLine();
// chamamos o método que pesquisa o livro
temp = this.pesquisarLivro(pesquisaLivro);
if(temp == null){ // livro não encontrado
System.out.println("\nO livro náo foi encontrado.");
}
else{
// mostra o livro encontrado
System.out.println("\nId: " + temp.getId());
System.out.println("Título: " + temp.getTitulo());
System.out.println("Autor: " + temp.getAutor());
System.out.println("Quant. Paginas: " + temp.getPaginas());
}
break;
case 4: // vamos excluir um livro
System.out.print("\nInforme o id ou título do livro a ser excluído: ");
pesquisaLivro = entrada.nextLine();
// chamamos o método que pesquisa o livro
temp = pesquisarLivro(pesquisaLivro);
if(temp == null){ // livro não encontrado
System.out.println("\nO livro não foi encontrado.");
}
else{
// vamos excluir este livro
livros.remove(temp);
System.out.println("\nLivro excluído com sucesso.");
}
break;
case 5: // sai da aplicação
System.out.println("\nObrigado por usar a biblioteca\n");
System.exit(0);
default:
System.out.println("\nOpção inválida\n");
break;
}
}
}
// método que pesquisa um livro pelo id ou e retorna um objeto da classe Livro
public Livro pesquisarLivro(String pesquisaLivro){
Livro livro = null;
// este livro existe?
for(int i = 0; i < livros.size(); i++){
// pesquisa pelo id
if(Integer.toString(livros.get(i).getId()).equals(pesquisaLivro)){
return livros.get(i);
}
// pesquisar por título
else if(livros.get(i).getTitulo().contains(pesquisaLivro)){
return livros.get(i);
}
}
return livro;
}
}
E aqui está o código para a classe principal Estudos, no arquivo Estudos.java: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
package estudos;
public class Estudos {
public static void main(String[] args) {
// vamos criar um novo objeto da classe Biblioteca
Biblioteca b = new Biblioteca("Biblioteca Programação e Artes");
// mostra o menu da biblioteca
b.exibirMenu();
}
}
|
|
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





