Fala galera!!! essa é a minha primeira pergunta então talvez não fique muito claro mas enfim.
Eu sou iniciante no JAVA (3 meses de estudo) e estou tendo um problema com um contador basicamente eu estou fazendo um mini sistema pra uma biblioteca e eu preciso por um limite de no máximo 3 livros alugados caso eles sejam alugados então o usuário precisa devolver um livro
meu código está dividido em três partes a Main (que é uma interface conectando o usuário e a funcionário), o problema esta no método alugar livro (classe MAIN) e a contagem que esta sendo feita na classe Funcionário. Eu tbm aceito criticas ao meu código! Obrigado pela atenção.
Essa é a MAIN:
import java.util.ArrayList;
import java.util.Scanner;
public interface Main {
static ArrayList livros = new ArrayList();
static ArrayList usuarios = new ArrayList();
Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
while (true) {
System.out.println(“== Biblioteca ==”);
System.out.println(“1 - Entrar”);
System.out.println(“2 - Registrar-se”);
System.out.println(“3 - Listar Usuarios”);
System.out.println(“4 - Adiconario Livro”);
System.out.println(“5 - Listar Livro”);
System.out.println(“6 - Alugar Livro”);
System.out.println(“7 - Devolver Livro”);
System.out.println(“0 - Sair”);
int opcao = scanner.nextInt();
switch (opcao) {
case 1:
entrar();
break;
case 2:
registrarse();
break;
case 3:
listarUsuarios();
break;
case 4:
adicionarLivro();
break;
case 5:
listarLivros();
break;
case 6:
alugarLivro();
break;
case 7:
devolverLivro();
break;
case 0:
System.out.println(“saindo…”);
}
}
}
static void entrar() {
if (usuarios.isEmpty()) {
System.out.println("Usuario não encontrado. Deseja registrar-se? S/N");
String opcao = scanner.next();
if (opcao.equalsIgnoreCase("Sim") || opcao.equalsIgnoreCase("S")) {
registrarse();
} else if (opcao.equalsIgnoreCase("nao") || opcao.equalsIgnoreCase("N") || opcao.equalsIgnoreCase("não")) {
}
}
else if (!usuarios.isEmpty()) {
System.out.print("Digite seu nome: ");
String existeNome = scanner.next();
System.out.print("Digite seu cpf: ");
String existeCpf = scanner.next();
for (Usuario u : usuarios) {
if (u.getNome().equals(existeNome) && u.getCpf().equals(existeCpf)) {
System.out.println("Você entrou com sucesso");
} else {
System.out.println("usuario não encontrado tente novamente!");
return;
}
}
}
}
static void registrarse() {
Usuario u = new Usuario(scanner);
usuarios.add(u);
System.out.println("Registrado com sucesso!");
}
static void listarUsuarios() {
System.out.println("Digite a senha da biblioteca");
String entrar = scanner.next();
if (entrar.equals("Biblioteca123")) {
for (Usuario encontrados : usuarios) {
System.out.println(encontrados);
}
} else if (!entrar.equals("Biblioteca123")) {
}
}
static void adicionarLivro() {
while (true) {
System.out.println("Digite a senha da biblioteca");
String entrar = scanner.next();
if (entrar.equals("Biblioteca123")) {
Funcionario l = new Funcionario(scanner);
livros.add(l);
l.setAlugado(false);
System.out.println("Deseja adicionar mais livros? S/N");
String opcao = scanner.next();
if (opcao.equalsIgnoreCase("Sim") || opcao.equalsIgnoreCase("S")) {
} else if (opcao.equalsIgnoreCase("nao") || opcao.equalsIgnoreCase("N")
|| opcao.equalsIgnoreCase("não")) {
break;
}
}
}
}
static void listarLivros() {
for (Funcionario a : livros) {
System.out.println(a);
}
}
static void alugarLivro() {
if (usuarios.isEmpty()) {
System.out.println("Você precisar se cadastrar! deseja se cadastrar? S/N");
String opcao = scanner.next();
if (opcao.equalsIgnoreCase("Sim") || opcao.equalsIgnoreCase("S")) {
registrarse();
} else if (opcao.equalsIgnoreCase("nao") || opcao.equalsIgnoreCase("N") || opcao.equalsIgnoreCase("não")) {
return;
}
}
if (!usuarios.isEmpty())
System.out.print("Digite a isbn do livro:");
String ISBN = scanner.next();
for (Funcionario livro : livros) {
if (livro.getIsbn().contains(ISBN) && livro.isAlugado() == true) {
System.out.println("Este livro ja foi alugado!");
}
if(livro.getIsbn().contains(ISBN) && livro.getContagem() > 3) {
System.out.println("Você ja alcançou o maximo de livro deseja devolver algum livro? S/N");
String opcao = scanner.next();
if (opcao.equalsIgnoreCase("Sim") || opcao.equalsIgnoreCase("S")) {
registrarse();
} else if (opcao.equalsIgnoreCase("nao") || opcao.equalsIgnoreCase("N") || opcao.equalsIgnoreCase("não")) {
break;
}
}
else if (livro.getIsbn().equals(ISBN) && livro.isAlugado() == false) {
System.out.println("Livro alugado!");
livro.setAlugado(true);
livro.contagem();
System.out.println(livro.getContagem());
break;
}
}
}
static void devolverLivro() {
System.out.print("Digite a isbn do livro: ");
String isbn = scanner.next();
for (Funcionario livro : livros) {
if (livro.getIsbn().equals(isbn) && livro.isAlugado() == false) {
System.out.println("Este livro ja foi devolvido");
break;
} else if (livro.getIsbn().equals(isbn)) {
System.out.println("Livro devolvido!");
livro.setAlugado(false);
break;
}
}
}
ESSA É A USUARIO :
import java.util.Scanner;
public class Usuario implements Main{
String nome;
String cpf;
Scanner scanner = new Scanner(System.in);
@Override
public String toString() {
return "nome:" + nome + ", cpf:" + cpf;
}
Usuario(Scanner scanner) {
System.out.print("Digite seu nome: ");
this.nome = scanner.next();
System.out.print("Digite seu cpf: ");
this.cpf = scanner.next();
}
public String getNome() {
return nome;
}
public String getCpf() {
return cpf;
}
}
ESSA É A FUNCIONARIO
import java.util.Scanner;
public class Funcionario implements Main{
static Scanner scanner = new Scanner(System.in);
private String titulo;
private String Autor;
private String isbn;
private int ano;
private boolean alugado;
int contagem;
@Override
public String toString() {
if(alugado) {
return "titulo:" + titulo + ", Autor:" + Autor + ", isbn:" + isbn + ", ano:" + ano + ", indisponivel!";
}
if(!alugado) {
return "titulo:" + titulo + ", Autor:" + Autor + ", isbn:" + isbn + ", ano:" + ano + ", disponivel!";
}
return titulo;
}
Funcionario(Scanner scanner){
System.out.print("Digite o Titulo do livro: ");
this.titulo = scanner.next();
System.out.print("Digite o Autor do livro: ");
this.Autor = scanner.next();
System.out.print("Digite a isbn do livro: ");
this.isbn = scanner.next();
System.out.print("Digite o ano de publicação do livro: ");
this.ano = scanner.nextInt();
scanner.nextLine();
}
public void contagem() {
contagem++;
}
public int getContagem() {
return contagem;
}
public boolean isAlugado() {
return alugado;
}
public void setAlugado(boolean alugado) {
this.alugado = alugado;
}
public String getTitulo() {
return titulo;
}
public String getAutor() {
return Autor;
}
public String getIsbn() {
return isbn;
}
public int getAno() {
return ano;
}
}