From 04dce716b02f9a3c6e50366e89cc8ae285198b71 Mon Sep 17 00:00:00 2001 From: Gustavo Lima Santos Da Silva <250413@MacBook-Pro-13.local> Date: Thu, 21 May 2026 16:20:23 +0100 Subject: [PATCH] first commit --- clientes.txt | 1 + pom.xml | 13 + .../mavenproject25/Mavenproject25.java | 1436 +++++++++++++++++ .../mavenproject25/Mavenproject25.class | Bin 0 -> 34946 bytes .../compile/default-compile/createdFiles.lst | 1 + .../compile/default-compile/inputFiles.lst | 1 + 6 files changed, 1452 insertions(+) create mode 100644 clientes.txt create mode 100644 pom.xml create mode 100644 src/main/java/com/mycompany/mavenproject25/Mavenproject25.java create mode 100644 target/classes/com/mycompany/mavenproject25/Mavenproject25.class create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst diff --git a/clientes.txt b/clientes.txt new file mode 100644 index 0000000..1a60345 --- /dev/null +++ b/clientes.txt @@ -0,0 +1 @@ +Tiago Silva,195572,913538232,250422@epvc.pt,228389992,500.0 diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..8de75ee --- /dev/null +++ b/pom.xml @@ -0,0 +1,13 @@ + + + 4.0.0 + com.mycompany + mavenproject25 + 1.0-SNAPSHOT + jar + + UTF-8 + 24 + com.mycompany.mavenproject25.Mavenproject25 + + \ No newline at end of file diff --git a/src/main/java/com/mycompany/mavenproject25/Mavenproject25.java b/src/main/java/com/mycompany/mavenproject25/Mavenproject25.java new file mode 100644 index 0000000..31d051b --- /dev/null +++ b/src/main/java/com/mycompany/mavenproject25/Mavenproject25.java @@ -0,0 +1,1436 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + */ +package com.mycompany.mavenproject25; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.security.SecureRandom; +import java.util.Scanner; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * + * @author 250413 + */ +public class Mavenproject25 { + + public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + boolean desligar = false; + while (true) { + + + System.out.println("══════════════════════════════════════\n" + + " Seleciona uma das opções\n" + + "══════════════════════════════════════\n" + + " [1] Criar conta\n" + + " [2] Login\n" + + " [3] Sair\n" + + "══════════════════════════════════════" + + + "\n"); + int opcao = scanner.nextInt(); + switch (opcao) { + case 1 -> adicionarNovoCliente(); + + case 2 -> acessoContaCliente(); + + case 3 -> desligar = true; + + case 2026 -> areaAdmin(); + default -> + System.out.println("Opção inválida"); + } + if (desligar) { + break; + } + } + } + + private static void mostrarTodosClientes() { + Scanner scanner = new Scanner(System.in); + String nomeFicheiro = "clientes.txt"; + + String nome[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String idTitular[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String numeroTel[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String email[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String NIF[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String saldoTxt[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + + leExtraiCsvFicheiro(nomeFicheiro, nome, idTitular, numeroTel, email, NIF, saldoTxt); + + for (int i = 0; i < nome.length; i++) { + System.out.println("Nome: " + nome[i]); + System.out.println("ID: " + idTitular[i]); + System.out.println("Telefone: " + numeroTel[i]); + System.out.println("Email: " + email[i]); + System.out.println("NIF: " + NIF[i] + "\n"); + System.out.println("Saldo:" + saldoTxt[i]); + } + } + + private static void extraiDadosCsv(String[] nome, + String[] idTitular, + String[] numeroTel, + String[] email, + String[] NIF, + String[] saldoTxt, + int numeroLinha, + String linha) { + int posicaoUltimaVirgula = -1; + int numeroVirgulas = 0; + + for (int i = 0; i < linha.length(); i++) { + if (linha.charAt(i) == ',') { + System.out.println(linha.substring(posicaoUltimaVirgula + 1, i)); + switch (numeroVirgulas) { + case 0 -> + nome[numeroLinha] = linha.substring(posicaoUltimaVirgula + 1, i); + case 1 -> + idTitular[numeroLinha] = linha.substring(posicaoUltimaVirgula + 1, i); + case 2 -> + numeroTel[numeroLinha] = linha.substring(posicaoUltimaVirgula + 1, i); + case 3 -> + email[numeroLinha] = linha.substring(i + 1); + case 4 -> + NIF[numeroLinha] = linha.substring(i + 1); + case 5 -> + saldoTxt[numeroLinha] = linha.substring(i + 1); + + } + posicaoUltimaVirgula = i; + numeroVirgulas++; + } + } + } + + private static void escreveNoFicheiro(String texto, String nomeFicheiro) { + + FileWriter fileWriter = null; + try { + fileWriter = new FileWriter(new File(nomeFicheiro)); + BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); + bufferedWriter.write(texto); + bufferedWriter.close(); + fileWriter.close(); + } catch (IOException ex) { + Logger.getLogger(Mavenproject25.class.getName()).log(Level.SEVERE, null, ex); + } + } + + // Area dos clientes + private static String leFicheiro(String nomeFicheiro) { + + FileReader fileReader = null; + String textoLido = ""; + try { + fileReader = new FileReader(new File(nomeFicheiro)); + BufferedReader bufferedReader = new BufferedReader(fileReader); + String linha = ""; + while ((linha = bufferedReader.readLine()) != null) { + textoLido += linha + "\n"; + } + bufferedReader.close(); + fileReader.close(); + } catch (FileNotFoundException ex) { + escreveNoFicheiro("", nomeFicheiro); + } catch (IOException ex) { + Logger.getLogger(Mavenproject25.class.getName()).log(Level.SEVERE, null, ex); + } + return textoLido; + } + + private static String leExtraiCsvFicheiro(String nomeFicheiro, + String[] nome, + String[] idTitular, + String[] numeroTel, + String[] email, + String[] nif, + String[] saldoTxt) { + + FileReader fileReader = null; + String textoLido = ""; + try { + fileReader = new FileReader(new File(nomeFicheiro)); + BufferedReader bufferedReader = new BufferedReader(fileReader); + String linha = ""; + int numeroLinha = 0; + while ((linha = bufferedReader.readLine()) != null) { + extraiDadosCsv(nome, idTitular, numeroTel, email, nif, saldoTxt, numeroLinha, linha); + numeroLinha++; + } + bufferedReader.close(); + fileReader.close(); + } catch (FileNotFoundException ex) { + escreveNoFicheiro("", nomeFicheiro); + } catch (IOException ex) { + Logger.getLogger(Mavenproject25.class.getName()).log(Level.SEVERE, null, ex); + } + return textoLido; + } + + private static int getNumeroLinhasFicheiro(String nomeFicheiro) { + + FileReader fileReader = null; + int numeroLinhas = 0; + try { + fileReader = new FileReader(new File(nomeFicheiro)); + BufferedReader bufferedReader = new BufferedReader(fileReader); + String linha = ""; + while ((linha = bufferedReader.readLine()) != null) { + numeroLinhas++; + } + bufferedReader.close(); + fileReader.close(); + } catch (FileNotFoundException ex) { + escreveNoFicheiro("", nomeFicheiro); + } catch (IOException ex) { + Logger.getLogger(Mavenproject25.class.getName()).log(Level.SEVERE, null, ex); + } + return numeroLinhas; + } + + private static void adicionaTextoAoFicheiro(String texto, String nomeFicheiro) { + String textoAntigo = leFicheiro(nomeFicheiro); + String textoNovo = textoAntigo + texto; + escreveNoFicheiro(textoNovo, nomeFicheiro); + } + + /** + * *****************************************opções da conta dos clientes**************************************************** + */ + +private static String[] procurarClientePorId(String id) { + String nomeFicheiro = "clientes.txt"; + + if (getNumeroLinhasFicheiro(nomeFicheiro) == 0) { + return null; + } + + String[] nome = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] idTitular = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] numeroTel = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] email = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] nif = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] saldoTxt = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + + leExtraiCsvFicheiro(nomeFicheiro, nome, idTitular, numeroTel, email, nif, saldoTxt); + + for (int i = 0; i < idTitular.length; i++) { + if (idTitular[i].equals(id)) { + return new String[]{nome[i], idTitular[i], numeroTel[i], email[i], nif[i], saldoTxt[i]}; + } + } + return null; +} + + +private static void acessoContaCliente() { + Scanner scanner = new Scanner(System.in); + + System.out.print("Digite o seu ID de cliente: "); + String id = scanner.nextLine(); + + String[] dadosCliente = procurarClientePorId(id); + + if (dadosCliente != null) { + System.out.println("\n Login realizado com sucesso!"); + menuClienteLogado(dadosCliente); + } else { + System.out.println(" Cliente não encontrado! Verifique o ID."); + } +} + +private static void menuClienteLogado(String[] dadosCliente) { + Scanner scanner = new Scanner(System.in); + boolean sair = false; + + double saldo = Double.parseDouble(dadosCliente[5]); + + while (!sair) { + System.out.printf("\n" + + "╔════════════════════════════════════════╗\n" + + "║ BEM-VINDO ║\n" + + "╠════════════════════════════════════════╣\n" + + "║ SEU SALDO: ║\n" + + "╠════════════════════════════════════════╣\n" + + "║ ▸ 1 Consultar meus dados ║\n" + + "║ ▸ 2 Transferir dinheiro ║\n" + + "║ ▸ 3 Depositar dinheiro ║\n" + + "║ ▸ 4 Levantar dinheiro ║\n" + + "║ ▸ 5 Cheque ║\n" + + "║ ▸ 6 Sair ║\n" + + "╚════════════════════════════════════════╝\n", + dadosCliente[0], saldo); + + int opcao = scanner.nextInt(); + + switch (opcao) { + case 1: + mostrarDadosCliente(dadosCliente); + break; + case 2: + saldo = transferirDinheiro(dadosCliente[1], saldo); + atualizarSaldoCliente(dadosCliente[1], saldo); + break; + case 3: + saldo = depositarDinheiro(saldo); + atualizarSaldoCliente(dadosCliente[1], saldo); + break; + case 4: + saldo = levantarDinheiro(saldo); + atualizarSaldoCliente(dadosCliente[1], saldo); + break; + case 5 : cheque(); + case 6: + sair = true; + System.out.println("A sair da conta..."); + break; + default: + System.out.println("Opção inválida!"); + } + } +} + private static void mostrarDadosCliente(String[] dados) { + System.out.println("\n╔════════════════════════════════════════╗"); + System.out.println("║ SEUS DADOS PESSOAIS ║"); + System.out.println("╠════════════════════════════════════════╣"); + System.out.printf("║ Nome: ║\n", dados[0]); + System.out.printf("║ ID: ║\n", dados[1]); + System.out.printf("║ Telefone: ║\n", dados[2]); + System.out.printf("║ Email: ║\n", dados[3]); + System.out.printf("║ NIF: ║\n", dados[4]); + System.out.printf("║ Saldo: ║\n", dados[5]); + System.out.println("╚════════════════════════════════════════╝\n"); +} + + private static double transferirDinheiro(String idOrigem, double saldoOrigem) { + Scanner scanner = new Scanner(System.in); + + System.out.print("Digite o ID do cliente destinatário: "); + String idDestino = scanner.nextLine(); + + if (idDestino.equals(idOrigem)) { + System.out.println("Não pode transferir para si mesmo!"); + return saldoOrigem; + } + + System.out.print("Digite o valor a transferir: €"); + double valor = scanner.nextDouble(); + + if (valor <= 0) { + System.out.println("Valor inválido!"); + return saldoOrigem; + } + + if (valor > saldoOrigem) { + System.out.println("Saldo insuficiente!"); + return saldoOrigem; + } + + String[] dadosDestino = procurarClientePorId(idDestino); + + if (dadosDestino == null) { + System.out.println("Cliente destinatário não encontrado!"); + return saldoOrigem; + } + + double saldoDestino = Double.parseDouble(dadosDestino[5]) + valor; + saldoOrigem -= valor; + + atualizarSaldoCliente(idDestino, saldoDestino); + atualizarSaldoCliente(idOrigem, saldoOrigem); + + System.out.printf("Transferência de €%.2f realizada com sucesso!\n", valor); + System.out.printf("Novo saldo: €%.2f\n", saldoOrigem); + + return saldoOrigem; +} + + private static double depositarDinheiro(double saldo) { + Scanner scanner = new Scanner(System.in); + + System.out.print("Digite o valor a depositar: €"); + double valor = scanner.nextDouble(); + + if (valor <= 0) { + System.out.println("Valor inválido!"); + return saldo; + } + + saldo += valor; + System.out.printf("Depósito de €%.2f realizado com sucesso!\n", valor); + System.out.printf("Novo saldo: €%.2f\n", saldo); + + return saldo; +} + + private static double levantarDinheiro(double saldo) { + Scanner scanner = new Scanner(System.in); + + System.out.print("Digite o valor a levantar: €"); + double valor = scanner.nextDouble(); + + if (valor <= 0) { + System.out.println("Valor inválido!"); + return saldo; + } + + if (valor > saldo) { + System.out.println("Saldo insuficiente!"); + return saldo; + } + + if (saldo - valor < 60) { + System.out.println("Operação não permitida! Saldo mínimo de 60€ deve ser mantido."); + return saldo; + } + + saldo -= valor; + System.out.printf("Levantamento de €%.2f realizado com sucesso!\n", valor); + System.out.printf("Novo saldo: €%.2f\n", saldo); + + return saldo; +} + + private static void atualizarSaldoCliente(String id, double novoSaldo) { + String nomeFicheiro = "clientes.txt"; + + String[] nome = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] idTitular = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] numeroTel = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] email = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] nif = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] saldoTxt = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + + leExtraiCsvFicheiro(nomeFicheiro, nome, idTitular, numeroTel, email, nif, saldoTxt); + + StringBuilder novoConteudo = new StringBuilder(); + for (int i = 0; i < idTitular.length; i++) { + if (idTitular[i].equals(id)) { + saldoTxt[i] = Double.toString(novoSaldo); + } + novoConteudo.append(nome[i]).append(",") + .append(idTitular[i]).append(",") + .append(numeroTel[i]).append(",") + .append(email[i]).append(",") + .append(nif[i]).append(",") + .append(saldoTxt[i]).append("\n"); + } + + escreveNoFicheiro(novoConteudo.toString(), nomeFicheiro); +} +// ==================== ÁREA DO ADMIN ==================== + +private static final String ADMIN_USERNAME = "admin123"; +private static final String ADMIN_PASSWORD = "admin123"; + +private static void areaAdmin() { + Scanner scanner = new Scanner(System.in); + + System.out.println("\n╔════════════════════════════════════════╗"); + System.out.println("║ LOGIN DE ADMIN ║"); + System.out.println("╚════════════════════════════════════════╝"); + + System.out.print("Usuário: "); + String username = scanner.next(); + + System.out.print("Senha: "); + String password = scanner.next(); + + if (username.equals(ADMIN_USERNAME) && password.equals(ADMIN_PASSWORD)) { + System.out.println("Login de admin realizado com sucesso!\n"); + menuAdmin(); + } else { + System.out.println("Credenciais inválidas! Acesso negado."); + } +} + +private static void menuAdmin() { + Scanner scanner = new Scanner(System.in); + boolean sair = false; + + while (!sair) { + System.out.println("\n" + + "╔════════════════════════════════════════╗\n" + + "║ PAINEL DE ADMIN ║\n" + + "╠════════════════════════════════════════╣\n" + + "║ ▸ 1 Listar todos os clientes ║\n" + + "║ ▸ 2 Procurar cliente ║\n" + + "║ ▸ 3 Editar dados de cliente ║\n" + + "║ ▸ 4 Remover cliente ║\n" + + "║ ▸ 5 Estatísticas do sistema ║\n" + + "║ ▸ 6 Sair ║\n" + + "╚════════════════════════════════════════╝\n"); + + int opcao = scanner.nextInt(); + + switch (opcao) { + case 1: + mostrarTodosClientes(); + break; + case 2: + procurarClienteAdmin(); + break; + case 3: + editarClienteAdmin(); + break; + case 4: + removerCliente(); + break; + case 5: + mostrarEstatisticas(); + break; + case 6: + sair = true; + break; + default: + System.out.println("Opção inválida!"); + } + } +} +private static void procurarClienteAdmin() { + Scanner scanner = new Scanner(System.in); + + System.out.print("Digite o nome, ID ou telefone do cliente: "); + String termo = scanner.nextLine(); + + String nomeFicheiro = "clientes.txt"; + + if (getNumeroLinhasFicheiro(nomeFicheiro) == 0) { + System.out.println("Nenhum cliente cadastrado."); + return; + } + + String[] nome = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] idTitular = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] numeroTel = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] email = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] nif = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] saldoTxt = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + + leExtraiCsvFicheiro(nomeFicheiro, nome, idTitular, numeroTel, email, nif, saldoTxt); + + boolean encontrado = false; + + for (int i = 0; i < nome.length; i++) { + if (nome[i].toLowerCase().contains(termo.toLowerCase()) || + idTitular[i].equals(termo) || + numeroTel[i].equals(termo)) { + + System.out.println("\n╔════════════════════════════════════════╗"); + System.out.println("║ CLIENTE ENCONTRADO ║"); + System.out.println("╠════════════════════════════════════════╣"); + System.out.printf("║ Nome: %-25s ║\n", nome[i]); + System.out.printf("║ ID: %-25s ║\n", idTitular[i]); + System.out.printf("║ Telefone: %-25s ║\n", numeroTel[i]); + System.out.printf("║ Email: %-25s ║\n", email[i]); + System.out.printf("║ NIF: %-25s ║\n", nif[i]); + System.out.printf("║ Saldo: €%-24s ║\n", saldoTxt[i]); + System.out.println("╚════════════════════════════════════════╝\n"); + encontrado = true; + } + } + + if (!encontrado) { + System.out.println("Cliente não encontrado."); + } +} + +private static void editarClienteAdmin() { + Scanner scanner = new Scanner(System.in); + + System.out.print("Digite o ID do cliente que deseja editar: "); + String id = scanner.nextLine(); + + String[] dadosCliente = procurarClientePorId(id); + + if (dadosCliente == null) { + System.out.println("Cliente não encontrado!"); + return; + } + + System.out.println("\n--- Editando cliente: " + dadosCliente[0] + " ---"); + + System.out.print("Novo nome (atual: " + dadosCliente[0] + "): "); + String novoNome = scanner.nextLine(); + if (!novoNome.isEmpty()) dadosCliente[0] = novoNome; + + System.out.print("Novo telefone (atual: " + dadosCliente[2] + "): "); + String novoTelefone = scanner.nextLine(); + if (!novoTelefone.isEmpty()) { + if (novoTelefone.length() == 9 && novoTelefone.matches("\\d+")) { + if (!telefoneJaExiste(novoTelefone) || dadosCliente[2].equals(novoTelefone)) { + dadosCliente[2] = novoTelefone; + } else { + System.out.println("Telefone já existe! Mantido o original."); + } + } else { + System.out.println("Telefone inválido! Mantido o original."); + } + } + + System.out.print("Novo email (atual: " + dadosCliente[3] + "): "); + String novoEmail = scanner.nextLine(); + if (!novoEmail.isEmpty() && verificarEmail(novoEmail)) { + dadosCliente[3] = novoEmail; + } else if (!novoEmail.isEmpty()) { + System.out.println("Email inválido! Mantido o original."); + } + + atualizarClienteCompleto(dadosCliente); + System.out.println("1Cliente atualizado com sucesso!"); +} + +private static void removerCliente() { + Scanner scanner = new Scanner(System.in); + + System.out.print("Digite o ID do cliente que deseja remover: "); + String id = scanner.nextLine(); + + String nomeFicheiro = "clientes.txt"; + + if (getNumeroLinhasFicheiro(nomeFicheiro) == 0) { + System.out.println("Nenhum cliente cadastrado."); + return; + } + + String[] nome = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] idTitular = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] numeroTel = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] email = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] nif = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] saldoTxt = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + + leExtraiCsvFicheiro(nomeFicheiro, nome, idTitular, numeroTel, email, nif, saldoTxt); + + int indiceRemover = -1; + for (int i = 0; i < idTitular.length; i++) { + if (idTitular[i].equals(id)) { + indiceRemover = i; + break; + } + } + + if (indiceRemover == -1) { + System.out.println("Cliente não encontrado!"); + return; + } + + System.out.print("Tem certeza que deseja remover o cliente " + nome[indiceRemover] + "? (s/n): "); + String confirmacao = scanner.nextLine(); + + if (confirmacao.equalsIgnoreCase("s")) { + StringBuilder novoConteudo = new StringBuilder(); + for (int i = 0; i < nome.length; i++) { + if (i != indiceRemover) { + novoConteudo.append(nome[i]).append(",") + .append(idTitular[i]).append(",") + .append(numeroTel[i]).append(",") + .append(email[i]).append(",") + .append(nif[i]).append(",") + .append(saldoTxt[i]).append("\n"); + } + } + escreveNoFicheiro(novoConteudo.toString(), nomeFicheiro); + System.out.println("Cliente removido com sucesso!"); + } else { + System.out.println("Operação cancelada."); + } +} + +private static void mostrarEstatisticas() { + String nomeFicheiro = "clientes.txt"; + int numClientes = getNumeroLinhasFicheiro(nomeFicheiro); + + if (numClientes == 0) { + System.out.println("Nenhum cliente cadastrado."); + return; + } + + String[] nome = new String[numClientes]; + String[] idTitular = new String[numClientes]; + String[] numeroTel = new String[numClientes]; + String[] email = new String[numClientes]; + String[] nif = new String[numClientes]; + String[] saldoTxt = new String[numClientes]; + + leExtraiCsvFicheiro(nomeFicheiro, nome, idTitular, numeroTel, email, nif, saldoTxt); + + double saldoTotal = 0; + double saldoMinimo = Double.MAX_VALUE; + double saldoMaximo = Double.MIN_VALUE; + String clienteSaldoMinimo = ""; + String clienteSaldoMaximo = ""; + + for (int i = 0; i < numClientes; i++) { + double saldo = Double.parseDouble(saldoTxt[i]); + saldoTotal += saldo; + + if (saldo < saldoMinimo) { + saldoMinimo = saldo; + clienteSaldoMinimo = nome[i]; + } + if (saldo > saldoMaximo) { + saldoMaximo = saldo; + clienteSaldoMaximo = nome[i]; + } + } + + double saldoMedio = saldoTotal / numClientes; + + System.out.println("\n╔════════════════════════════════════════════════════════════════╗"); + System.out.println( "║ ESTATÍSTICAS DO SISTEMA ║"); + System.out.println( "╠════════════════════════════════════════════════════════════════╣"); + System.out.printf( "║\n", "Total de clientes: " + numClientes); + System.out.printf( "║\n", String.format("Saldo total do banco: ", saldoTotal)); + System.out.printf( "║\n", String.format("Saldo médio por cliente: ", saldoMedio)); + System.out.printf( "║\n", String.format("Cliente com maior saldo: ", clienteSaldoMaximo, saldoMaximo)); + System.out.printf( "║\n", String.format("Cliente com menor saldo: ", clienteSaldoMinimo, saldoMinimo)); + System.out.println( "╚════════════════════════════════════════════════════════════════╝\n"); +} + +private static void atualizarClienteCompleto(String[] dados) { + String nomeFicheiro = "clientes.txt"; + + String[] nome = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] idTitular = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] numeroTel = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] email = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] nif = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] saldoTxt = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + + leExtraiCsvFicheiro(nomeFicheiro, nome, idTitular, numeroTel, email, nif, saldoTxt); + + StringBuilder novoConteudo = new StringBuilder(); + for (int i = 0; i < idTitular.length; i++) { + if (idTitular[i].equals(dados[1])) { + novoConteudo.append(dados[0]).append(",") + .append(dados[1]).append(",") + .append(dados[2]).append(",") + .append(dados[3]).append(",") + .append(dados[4]).append(",") + .append(dados[5]).append("\n"); + } else { + novoConteudo.append(nome[i]).append(",") + .append(idTitular[i]).append(",") + .append(numeroTel[i]).append(",") + .append(email[i]).append(",") + .append(nif[i]).append(",") + .append(saldoTxt[i]).append("\n"); + } + } + + escreveNoFicheiro(novoConteudo.toString(), nomeFicheiro); +} + public static boolean verificarNIF(String nif) { + // Verificar se tem 9 dígitos + if (!nif.matches("\\d{9}")) { + System.out.println("NIF inválido (tem de ter 9 dígitos)"); + return false; + } + + + int d1 = Character.getNumericValue(nif.charAt(0)); + int d2 = Character.getNumericValue(nif.charAt(1)); + int d3 = Character.getNumericValue(nif.charAt(2)); + int d4 = Character.getNumericValue(nif.charAt(3)); + int d5 = Character.getNumericValue(nif.charAt(4)); + int d6 = Character.getNumericValue(nif.charAt(5)); + int d7 = Character.getNumericValue(nif.charAt(6)); + int d8 = Character.getNumericValue(nif.charAt(7)); + int d9 = Character.getNumericValue(nif.charAt(8)); + + + int produto = (d8 * 2) + (d7 * 3) + (d6 * 4) + (d5 * 5) + + (d4 * 6) + (d3 * 7) + (d2 * 8) + (d1 * 9); + int resto = produto % 11; + int digitoControlo; + + if (resto == 0 || resto == 1) { + digitoControlo = 0; + } else { + digitoControlo = 11 - resto; + } + + + if (digitoControlo == d9) { + return true; + } else { + return false; + } +} + + +public static void procurarCliente() { + Scanner scanner = new Scanner(System.in); + String nomeFicheiro = "clientes.txt"; + + if (getNumeroLinhasFicheiro(nomeFicheiro) == 0) { + System.out.println("Nenhum cliente cadastrado."); + return; + } + + System.out.print("Digite o nome do cliente que deseja procurar: "); + String nomeProcurar = scanner.nextLine(); + + String nome[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String idTitular[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String numeroTel[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String email[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String nif[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String saldoTxt[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + + leExtraiCsvFicheiro(nomeFicheiro, nome, idTitular, numeroTel, email, nif, saldoTxt); + + boolean encontrado = false; + + for (int i = 0; i < nome.length; i++) { + if (nome[i].toLowerCase().contains(nomeProcurar.toLowerCase())) { + System.out.println("\n--- Cliente encontrado ---"); + System.out.println("Nome: " + nome[i]); + System.out.println("ID: " + idTitular[i]); + System.out.println("Telefone: " + numeroTel[i]); + System.out.println("Email: " + email[i]); + System.out.println("NIF: " + nif[i] + "\n"); + System.out.println("Saldo: " + saldoTxt[i] + "\n"); + encontrado = true; + } + } + + if (!encontrado) { + System.out.println("Cliente não encontrado."); + } +} + +public static void editarDinheiroCliente() { + Scanner scanner = new Scanner(System.in); + String nomeFicheiro = "clientes.txt"; + + if (getNumeroLinhasFicheiro(nomeFicheiro) == 0) { + System.out.println("Nenhum cliente cadastrado para editar."); + return; + } + + System.out.print("Digite o nome do cliente que deseja editar: "); + String nomeEditar = scanner.nextLine(); + + String nome[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String idTitular[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String numeroTel[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String email[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String nif[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String saldo[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + + leExtraiCsvFicheiro(nomeFicheiro, nome, idTitular, numeroTel, email, nif, saldo); + + int indiceEditar = -1; + + for (int i = 0; i < nome.length; i++) { + if (nome[i].toLowerCase().contains(nomeEditar.toLowerCase())) { + indiceEditar = i; + break; + } + } + + if (indiceEditar == -1) { + System.out.println("Cliente não encontrado."); + return; + } + + System.out.println("\n--- Editando cliente: " + nome[indiceEditar] + " ---"); + + System.out.print("Novo nome (atual: " + nome[indiceEditar] + "): "); + String novoNome = scanner.nextLine(); + if (!novoNome.isEmpty()) nome[indiceEditar] = novoNome; + + System.out.print("Novo ID (atual: " + idTitular[indiceEditar] + "): "); + String novoId = scanner.nextLine(); + if (!novoId.isEmpty()) idTitular[indiceEditar] = novoId; + + System.out.print("Novo telefone (atual: " + numeroTel[indiceEditar] + "): "); + String novoTelefone = scanner.nextLine(); + if (!novoTelefone.isEmpty()) numeroTel[indiceEditar] = novoTelefone; + + System.out.print("Novo email (atual: " + email[indiceEditar] + "): "); + String novoEmail = scanner.nextLine(); + if (!novoEmail.isEmpty()) email[indiceEditar] = novoEmail; + + System.out.print("Novo NIF (atual: " + nif[indiceEditar] + "): "); + String novoNIF = scanner.nextLine(); + if (!novoNIF.isEmpty()) nif[indiceEditar] = novoNIF; + + + StringBuilder conteudoAtualizado = new StringBuilder(); + for (int i = 0; i < nome.length; i++) { + conteudoAtualizado.append(nome[i]).append(",") + .append(idTitular[i]).append(",") + .append(numeroTel[i]).append(",") + .append(email[i]).append(",") + .append(nif[i]).append("\n") + .append(saldo[i]).append("\n"); + } + + escreveNoFicheiro(conteudoAtualizado.toString(), nomeFicheiro); + System.out.println("Cliente atualizado com sucesso!"); +} + private static boolean verificarEmail (String email){ + boolean emailValido = (email.contains("@") + && email.contains(".pt") || email.contains(".com")); + + return emailValido; + } + + + private static boolean verificarSaldo(double saldo){ //verificar saldo + boolean vrSaldo = false; + + if (saldo < 60) { + vrSaldo = true; + } + return vrSaldo; + } + private static String gerarID() { + boolean idFeito = true; + while(true){ + String CARACTERES = "0123456789"; + SecureRandom random = new SecureRandom(); + + StringBuilder idNum = new StringBuilder(6); + + for (int i = 0; i < 6; i++) { + int indice = random.nextInt(CARACTERES.length()); + idNum.append(CARACTERES.charAt(indice)); + } + + String idTxt = idNum.toString(); + if(!idJaExiste(idTxt)){ + return idTxt; + } + } +} + private static boolean nifJaExiste (String nif) { + String nomeFicheiro = "clientes.txt"; + + + try (BufferedReader reader = new BufferedReader(new FileReader(nomeFicheiro))) { + String linha; + while ((linha = reader.readLine()) != null) { + String[] campos = linha.split(","); + + + if (campos.length > 0 && campos[0].trim().equals(nif.trim())) { + return true; + } + } + } catch (IOException e) { + + System.err.println("Erro ao ler o ficheiro: " + e.getMessage()); + } + + return false; +} + + + private static boolean idJaExiste(String idTxt) { + String nomeFicheiro = "clientes.txt"; + + if (getNumeroLinhasFicheiro(nomeFicheiro) == 0) { + return false; + } + + String[] ids = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] temp1 = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] temp2 = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] temp3 = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] temp4 = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] temp5 = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + + leExtraiCsvFicheiro(nomeFicheiro, temp1, ids, temp2, temp3, temp4, temp5); + + for (String idExistente : ids) { + if (idExistente.equals(idTxt)) { + return true; + } + } + return false; + } + + + private static boolean telefoneJaExiste(String telefone) { + String nomeFicheiro = "clientes.txt"; + + if (getNumeroLinhasFicheiro(nomeFicheiro) == 0) { + return false; + } + + String[] telefones = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] temp1 = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] temp2 = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] temp3 = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] temp4 = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + String[] temp5 = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; + + leExtraiCsvFicheiro(nomeFicheiro, temp1, temp2, telefones, temp3, temp4, temp5); + + for (String telefoneExistente : telefones) { + if (telefoneExistente.equals(telefone)) { + return true; + } + } + return false; + } + + + + + private static void adicionarNovoCliente() { + Scanner scanner = new Scanner(System.in); + + System.out.print("\n╔════════════════════════════════════════\n"); + System.out.print("║ Introduza o nome: "); + String nome = scanner.nextLine(); + + String idTitular = gerarID(); + + while (idJaExiste(idTitular)) { + idTitular = gerarID(); + } + + System.out.println("║ ID gerado: " + idTitular); + + String nif; + do { + System.out.print("║ Introduza NIF (9 dígitos): "); + nif = scanner.nextLine(); + + if (!verificarNIF(nif)) { + System.out.println("║ NIF inválido! Deve ter 9 dígitos válidos."); + } else if (nifJaExiste(nif)) { + System.out.println("║ Este NIF já está cadastrado!"); + System.out.println("║ Por favor, insira um NIF diferente."); + nif = ""; + } + } while (!verificarNIF(nif) || nif.isEmpty()); + + String telefone; + + System.out.print("║ Introduza telefone (9 dígitos): "); + telefone = scanner.nextLine(); + + if (telefone.length() != 9 || !telefone.matches("\\d+")) { + System.out.println("║ Telefone inválido! Deve ter 9 dígitos."); + } else if (telefoneJaExiste(telefone)) { + System.out.println("║ Este telefone já está cadastrado!"); + System.out.println("║ Por favor, insira um telefone diferente."); + telefone = ""; + } + while (telefone.isEmpty() || telefone.length() != 9 || !telefone.matches("\\d+")); + + String email; + + System.out.print("║ Introduza email: "); + email = scanner.nextLine(); + + if (!verificarEmail(email)) { + System.out.println("║ Email inválido! Deve conter @ e .pt ou .com"); + } + while (!verificarEmail(email)); + + double saldo; + + System.out.print("║ Introduza saldo (mínimo 60€): "); + saldo = scanner.nextDouble(); + scanner.nextLine(); // limpar buffer + + if (saldo < 60) { + System.out.println("║ Saldo mínimo insuficiente! Mínimo 60€."); + } + while (saldo < 60); + + String saldoTxt = Double.toString(saldo); + + System.out.println("║ Conta criada com sucesso!"); + System.out.print("╚════════════════════════════════════════\n\n"); + + // Formato: nome,id,telefone,email,nif,saldo + String cliente = nome + "," + idTitular + "," + telefone + "," + email + "," + nif + "," + saldoTxt + "\n"; + adicionaTextoAoFicheiro(cliente, "clientes.txt"); + } + // Taxas baseadas no EURO + + static double[] taxas = { + + 1.00, // EUR + + 1.09, // USD + + 169.00, // JPY + + 0.86, // GBP + + 7.90, // CNY + + 1.65, // AUD + + 1.50, // CAD + + 0.98 // CHF + + }; + + // Conversão baseada no EURO + + public static double converter(double valor, int origem, int destino) { + + double valorEUR = valor / taxas[origem]; + + double resultado = valorEUR * taxas[destino]; + + resultado = ((int)(resultado * 100 + 0.50)) / 100.00; + + return resultado; + + } + + public static String simboloMoeda(int moeda) { + + switch (moeda) { + + case 1: + + return "€"; + + case 2: + + return "$"; + + case 3: + + return "¥"; + + case 4: + + return "£"; + + case 5: + + return "¥"; + + case 6: + + return "A$"; + + case 7: + + return "C$"; + + case 8: + + return "Fr"; + + default: + + return ""; + + } + + } + + public static void moeda() { + + Scanner sc = new Scanner(System.in); + + int opcao = 1; + + while (opcao != 0) { + + System.out.println("\n=== MOEDAS DISPONIVEIS === "+ " ⣀⣠⣤⣤⣤⣀⡀"); + System.out.println("1 - EUR — € — European Union "+ " ⣀⣴⣿⣿⠿⠿⠿⠿⢿⣿⣷⠄"); + System.out.println("2 - USD — $ — United States "+ " ⢀⣴⣿⠟⠉⠀⠀⠀⠀⠀⠀⠈⠉⠀"); + System.out.println("3 - JPY — ¥ — Japan "+ " ⣀⣀⣀⣾⣿⣇⣀⣀⣀⣀⣀⣀⣀⣀⠀"); + System.out.println("4 - GBP — £ — United Kingdom "+ " ⠛⠛⢻⣿⣿⠛⠛⠛⠛⠛⠛⠛⠛⠛⠀"); + System.out.println("5 - CNY — ¥ — China "+ " ⣤⣤⣼⣿⣿⣤⣤⣤⣤⣤⣤⣤⣤⣤⠀"); + System.out.println("6 - AUD — A$ — Australia "+ " ⠉⠉⠉⢿⣿⣏⠉⠉⠉⠉⠉⠉⠉⠉⠀"); + System.out.println("7 - CAD — C$ — Canada "+ " ⠈⢻⣿⣦⣀⠀⠀⠀⠀⠀⠀⢀⣀⠀"); + System.out.println("8 - CHF — Fr — Switzerland "+ " ⠉⠻⣿⣿⣶⣶⣶⣶⣿⣿⡿⠃⠀\n" + + " ⠉⠙⠛⠛⠛⠉⠁⠀⠀⠀" ); + + int origem; + while (true) { + System.out.print("\nEscolha a moeda a converter: "); + origem = sc.nextInt(); + if (origem >= 1 && origem <= 8) break; + + System.out.println("Opção invalida. Insira novamente."); + + } + + int destino; + + while (true) { + + System.out.print("Escolhe a moeda pretendida: "); + + destino = sc.nextInt(); + + if (destino >= 1 && destino <= 8) break; + + System.out.println("Opção invalida. Insira novamente."); + + } + + System.out.print("Valor a converter: "); + + double valor = sc.nextDouble(); + + double resultado = converter(valor, origem - 1, destino - 1); + + System.out.println("\n=== RESULTADO ==="); + + System.out.println(valor + " " + + + simboloMoeda(origem) + + + " = " + + + resultado + + + " " + + + simboloMoeda(destino)); + + System.out.println("\n1 - Nova conversão"); + + System.out.println("0 - Sair"); + + System.out.print("Opção: "); + + opcao = sc.nextInt(); + + } + + System.out.println("Programa terminado."); + + } + private static final String[] UNIDADES = { + "zero", "um", "dois", "três", "quatro", + "cinco", "seis", "sete", "oito", "nove" + }; + + private static final String[] ESPECIAIS = { + "dez", "onze", "doze", "treze", "catorze", + "quinze", "dezesseis", "dezessete", "dezoito", "dezenove" + }; + + private static final String[] DEZENAS = { + "", "", "vinte", "trinta", "quarenta", + "cinquenta", "sessenta", "setenta", "oitenta", "noventa" + }; + + private static final String[] CENTENAS = { + "", "cento", "duzentos", "trezentos", "quatrocentos", + "quinhentos", "seiscentos", "setecentos", "oitocentos", "novecentos" + }; + + + public static void cheque() { + Scanner scanner = new Scanner(System.in); + + System.out.print("Nome do beneficiário: "); + String beneficiario = scanner.nextLine(); + + System.out.print("Telefone beneficiário (9 dígitos): "); + String telBeneficiario = scanner.nextLine(); + + if (telBeneficiario.length() != 9 || !telBeneficiario.matches("\\d+")) { + System.out.println("║ Telefone inválido! Deve ter 9 dígitos."); + return; + } + + System.out.print("Localidade: "); + String localidade = scanner.nextLine(); + + System.out.print("Data (dd/mm/aaaa): "); + String data = scanner.nextLine(); + + System.out.print("Valor do cheque: "); + double valor = scanner.nextDouble(); + scanner.nextLine(); + + String quantiaPorExtenso = converterValorParaExtenso(valor); + + System.out.print("Assinatura: "); + String assinatura = scanner.nextLine(); + + String valorFormatado = String.format("valor", valor); + + String faturas = beneficiario + ", " + telBeneficiario + ", " + localidade + ", " + data + ", " + quantiaPorExtenso + ", " + valorFormatado + ", " + assinatura + "\n"; + adicionaTextoAoFicheiro(faturas, "faturas.txt"); + + String valorTexto = String.format("%.2f€", valor); + + System.out.println("┌──────────────────────────────────────────────────────────────┐"); + + System.out.println("│ CHEQUE │"); + + System.out.println("│ │"); + + System.out.printf("│ Banco: %-51s │%n", "Banco Horizonte"); + + System.out.println("│ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ │"); + + System.out.printf("│ Localidade: %-20s Data: %-16s │%n", + + localidade, data); + + System.out.println("│ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ │"); + + System.out.println("│ │"); + + System.out.println("│ Pague por este cheque a: │"); + + System.out.printf("│ %-60s │%n", beneficiario); + + System.out.println("│ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ │"); + + System.out.println("│ │"); + + System.out.printf("│ A quantia de: %-45s │%n", quantiaPorExtenso); + + System.out.println("│ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ │"); + + System.out.println("│ │"); + + System.out.printf("│ Valor: %-53s │%n", valorTexto); + + System.out.println("│ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ │"); + + System.out.println("│ │"); + + System.out.printf("│ %45s │%n", assinatura); + + System.out.println("│ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ │"); + + System.out.printf("│ %49s │%n", "Assinatura"); + + System.out.println("│ │"); + + System.out.println("└──────────────────────────────────────────────────────────────┘"); + + } + + + // Converte valor decimal para extenso (ex: 1234.56 -> "Mil duzentos e trinta e quatro euros e cinquenta e seis cêntimos") + public static String converterValorParaExtenso(double valor) { + int parteInteira = (int) valor; + int parteCentavos = (int) Math.round((valor - parteInteira) * 100); + + String extenso = ""; + + if (parteInteira > 0) { + extenso += converterNumero(parteInteira); + if (parteInteira == 1) { + extenso += " euro"; + } else { + extenso += " euros"; + } + } + + if (parteCentavos > 0) { + if (parteInteira > 0) { + extenso += " e "; + } + extenso += converterNumero(parteCentavos); + if (parteCentavos == 1) { + extenso += " cêntimo"; + } else { + extenso += " cêntimos"; + } + } else if (parteInteira == 0) { + extenso = "zero euros"; + } + + if (extenso.length() > 0) { + extenso = extenso.substring(0, 1).toUpperCase() + extenso.substring(1); + } + + return extenso; + } + + private static String converterNumero(int numero) { + if (numero == 0) return "zero"; + + int milhares = numero / 1000; + int resto = numero % 1000; + + String resultado = ""; + + if (milhares > 0) { + if (milhares == 1) { + resultado += "mil"; + } else { + resultado += converterCentenas(milhares) + " mil"; + } + + if (resto > 0) { + resultado += " e "; + } + } + + if (resto > 0) { + if (resto == 100 && milhares > 0) { + resultado += "cem"; + } else { + resultado += converterCentenas(resto); + } + } + + return resultado; + } + + private static String converterCentenas(int numero) { + int centena = numero / 100; + int resto = numero % 100; + + String resultado = ""; + + if (centena > 0) { + resultado += CENTENAS[centena]; + if (resto > 0) { + resultado += " e "; + } + } + + if (resto > 0) { + resultado += converterDezenasUnidades(resto); + } + + return resultado; + } + + private static String converterDezenasUnidades(int numero) { + if (numero < 10) { + return UNIDADES[numero]; + } else if (numero < 20) { + return ESPECIAIS[numero - 10]; + } else { + int dezena = numero / 10; + int unidade = numero % 10; + + if (unidade == 0) { + return DEZENAS[dezena]; + } else { + return DEZENAS[dezena] + " e " + UNIDADES[unidade]; + } + } + } +} \ No newline at end of file diff --git a/target/classes/com/mycompany/mavenproject25/Mavenproject25.class b/target/classes/com/mycompany/mavenproject25/Mavenproject25.class new file mode 100644 index 0000000000000000000000000000000000000000..d5103678f37e2d1a271637bcd2b8f07eaa17a9d1 GIT binary patch literal 34946 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 XQ(wQ-*ZnX6`4kRZ_=XANFYtc=iu8@( literal 0 HcmV?d00001 diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..df80a58 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1 @@ +com/mycompany/mavenproject25/Mavenproject25.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..f12e547 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1 @@ +/Users/250413/NetBeansProjects/mavenproject25/src/main/java/com/mycompany/mavenproject25/Mavenproject25.java