Vous êtes sur la page 1sur 3

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique

Université de Carthage
Institut Supérieur des Technologies de l’Information et de la Communication

Classe : GLSI-2 POO (JAVA) Nombre de pages : 3


Enseignantes : AMDOUNI Imen
Date : Lundi 10 Janvier 2022 Durée : 1h30
& Ben Othman Ibtissem
Barème approximatif : Documents : autorisé  Calculatrice : autorisée 
non autorisé non autorisée 

Enoncé du problème :
Objectif : Le but de cette application est de créer des classes permettant de représenter des
réservations et des commandes d’un restaurant.
Classe Client
Cette classe permet de représenter des clients réservant des tables.
 Un attribut nom contenant le nom du client.
 Un constructeur évident avec un paramètre nom.
 La méthode toString( ) renvoyant le nom du client.
1) Créer la classe Client avec l’attribut, le constructeur et la méthode demandée.
Interface ChoixMenu
Cette interface représente les choix possibles dans le menu qui seront soit des plats qui seront
représentés par la classe Plat ou bien des formules (entrée + plat + dessert) qui seront
représentés par la classe Formule.
 Une méthode getPrix sans argument et renvoyant un prix représenté par un entier.
 La méthode toString renvoyant une chaîne de caractères représentant le menu.
2) Créer l’interface ChoixMenu avec les méthodes demandées.
Classe Plat
Cette classe permet de représenter des plats au menu. Elle devra implémenter l’interface
ChoixMenu.
 Un attribut nom contenant le nom du plat.
 Un attribut prix de type int contenant le prix du plat.
 Un constructeur évident avec deux paramètres nom et prix.
 La méthode publique toString renvoyant une chaîne de caractère composée du nom du
plat, suivi d’un espace, suivi du prix du plat, suivi d’un symbole €. Par exemple, pour un

1/3
plat nommé "Bouillabaisse" avec un prix de 30, la méthode devra renvoyer la chaîne de
caractères "Bouillabaisse : 30 €"
 Potentiellement une ou plusieurs méthodes supplémentaires qui vous semblent utiles.
3) Créer la classe Plat avec l’attribut, le constructeur et les méthodes demandées plus
éventuellement des méthodes et des exceptions qui vous semblent utiles.
Classe Formule
Cette classe permet de représenter une formule (une entrée, un plat et un dessert). Elle devra
implémenter l’interface ChoixMenu.
 Un attribut nom contenant le nom de la formule.
 Trois attributs entree, platPrincipal et dessert de type String qui représentent l’entrée, le
plat principal et le dessert de la formule.
 Un attribut prix de type int contenant le prix de la formule.
 Un constructeur évident avec 5 paramètres nom, prix, entree, platPrincipal et dessert.
 La méthode toString renvoyant une chaîne de caractères composé du nom de la formule,
suivi d’un espace, suivis de l’entrée + plat principal + dessert entre parenthèse suivi du
prix du plat, suivi d’un symbole €.
 Potentiellement une ou plusieurs méthodes supplémentaires qui vous semblent utiles.
4) Créer la classe Formule avec les attributs, le constructeur et la méthode demandée plus
éventuellement des méthodes et des exceptionsqui vous semblent utiles.
Classe Table
La classe Table représentera les tables du restaurant.
 Un attribut nombreTotalTables qui est mis à jour pour toujours contenir le nombre de
tables créées.
 Un attribut id de type int qui est l’identifiant de la table.
 Un attribut capacite de type int contenant le nombre de place de la table.
 Un constructeur prenant en argument un entier capacite et construisant une nouvelle table
avec la capacité demandée et un identifiant différent de toutes les autres tables créées.
 Une méthode public int getCapacite() renvoyant le nombre de place de la table.
 La méthode toString renvoyant une chaîne de caractères représentant la table. La chaîne
devra commencer par "Table " suivi de l’identifiant, suivi du nombre de places entre
parenthèse.
5) Créer la classe Table avec les attributs, le constructeur et la méthode demandée plus
éventuellement des méthodes et des exceptions qui vous semblent utiles.

2/3
Classe Reservation
Cette classe permet de représenter les réservations. Cette classe contiendra :
 Un attribut horaireReservation de type String qui représentera l’horaire de réservation.
 Un attribut client qui représente le client réservant la table.
 Un attribut nombrePersonnes qui représente le nombre de places réservées.
 Un attribut listChoix de type List<ChoixMenu> qui représente les menus commandés de
cette réservation. (vous pouvez utiliser les tableaux au lieu des listes)
 Un constructeur avec trois arguments horaireReservation, client et nombrePersonnes qui
construit une réservation avec les trois attributs correspondant initialisés aux bonnes
valeurs et aucun menu commandé (liste vide ou tableau vide).
 Une méthode void ajouterChoixMenu (ChoixMenu choixmenu) ajoutant un menu à liste
des menus commandés de cette réservation.
 La redéfinition de la méthode equals sachant que deux réservations sont égales si elles
sont commandées par le même client et au même horaire de réservation.
6) Créer la classe Reservation avec les attributs, le constructeur et les méthodes demandées
ainsi que les exceptions adéquates.
Méthode du calcul du prix
7) Rajouter une méthode int totalPrix() de la classe Reservation calculant la somme due par
les clients, c’est-à-dire le total des prix des menus commandés.

3/3

Vous aimerez peut-être aussi