Vous êtes sur la page 1sur 5

Programmation objet (RSI21)

TD 3
Gestion d’un hotel
Un hôtel gère des chambres permettant de recevoir d’une à quatre personnes et classifiées selon 6
catégories.
Vous disposez des tableaux TabPrix et TabDescript pour réaliser votre application :
TabPrix est une tableau de deux dimensions qui permet de donner le prix d’une chambre en
fonction de sa capacité d’accueil (le nombre de personnes pouvant occuper la chambre) et de sa
catégorie. Chaque cellule du tableau contient le prix de la chambre.

Contenu de TabPrix :
Indice=N° de Catégorie
1 2 3 4 5 6
Indice=
1 100 120
150 0 130 0
Capacité
d’accueil 2 130 160
190 0 170 0
3 170 200 210
230 270 350
4 200 230 240
260 300 400
Remarque : Lorsque TabPrix(NbPersonnes, N°Catégorie)=0, cela signifie qu’il n’y a pas de
chambre correspondant à la combinaison nombre de personnes/catégorie.

TabDescript est un tableau à une dimension qui permet de donner la description d’une chambre
en fonction de sa catégorie, il contient les éléments suivants :
Indice=N° de Catégorie

1 Lavabo
2 WC, Télévision
3 Cabine Douche, Télévision
4 WC, Cabine Douche, Télévision
5 WC, Salle de bain + Douche, Télévision
6 2 pièces, Salle de bain + douche, WC, Télévision
La classe Chambre est définie selon le format suivant :
Chambre= Classe
privé :
Numéro : Entier
Catégorie : Entier
NbPersonnes : Entier
public :
Fonction Chambre(Numéro : Entier, Catégorie : Entier, NbPersonnes : Entier) /* initialise une chambre */
Fonction DonnerNumero() : Entier /* méthode qui renvoie le numéro de la chambre */
Fonction DonnerCateg() : Entier /* méthode qui renvoie la catégorie à laquelle la chambre appartient */
Fonction DonnerNbPers() : Entier /* méthode qui retourne la capacité d’accueil d’une chambre */
Fonction DonnerPrix(PtabPrix : tableau(1..4,1..6) de entier) : entier /* méthode qui retourne le prix de la chambre
en fonction du nombre de places d’accueil et de la capacité de celle-ci */
Procédure: AffichDescript(PtabDescript
Enseignant Riadh BOUSLIMI : tableau(1..6) de chaine(50)) /* méthode qui affiche la description d’une1
chambre en fonction de sa catégorie */
Fclasse
Programmation objet (RSI21)

La classe Hotel est également disponible pour gérer les chambres de l’hôtel et est définie selon la
description suivante :

Hotel= Classe
privé :
TabCh : tableau(1..31) de Chambre
public :
Procédure AffichCh(PnbPers : entier, PtabPrix : tableau(1..4,1..6) de Entier, PtabDescript : tableau(1..6) d
chaine(50))
/* méthode qui affiche la liste des chambres dont la capacité d’accueil correspond au nombre de personnes passé
en paramètre. Pour chaque chambre affichée, devront figurer le numéro , la catégorie, la description et le prix, la
méthode doit aussi afficher en fin de traitement le nombre de chambres sélectionnées (ayant une capacité identique
à celle en paramètre) */

Fclasse
Travail à faire : Créer les classes Chambre et Hotel, enfin pour tester les deux classes à faite la classe
testHotel

Enseignant : Riadh BOUSLIMI 2


Programmation objet (RSI21)

Correction
/**
* @auteur Riadh BOUSLIMI
* chambre.java
*/
public class chambre {

//attributs de la classe
private int numero;
private int categorie;
private int nbPersonnes;

//constructeur de la classe
public chambre(int numero,int categorie,int nbPersonnes){
this.numero= numero;
this.categorie= categorie;
this.nbPersonnes= nbPersonnes;
}

//méthodes de la classe
public int DonnerNumero(){
return numero;
}

public int DonnerCateg(){


return categorie;
}

public int DonnerNbPers(){


return nbPersonnes;
}

public int DonnerPrix(int tabPrix[][]){


return tabPrix[nbPersonnes-1][categorie-1];
}

public void AffichDescript(String tabDescript[]){


System.out.println("Description:"+tabDescript[categorie-1]);
}
}

/**
* @auteur Riadh BOUSLIMI
* hotel.java
*/
public class hotel {

//attribut de la classe
chambre tabCh[];

//constructeur de la classe
public hotel(){

tabCh = new chambre[31];

Enseignant : Riadh BOUSLIMI 3


Programmation objet (RSI21)

//affectation de valeurs dans le tableau


tabCh[0] = new chambre(1,1,1);tabCh[1] = new chambre(2,2,1);
tabCh[2] = new chambre(3,3,1);tabCh[3] = new chambre(4,4,1);
tabCh[4] = new chambre(5,1,2);tabCh[5] = new chambre(6,2,2);
tabCh[6] = new chambre(7,3,2);tabCh[7] = new chambre(8,4,2);
tabCh[8] = new chambre(9,1,3);tabCh[9] = new chambre(10,2,3);
tabCh[10] = new chambre(11,3,3);tabCh[11] = new chambre(12,4,3);
tabCh[12] = new chambre(13,5,3);tabCh[13] = new chambre(14,6,3);
tabCh[14] = new chambre(15,1,4);tabCh[15] = new chambre(16,2,4);
tabCh[16] = new chambre(17,3,4);tabCh[17] = new chambre(18,4,4);
tabCh[18] = new chambre(19,5,4);tabCh[19] = new chambre(20,6,4);
tabCh[20] = new chambre(21,1,1);tabCh[21] = new chambre(22,2,2);
tabCh[22] = new chambre(23,1,2);tabCh[23] = new chambre(24,3,1);
tabCh[24] = new chambre(25,3,2);tabCh[25] = new chambre(26,4,4);
tabCh[26] = new chambre(27,5,4);tabCh[27] = new chambre(28,2,2);
tabCh[28] = new chambre(29,4,3);tabCh[29] = new chambre(30,3,2);
tabCh[30] = new chambre(31,4,2);
}

/*
* méthode qui affiche les chambres
* correspondant à une certaine capacité
*/

public void affichCh(int PnbPers, int tp[][], String td[]){


int nbCh = 0;
for(int i=0;i<31;i++){
if (tabCh[i].DonnerNbPers() == PnbPers){

System.out.println("Chambre:"+tabCh[i].DonnerNumero());

System.out.println("Catégorie:"+tabCh[i].DonnerCateg()+"
prix:"+tabCh[i].DonnerPrix(tp)+" ");
tabCh[i].AffichDescript(td);
nbCh++;
}
System.out.println("Nombre de chambres:"+nbCh);
}
}
}

/**
* @auteur Riadh BOUSLIMI
* testhotel.java
*/
public class testHotel {

public static void main(String[] args) {//programme principale

//tableau des prix des chambres: tabPrix


int tp[][] = new int[4][6];
tp[0][0]=100;tp[0][1]=120;tp[0][2]=130;
tp[0][3]=150;tp[0][4]=0;tp[0][5]=0;
tp[1][0]=130;tp[1][1]=160;tp[1][2]=170;

Enseignant : Riadh BOUSLIMI 4


Programmation objet (RSI21)

tp[1][3]=190;tp[1][4]=0;tp[1][5]=0;
tp[2][0]=170;tp[2][1]=200;tp[2][2]=210;
tp[2][3]=230;tp[2][4]=270;tp[2][5]=350;
tp[3][0]=200;tp[3][1]=230;tp[3][2]=240;
tp[3][3]=260;tp[3][4]=300;tp[3][5]=400;

//tableau des decriptions des chambres : tabDescript


String td[] = {"Lavabo","WC, television",
"Cabine douche, television",
"WC, cabine douche, Television",
"WC, Salle de bain+douche, Television",
"2 pièces, WC, Salle de bain + douche, Television"};
chambre c =new chambre(1,1,4);
System.out.println("Categorie:"+c.DonnerCateg());
System.out.println("Capacite:"+c.DonnerNbPers());
System.out.println("Prix:"+c.DonnerPrix(tp));
c.AffichDescript(td);

hotel h = new hotel();


h.affichCh(1,tp,td);
}
}

Enseignant : Riadh BOUSLIMI 5

Vous aimerez peut-être aussi