Vous êtes sur la page 1sur 2

Université Hassan 1er

Faculté des Sciences et Techniques


-Settat-

Département : Mathématiques & Informatique


Filière : 1er année du cycle ingénieur en Génie Informatique
Module : Programmation orientée objet en Java
Samedi 12 septembre 2020

Épreuve de contrôle à distance (Durée : 1h45)

Rappels :
— Cette épreuve doit être faite individuellement et vous ne devez pas échanger ou par-
tager des réponses avec d’autres étudiants pendant l’épreuve. Le candidat qui ne
respecte pas ces consignes peut être considéré comme un fraudeur. Le professeur a le
droit de sanctionner tous les étudiants qui ont les mêmes réponses ou des réponses
semblables.
— L’étudiant doit rédiger la solution de l’épreuve sur une feuille de papier par la suite,
scanner sa copie et l’envoyer par email à l’adresse suivante kafhalisaid@gmail.com.
— Chaque étudiant est responsable de la qualité de scan de sa copie. Les pages invisibles
ne seront pas corrigés.
— Cette épreuve a une durée limitée. L’étudiant sera pénalisé si le professeur ne reçoit pas
la copie des réponses après la durée consacrée pour l’envoie de la copie (15 min après la
fin de l’épreuve). Chaque 5 minutes de retard coûtent 1 point. Par conséquent, avant
de commencer, veuillez prendre un moment pour examiner l’ensemble de l’épreuve
afin de pouvoir budgétiser votre temps.
— Pour les programmes, la clarté est importante ; si vos codes difficile à lire, vous per-
drez des points. Une explication des programmes sous forme de commentaires fait
également une certaine différence.
— Chaque candidat doit signer à la fin de chaque page de sa copie.
Exercice 1 :
Dans un établissement, on trouve deux sortes de personne : des professeurs et des élèves.
Chaque personne est caractérisée par nom (String), prénom (String), sexe (String), âge (int)
et adresse (String) qui sont des attributs privés et communs à toutes les personnes.
1. Ecrire la classe Personne avec un constructeur usuel, les getters/setters et une méthode
toString().
2. Ecrire la classe Eleve avec les attributs NbCours (nombre de cours), MAX (le nombre
maximum de cours suivis, deux tableaux de type ArrayList (le premier pour les cours
suivis et le deuxième pour les notes obtenues par l’élève (chaque élève ne peut pas
suivre plus que 8 cours)) et un constructeur usuel.
3. Définir dans la classe Eleve :

Pr. Said El Kafhali 1 A.U. 2019/2020


— Une méthode ajouterNote() permet d’ajouter le nom d’un cours et la note obtenue
dans ce cours ;
— Une méthode afficher() permet d’afficher tous les cours suivis par l’élève et les
notes correspondantes ;
— Une méthode public double Moyenne() retourne la note moyenne de l’élève ;
4. Ecrire la classe Professeur avec un attribut cours contiendra les différents cours que
ce professeur enseigne, une constante MAX qui correspond au nombre maximum de
cours enseigné (un professeur est limité à 4 cours) et un constructeur usuel.
5. Définir dans la classe Professeur :
— Une méthode ajouterCours () rajoute un cours à l’attribut cours si ce cours n’est
pas déjà présent dans la liste des cours enseignés. Si le cours est déjà présent, on
retournera la valeur booléen false, true sinon ;
— Une méthode supprimerCours permet de supprimer un cours si le professeur ne
l’enseigne plus. On supprimera le cours que s’il est présent dans la liste des cours.
Exercice 2 :
Créez une classe appelée Employee qui inclut trois informations en tant que variables d’ins-
tance : un prénom (String), un nom de famille (String) et un salaire mensuel (double). Votre
classe doit avoir un constructeur qui initialise les trois variables d’instance. Fournissez les
méthodes set et get pour chaque variable d’instance. Si le salaire mensuel n’est pas positif,
définissez-le sur 0,0. Écrivez une application de test nommée EmployeeTest qui démontre
les capacités de la classe Employee. Créez deux objets Employé et affichez le salaire annuel
de chaque objet. Ensuite, donnez à chaque employé une augmentation de 10% et affichez à
nouveau le salaire annuel de chaque employé.
Exercice 3 :
Une entreprise souhaite transmettre des données par téléphone mais craint que ses télé-
phones ne soient mis sur écoute. Il vous a demandé d’écrire un programme qui cryptera les
données afin qu’elles puissent être transmises de manière plus sécurisée. Toutes les données
sont transmises sous forme d’entiers à quatre chiffres. Votre application doit lire un entier à
quatre chiffres saisi par l’utilisateur et le crypter comme suit : remplacez chaque chiffre par
le résultat de l’ajout de 7 au chiffre et d’obtenir le reste après avoir divisé la nouvelle valeur
par 10. Puis échangez le premier chiffre avec le troisième et permutez le deuxième chiffre
avec le quatrième. Puis imprimez l’entier chiffré. Écrivez une application distincte qui entre
un entier chiffré à quatre chiffres et le déchiffre pour former le numéro d’origine.

Pr. Said El Kafhali 2 A.U. 2019/2020

Vous aimerez peut-être aussi