### **Exercice 1 : Gestion d’un catalogue de produits**
**Objectif** : Manipuler une structure simple et utiliser des fonctions pour gérer un tableau de
produits.
#### **Partie 1 : Déclaration et initialisation**
1. Définissez une structure `Produit` contenant les champs suivants :
- `id` (entier) : identifiant unique du produit.
- `nom` (tableau de 50 caractères) : nom du produit.
- `prix` (flottant) : prix unitaire.
- `stock` (entier) : quantité disponible en stock.
2. Déclarez un tableau global de 10 `Produit` et initialisez-le avec des valeurs par défaut (exemple :
`{ {1, "Laptop", 999.99, 5}, ... }`).
#### **Partie 2 : Fonctions de manipulation**
3. Écrivez une fonction `afficherProduit` qui prend un `Produit` en argument et affiche ses détails.
4. Écrivez une fonction `afficherCatalogue` qui parcourt le tableau et affiche tous les produits.
5. Écrivez une fonction `rechercherProduit` qui demande un `id` à l’utilisateur et affiche le produit
correspondant (ou un message d’erreur si non trouvé).
#### **Partie 3 : Modification interactive**
6. Écrivez une fonction `modifierPrix` qui demande un `id` et un nouveau prix, puis met à jour le
produit.
7. Écrivez une fonction `ajouterStock` qui augmente le stock d’un produit sélectionné par son `id`.
#### **Partie 4 : Menu principal**
8. Créez un menu interactif avec les options :
- `1. Afficher le catalogue`
- `2. Rechercher un produit`
- `3. Modifier le prix d’un produit`
- `4. Ajouter du stock`
- `5. Quitter`
---
### **Exercice 2 : Gestion d’étudiants avec calculs statistiques**
**Objectif** : Utiliser un tableau de structures et implémenter des calculs avancés.
#### **Partie 1 : Déclaration et saisie**
1. Définissez une structure `Etudiant` contenant :
- `nom` (tableau de 30 caractères).
- `notes` (tableau de 5 flottants, représentant 5 matières).
- `moyenne` (flottant, calculée automatiquement).
2. Déclarez un tableau de 5 `Etudiant` et remplissez-le via une fonction `saisirEtudiants`.
#### **Partie 2 : Calculs et affichage**
3. Écrivez une fonction `calculerMoyenne` qui met à jour la moyenne de chaque étudiant.
4. Écrivez une fonction `afficherEtudiants` qui affiche tous les étudiants avec leur moyenne.
5. Écrivez une fonction `meilleurEtudiant` qui retourne l’étudiant avec la meilleure moyenne.
#### **Partie 3 : Statistiques avancées**
6. Écrivez une fonction `moyenneClasse` qui calcule la moyenne générale de la classe.
7. Écrivez une fonction `rechercherEtudiant` qui affiche les détails d’un étudiant à partir de son
nom.
#### **Partie 4 : Menu interactif**
8. Créez un menu avec les options :
- `1. Afficher tous les étudiants`
- `2. Afficher le meilleur étudiant`
- `3. Afficher la moyenne de la classe`
- `4. Rechercher un étudiant`
- `5. Quitter`
---
### **Exercice 3 : Système de gestion d’employés avec dates**
**Objectif** : Utiliser des structures imbriquées et des opérations sur dates.
#### **Partie 1 : Structures imbriquées**
1. Définissez une structure `Date` avec `jour`, `mois`, `annee` (entiers).
2. Définissez une structure `Employe` contenant :
- `nom` (tableau de 30 caractères).
- `salaire` (flottant).
- `dateEmbauche` (de type `Date`).
3. Déclarez un tableau de 5 `Employe` et initialisez-le avec des valeurs par défaut.
#### **Partie 2 : Affichage et recherche**
4. Écrivez une fonction `afficherEmploye` qui affiche un employé avec sa date d’embauche (format
`JJ/MM/AAAA`).
5. Écrivez une fonction `afficherEquipe` qui affiche tous les employés.
6. Écrivez une fonction `rechercherEmploye` qui recherche par nom et affiche le résultat.
#### **Partie 3 : Ancienneté et augmentation**
7. Écrivez une fonction `anciennete` qui calcule le nombre d’années depuis l’embauche.
8. Écrivez une fonction `augmenterSalaire` qui applique une augmentation de 5% aux employés
ayant plus de 5 ans d’ancienneté.
#### **Partie 4 : Menu principal**
9. Créez un menu avec les options :
- `1. Afficher tous les employés`
- `2. Rechercher un employé`
- `3. Calculer l’ancienneté d’un employé`
- `4. Appliquer une augmentation`
- `5. Quitter`
---
### **Remarques pour tous les exercices**
- **Validation des entrées** : Assurez-vous que les saisies utilisateur sont valides (ex : pas de notes
négatives).
- **Modularité** : Décomposez le code en petites fonctions réutilisables.
- **Affichage clair** : Formatez correctement les sorties (ex : prix avec 2 décimales).