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.
packageProva2;importjava.util.Scanner;importjava.util.ArrayList;publicclassBiblioteca{ArrayList<Usuario>cadastroUsuario=newArrayList<Usuario>();ArrayList<Livro>cadastraLivro=newArrayList<Livro>();Usuarioaluno=null;Usuarioprof=null;Livrolivro=null;Scannerleitor=newScanner(System.in);// -----------------------------------------------------------------------------------------------publicvoidcadastroUsuario(){System.out.println("Digite 1 para Aluno\nDigite 2 para Professor");intmenu=leitor.nextInt();if(menu==1){aluno=newUsuario();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);}elseif(menu==2){prof=newUsuario();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);}}// -----------------------------------------------------------------------------------------------publicvoidcadastroLivro(){livro=newLivro();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);}// -----------------------------------------------------------------------------------------------publicvoidemprestimoLivro(){/* * 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"); */}// -----------------------------------------------------------------------------------------------publicvoiddevolucaoLivro(){/* * if(cadastraLivro.equals(get)){ boolean c = * cadastraLivro.remove(livro); * System.out.println("Devolução aceita! "+c); * * } */}// -----------------------------------------------------------------------------------------------publicvoidrelatorio(){inta=cadastroUsuario.size();intb=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.
Dei uma olhada rapida no codigo e fiz alguns comentario no vc postou comentado
publicvoidemprestimoLivro(){inti=0;for(Livrolivro:cadastraLivro){//aqui vc percorre seu List sendo que a cada iteração vc tem um Objeto do tipo Livroif(livro.contains(livro)==true){//aqui vc verifica se o livro contem um livro??????está errado ...o contains() vc utiliza em uma listai++;}}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");}
publicvoiddevolucaoLivro(){if(cadastraLivro.equals(get)){// de onde vc tirou esse get????????vc esta utilizando o equals para comparar uma lista com o q????booleanc=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
publicvoidemprestimoLivro(){inti=0;for(Livrolivro1: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
publicvoidemprestimoLivro(){inti=0;for(Livrolivro1: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.
publicvoidemprestimoLivro(Livrolivro){//aqui voce vai receber uma instancia de livro que será o livro a ser emprestadoif(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
publicvoidemprestimoLivro(Livrolivro){if(cadastraLivro.contains(livro))for(intaluno=0;aluno<5;aluno++){//implentar aqui.. nao estou conseguindo aqui.}else{System.out.println("Não Existe existe livros cadastrados!");}}
AlexandreTLazaro
publicvoidemprestimoLivro(Livrolivro){if(cadastraLivro.contains(livro))// Esse if deve estar dentro do teu for...como q vc vai ler todos os livros cadastrados???for(intaluno=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.
publicvoidrelatorio(){inta=cadastroUsuario.size();intb=cadastraLivro.size();System.out.println("Total de Usuarios Cadastrados "+a);System.out.println("Total de Livros Cadastrados "+b);}
AlexandreTLazaro
publicvoidrelatorio(){inta=cadastroUsuario.size();intb=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
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!