From 2bab2fc6633adfe760d68e6c09edde9ac0ab7e4d Mon Sep 17 00:00:00 2001 From: La Programmatrice Verde Date: Thu, 19 Mar 2026 21:42:02 +0100 Subject: [PATCH] aggiungiDipendente --- src/gestioneferie/Dipendente.java | 5 ++-- src/gestioneferie/GestioneFerie.java | 40 +++++++++++++++++++++++++++- 2 files changed, 41 insertions(+), 4 deletions(-) diff --git a/src/gestioneferie/Dipendente.java b/src/gestioneferie/Dipendente.java index 80068ab..bcae528 100644 --- a/src/gestioneferie/Dipendente.java +++ b/src/gestioneferie/Dipendente.java @@ -4,13 +4,12 @@ public class Dipendente { private String codiceFiscale; private String nome; private String cognome; - private int giorniFerieResidui; + private int giorniFerieResidui = 0; private static final int GIORNI_FERIE_TOTALI = 35; - public Dipendente(String codiceFiscale, String nome, String cognome, int giorniFerieResidui) { + public Dipendente(String codiceFiscale, String nome, String cognome) { this.codiceFiscale = codiceFiscale; this.nome = nome; this.cognome = cognome; - this.giorniFerieResidui = giorniFerieResidui; } } diff --git a/src/gestioneferie/GestioneFerie.java b/src/gestioneferie/GestioneFerie.java index 6fb0122..44c1d32 100644 --- a/src/gestioneferie/GestioneFerie.java +++ b/src/gestioneferie/GestioneFerie.java @@ -7,6 +7,7 @@ package gestioneferie; import java.util.ArrayList; import java.util.InputMismatchException; import java.util.Scanner; +import java.util.regex.Pattern; /** * @@ -44,7 +45,8 @@ public class GestioneFerie { case 0: break; case 1: - + aggiungiDipendente(dipendenti); + System.out.println("Dipendente aggiunto con successo."); pausa(); break; case 2: @@ -79,4 +81,40 @@ public class GestioneFerie { System.out.println("Premere un tasto per continuare. . ."); sc.nextLine(); } + + private static void aggiungiDipendente(ArrayList dipendenti) { + String nome; + String cognome; + String codiceFiscale; + + System.out.print("Inserire il nome del dipendente: "); + nome = sc.nextLine().trim().toLowerCase(); + + System.out.print("Inserire il cognome del dipendente: "); + cognome = sc.nextLine().trim().toLowerCase(); + + codiceFiscale = codiceFiscale(); + + dipendenti.add(new Dipendente(codiceFiscale, nome, cognome)); + } + + public static String codiceFiscale() { + String codiceFiscale; + Pattern pattern = Pattern.compile("[A-Z]{6}[ABCDEHLMPRST]{3}\\d{2}[A-Z]\\d{3}[A-Z]"); + boolean error; + + do { + error = false; + System.out.print("Inserire il codice fiscale: "); + codiceFiscale = sc.nextLine(); + + if (pattern.matcher(codiceFiscale).find()) { + System.out.print(ERRORE_GENERICO); + pausa(); + error = true; + } + } while (error); + + return codiceFiscale; + } }