Aller au contenu principal

Atelier 2 : Système de Gestion de Restaurant

Objectif

Créer un système de commande pour un restaurant qui utilise les boucles, les switch, les méthodes et la documentation JavaDoc.

Contexte

Vous devez développer un programme Java qui simule un système de prise de commande pour un restaurant. Le programme doit permettre de :

  • Afficher un menu
  • Prendre plusieurs commandes
  • Calculer le total avec taxes et pourboire
  • Afficher un reçu détaillé

Spécifications

Partie 1 : Le Menu (Switch)

Créez une méthode obtenirPrixItem(int choix) qui retourne le prix d'un item selon le numéro choisi :

1. Burger - 12.99$
2. Pizza - 15.99$
3. Salade - 9.99$
4. Poutine - 8.99$
5. Boisson - 2.99$

Utilisez la nouvelle syntaxe du switch (avec ->) pour implémenter cette méthode.

Partie 2 : Afficher le Menu (Boucles)

Créez une méthode afficherMenu() qui utilise une boucle for pour afficher tous les items du menu de façon formatée.

Exemple de sortie :

===== MENU DU RESTAURANT =====
1. Burger ............ 12.99$
2. Pizza ............. 15.99$
3. Salade ............. 9.99$
4. Poutine ............ 8.99$
5. Boisson ............ 2.99$
==============================

Partie 3 : Prise de Commandes (Boucles while)

Créez une méthode prendreCommandes() qui :

  • Utilise une boucle while pour permettre au client de commander plusieurs items
  • Demande le numéro de l'item et la quantité
  • Continue jusqu'à ce que l'utilisateur entre 0 pour terminer
  • Accumule le total de la commande

Partie 4 : Calcul du Total (Méthodes)

Créez les méthodes suivantes :

  1. calculerSousTotal(double total) - Retourne le sous-total
  2. calculerTaxes(double sousTotal) - Calcule les taxes (15%)
  3. calculerPourboire(double sousTotal, int pourcentage) - Calcule le pourboire (option : 10%, 15%, ou 20%)
  4. calculerTotal(double sousTotal, double taxes, double pourboire) - Calcule le total final

Partie 5 : Affichage du Reçu (Boucles do-while)

Créez une méthode afficherRecu() qui affiche un reçu détaillé avec tous les montants.

Utilisez une boucle do-while pour demander le pourcentage de pourboire jusqu'à ce qu'un choix valide soit entré (10, 15, ou 20).

Exemple de sortie :

======== REÇU ========
Sous-total: 38.97$
Taxes (15%): 5.85$
Pourboire (15%): 5.85$
---------------------
TOTAL: 50.67$
======================

Partie 6 : Documentation JavaDoc

Documentez toutes vos méthodes avec JavaDoc en incluant :

  • Une description de ce que fait la méthode
  • Les paramètres (@param)
  • La valeur de retour (@return)
  • Des exemples si pertinent

Exemple de documentation attendue :

/**
* Calcule le montant des taxes sur le sous-total de la commande.
*
* Le taux de taxes utilisé est de 15%, conforme aux taxes de vente
* du Québec (TPS + TVQ combinées).
*
* @param sousTotal Le montant avant taxes (doit être >= 0)
* @return Le montant des taxes à ajouter au sous-total
*/
public static double calculerTaxes(double sousTotal) {
return sousTotal * 0.15;
}

Conseils

  • Commencez par créer un fichier Restaurant.java avec une méthode main()
  • Créez toutes vos méthodes avec le mot-clé static pour pouvoir les appeler depuis main
  • Testez chaque méthode individuellement avant de les intégrer ensemble
  • N'oubliez pas d'importer java.util.Scanner pour lire les entrées utilisateur
  • Utilisez des noms de variables descriptifs
  • Respectez les conventions de nommage Java (camelCase pour les méthodes)
  • Formatez votre code proprement (indentation, espaces)

Exemple de structure

import java.util.Scanner;

public class Restaurant {

public static void main(String[] args) {
Scanner clavier = new Scanner(System.in);

// 1. Afficher le menu
afficherMenu();

// 2. Prendre les commandes et calculer le sous-total
double sousTotal = prendreCommandes(clavier);

// 3. Calculer les taxes
double taxes = calculerTaxes(sousTotal);

// 4. Demander et calculer le pourboire
int pourcentagePourboire = demanderPourboire(clavier);
double pourboire = calculerPourboire(sousTotal, pourcentagePourboire);

// 5. Calculer le total final
double totalFinal = calculerTotal(sousTotal, taxes, pourboire);

// 6. Afficher le reçu
afficherRecu(sousTotal, taxes, pourboire, totalFinal);

clavier.close();
}

/**
* Affiche le menu du restaurant.
*/
public static void afficherMenu() {
// Votre code ici avec une boucle for
}

/**
* Retourne le prix d'un item selon son numéro.
*
* @param choix Le numéro de l'item (1-5)
* @return Le prix de l'item
*/
public static double obtenirPrixItem(int choix) {
// Utilisez un switch avec la syntaxe ->
return 0.0;
}

/**
* Prend les commandes du client et calcule le sous-total.
*
* @param clavier Le Scanner pour lire les entrées
* @return Le sous-total de la commande
*/
public static double prendreCommandes(Scanner clavier) {
// Utilisez une boucle while
return 0.0;
}

/**
* Calcule le montant des taxes (15%).
*
* @param sousTotal Le sous-total avant taxes
* @return Le montant des taxes
*/
public static double calculerTaxes(double sousTotal) {
return sousTotal * 0.15;
}

/**
* Demande le pourcentage de pourboire désiré.
*
* @param clavier Le Scanner pour lire les entrées
* @return Le pourcentage choisi (10, 15 ou 20)
*/
public static int demanderPourboire(Scanner clavier) {
// Utilisez une boucle do-while
return 0;
}

/**
* Calcule le montant du pourboire.
*
* @param sousTotal Le sous-total avant taxes
* @param pourcentage Le pourcentage de pourboire (10, 15 ou 20)
* @return Le montant du pourboire
*/
public static double calculerPourboire(double sousTotal, int pourcentage) {
return sousTotal * (pourcentage / 100.0);
}

/**
* Calcule le total final.
*
* @param sousTotal Le sous-total
* @param taxes Les taxes
* @param pourboire Le pourboire
* @return Le total final
*/
public static double calculerTotal(double sousTotal, double taxes, double pourboire) {
return sousTotal + taxes + pourboire;
}

/**
* Affiche le reçu détaillé.
*
* @param sousTotal Le sous-total
* @param taxes Les taxes
* @param pourboire Le pourboire
* @param total Le total final
*/
public static void afficherRecu(double sousTotal, double taxes, double pourboire, double total) {
// Votre code ici
}
}

Livrables

  • Un fichier Restaurant.java contenant votre code complet
  • Le code doit compiler sans erreurs
  • Le programme doit s'exécuter correctement et gérer les cas d'utilisation de base

Bon travail ! 🍔🍕