Série Exercices 1

4
Said EL KAFHALI Page 1/4 UNIVERSITÉ HASSAN 1 er ECOLE NATIONALE DES SCIENCES APPLIQUEES KHOURIBGA Module : Programmation Java Filière : GRT (2 ème année) Série d’exercices N°1 Exercice 1 : Définir une classe nommée « Compte » pour modéliser les comptes bancaires. On distingue deux types de comptes bancaires : compte courant et compte d’épargne. La classe « Compte » possède : Au moins deux attributs privés, à savoir : TypeCompte: de type caractère (char) pour désigner le type de compte (‘c’ pour désigner un compte courant et ‘e’ pour désigner un compte d’épargne). NumCompte: de type « String » pour identifier de manière unique le numéro de compte de la manière suivante : o Le numéro de compte d’un compte courant est composé de la chaine "CC" suivi du numéro d’ordre de création du compte. Dans ce cas, les comptes courants sont désignés par CC1, CC2, CC3 … o Le numéro de compte d’un compte d’épargne est composé de la chaine "CE" suivi du numéro d’ordre de création du compte. Dans ce cas, les comptes d’épargnes sont désignés par CE1, CE2, CE3… Un constructeur pour créer et initialiser les objets de type « Compte ». Il a pour signature : public Compte (char TypeCompte) { // Compléter le corps du constructeur } Une méthode public String toString(), qui renvoie une String représentant le numéro d’un compte. Exercice 2 : 1) Créez une classe nommée « Produit » qui possède : Trois attributs privés, à savoir: Nom : de type String pour mémoriser le nom du produit. Reference : de type String pour mémoriser la référence du produit. Prix: de type double pour mémoriser le prix du produit. Perissabilite: de type boolean qui décrit l’état périssable du produit. Un constructeur avec deux arguments pour créer et initialiser le nom et l’état périssable d’un objet de type « Produit ». Une méthode decrisToi(): qui affiche à l’écran le nom, la référence et la périssabilité du produit. Ecrivez les accesseurs en lecture pour nom et Perissabilite. Faites de même pour les accesseurs en lecture et écriture pour prix et Reference. Quelle initialisation des attributs utilise Java, par défaut ? Différenciez le cas des données de types primitifs et données de types références.

Transcript of Série Exercices 1

  • Said EL KAFHALI Page 1/4

    UNIVERSIT HASSAN 1erECOLE NATIONALE DES SCIENCES APPLIQUEES

    KHOURIBGA

    Module : Programmation JavaFilire : GRT (2me anne)

    Srie dexercices N1Exercice 1 :Dfinir une classe nomme Compte pour modliser les comptes bancaires. On distingue deuxtypes 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 dsignspar CC1, CC2, CC3

    o Le numro de compte dun compte dpargne est compos de la chaine "CE" suivi dunumro dordre de cration du compte. Dans ce cas, les comptes dpargnes sontdsigns 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 lenumro 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 dunobjet de type Produit .

    Une mthode decrisToi(): qui affiche lcran le nom, la rfrence et la prissabilitdu 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 typesprimitifs et donnes de types rfrences.

  • Said EL KAFHALI Page 2/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, lechat ).

    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 attributsselon des valeurs passes en paramtres, un constructeur sans paramtre qui initialise lenumrateur 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 enparamtre ; on testera qu'elle est bien positive) ;

    o setDen : permet de modifier la valeur du dnominateur (la nouvelle valeur est passeen 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'aided'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 3/4

    5) Ajouter la classe Rationnel une mthode statique pgcd qui calcule le PGCD de deuxentiers positifs passs en paramtres. La mthode utilise est libre. On pourra par exempleutiliser 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 nombresrels.

    1) Crer la classe Intervalle, contenant deux attributs privs detype double, extr1 et extr2, reprsentant les extrmits de l'intervalle, des accesseurs etmodifieurs pour ces attributs privs, ainsi qu'un constructeur qui initialise les extrmits delintervalle 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 valeurde extr2 ;

    o une mthode public String toString() renvoyant une String qui reprsentel'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 ounon dans lintervalle.

    5) Ajouter la classe Intervalle une mthode Intervalle intersection(Intervalle e) qui renvoie lintersection entre lintervalle courant et celui pass enparamtre. Si lintersection est vide, la mthode doit retourner null. Attention, il faut crer unnouvel 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 lenumro 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 4/4

    o et une mthode retournant une chane de caractres reprsentant l'instance (parexemple, 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 possdeo 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 numrocomplmentaire ,

    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 desorties 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 vousavez gagn. Implantez la bonne mthode, au bon endroit, et testez