/* Fichier Ex3_H13.java Écrivez un programme en Java qui contient la classe Personne suivante class Personne { private String naissance ; // format "jj/mm/aaaa", ex : "25/12/1990" private int nbCafe ; // nb de tasses de café consommé par jour . . . Constructeurs à écrire . . . . . . Autres méthodes à écrire . . . } // fin de la classe Personne Dans la méthode principale (main), écrivez la déclaration et l’initiation d’un tableau de 6 personnes dont le contenu est le suivant : Indice Tableau pers ----------------------------------------------- 0 "16/11/1992" 2 tasses 1 "02/05/1990" 1 tasse (par défaut) 2 "23/05/1990" 6 tasses 3 "19/02/1985" 0 tasse 4 "30/05/1991" 5 tasses 5 "28/02/1992" 3 tasses Le programme permet de : 1. afficher le contenu du tableau pers au début; 2. déterminer et afficher les informations d'une personne qui consomme le plus de café 3. réduire 1 tasse de moins pour les personnes qui consomment de café. On réaffiche le tableau; 4. compter et afficher le nombre de personnes qui sont nées au mois de mai */ class Personne { private String naissance ; // format "jj/mm/aaaa", ex : "25/12/1990" private int nbCafe ; // nb de tasses de café consommé par jour public Personne(String naiss, int cafe) { naissance = naiss; nbCafe = cafe; } public Personne(String naiss) { naissance = naiss; nbCafe = 1; // par défaut } public String getNaiss() { return naissance; } public int getCafe() { return nbCafe; } public void setCafe(int nouvCafe) { nbCafe = nouvCafe; } public int getAnnee() { return Integer.parseInt( naissance.substring(6)); } public int getMois() { return Integer.parseInt( naissance.substring(3,5)); } } // fin de la classe Personne public class Ex3_H13{ static void afficher(Personne[] pers, int nbPers, String mess) { System.out.printf("Contenu du tableau des personnes %s :\n", mess); for(int i = 0; i < nbPers; i++) System.out.printf("%25s %10d\n", pers[i].getNaiss(), pers[i].getCafe()); System.out.printf("\n"); } static int indMaxCafe(Personne[] pers, int nbPers) { int indice = 0; for (int i = 0; i < nbPers; i++) if (pers[i].getCafe() > pers[indice].getCafe()) indice = i; return indice; } static int nombre(Personne[] pers, int nbPers, int mois) { int n = 0; for (int i = 0; i < nbPers; i++) if (pers[i].getMois() == mois) n ++ ; return n ; } static void reduire(Personne[] pers, int nbPers, int quantite) { for(int i = 0; i < nbPers; i++) if (pers[i].getCafe() >= quantite) pers[i].setCafe( pers[i].getCafe() - quantite); } public static void main(String[] args) { Personne[] pers = { new Personne("16/11/1992",2), new Personne("02/05/1990"), new Personne("23/05/1990",6), new Personne("19/02/1985",0), new Personne("30/05/1991",5), new Personne("28/02/1992",3) } ; int nbPers = pers.length; afficher(pers, nbPers, "au début"); int k = indMaxCafe(pers, nbPers); System.out.printf("La personne consommant le plus de café : %s %d tasses\n", pers[k].getNaiss(), pers[k].getCafe()); reduire(pers, nbPers, 1) ; afficher(pers, nbPers, "après avoir réduit 1 tasse"); // System.out.printf("Nombre de femmes : %d\n", nbFem); System.out.printf("Nombre de personnes qui sont nées au mois de mai : %d\n", nombre(pers, nbPers, 5)); } } /* Compilation et Exécution: --------------------Configuration: -------------------- Contenu du tableau des personnes au début : 16/11/1992 2 02/05/1990 1 23/05/1990 6 19/02/1985 0 30/05/1991 5 28/02/1992 3 La personne consommant le plus de café : 23/05/1990 6 tasses Contenu du tableau des personnes après avoir réduit 1 tasse : 16/11/1992 1 02/05/1990 0 23/05/1990 5 19/02/1985 0 30/05/1991 4 28/02/1992 2 Nombre de personnes qui sont nées au mois de mai : 3 Process completed. */