Vous êtes sur la page 1sur 9

Université IBN Zohr

Faculté des Sciences Agadir Filières SMI5-II5


Département Informatique
Travaux dirigés et pratiques JAVA

Séries N°1
Exercice 1
Ecrire un programme java permettant de saisir et d’afficher les données de type
1- entier
2- float, double
3- Un caractère
4- Chaînes
Exercice 2
Vous avez déposé 10000F à la Caisse d'Epargne et vous souhaitez savoir comment cette somme va

évoluer. Chaque année elle rapporte 4,5% d'intérêts, ce qui signifie qu'elle est multipliée par 1,045.
Essayez de connaître le montant de votre capital après 5 ans en utilisant la boucle "for".
Nous avons déposé 10000F à la Caisse d'Epargne et nous souhaitons savoir combien d'années il
faudra attendre pour que le capital obtenu dépasse 15000F. Nous allons utiliser une boucle" while"
pour indiquer que tant que le capital ne dépasse pas 15000F il faut attendre une année de plus.
Exercice 3
Ecrire un programme qui lit trois paramètres : un nombre entier, un caractère représentant une
opération (+,-, x ou /) et un second nombre entier, puis qui effectue le calcul ainsi indiqué et
affiche le résultat. (Attention : éviter la division par 0)

Note :

1- on ne peut pas utiliser le signe * comme paramètre, il a une signification particulière.


2- Utilisez l’instruction switch

Exercice 4
Écrire un programme Java permettant de :
Q1 Calculer et d’afficher la note maximum et minimum d’une classe;
Q2 Calculer et d’afficher la moyenne de la classe;
1
Q3 Déterminer combien d'étudiants ayant une note supérieur à la moyenne de la classe ;
Q4 Déterminer la mention de chaque étudiant.
10 =< note <12 mention ¨Passable;
12 =< note <14 mention Assez Bien;
14 =< note <16 mention Bien
16 < note mention Très Bien.

2
Université IBN Zohr

Faculté des Sciences Agadir Filières SMI5-II5


Département Informatique

Travaux dirigés et pratiques JAVA


Série N°2
Exercice 1
Une société encourage ses vendeurs en leur donnant des primes de ventes en fonction du montant
de vente réalisé au cours de la semaine.
Si ce montant est <10000 pas de prime;
Si le montant réalisé est compris entre 10000 et 50000, la prime est de 1% du montant réalisé;
Si le montant est supérieur à 50000; la prime est de 10% du montant réalisé.
Soit le tableau suivant contenant les montants réalisés par un vendeur:

1200 5000 17000 1000 5000 1258 7561

Écrire un programme Java permettant de

Q1 Calculer et d’afficher le montant de vente maximum et minimum réalisé par le vendeur;


Q2 Calculer et d’afficher le montant global de vente réalisé par le vendeur;
Q3 Calculer et d’afficher la moyenne des ventes réalisées par le vendeur au cours de la semaine;
Calculer la prime de ce vendeur.
Exercice 2
Un compte bancaire possède à tout moment une donnée : son solde. Ce dernier peut être positif

(compte créditeur) ou négatif (compte débiteur).


Chaque compte est caractérisé par un code incrémenté automatiquement.
A sa création, un compte bancaire a un solde nul et son code incrémenté.
Il est aussi possible de créer un compte en précisant son solde initial.
Utiliser son compte consiste à pouvoir y faire des dépôts et des retraits. In peut aussi consulter le
solde de son compte par la méthode toString().
Un compte Epargne est un compte bancaire qui possède en plus un champ "TauxInteret = 6" et une
méthode calculInteret() qui permet de mettre à jour le solde en tenant compte des intérêts.

3
Un compte payant est un compte bancaire pour lequel chaque opération de retrait et de versement

est payante et vaut 5 DH


Questions:
Q1 Définir la classe CompteBancaire
Q2 Définir la classe CompteEpargne
Q3 Définir la classe comptePayant.
Q4 Définir la classe contenant la fonction main() permettant de tester les classe: Comptebancaire et
CompteEpargne avec les actions suivantes:
a. Créer une instance de la classe CompteBancaire, une autre de la classe CompteEpargne
et une instance de la classe ComptePayant.
b. Faire appel à la méthode deposer() de chaque instance pour déposer une somme
quelconque dans une de ces comptes.
c. Faire appel à la méthode retirer() de chaque instance pour retirer une somme
quelconque dans une de ces comptes.
d. Faire appel à la méthode CalculInteret du compte Epargne.
e. Afficher le solde des 3 comptes.
Exercice 3
On souhaite développer un programme de calcul de salaire pour une PME, l’analyse du service
« salaire » de cette entreprise a permis d’aboutir aux informations suivantes :

Information Description

Matricule Unique pour chaque employé e ne peut être modifié

Nom Chaîne de caractère

Adresse Chaîne de caractère Caractères

Salaire Réel

Q1 Donner la déclaration de la classe Employé comportant au moins un constructeur et les


méthodes d’accès.
Q2 Cette entreprise comporte plusieurs types d’employés :

a. Des employés qui sont payés suivant le nombre d’heures qu’ils ont travaillé dans la
semaine. Ils sont payés à un certain tarif horaire.
b. D’autres employés, payés au forfait par jour.
c. Les commerciaux sont payés avec une somme fixe pour la semaine.

4
Q3 Donnez les classes qui héritent de la classe Employe et redéfiniront la méthode SetSalaire()

pour chaque type d’employés. Les classes comporteront deux constructeurs : un qui prend en
paramètre le matricule, le nom et l’adresse de l’employé et l’autre qui prend en paramètres en
plus toutes les informations pour le calcule du salaire.
Q4 Une classe Paie comportera une unique méthode main () qui collecte les informations sur des
employés des différents types (3 commerciaux, 2 de type a. et 2 de type b.).
a. Les employées seront enregistrées dans un tableau Employé.
b. Au moins un des employés sera créé avec le constructeur ne possédant comme
paramètres que le matricule, le nom et l’adresse et vous entrerez ensuite les
informations pour son salaire avec la méthode setSalaire().
c. Pour un autre employé, vous utilisez le constructeur pour entrer les informations sur le
salaire.
d. Écrire une méthode qui affichera le salaire hebdomadaire de chacun des employés et la
masse salariale Hebdomadaire des employés enregistrés dans le tableau.

5
Université IBN Zohr
Faculté des Sciences Agadir
Département Informatique Filières SMI5-II5

Travaux dirigés et pratiques JAVA


Séries N°3
On considère un parc de moyens de transport constitué par:
• Des voitures
Véhicule
• Des camions
• Des autocars

Voiture Camion Autocar

Le problème doit répondre aux critères suivants:


• Le parc ne doit pas dépasser un nombre limité de voitures (nbMax Voitures), un nombre
limité de camion (nbMaxCamions), un nombre limité d'autocars (nbAutocars).
• Chaque type de véhicule possède un matricule incrémenté selon le type
• Pendant la création d'un véhicule, il faut préciser l'année du modèle.
• Chaque type de véhicule possède une capacité de réservoir
• Chaque véhicule possède une quantité de carburant
• Les véhicules sont destinés à la vente
• Les véhicules peuvent être en panne ou non

Travail à faire
Q1 Donnez le diagramme des classes
Q2 Créer le code java de la classe Véhicule
Q3 Créer le code java de la classe Camion
Q4 Créer le code java de la class Voiture
Q5 Créer le programme test
Q6 On souhaite sauvegarder les objets voiture dans un fichier en utilisant la sérialisation
a. Écrire le code java correspondant à la sérialisation des objets voitures
b. Écrire le code java correspondant à la dé-sérialisation des objets voitures.

6
Université IBN Zohr
Faculté des Sciences Agadir
Département Informatique Filières SMI5-II5

Travaux dirigés et pratiques JAVA


Série N°4

On souhaite développer une application java pour calculer le montant des heures supplémentaires
ou des vacations des enseignants d'un établissement Universitaire.
Créer une classe Enseignant représentée par :
- un nom, un prénom, un matricule,
- une période, un grade, le Taux de l’IGR et le salaire.
Les attributs de la classe sont privés. Utiliser les accesseurs et les mutateurs pour pouvoir accéder
aux données et les afficher avec toString.
Il existe deux catégories d'enseignants :
- Enseignant permanent,
- enseignant vacataire.

• Les enseignants permanent peuvent effectuer des heures supplémentaire à condition de faire
leur charge annuel fixer à 350 heures.
• L'établissement Universitaire peut faire appel aux enseignants vacataires pour effectuer
certains travaux pratiques ou enseigner certains cours spécialisés.
Les Enseignants permanent possèdent en plus des caractéristiques héritées de la classe
Enseignant leurs propres caractéristiques à savoir :

- le nombre d’heures totales travaillées dans leurs établissements.


Les Enseignants vacataire possèdent en plus des caractéristiques héritées de la classe Enseignant
leurs propres caractéristiques à savoir :
- le nombre d’heures de vacation.

Sachant que le taux de prélèvement est de 17% pour les enseignants vacataires et de 38% pour les
heures supplémentaires pour les enseignants permanents appartenant au même établissement.

7
Les deux classes Enseignant permanent et Enseignant vacataire possèdent la méthode void

calculSalaire() calculant la partie du salaire liée aux heures supplémentaires ou aux vacations.
Utiliser les accesseurs et les mutateurs pour modifier les données et afficher l'ensemble des
caractéristiques des deux classes. Les trois classes possèdent la méthode void calculIGR()
permettant de déduire le montant IGR qui sera payé au service d'impôt.
Ecrire Une classe Paie permettant :
Q1 Créer des objets des diverses classes
Q2 calculer le salaire (setSalaire()) d’un enseignants permanent de grade PES qui a travaillé 440
heures et au autre enseignant vacataire de grade PH qui travaillé 120 de vacation dans un
autre établissement de son université.
Notes : Tarif horaire : Grade PES : 300DH brute Garde PH : 230DH Brute Garde PA: 180 DH
Brute
Q3 Vérifiez les instructions suivantes:

(1) Enseignant eng = new Enseignant(….);


eng.setSalaire() ;
(2) Enseignant eng2 = new Enseignant_permanent(500) ;
eng2.SetSalaire() ;
(3) Enseignant eng3 = new Enseignant_vacataire( 140 );
eng3.SetSalaire() ;
(4) Enseignant eng 4 = new Enseignant_ permanent ( 800 );
eng4. calculIGR() () ;

Quelle est la bonne méthode setSalaire() des trois classes qui sera choisie dans l'instruction
(1), (2) et (3) pourquoi ?. Proposez une solution à l'instruction (4).
Q4 Enregistrez les objets en2, en3 et en4 dans un tableau d'objet et calculez le montant global de
l'IGR qui sera payé au Impôt.

8
Université IBN Zohr
Faculté des Sciences Agadir
Département Informatique Filières SMI5-II5

Travaux dirigés et pratiques JAVA


Série N°5
Une clinique médicale regroupe plusieurs médecins. Sa base de données gère les informations
relatives à tous les médecins de la clinique et tous les patients, en indiquant les rendez-vous pris
avec les médecins. Soit les données suivantes :
• pour les médecins de la clinique : un numéro d'identification, le nom et la spécialité
(gynécologie, urologie, etc.) ;
• pour les patients : un numéro d'identification, le nom, le numéro de téléphone;
• pour un rendez-vous pris par un patient avec un médecin : la date et l'heure.
Q1 Définir la représentation UML des trois classes
Q2 Créer les objets suivants :
a. Med1 : objet médecin, p1:objet patient et RDV1 ; rendez-vous prise par le patient p1
pour consulter un médecin Med1 en respectant la date du rendez vous.
b. Med1 : objet médecin, p2:objet patient et RDV2 ; rendez-vous prise par le patient p2
pour consulter un médecin Med1 en respectant la date du rendez vous.
Q3 Écrire la classe sérialisation permettant d'enregistrer les états d'objets RDV1 et RDV2
Q4 Écrire la classe dé-sérialisation permettant de lire les états d'objets RDV1 et RDV2 déjà
sérialiser dans la question Q3.