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,45 +246,43 @@ public class Mavenproject25 {
}
}
public static void verificarNIF(String NIF) {
Scanner scanner = new Scanner(System.in);
while (!NIF.matches("\\d{9}")) {
String NIFValido = "";
System.out.println("NIF inválido (tem de ter 9 dígitos)\n"
+ "Introduza o NIF novamente:");
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;
}
// Separar os dígitos
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));
// Separar os dígitos
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));
// Cálculo do dígito de controlo
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){
if (resto == 0 || resto == 1) {
digitoControlo = 0;
} else {
digitoControlo = 11 - resto;
}
if(digitoControlo == d9){
System.out.println("O NIF é válido");
// Verificar se o dígito de controlo está correto
if (digitoControlo == d9) {
return true;
} else {
System.out.println("O NIF é inválido\n"
+ "Introduza um válido:");
NIF = scanner.nextLine();
System.out.println("O NIF é válido");
}
return false;
}
}
public static void procurarCliente() {
@@ -303,10 +301,10 @@ public static void procurarCliente() {
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 nif[] = 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;
@@ -317,7 +315,7 @@ public static void procurarCliente() {
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("NIF: " + nif[i] + "\n");
System.out.println("Saldo: " + saldoTxt[i] + "\n");
encontrado = true;
}
@@ -344,10 +342,10 @@ public static void editarDinheiroCliente() {
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 nif[] = 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;
@@ -381,9 +379,9 @@ public static void editarDinheiroCliente() {
String novoEmail = scanner.nextLine();
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();
if (!novoNIF.isEmpty()) NIF[indiceEditar] = novoNIF;
if (!novoNIF.isEmpty()) nif[indiceEditar] = novoNIF;
// Reescrever o ficheiro com os dados atualizados
StringBuilder conteudoAtualizado = new StringBuilder();
@@ -392,7 +390,7 @@ public static void editarDinheiroCliente() {
.append(idTitular[i]).append(",")
.append(numeroTel[i]).append(",")
.append(email[i]).append(",")
.append(NIF[i]).append("\n")
.append(nif[i]).append("\n")
.append(saldo[i]).append("\n");
}
@@ -427,8 +425,17 @@ public static void editarDinheiroCliente() {
System.out.print("║Introduza o ID: ");
String idTitular = scanner.next();
System.out.print("╠════════════════════════════════════════\n");
String 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("║Introduza número: ");
String NumeroTel = scanner.next();
@@ -445,7 +452,7 @@ public static void editarDinheiroCliente() {
System.out.print("╠════════════════════════════════════════\n");
}
System.out.print("╠════════════════════════════════════════\n");
double saldo;
System.out.print("║Introduza saldo(Min: 60€): ");
saldo = scanner.nextDouble();
@@ -472,4 +479,4 @@ public static void editarDinheiroCliente() {
// procurarCliente();
//
// }
}
}