Implementando Metodo

18 respostas
wesleysilva

Ola galera estou criando um sistema de biblioteca escolar, esta faltando pouco estou com duvida em um metodo de emprestimo de livro, metodo de devolução e metodo de ralatorio, tudo isso usando arrayList.

ai esta meu codigo se alguem puder me ajudar dando alguns dicas de como implentar o metodo emprestimo de livro
o usuario so pode pegar emprestado no maximo 5 livros.

package Prova2;
import java.util.Scanner;
import java.util.ArrayList;

public class Biblioteca {
	ArrayList<Usuario> cadastroUsuario = new ArrayList<Usuario>();
	ArrayList<Livro> cadastraLivro = new ArrayList<Livro>();

	Usuario aluno = null;
	Usuario prof = null;

	Livro livro = null;

	Scanner leitor = new Scanner(System.in);

	// -----------------------------------------------------------------------------------------------
	public void cadastroUsuario() {
		System.out.println("Digite 1 para Aluno\nDigite 2 para Professor");
		int menu = leitor.nextInt();

		if (menu == 1) {
			aluno = new Usuario();
			aluno.setNome(leitor.nextLine());

			System.out.println("Entre com o seu nome");
			aluno.setNome(leitor.nextLine());
			System.out.println("Entre com o endereço");
			aluno.setEndereco(leitor.nextLine());
			System.out.println("Entre com o curso");
			aluno.setCurso(leitor.nextLine());

			System.out.println("Cadastro Realizado com Sucesso!");

			cadastroUsuario.add(aluno);
		}

		else if (menu == 2) {
			prof = new Usuario();
			prof.setNome(leitor.nextLine());

			System.out.println("Entre com o nome");
			prof.setNome(leitor.nextLine());
			System.out.println("Entre com o endereço");
			prof.setEndereco(leitor.nextLine());
			System.out.println("Entre com o curso");
			prof.setCurso(leitor.nextLine());
			System.out.println("Entre com o sua especialização");
			prof.setEspecializacao(leitor.nextLine());

			System.out.println("Cadastro Realizado com Sucesso!");
			cadastroUsuario.add(prof);
		}
	}
	// -----------------------------------------------------------------------------------------------
	public void cadastroLivro() {
		livro = new Livro();

		System.out.println("Entre com o titulo do livro");
		livro.setTitulo(leitor.nextLine());
		System.out.println("Entre com o autor");
		livro.setAutor(leitor.nextLine());
		System.out.println("Entre com o codigo do livro");
		livro.setCodigo(leitor.nextLine());

		System.out.println("Cadastro Realizado com Sucesso!");

		cadastraLivro.add(livro);
	}
	// -----------------------------------------------------------------------------------------------
	public void emprestimoLivro() {
		/*
		 * int i = 0; for (Livro livro : cadastraLivro) { if
		 * (livro.contains(livro) == true) { i++; } } if (i == 0)
		 * System.out.println("Não Existe existe livros cadastrados!");
		 * 
		 * if (i>0) System.out.println("Foram encontradas "+i+
		 * " ocorrencias de livros cadastrados");
		 */
	}
	// -----------------------------------------------------------------------------------------------
	public void devolucaoLivro() {
		/*
		 * if(cadastraLivro.equals(get)){ boolean c =
		 * cadastraLivro.remove(livro);
		 * System.out.println("Devolução aceita! "+c);
		 * 
		 * }
		 */
	}
	// -----------------------------------------------------------------------------------------------
	public void relatorio() {
		int a = cadastroUsuario.size();
		int b = cadastraLivro.size();
		System.out.println("Total de Usuarios Cadastrados " + a);
		System.out.println("Total de Livros Cadastrados " + b);
	}
	// -----------------------------------------------------------------------------------------------
}

tentei implementar o metodo emprestimo mas ta com erro ai esta comentado.

18 Respostas

Lucas_Abbatepaolo

Dei uma olhada rapida no codigo e fiz alguns comentario no vc postou comentado

public void emprestimoLivro() {   
          
         int i = 0;
         for (Livro livro : cadastraLivro) { //aqui vc percorre seu List sendo que a cada iteração vc tem um Objeto do tipo Livro
           if(livro.contains(livro) == true) {  //aqui vc verifica se o livro contem um livro??????está errado ...o contains() vc utiliza em uma lista
               i++; 
           }
         }
         if (i == 0)  
             System.out.println("Não Existe existe livros cadastrados!");  
           
         if (i&gt;0) 
             System.out.println("Foram encontradas "+i+" ocorrencias de livros cadastrados");  
            
    }
public void devolucaoLivro() {   
          
        if(cadastraLivro.equals(get)){ // de onde vc tirou esse get????????vc esta utilizando o equals para comparar uma lista com o q????
           boolean c = cadastraLivro.remove(livro);  
           System.out.println("Devolução aceita! "+c);  
        }  
            
    }
wesleysilva

sim amigo esta errado como eu coloco pra somar cada vez q o usuario pegar um livro emprestado??

Lucas_Abbatepaolo

Qual a logica que vc quer utilizar???vc vai verificar na sua lista se existe o livro q ele emprestou?? vai remover o livro da lista??ou simplesmente quer incrementar uma variavel q contabilize isso??

wesleysilva

a logica e vai verificar se ja foi emprestado e se esta cadastrado, se nao foi emprestar emprestar tipo um contador de usuario

Lucas_Abbatepaolo

Seguindo pela logica, o usuario tera que entrar com o livro a ser emprestado e para quem esta sendo emprestado.
Você ira verificar se o livro ja esta emprestado, se o usuario existe no cadastro e se ele ainda não atingiu o numero maximo de emprestimo
se as condições acima forem atendidas vc ira alterar o livro q ele solicitou para emprestado e incrementar 1 no numero de emprestimos.

Dicas: vc tera q implementar uma forma de localizar o livro na lista de livros e o usuario na lista de usuarios (provavelmente pela descrição e pelo nome)
vc tera que ter um contador para o numero de emprestimos na sua classe usuario e um status na sua classe livro…

veja o que consegue produzir e depois tire suas duvidas…

t+

wesleysilva

conseguir fazer isso mas so ta falando se tem livros cadastrados e qntos tem nao e exatamente isso q eu preciso

public void emprestimoLivro() {

		int i = 0;
		for (Livro livro1 : cadastraLivro) {
			if (((ArrayList<Livro>) cadastraLivro).contains(livro1) == true) {
				i++;
			}
		}
		if (i == 0)
			System.out.println("Não Existe existe livros cadastrados!");

		if (i > 0)
			System.out.println("Foram encontradas " + i
					+ " ocorrencias de livros cadastrados");

	}
Lucas_Abbatepaolo
wesleysilva:
conseguir fazer isso mas so ta falando se tem livros cadastrados e qntos tem nao e exatamente isso q eu preciso
public void emprestimoLivro() {

		int i = 0;
		for (Livro livro1 : cadastraLivro) {
			if (((ArrayList<Livro>) cadastraLivro).contains(livro1) == true) {
				i++;
			}
		}
		if (i == 0)
			System.out.println("Não Existe existe livros cadastrados!");

		if (i > 0)
			System.out.println("Foram encontradas " + i
					+ " ocorrencias de livros cadastrados");

	}

você continua correndo a sua lista de livros e verificando se ela contem o livro q esta dentro dela..

Provavelmente seu metodo deve receber um livro, que sera o emprestado, e vc verifica se este livro q sera emprestado esta dentro da lista.

public void emprestimoLivro(Livro livro) { //aqui voce vai receber uma instancia de livro que será o livro a ser emprestado

		if (cadastraLivro.contains(livro1) {
                  //implementar a logica quando o livro é encontrado na lista de livros cadastrados
		} else {

		  //aqui implementar a logica se o livro não foi encontrado na lista de livros cadastrados
		
                }

	}
wesleysilva

ola amigo tentei implentar nao sei se esta certo usei um for ai mas falta dizer o q vai fazer dentro do for me de uma ajuda

public void emprestimoLivro(Livro livro) {
		if (cadastraLivro.contains(livro))
		
			for(int aluno = 0 ; aluno < 5; aluno++)
			{
				//implentar aqui.. nao estou conseguindo aqui.
			}		
		else
		{
			System.out.println("Não Existe existe livros cadastrados!");
		}

	}
AlexandreTLazaro
public void emprestimoLivro(Livro livro) {
		if (cadastraLivro.contains(livro)) // Esse if deve estar dentro do teu for...como q vc vai ler todos os livros cadastrados???
		
			for(int aluno = 0 ; aluno < 5; aluno++)
			{
				//implentar aqui.. nao estou conseguindo aqui.
                               //Use um flag...por exemplo boolean aux = false...se houver livros cadastrados DENTRO DO TEU FOR, coloque para retornar true...senão FORA DO TEU FOR retorna false mesmo
			}		
		else
		{
			System.out.println("Não Existe existe livros cadastrados!");
		}

	}
wesleysilva

estou tentando implementar outro metodo tmb, metodo relatorio eu quero que apareça a quantidade de livros e usuario cadastrados e os nomes dos mesmo cadastrados
mas so estou conseguindo mostrar a quantidade vcs podem me ajudar.

public void relatorio() {
		int a = cadastroUsuario.size();
		int b = cadastraLivro.size();
		System.out.println("Total de Usuarios Cadastrados " + a);
		System.out.println("Total de Livros Cadastrados " + b);
	}
AlexandreTLazaro
public void relatorio() {  
            int a = cadastroUsuario.size();  
            int b = cadastraLivro.size();  
            System.out.println("Total de Usuarios Cadastrados " + a);  
            System.out.println("Total de Livros Cadastrados " + b);  
        }

tah...ateh aih td bem? mas...vc tem um objeto usuário? se tiver vc vai ver qual eh o usuário vinculado a este livro, e vai pegar o nome do indivíduo...
soh uma pergunta? vc tah usando banco de dados ou tah indo td por execução mesmo?

wesleysilva

to usando arrayList amigo e nesse meu metodo quero colocar os nomes dos livros e usuario cadastrados to conseguindo mostrar so a quantidade olha so meu codigo todo ai

q vc vai ver

preciso implementar esse metodo ai relatorio pra mostrar os nomes dos usuario e dos livros cadastrados.

AlexandreTLazaro

q vc está usando um array list eu sei…mas na tua classe livro, vc tem um objeto do tipo Usuario???

wesleysilva

nao na minha cass Biblioteca eu tenho um objeto do tipo Livro e do tipo Usuario

Usuario aluno = null;
Usuario prof = null;

Livro livro = null;
AlexandreTLazaro

então como vc vai querer pegar o usuário se vc não sabe quem foi q emprestou o livro? não adianta ter soh o usuário na classe biblioteca…eh a mesma coisa na vida real vc chegar numa biblioteca, pegar um livro e dizer, olha eu sou aqui da biblioteca tah? mas…qual eh o seu usuário q está pegando o livro?
coloque um objeto usuário na tua classe livro, daih na hora de emprestar o livro, vc seta o usuário q está fazendo este empréstimo…simples assim… :lol:

AlexandreTLazaro

então como vc vai querer pegar o usuário se vc não sabe quem foi q emprestou o livro? não adianta ter soh o usuário na classe biblioteca…eh a mesma coisa na vida real vc chegar numa biblioteca, pegar um livro e dizer, olha eu sou aqui da biblioteca tah? mas…qual eh o seu usuário q está pegando o livro?
coloque um objeto usuário na tua classe livro, daih na hora de emprestar o livro, vc seta o usuário q está fazendo este empréstimo…simples assim…

AlexandreTLazaro
wesleysilva:
nao na minha cass Biblioteca eu tenho um objeto do tipo Livro e do tipo Usuario
Usuario aluno = null;
Usuario prof = null;

Livro livro = null;

então como vc vai querer pegar o usuário se vc não sabe quem foi q emprestou o livro? não adianta ter soh o usuário na classe biblioteca...eh a mesma coisa na vida real vc chegar numa biblioteca, pegar um livro e dizer, olha eu sou aqui da biblioteca tah? mas...qual eh o seu usuário q está pegando o livro?
coloque um objeto usuário na tua classe livro, daih na hora de emprestar o livro, vc seta o usuário q está fazendo este empréstimo...simples assim...

AlexandreTLazaro

Se isso resolveu teu problema, coloca resolvido aih no tópico…flw!

Criado 17 de novembro de 2011
Ultima resposta 18 de nov. de 2011
Respostas 18
Participantes 3