0% ont trouvé ce document utile (0 vote)
45 vues8 pages

Examen Final de Programmation Java

Le document présente un examen final de Programmation Orientée Objet II pour la faculté des sciences économiques et de gestion de Sfax, comprenant des questions à choix multiples sur des concepts Java et un exercice de programmation. L'exercice demande aux étudiants de créer un programme de gestion des rendez-vous pour un médecin, en interagissant avec une base de données. Les étudiants doivent suivre des étapes précises pour structurer leur projet et implémenter des fonctionnalités spécifiques liées aux patients et aux rendez-vous.

Transféré par

Hassan Hachicha
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
45 vues8 pages

Examen Final de Programmation Java

Le document présente un examen final de Programmation Orientée Objet II pour la faculté des sciences économiques et de gestion de Sfax, comprenant des questions à choix multiples sur des concepts Java et un exercice de programmation. L'exercice demande aux étudiants de créer un programme de gestion des rendez-vous pour un médecin, en interagissant avec une base de données. Les étudiants doivent suivre des étapes précises pour structurer leur projet et implémenter des fonctionnalités spécifiques liées aux patients et aux rendez-vous.

Transféré par

Hassan Hachicha
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Faculté des sciences économiques et de gestion de AU : 2020/2021

Sfax

Matière : Programmation Orientée Objet II Matricule : ……………………


Responsables du cours : N. Zaaboub Haddar, Nom : ………………………….
M. Ben Abdallah, F. Fakhfekh Prénom : ………………………
Filière : 2ième LFIG
Examen Final de Programmation
Orientée Objets II

Durée : 1h30 heure


Nombre de pages : 7

QCM :
1) Le code suivant :
1. class A {
2. public void maMethode ( ) {
3. try{
4. String s= "Java" ;
5. int n = [Link](s) ;}
6. catch (RuntimeException e){
7. throw new Exception() ;}}}

☐ contient une erreur de compilation dans la ligne 2


☐ contient une erreur de compilation dans la ligne 5
☐ contient une erreur de compilation dans la ligne 7
☐ ne contient aucune erreur de compilation

2) La classe Exception se trouve dans le package :


☐ [Link]
☐ [Link]
☐ [Link]
☐ [Link]

3) Quel est le type de paramètre qu’on doit passer à la méthode setDate() de la


classe PreparedStatement?
☐ [Link]
☐ [Link]
☐ [Link]

4) En Java, toute collection :


1
☐ est itérable.
☐ est une instance destinée à contenir d’autres instances.
☐ est une instance d’une classe qui implémente l’interface List.
☐ est instance d’une classe implémentant l’interface Collections.
5) En Java, une classe de collection implémentant List :
☐ peut contenir plusieurs fois le même objet.
☐ utilise la méthode equals() lors de l’ajout d’un nouvel élément.
☐ peut trier ses éléments.
☐ peut contenir des éléments de type primitif (int, char, .... )

6) Soient les variables suivantes :


LocalTime t1= [Link]() ;
LocalTime t2= [Link]() ;
LocalDateTime dt=[Link]() ;
Quelles sont les instructions correctes parmi les suivantes :
☐ Duration dr = [Link](t1, dt);
☐ Duration dr1 = [Link](t1, [Link]());
☐ Duration dr2 = [Link](t1, t2);
☐ long diff = [Link](t1, t2).toMillis();

7) Quel est l’affichage de ce programme ?


public static void main(String[] args)
{ try
{ [Link]("1");
int sum= 9/0; }
catch(ArithmeticException e)
{ [Link]("3"); }
catch(Exception e)
{ [Link]("4"); }
finally
{ [Link]("5"); } }

☐ 1325
☐ 1345
☐ 1342
☐ 135

8) Le programme suivant :
public static void main(String[] args)
{ Collection<String> c = new ArrayList<String>() ;
2
[Link]("Tunisie") ;
[Link]("Lybie") ;
[Link](null) ;
[Link]([Link]()) ;}
☐ affiche 3
☐ affiche 2
☐ contient une erreur de compilation
☐ lance une exception à l’exécution

9) Quel est l’affichage du programme suivant :


public static void main(String args[])
{ TreeSet<String> pays = new TreeSet<String>();
[Link]("Allemagne");
[Link]("Paris");
[Link]("Maroc");
[Link]("Italie");
Collection<String> pays2 = [Link]("Allemagne","Maroc");
Iterator it = [Link]();
while([Link]())
[Link]([Link]() + " ");}}

☐ Allemagne Paris Maroc


☐ Allemagne Italie
☐ Allemagne Italie Maroc
☐ Allemagne Paris

10) Quel est l’affichage du programme suivant :


public class MaClasse {
int nb;
ArrayList<String> liste;
public MaClasse (int nb){
[Link] = nb; }
public void ajouterElement(String s){
try {
[Link](s);
[Link]("Ajout effectué avec succès");
}
catch(Exception e) {
[Link]("Exception declenchée");
}}
3
public static void main(String []args){
MaClasse c = new MaClasse (0);
[Link]("Oiseau") ;
[Link]([Link]);
}}

☐ Ajout effectué avec succès [Oiseau]


☐ Exception déclenchée
☐ Ajout effectué avec succès 0

4
Exercice :
NB. :
• Documents autorisés.
• Vous pouvez ajouter à votre projet tout ce que vous jugez nécessaire pour le
bon fonctionnement de l’application.
• Vous devez utiliser partout des requêtes paramétrées.

Nous nous proposons d’écrire un programme java pour la gestion des rendez-vous dans
le cabinet d’un médecin. Ce programme doit communiquer avec une base de données
relationnelle gérée par Oracle ou MySQL. La structure physique de la base de données
est la suivante :

Figure 1. Structure de la base de données BDMedecin.

Travail à faire :
1. Créez sur votre bureau un répertoire "Test".

2. Lancez Eclipse en prenant le répertoire créé dans 1. comme espace de travail


(workspace) et créez y un nouveau projet dont le nom est composé de votre
matricule, nom et prénom. Exemple : 011111_Foulen_Ben_Foulen.

3. Exécutez le script [Link] que vous trouvez sur la plateforme de l’uvt,


dans l’espace du devoir.

4. Créez dans le projet trois packages : entities, accesBD et gestionnaires.

5. Dans le package entites, créez les classes Patient et Rdv conformément à la


figure 2 ci-dessous.

5
Figure 2. Les classes du package « entites ».

6. Dans le package ‘’accesBD’’, les classes SConnection, PatientDAO et RdvDAO


conformément à la figure 3.

Figure 3. Les classes du package « accesBD ».

7. Ajoutez à la classe PatientDAO la methode void addPatient (Patient p) qui


ajoute à la table TPatients le patient p passé en paramètre. Si le patient existe,
elle affiche le message "Le patient existe déjà".

8. Donnez le code de la méthode void addRdv(Rdv r) qui enregistre le rdv r passé


en paramètre, à la table TRdvs.

NB : Les transformations entre LocalTime et [Link] se font de façon


analogue à LocalDate et [Link]. Ainsi :

• Pour transformer une variable t de type LocalTime en [Link], on


utilise l’instruction suivante : [Link](t),

• Pour transformer une variable bdt de type [Link] en LocalTime, on


utilise l’instruction [Link]().

9. Donnez le code de la méthode TreeSet< Rdv > findAllByDate(LocalDate d) de la


classe RdvDAO, qui permet de chercher dans la table TRdvs les rendez-vous du

6
médecin à la date d passée en paramètre. Chaque rendez-vous doit être
retourné avec le code et le nom du patient l’ayant pris. La méthode renvoie un
TreeSet d’objets Rdv triés selon les heures des rdvs. Ce TreeSet peut être vide
s’il n’y a aucun rendez-vous à la date d.

10. Dans le paquetage gestionnaires définissez la classe GestionRdvs conformément


à figure 4 ci-après.

Figure 4. Les classes du package « gestionnaires ».

Tous les attributs de cette classe sont statiques. hDebMatin et hFinMatin


représentent respectivement l’heure de début et l’heure de fin de travail du
médecin le matin. hDebApm et hFinApm représentent l’horaire de travail dans
l’après-midi. Initialisez ces attributs respectivement à 9h, 13h, 15h et 18h.

De plus, l’attribut duree représente le temps qui sépare deux rendez-vous.


Initialisez-le à 1h.

11. Donnez le code de la méthode statique void ajouterRdv(Patient p, LocalDate d).


Cette méthode réalise les tâches suivantes :

a. Elle n’ajoute pas de rendez-vous si la date d passée en paramètre est


inférieure ou égale à la date du système.

b. Elle lance une exception de type PatientException si le patient p a déjà


un rendez-vous à la date d.

7
c. Elle lance une exception de type RdvException, si tous les rendez-vous
possibles à la date d sont déjà pris.

d. S’il n’y pas de rendez-vous à la date d, alors l’heure du rendez-vous qu’elle


donne au patient p est hDebMatin (voir figure 4).

e. La durée entre le nouveau rendez-vous et le dernier rendez-vous pris à la


date d doit être égale à l’attribut duree.

f. Elle enregistre le nouveau rendez-vous du patient p dans la base de


données.

12. Ajoutez dans la classe gestionRdvs une méthode main() et donnez-y les
instructions permettant de :
a. créer un patient p,
b. donner à p un rendez-vous le 15/06/2021,
c. afficher tous les rendez-vous du 09/06/2021.
Bon travail

Vous aimerez peut-être aussi