TP2 : Première classe java


But:
Réaliser l'applet suivante qui permet de simuler la billetterie d'un complexe de cinéma. Choisir son film, le nombre de places et s'il y a réduction ou non. Le prix à payer s'affiche ainsi que le nombre de places disponibles.
Appuyer sur Validation pour accepter l'achat, l'état de la salle s'affiche.
Appuyer sur Fin de séance pour connaître le prix de revient de chaque salle ainsi que le total du complexe. Les places des salles sont initialisées.
a) Ecriture d'une classe simple
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 à 80% du tarif normal
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 qui contient le titre du film joué.
- un entier qui contient le nombre de places de la salle.
- un réel qui contient le prix unitaire d'une place à tarif normal.
- un entier qui contient le nombre de places qui ont été vendues à tarif normal.
- un entier 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 place, prix de la place) sont fixées lors de la création d'un nouvel objet SalleCinema (c'est-à-dire, sont passées en paramètres du constructeur).
Quand aux deux autres variables (nombre de places vendues à tarif normal et nombre de places vendues à tarif réduit) elles sont bien sur initialisées à 0.

La classe SalleCinema possède les méthodes suivantes :
- public int nbPlacesDisponibles()
Calcule et renvoie le nombre de places encore disponibles dans la salle.
- public 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, si 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 la variable d'instance correspondant au nombre de places vendues à tarif normal ou à tarif réduit (selon la valeur du paramètre tarifReduit) est mise à jour et le prix à payer est affiché.
- public void remiseAZero()
Permet lorsque la vente de billets pour une séance est terminée de remettre à 0 les compteurs de nombre de places vendues en vue de la vente de billets pour la prochaine séance.
- public double chiffreAffaires()
Retourne le chiffre d'affaires produit par la salle pour la séance en cours (total des ventes depuis la création de l'objet salle ou la dernière remise à zero du nombre de places vendues).
- public double tauxRemplissage()
Retourne le taux (pourcentage) de remplissage de la salle.
- public String toString()
Retourne une représentation sous forme d'une chaîne de caractères de l'objet SalleCinema. Cette chaîne indique la valeur de chacun des attributs (chacune des variables d'instances) de l'objet (le titre du film, le nombre de places de la salle, le nombre de places vendues à tarif normal, le nombre de places vendues à tarif réduit, le prix de la place). Par exemple, pour une salle de 60 places jouant le film "Sacré Graal" dont 20 places ont été vendues au tarif normal (de 7,5 €) et 14 places ont été vendues au tarif réduit l'affichage de la chaîne retournée par toString pourrait être le suivant :
Film joué : Sacré Graal ,
Nombre de places : 60 ,
Prix d'une place : 7.50 €,
20 places vendues au tarif normal ,
14 places vendues au tarif réduit.
Travail demandé :
- Créer un projet spécial pour ce TP. Pour chaque TP, créer un package
- Ecrire le code JAVA de la classe SalleCinema en respectant scrupuleusement les spécifications données ci-dessus.
- Ecrire un programme simple de test pour la classe SalleCinema.
Ce programme doit créer 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 les attributs des deux salles doivent être affichées ainsi que le nombre de places encore disponibles et le chiffre d'affaire produit.
Titre
|
Nombre de Places Normales
|
Prix de la place (tarif normal)
|
Chat blanc , Chat Noir | 120 | 8.5 € |
La vie est belle | 50 | 7.5€ |
b) Une première utilisation de tableaux d'objets
Ecrire un programme de "billetterie" respectant les spécification suivantes.
Ce programme permet d'enregistrer les entrées effectuées dans les différentes salles et de calculer et d'afficher le taux d'occupation et le chiffre d'affaire produit par chaque salle lorsque la vente des billets pour la séance est terminée.
Le programme de billetterie est lancé au début de la mise en vente des billets pour la prochaine séance de projection.
Chaque salle est identifiée par un numéro unique (les numéros allant de 1 à n, n étant le nombre total de salles). Lorsqu'un client se présente, le guichetier tape le numéro de la salle pour lequel le client désire des billets.
Le programme affiche alors les différents attributs de la salle sélectionnée (le titre du film, le nombre de places de la salle, le nombre de places vendues...). Le guichetier fournit ensuite au programme le nombre de places que le client désire acheter en indiquant également si le client bénéficie ou non d'une réduction.
Si la demande du client peut être satisfaite le programme affiche le prix à payer sinon il affiche un message indiquant que le nombre de places demandé est incorrect. Lorsque la vente des billets est terminée, le programme affiche alors pour chaque salle son état (la valeur des ses attributs),son taux d'occupation et le chiffre d'affaire produit.
Le programme calcule aussi le chiffre d'affaires total et l'affiche.
La structure du programme pourra être la suivante :
creation des objets SalleDeCinéma
venteTerminée un boolean initialisé à false
tantque (! venteTerminée) {
lire un numero de salle
si le numéro de la salle est correct alors
afficher les informations de la salle
lire nb le nombre de places à acheter
demander si réduction ou non
vendre pour la salle sélectionné les nb places demandées
demander à l'opérateur si il veut poursuivre ou non la vente
si la réponse mettre à jour venteTerminée
sinon
afficher un message d'erreur "numéro de salle incorrect"
fin tant que
calculer et afficher pour chaque salle le taux de remplissage et le chiffre d'affaire produit
afficher le chiffre d'affaire total
Indication : pour stocker les salles on pourra utiliser soit un tableau, soit une ArrayList

