You are on page 1of 4

UNIVERSIT HASSAN 1er ECOLE NATIONALE DES SCIENCES APPLIQUEES KHOURIBGA

Module : Programmation Java Filire : GRT (2me anne)

Srie dexercices N1
Exercice 1 :
Dfinir une classe nomme Compte pour modliser les comptes bancaires. On distingue deux types de comptes bancaires : compte courant et compte dpargne. La classe Compte possde : Au moins deux attributs privs, savoir : TypeCompte: de type caractre (char) pour dsigner le type de compte (c pour dsigner un compte courant et e pour dsigner un compte dpargne). NumCompte: de type String pour identifier de manire unique le numro de compte de la manire suivante : o Le numro de compte dun compte courant est compos de la chaine "CC" suivi du numro dordre de cration du compte. Dans ce cas, les comptes courants sont dsigns par CC1, CC2, CC3 o Le numro de compte dun compte dpargne est compos de la chaine "CE" suivi du numro dordre de cration du compte. Dans ce cas, les comptes dpargnes sont dsigns par CE1, CE2, CE3 Un constructeur pour crer et initialiser les objets de type Compte . Il a pour signature : public Compte (char TypeCompte) { // Complter le corps du constructeur } Une mthode public String toString(), qui renvoie une String reprsentant le numro dun compte.

Exercice 2 :
1) Crez une classe nomme Produit qui possde : Trois attributs privs, savoir: Nom : de type String pour mmoriser le nom du produit. Reference : de type String pour mmoriser la rfrence du produit. Prix: de type double pour mmoriser le prix du produit. Perissabilite: de type boolean qui dcrit ltat prissable du produit. Un constructeur avec deux arguments pour crer et initialiser le nom et ltat prissable dun objet de type Produit . Une mthode decrisToi(): qui affiche lcran le nom, la rfrence et la prissabilit du produit. Ecrivez les accesseurs en lecture pour nom et Perissabilite. Faites de mme pour les accesseurs en lecture et criture pour prix et Reference. Quelle initialisation des attributs utilise Java, par dfaut ? Diffrenciez le cas des donnes de types primitifs et donnes de types rfrences. Said EL KAFHALI Page 1/4

2) Crez une classe TestProduit qui contient le main() et qui cre des produits. 3) Surchargez le constructeur de la classe Produit. Pour cela, dclarez et dfinissez un constructeur, quatre paramtres (deux String, un boolean, et un double), utilisant celui dfini en 1). 4) Crez une classe Catalogue ( vous de dterminer quelques caractristiques videntes comme l'anne du catalogue) qui aura quelques (au moins un) attributs objet de type Produit.

Exercice 3 :
1) Crer une classe Animal ayant : o Un attribut de type String appel Espece. o Un attribut de type String appel Nom. o Un attribut de type String appel Bruit. o Un attribut de type int appel Age. o Un constructeur prenant 3 chanes de caractres et un entier en paramtre, et initialisant les attributs. o Une mthode public void parler() affichant le bruit fait par l'animal. o Une fonction principale qui ne servira qu' tester la classe: Dclarez puis instanciez, un tableau de 10 objets de la classe Animal. Crez 5 objets de cette classe (par exemple : new Animal("chat","Gros Minet","miaou",3);) puis insrez-les dans le tableau. Faites afficher le nom de chaque objet non nul du tableau. Faites parler chaque Animal du tableau. 2) Affichez le contenu complet du tableau (System.out.println(tab[i]);)? 3) Ajoutez la classe Animal une mthode public String toString() qui retourne une chane de caractres construite avec le nom et l'espce de l'animal (exemple : Gros Minet, le chat ).

Exercice 4:
Le but de cet exercice est d'crire une classe Rationnel qui reprsente des nombres rationnels. Un rationnel est caractris par deux entiers positifs : le numrateur et le dnominateur. 1) Crer la classe Rationnel, avec ses attributs privs, un constructeur qui initialise ces attributs selon des valeurs passes en paramtres, un constructeur sans paramtre qui initialise le numrateur et le dnominateur 1, et les mthodes suivantes (accesseurs et modifieurs) : o setNum : permet de modifier la valeur du numrateur (la nouvelle valeur est passe en paramtre ; on testera qu'elle est bien positive) ; o setDen : permet de modifier la valeur du dnominateur (la nouvelle valeur est passe en paramtre ; on testera qu'elle est bien strictement positive) ; o getNum : retourne le numrateur ; o getDen : retourne le dnominateur. 2) Crer la classe TestRationnel, qui va servir tester la classe Rationnel. Vrifier l'aide d'une mthode main que la classe fonctionne correctement pour l'instant. 3) Ajouter la classe Rationnel les mthodes suivantes : o saisie, qui demande l'utilisateur de saisir le rationnel ; o public String toString(), qui renvoie une String reprsentant le rationnel. 4) Ajouter la classe Rationnel les mthodes suivantes : o additionner : additionne au rationnel un autre rationnel pass en paramtre ; o multiplier : multiplie le rationnel avec un autre rationnel pass en paramtre Said EL KAFHALI Page 2/4

5) Ajouter la classe Rationnel une mthode statique pgcd qui calcule le PGCD de deux entiers positifs passs en paramtres. La mthode utilise est libre. On pourra par exemple utiliser l'algorithme d'Euclide. 6) Ajouter la classe Rationnel les mthodes suivantes : o simplification : simplifie le rationnel (divise le numrateur et le dnominateur par leur PGCD) ; o estEntier : renvoie un boolen indiquant si le rationnel est un entier.

Exercice 5 :
Le but de cet exercice est d'crire une classe Intervalle reprsentant des intervalles de nombres rels. 1) Crer la classe Intervalle, contenant deux attributs privs de type double, extr1 et extr2, reprsentant les extrmits de l'intervalle, des accesseurs et modifieurs pour ces attributs privs, ainsi qu'un constructeur qui initialise les extrmits de lintervalle selon les paramtres passs par l'utilisateur. 2) Crer la classe TestIntervalle, qui va servir tester la classe Intervalle. Vrifier l'aide d'une mthode main que la classe fonctionne correctement pour l'instant. 3) Ajouter la classe Intervalle les mthodes suivantes : o une mthode ordonne qui change ventuellement les valeurs des extrmits de lintervalle de telle sorte que la valeur de extr1 soit infrieure ou gale la valeur de extr2 ; o une mthode public String toString() renvoyant une String qui reprsente l'intervalle (par exemple [5.7, 8.9] ) ; o une mthode longueur retournant la longueur de lintervalle. 4) Ajouter la classe Intervalle les mthodes suivantes : o une mthode appartient(double x) indiquant si le rel x appartient ou non lintervalle ; o une mthode estInclus(Intervalle e) indiquant si l'intervalle e est inclus ou non dans lintervalle. 5) Ajouter la classe Intervalle une mthode Intervalle intersection (Intervalle e) qui renvoie lintersection entre lintervalle courant et celui pass en paramtre. Si lintersection est vide, la mthode doit retourner null. Attention, il faut crer un nouvel intervalle ! Tester cette mthode dans la classe de test.

Exercice 6 :
On cherche faire quelques statistiques sur les tirages du loto.

Une boule possde un numro et une couleur qui ne doivent pas tre modifis (modifier le numro d'une boule serait tricher !). Une sphre contient 49 boules de numros diffrents compris entre 1 et 49. Un tirage du loto est un ensemble de 7 boules fournies au hasard par une sphre.

1) Implanter la classe Boule qui possde: o 2 attributs privs, o un constructeur partir d'un numro et d'une couleur, o des mthodes d'accs ses attributs, Said EL KAFHALI Page 3/4

et une mthode retournant une chane de caractres reprsentant l'instance (par exemple, la boule 7 sera affiche (7) ).

Mettre une main de test dans la classe. 2) Implanter la classe Sphre qui possde : o un ensemble priv d'objets de classe Boule de la mme couleur, o un constructeur partir d'un nombre de boules maximum et d'une couleur, o une mthode qui retire une boule au hasard de l'ensemble et la retourne, o et une mthode retournant une chane de caractres reprsentant l'instance. Mettre une main de test dans la classe. 3) Implanter la classe Tirage qui possde o un ensemble priv de 7 objets de classe Boule, o un constructeur initialisant cet ensemble partir d'un objet de classe Sphre et les triant au fur et mesure, l'exception de la dernire boule qui est le numro complmentaire , o et une mthode retournant une chane de caractres reprsentant l'instance. Mettre une main de test dans la classe. 4) Implanter la classe StatLoto qui, partir d'un ensemble de tirages, donnera le nombre de sorties de chaque numro (il manque une autre mthode pour y parvenir). 5) Question subsidiaire: vous avez un ticket de loto de 10 numros, et vous voulez savoir si vous avez gagn. Implantez la bonne mthode, au bon endroit, et testez

Said EL KAFHALI

Page 4/4

You might also like