P.O.
O (Java, Java Avancé)
4IIR
Atelier N°3
Les tableaux
Exercice 1 : Gestion d'un inventaire de produits
Un magasin souhaite gérer son inventaire de produits à l'aide d'un programme. Chaque produit a un
identifiant unique, un nom, une quantité en stock, et un prix. Vous devez créer un tableau de produits et
permettre au gestionnaire de réaliser les opérations suivantes sur l'inventaire :
▪ Ajouter un nouveau produit : Si l'identifiant existe déjà, une erreur doit être affichée.
▪ Afficher tous les produits de l'inventaire avec leurs détails.
▪ Rechercher un produit par son identifiant.
▪ Supprimer un produit par son identifiant.
▪ Modifier les informations d’un produit (nom, quantité, prix).
▪ Afficher les produits triés par ordre croissant de prix.
▪ Afficher le produit ayant la quantité en stock la plus basse
a. Créez une classe Produit avec les attributs suivants : id, nom, quantité, prix. Ajoutez un constructeur
et les méthodes getter/setter.
b. Créez une classe GestionInventaire avec un tableau de produits.
c. Implémentez les méthodes pour chaque opération (ajout, suppression, modification, etc.).
d. Dans la méthode main, présentez un menu pour que l'utilisateur puisse choisir les actions qu'il veut
réaliser sur l'inventaire.
e. Validez les entrées utilisateur (ex. vérifier qu'il y a de l’espace dans le tableau avant d'ajouter un
produit).
NB :
Le tableau de produits a une taille maximale fixe (par exemple, 100 produits).
Lorsqu'un produit est supprimé, déplacez les éléments du tableau pour éviter les "trous".
Ci-après un exemple d’exécution.
PR. ERRAISSI 1
P.O.O (Java, Java Avancé)
4IIR
Exercice 2 : Gestion des Dossiers Médicaux des Patients
Objectifs :
▪ Créer une application Java qui gère les informations médicales des patients.
▪ Manipuler des tableaux d'objets.
▪ Appliquer des méthodes de tri et de recherche.
▪ Gérer des dates et des diagnostics.
1. Classe Consultation :
a. Crée une classe nommée Consultation qui contiendra les informations suivantes :
Un diagnostic sous forme de chaîne de caractères.
Le nom du médecin responsable sous forme de chaîne de caractères.
La date de la consultation, représentée par un objet de type LocalDate.
b. Ajoute un constructeur pour initialiser ces attributs.
c. Implémente une méthode afficherConsultation() qui affiche le diagnostic, le médecin, et la
date de la consultation.
2. Classe Patient :
a. Crée une classe nommée Patient qui doit contenir les informations suivantes :
Le nom du patient (String).
L'âge du patient (int).
Un numéro de dossier médical unique (int).
Un tableau de Consultation (un patient peut avoir jusqu'à 5 consultations).
b. Implémente un constructeur qui initialise les informations du patient.
c. Ajoute une méthode ajouterConsultation(Consultation consultation) pour ajouter une
consultation à ce patient (en vérifiant que le nombre de consultations n'excède pas 5).
d. Implémente une méthode afficherInformations() qui affiche le nom, l'âge, le numéro de
dossier et toutes les consultations du patient.
3. Classe Hopital :
a. Crée une classe Hopital pour gérer les patients. Cette classe doit contenir :
Un tableau de Patient qui peut stocker jusqu'à 10 patients.
b. Une méthode ajouterPatient(Patient patient) pour ajouter un patient dans l'hôpital (en
vérifiant que le nombre de patients n'excède pas 10).
c. Une méthode rechercherPatientParNumero(int numeroDossier) qui prend en paramètre un
numéro de dossier et retourne le patient correspondant, ou null si le patient n'est pas trouvé.
d. Une méthode calculerAgeMoyen() pour calculer et retourner l'âge moyen de tous les
patients.
e. Une méthode trierPatientsParAge() pour trier les patients par âge en utilisant un tableau de
type Patient[] et la méthode [Link]().
PR. ERRAISSI 2
P.O.O (Java, Java Avancé)
4IIR
f. Une méthode trierPatientsParNom() pour trier les patients par ordre alphabétique de leur
nom.
g. Une méthode afficherTousLesPatients() qui affiche les informations de tous les patients avec
leurs consultations.
4. Classe Main :
Dans la classe Main, implémente les actions suivantes :
a. Permets à l'utilisateur d'ajouter plusieurs patients avec leurs consultations.
b. Affiche les informations de tous les patients et leurs consultations.
c. Recherche un patient par numéro de dossier et affiche ses informations.
d. Calcule et affiche l'âge moyen des patients.
e. Trie les patients par âge, puis affiche les patients triés.
f. Trie les patients par nom, puis affiche les patients triés.
5. Questions supplémentaires :
a. Comment pourrais-tu modifier ton programme pour permettre l'ajout d'un nombre illimité de
patients au lieu d'être limité à 10 ?
b. Comment gérerais-tu la modification d'une consultation déjà existante dans le tableau de
consultations d’un patient ?
c. Comment pourrais-tu ajouter une option pour supprimer un patient ou une consultation
spécifique d'un patient ?
PR. ERRAISSI 3