المدرسة العليا الدولية الخاصة للتكنولوجيا بصف اقس
Institut International de Technologie à Sfax
DS Année universitaire
ère
Niveau d'Etude: 1 année Semestre: 2
Filière : Génie Informatique
Matière: Programmation Orientée Objet Durée: 1 h
Nombres de pages: 2 Documents : Autorisés
Enseignants : Slim KALLEL / Saïd TAKTAK Non Autorisés
Exercice
Le but de ce sujet est d’écrire un programme JAVA pour aider à la gestion de la billetterie des différentes salles
d'un complexe cinématographique. Les places non numérotées sont vendues selon deux tarifs :
• Un tarif normal qui est fixé en fonction de la salle et du film qui y est joué,
• Un tarif réduit (familles nombreuses, militaires, chômeurs, étudiants) qui correspond à une réduction de
20 % par rapport au tarif normal. Ce taux de réduction est le même pour toutes les salles de cinéma,
mais sa valeur peut être modifiée.
Après analyse du problème, il est décidé de représenter les salles de cinéma par des objets JAVA instances d'une
classe SalleCinema définie comme suit :
Les informations caractérisant un objet SalleCinema sont :
• Une chaîne de caractères titre qui contient le titre du film joué,
• Un entier nbp qui contient le nombre de places de la salle,
• Un réel pu qui contient le prix unitaire d'une place à tarif normal,
• Un entier nbpTN qui contient le nombre de places qui ont été vendues à tarif normal,
• Un entier nbpTR qui contient le nombre de places qui ont été vendues à tarif réduit.
Les valeurs des trois premières caractéristiques (titre du film, nombre de places, prix de la place) sont fixées
lors de la création d'un nouvel objet SalleCinema. Quant aux deux autres variables (nombre de places
vendues à tarif normal et nombre de places vendues à tarif réduit) elles sont initialisées à 0.
La classe SalleCinema possède les méthodes suivantes :
• Constructeur SalleCinema
• int nbPlacesDisponibles()
Calcule et renvoie le nombre de places encore disponibles dans la salle.
• void VendrePlaces(int nbre, boolean tarifReduit)
Permet de vendre des billets pour la salle. nbre indique le nombre de places demandées et le booléen
tarifReduit indique si une réduction est demandée ou non (si le paramètre tarifReduit
vaut true une réduction est demandée, s’il vaut false les places sont achetées au tarif normal
sans réduction). Si le nombre de places demandé est supérieur au nombre de places disponibles la
vente n'est pas effectuée et la méthode affiche un message indiquant que la vente n'est pas possible.
Sinon, le prix à payer est affiché.
• double chiffreAffaires()
Retourne le chiffre d'affaires produit par la salle pour la séance en cours (total des ventes).
• double tauxOccupationMoyen()
Retourne le taux d’occupation moyen de toutes les salles de cinéma.
• public String toString()
Retourne une représentation sous forme d'une chaîne de caractères de l'objet SalleCinema. Cette
chaîne indique le titre du film, le prix unitaire d’une place et le chiffre d’affaires produit.
Il est à noter que tout au long de ce problème les attributs des classes à définir ne doivent pas être publiques.
Vous pouvez ajouter d’autres attributs en cas de besoin. Vous pouvez également utiliser les accesseurs et les
modificateurs de tous les attributs sans avoir besoin de les implémenter.
Travail demandé
1. Ecrire le code JAVA de la classe SalleCinema en respectant les spécifications données ci-dessus. (7 pts)
2. Ecrire la classe groupe Salle GpeSalle caractérisée par (9 pts) :
• capacité: indique la capacité du groupe (nombre max de salles)
• tabSalle : tableau de salleCinema
• nbS : nombre de salles disponibles dans le groupe
• GpeSalle (int capacité) : constructeur qui permet d’initialiser nbS à 0, tabSalle et capacité
• void construireSalle (SalleCinema sc) : permet d’ajouter une salle au groupe de salles
• void modifierCapSalle (int pos, int nouveauNbrPlace) : permet de mettre à jour le nombre de
places de la salle à la position pos.
• SalleCinema [ ] chercherSalle (String titre) : retourne les salles qui exposent le même film
• void Afficher (boolean asc) : permet d’afficher une description des salles du groupe selon un ordre
ascendant ou descendant de leur chiffre d’affaires.
3. Ecrire un programme de test TestSalleCinema pour la classe SalleCinema. (4 pts)
Ce programme doit créer un groupe de salle de capacité maximale 5 et ajouter à ce groupe deux salles
correspondant aux informations définies dans la table ci-dessous. Deux places à tarif normal puis trois places
à tarif réduit doivent être achetées pour la première salle. Pour la deuxième salle, trois places à tarif normal
puis six places à tarif réduit doivent être ensuite achetées. Finalement, la description des salles doit être
affichée selon un ordre ascendant de leur chiffre d’affaires.
Prix de la place
Titre Nombre de Places
(tarif normal)
Chat Blanc, Chat Noir 120 8.5
La vie est belle 50 7.5
NB : Le barème est donné à titre indicatif, et il est susceptible d’être modifié
-2-