From 4b20447c7ad3428eee00151ab45718d12016a2fd Mon Sep 17 00:00:00 2001 From: 250413 <250413@localhost> Date: Mon, 8 Jun 2026 11:19:51 +0100 Subject: [PATCH] Afinal do projeto --- clientes.txt | 4 +- faturas.txt | 10 + .../mavenproject25/Mavenproject25.java | 205 ++++++++---------- .../mavenproject25/Mavenproject25.class | Bin 34887 -> 34993 bytes 4 files changed, 104 insertions(+), 115 deletions(-) diff --git a/clientes.txt b/clientes.txt index c121e61..05b8f10 100644 --- a/clientes.txt +++ b/clientes.txt @@ -1,4 +1,6 @@ Tiago Silva,195572,913538232,250422@epvc.pt,228389992,500.0 manel,779820,987654321,manel@epvc.pt,123456789,60.0 Tony Eric Wilson,720726,967761691,tony@mail.pt,228389992,1000.0 -Eric,390298,938624267,e@e.pt,228389992,654783.0 +Eric,390298,938624267,e@e.pt,228389992,654803.0 +Tomás,507712,967761691,tiago@mail.com,228389992,385.0 +Wilson,755137,909876543,ftyj@eptp.com,228389992,700.0 diff --git a/faturas.txt b/faturas.txt index ca2de3a..bd162c7 100644 --- a/faturas.txt +++ b/faturas.txt @@ -1 +1,11 @@ ouwefh, 934384261, rua alexandre de morais, 38, 25/11/2012, Cinquenta euros, valor, ilhbv +Vendeiro, 913538232, Póvoa de Varzim, 25/05/2023, Duzentos e cinquenta e seis euros, valor, Eric +Vendeiro, 946823523, Póvoa de Varzim, 24/07/2023, Trezentos e cinquenta e quatro euros, valor, Eric +Vendeiro, 940736325, Vila do Conde, 23/07/2023, Quatrocentos e vinte e cinco euros e cinquenta e seis cêntimos, valor, Eric +tiago, 912345678, Porto, 23/07/2023, Cento e vinte e três euros e quarenta e cinco cêntimos, valor, Eric +Vendeiro, 987654321, Porto, 11/07/2023, Quatrocentos euros e dois cêntimos, valor, Wilson +Vendeiro, 987654321, Porto, 23/04/2023, Duzentos euros e um cêntimo, valor, Wilson +vendeiro, 987654321, Porto, 23/07/2023, Duzentos euros, valor, Wilson +e, 987654321, e, 23/07/2023, Duzentos euros e dois cêntimos, valor, Wilson +e, 987654321, e, , Duzentos euros, valor, e +e, 987654321, e, 23/07/2023, Duzentos euros e dois cêntimos, valor, Wilson diff --git a/src/main/java/com/mycompany/mavenproject25/Mavenproject25.java b/src/main/java/com/mycompany/mavenproject25/Mavenproject25.java index 6fd1503..053f7ef 100644 --- a/src/main/java/com/mycompany/mavenproject25/Mavenproject25.java +++ b/src/main/java/com/mycompany/mavenproject25/Mavenproject25.java @@ -266,7 +266,8 @@ private static void menuClienteLogado(String[] dadosCliente) { "║ ▸ 3 Depositar ║\n" + "║ ▸ 4 Levantar dinheiro ║\n" + "║ ▸ 5 Cheque ║\n" + - "║ ▸ 6 Sair ║\n" + + "║ ▸ 6 Cambio ║\n" + + "║ ▸ 7 Sair ║\n" + "╚═════════════════════════════════════════╝\n", "SEU SALDO: " + saldo); @@ -277,7 +278,7 @@ private static void menuClienteLogado(String[] dadosCliente) { mostrarDadosCliente(dadosCliente); break; case 2: - saldo = transferirDinheiro(dadosCliente[1], saldo); + saldo = transferirDinheiro(dadosCliente[2], saldo); atualizarSaldoCliente(dadosCliente[1], saldo); break; case 3: @@ -289,7 +290,9 @@ private static void menuClienteLogado(String[] dadosCliente) { atualizarSaldoCliente(dadosCliente[1], saldo); break; case 5 : cheque(); - case 6: + break; + case 6 : moeda(); + case 7: sair = true; System.out.println("A sair da conta..."); break; @@ -311,13 +314,13 @@ private static void menuClienteLogado(String[] dadosCliente) { System.out.println ("╚════════════════════════════════════════╝\n"); } - private static double transferirDinheiro(String idOrigem, double saldoOrigem) { + private static double transferirDinheiro(String telOrigem, double saldoOrigem) { Scanner scanner = new Scanner(System.in); - System.out.print("Digite o ID do cliente destinatário: "); - String idDestino = scanner.nextLine(); + System.out.print("Digite o número de Telefone do destinatário: "); + String telDestino = scanner.nextLine(); - if (idDestino.equals(idOrigem)) { + if (telDestino.equals(telOrigem)) { System.out.println("Não pode transferir para si mesmo!"); return saldoOrigem; } @@ -334,22 +337,11 @@ private static void menuClienteLogado(String[] dadosCliente) { 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); + saldoOrigem = saldoOrigem - valor; + atualizarSaldoCliente(telOrigem, saldoOrigem); System.out.printf("Transferência de "+valor+" realizada com sucesso!\n", valor); - System.out.printf("Novo saldo:"+valor+"\n", saldoOrigem); + return saldoOrigem; } @@ -466,7 +458,7 @@ private static void menuAdmin() { + "║ ▸ 2 Procurar cliente ║\n" + "║ ▸ 3 Editar dados de cliente ║\n" + "║ ▸ 4 Remover cliente ║\n" - + "║ ▸ 5 Estatísticas do sistema ║\n" + + "║ ▸ 5 Estatisticas ║\n" + "║ ▸ 6 Sair ║\n" + "╚════════════════════════════════════════╝\n"); @@ -485,9 +477,7 @@ private static void menuAdmin() { case 4: removerCliente(); break; - case 5: - mostrarEstatisticas(); - break; + case 5:mostrarEstatisticas(); case 6: sair = true; break; @@ -687,14 +677,14 @@ private static void mostrarEstatisticas() { 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"); + System.out.println("║ ESTATÍSTICAS DO SISTEMA ║"); + System.out.println("╠════════════════════════════════════════════════════════════════╣"); + System.out.printf("║ Total de clientes: %d%44s%n", numClientes, "║"); + System.out.printf("║ Saldo total do banco: %.2f%33s%n", saldoTotal, "║"); + System.out.printf("║ Saldo médio por cliente: %.2f%30s%n", saldoMedio, "║"); + System.out.printf("║ Cliente com maior saldo: %s (%.2f)%23s%n", clienteSaldoMaximo, saldoMaximo, "║"); + System.out.printf("║ Cliente com menor saldo: %s (%.2f)%26s%n", clienteSaldoMinimo, saldoMinimo, "║"); + System.out.println("╚════════════════════════════════════════════════════════════════╝\n"); } private static void atualizarClienteCompleto(String[] dados) { @@ -1007,10 +997,11 @@ public static void editarDinheiroCliente() { System.out.println("║ ID gerado: " + idTitular); String nif; - do { + System.out.print("║ Introduza NIF (9 dígitos): "); nif = scanner.nextLine(); + while (!verificarNIF(nif) || nif.isEmpty());{ if (!verificarNIF(nif)) { System.out.println("║ NIF inválido! Deve ter 9 dígitos válidos."); } else if (nifJaExiste(nif)) { @@ -1018,13 +1009,14 @@ public static void editarDinheiroCliente() { 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(); + while (telefone.isEmpty() || telefone.length() != 9 || !telefone.matches("\\d+")){ if (telefone.length() != 9 || !telefone.matches("\\d+")) { System.out.println("║ Telefone inválido! Deve ter 9 dígitos."); } else if (telefoneJaExiste(telefone)) { @@ -1032,7 +1024,7 @@ public static void editarDinheiroCliente() { System.out.println("║ Por favor, insira um telefone diferente."); telefone = ""; } - while (telefone.isEmpty() || telefone.length() != 9 || !telefone.matches("\\d+")); + } String email; @@ -1062,7 +1054,7 @@ public static void editarDinheiroCliente() { String cliente = nome + "," + idTitular + "," + telefone + "," + email + "," + nif + "," + saldoTxt + "\n"; adicionaTextoAoFicheiro(cliente, "clientes.txt"); - } + } // Taxas baseadas no EURO static double[] taxas = { @@ -1144,81 +1136,66 @@ public static void editarDinheiroCliente() { } 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."); - - } + Scanner sc = new Scanner(System.in); + int opcao; + + do { + 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 = 0; + while (true) { + System.out.print("\nEscolha a moeda a converter: "); + origem = sc.nextInt(); + if (origem >= 1 && origem <= 8) break; + System.out.println("Opção inválida. Insira novamente."); + } + + int destino = 0; + while (true) { + System.out.print("Escolha a moeda pretendida: "); + destino = sc.nextInt(); + if (destino >= 1 && destino <= 8) break; + System.out.println("Opção inválida. 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("2 - Sair"); + System.out.print("Opção: "); + opcao = sc.nextInt(); + + switch(opcao) { + case 1: //Repetir + break; + case 2: + System.out.println("A sair da conversão de moedas..."); + break; + default: + System.out.println("Opção inválida! A encerrar..."); + opcao = 2; + } + + } while (opcao != 2); + + System.out.println("Programa terminado."); +} private static final String[] UNIDADES = { "zero", "um", "dois", "três", "quatro", "cinco", "seis", "sete", "oito", "nove" @@ -1286,7 +1263,7 @@ public static void editarDinheiroCliente() { System.out.println("│ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ │"); System.out.println("│ │"); System.out.println("│ Pague por este cheque a: │"); - System.out.printf( "│ %-60s │%n", beneficiario); + System.out.printf( "│ %-59s │%n", beneficiario); System.out.println("│ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ │"); System.out.println("│ │"); System.out.printf( "│ A quantia de: %-45s │%n", quantiaPorExtenso); @@ -1297,7 +1274,7 @@ public static void editarDinheiroCliente() { System.out.println("│ │"); System.out.printf( "│ %45s │%n", assinatura); System.out.println("│ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ ̅ │"); - System.out.printf( "│ %46s │%n", "Assinatura"); + System.out.printf( "│ %45s │%n", "Assinatura "); System.out.println( "│ │"); System.out.println("└──────────────────────────────────────────────────────────────┘"); diff --git a/target/classes/com/mycompany/mavenproject25/Mavenproject25.class b/target/classes/com/mycompany/mavenproject25/Mavenproject25.class index ef8aa33e31fdf1cedf08ebc33e3b39e9be007633..7d99d712902e112689087e6ed762adf04a194a40 100644 GIT binary patch delta 14604 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