Page 1 sur 4
EXAMEN DE RATTRAPAGE DE PROGRAMMATION EN LANGAGE JAVA
Durée : 3 heures
Cette épreuve est composée de trois (3) exercices indépendants à réaliser sur vos ordinateurs personnels.
Exercice n°1 (6 points)
Réaliser la fenêtre ci-dessous. Le titre de la fenêtre sera vos nom et prénoms. La couleur de fond l’orange
La première zone de texte servira à saisir un mot ou une phrase. La boîte combo contient les 6 voyelles de l’alphabet.
- Quand l’utilisateur clique sur la touche « Compter », le résultat devra être affiché dans la zone de texte du bas. Le
résultat consiste à donner la taille du mot ou de la phrase saisie dans la zone de texte du haut ainsi que le nombre
d’occurrences de la voyelle sélectionnée dans la combo du haut. Exemple : La phrase dans la zone a une longueur de
10 caractères et compte 2 e
- Quand l’utilisateur clique sur la touche « Copier», le résultat sera une copie du texte de la zone de texte du haut
vers la zone de texte du bas.
Exercice n°2 (6 points)
1) Créer une classe Personne définie par trois champs de visibilité appropriée pour être héritées par une classe
dérivée nommée Eleve. La Classe Personne doit être dotée d’un constructeur avec trois arguments muets
permettant d’initialiser les objets de la classe. Les accesseurs et des mutateurs doivent être prévus pour
chaque champ de la classe. Pour faire simple, on suppose qu’une Personne possède un nom, un prenom et a
une date de naissance. La classe Personne doit disposer en outre d’une méthode toString() qui retourne une
chaine de caractère sous la forme « Je suis nom prénom et je suis né le 12/06/1960 »
2) Créer la classe Eleve qui dérive de la classe Personne et qui possède en outre un champ de type chaîne de
caractères qui désigne son école. Redéfinir la méthode toString pour qu’un objet de type Eleve puisse
Page 2 sur 4
afficher non seulement les attributs comme s’il s’agissait d’une personne mais aussi l’école de l’élève
considéré.
Exercice n°3 (8 points)
Jeu de domino
Certains des éléments qui suivent sont empruntés à l'article Dominos (jeu) de wikipedia.
Le jeu de dominos est un jeu de société d'origine chinoise, utilisant 28 pièces (dans le cas d'un jeu double-
six), appelées des dominos. On y joue à deux, trois, ou quatre personnes. Comme avec les cartes, il existe de
nombreuses variantes de jeu.
Les pièces du jeu comportent deux cases carrées accolées, chacune contenant des points, entre 0 et 6 points
dans chaque case.
Voici quelques exemples de pièces:
De façon abstraite, on peut considérer un domino comme une paire de nombres compris entre 0 et 6 que l'on
notera entre parenthèses, séparés par une virgule, par exemple (1,5). Comme une pièce peut toujours se
retourner, (1,5) et (5,1) représentent la même pièce. Il est toujours possible de retourner une pièce pour la
jouer.
Le jeu de domino comprend un exemplaire de chaque paire constituée de cette façon. Il y en a 28
différentes.
Les dominos sont distribués en nombre égal à chaque joueur. Le premier joueur choisit librement la pièce
qu'il pose au centre de la table. Par la suite, chaque joueur doit accoler à un des dominos des extrémités du
jeu une pièce ayant dans une de ses cases la même valeur que la case située à l'extrémité en question.
Voyons un exemple.
Le premier joueur pose la pièce (2,4).
Le suivant peut choisir de poser à gauche de cette pièce un domino ayant un 2 ou à droite un domino ayant
un 4. Supposons qu'il pose (1,4) à droite. Pour ce faire, il faut retourner la pièce et la poser. Cela donne un
centre (2,4)(4,1).
Page 3 sur 4
Le joueur suivant à le choix entre poser à gauche une pièce avec un 2 ou à droite une pièce avec un 1.
Et ainsi à tous les tours de jeu, il y a le choix entre deux côtés, gauche et droite, qui ont chacun une case dont
il faut égaler le nombre.
Une partie en cours peut avoir la configuration suivante: (0,0)(0,2)(2,4)(4,1)(1,6)(6,0)
Dans la séquence, chaque domino a comme deuxième nombre le premier nombre du domino suivant. On
voit aussi dans cet exemple qu'il y a le même nombre à gauche et à droite de la séquence. Le joueur suivant
devra impérativement poser une pièce avec un 0.
Programme à réaliser
Écrivez deux classes: une pour représenter une pièce du jeu de domino et une pour représenter la séquence
de dominos posée au centre de la table de jeu.
La classe des pièces s'appellera Domino et elle aura les composantes suivantes:
Un constructeur recevant en paramètre les deux nombres sous forme d'int.
Deux méthodes getNbGauche et getNbDroit sans paramètre et renvoyant un entier, respectivement le
nombre situé sur la partie gauche et le nombre situé sur la partie droite de la pièce.
Une méthode retourne sans paramètre permettant de tourner la pièce. Après cette opération, le premier
nombre devient le deuxième et vice-versa.
Une méthode peutSuivre prenant une autre pièce en paramètre et renvoyant un booléen qui spécifie si
l'objet sur lequel est appelée la méthode peut suivre l'objet passé en paramètre dans une séquence de
dominos posée au centre de la table.
Une méthode peutPreceder avec un paramètre de type Domino et qui renvoie un booléen spécifiant si
l'objet sur lequel est appelée la méthode peut précéder l'objet passé en paramètre dans une séquence de
dominos posée au centre de la table.
Une méthode toString qui représente un domino sous forme d'une paire de nombres entre parenthèses
séparés par une virgule. Par exemple "(1,5)".
La classe représentant la séquence de dominos posée au centre de la table de jeu s'appellera
SequenceDomino. Elle comprendra les éléments suivants:
Un constructeur recevant en paramètre un objet de type Domino, qui est la première pièce jouée au centre
du jeu.
Deux méthodes sans paramètre valeurAGauche et valeurADroite renvoyant respectivement le
nombre apparaissant à gauche de la première pièce de la séquence et le nombre apparaissant à droite de la
dernière pièce de la séquence.
Page 4 sur 4
Supposons que la séquence soit (0,0)(0,2)(2,4)(4,1)(1,6):
valeurAGauche renvoie 0 et valeurADroite renvoie 6.
Deux méthodes ajouterAGauche et ajouterADroite qui prennent un objet de type Domino en
paramètre et ajoutent, si c'est possible, cette pièce à gauche ou à droite de la séquence. Si nécessaire, ces
méthodes retournent le domino à ajouter. Si ce n'est pas possible, une exception
IllegalArgumentException est levée.
toString renvoie la séquence de pièces. Elle doit appeler la méthode toString de la classe Domino
pour déterminer la représentation de chacune des pièces. La représentation se fera comme dans ce texte en
juxtaposant les représentations des dominos sans séparateurs. Exemple: (0,0)(0,2)(2,4)(4,1)(1,6).
Différentes versions
Version simplifiée (50% des points): donnez seulement la classe Domino.
Version normale: celle décrite ci-dessus.
Du courage et bonne chance