finalização do sistema de verificacão

This commit is contained in:
250413
2026-05-08 13:56:22 +01:00
parent 31a332c9dc
commit f2ffafa096

View File

@@ -246,44 +246,42 @@ public class Mavenproject25 {
} }
} }
public static void verificarNIF(String NIF) { public static boolean verificarNIF(String nif) {
Scanner scanner = new Scanner(System.in); // Verificar se tem 9 dígitos
if (!nif.matches("\\d{9}")) {
while (!NIF.matches("\\d{9}")) { System.out.println("NIF inválido (tem de ter 9 dígitos)");
String NIFValido = ""; return false;
System.out.println("NIF inválido (tem de ter 9 dígitos)\n"
+ "Introduza o NIF novamente:");
} }
// Separar os dígitos
int d1 = Character.getNumericValue(NIF.charAt(0)); // Separar os dígitos
int d2 = Character.getNumericValue(NIF.charAt(1)); int d1 = Character.getNumericValue(nif.charAt(0));
int d3 = Character.getNumericValue(NIF.charAt(2)); int d2 = Character.getNumericValue(nif.charAt(1));
int d4 = Character.getNumericValue(NIF.charAt(3)); int d3 = Character.getNumericValue(nif.charAt(2));
int d5 = Character.getNumericValue(NIF.charAt(4)); int d4 = Character.getNumericValue(nif.charAt(3));
int d6 = Character.getNumericValue(NIF.charAt(5)); int d5 = Character.getNumericValue(nif.charAt(4));
int d7 = Character.getNumericValue(NIF.charAt(6)); int d6 = Character.getNumericValue(nif.charAt(5));
int d8 = Character.getNumericValue(NIF.charAt(7)); int d7 = Character.getNumericValue(nif.charAt(6));
int d9 = Character.getNumericValue(NIF.charAt(8)); int d8 = Character.getNumericValue(nif.charAt(7));
int d9 = Character.getNumericValue(nif.charAt(8));
// Cálculo do dígito de controlo
int produto = (d8 * 2) + (d7 * 3) + (d6 * 4) + (d5 * 5) + int produto = (d8 * 2) + (d7 * 3) + (d6 * 4) + (d5 * 5) +
(d4 * 6) + (d3 * 7) + (d2 * 8) + (d1 * 9); (d4 * 6) + (d3 * 7) + (d2 * 8) + (d1 * 9);
int resto = produto % 11; int resto = produto % 11;
int digitoControlo; int digitoControlo;
if (resto == 0 || resto == 1) { if (resto == 0 || resto == 1) {
digitoControlo = 0; digitoControlo = 0;
} else { } else {
digitoControlo = 11 - resto; digitoControlo = 11 - resto;
} }
// Verificar se o dígito de controlo está correto
if (digitoControlo == d9) { if (digitoControlo == d9) {
System.out.println("O NIF é válido"); return true;
} else { } else {
System.out.println("O NIF é inválido\n" return false;
+ "Introduza um válido:");
NIF = scanner.nextLine();
System.out.println("O NIF é válido");
} }
} }
@@ -303,10 +301,10 @@ public static void procurarCliente() {
String idTitular[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; String idTitular[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)];
String numeroTel[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; String numeroTel[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)];
String email[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; String email[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)];
String NIF[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; String nif[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)];
String saldoTxt[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; String saldoTxt[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)];
leExtraiCsvFicheiro(nomeFicheiro, nome, idTitular, numeroTel, email, NIF, saldoTxt); leExtraiCsvFicheiro(nomeFicheiro, nome, idTitular, numeroTel, email, nif, saldoTxt);
boolean encontrado = false; boolean encontrado = false;
@@ -317,7 +315,7 @@ public static void procurarCliente() {
System.out.println("ID: " + idTitular[i]); System.out.println("ID: " + idTitular[i]);
System.out.println("Telefone: " + numeroTel[i]); System.out.println("Telefone: " + numeroTel[i]);
System.out.println("Email: " + email[i]); System.out.println("Email: " + email[i]);
System.out.println("NIF: " + NIF[i] + "\n"); System.out.println("NIF: " + nif[i] + "\n");
System.out.println("Saldo: " + saldoTxt[i] + "\n"); System.out.println("Saldo: " + saldoTxt[i] + "\n");
encontrado = true; encontrado = true;
} }
@@ -344,10 +342,10 @@ public static void editarDinheiroCliente() {
String idTitular[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; String idTitular[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)];
String numeroTel[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; String numeroTel[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)];
String email[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; String email[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)];
String NIF[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; String nif[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)];
String saldo[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)]; String saldo[] = new String[getNumeroLinhasFicheiro(nomeFicheiro)];
leExtraiCsvFicheiro(nomeFicheiro, nome, idTitular, numeroTel, email, NIF, saldo); leExtraiCsvFicheiro(nomeFicheiro, nome, idTitular, numeroTel, email, nif, saldo);
int indiceEditar = -1; int indiceEditar = -1;
@@ -381,9 +379,9 @@ public static void editarDinheiroCliente() {
String novoEmail = scanner.nextLine(); String novoEmail = scanner.nextLine();
if (!novoEmail.isEmpty()) email[indiceEditar] = novoEmail; if (!novoEmail.isEmpty()) email[indiceEditar] = novoEmail;
System.out.print("Novo NIF (atual: " + NIF[indiceEditar] + "): "); System.out.print("Novo NIF (atual: " + nif[indiceEditar] + "): ");
String novoNIF = scanner.nextLine(); String novoNIF = scanner.nextLine();
if (!novoNIF.isEmpty()) NIF[indiceEditar] = novoNIF; if (!novoNIF.isEmpty()) nif[indiceEditar] = novoNIF;
// Reescrever o ficheiro com os dados atualizados // Reescrever o ficheiro com os dados atualizados
StringBuilder conteudoAtualizado = new StringBuilder(); StringBuilder conteudoAtualizado = new StringBuilder();
@@ -392,7 +390,7 @@ public static void editarDinheiroCliente() {
.append(idTitular[i]).append(",") .append(idTitular[i]).append(",")
.append(numeroTel[i]).append(",") .append(numeroTel[i]).append(",")
.append(email[i]).append(",") .append(email[i]).append(",")
.append(NIF[i]).append("\n") .append(nif[i]).append("\n")
.append(saldo[i]).append("\n"); .append(saldo[i]).append("\n");
} }
@@ -427,8 +425,17 @@ public static void editarDinheiroCliente() {
System.out.print("║Introduza o ID: "); System.out.print("║Introduza o ID: ");
String idTitular = scanner.next(); String idTitular = scanner.next();
System.out.print("╠════════════════════════════════════════\n"); System.out.print("╠════════════════════════════════════════\n");
String nif;
System.out.print("║Introduza NIF: "); System.out.print("║Introduza NIF: ");
String nif = scanner.next(); nif = scanner.next();
while(!verificarNIF(nif)) {
System.out.println("║NIF inválido!\n"
+ "║Introduza NIF novamente:");
nif = scanner.next();
System.out.print("╠════════════════════════════════════════\n");
}
System.out.print("╠════════════════════════════════════════\n"); System.out.print("╠════════════════════════════════════════\n");
System.out.print("║Introduza número: "); System.out.print("║Introduza número: ");
String NumeroTel = scanner.next(); String NumeroTel = scanner.next();
@@ -445,7 +452,7 @@ public static void editarDinheiroCliente() {
System.out.print("╠════════════════════════════════════════\n"); System.out.print("╠════════════════════════════════════════\n");
} }
System.out.print("╠════════════════════════════════════════\n");
double saldo; double saldo;
System.out.print("║Introduza saldo(Min: 60€): "); System.out.print("║Introduza saldo(Min: 60€): ");
saldo = scanner.nextDouble(); saldo = scanner.nextDouble();