1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
Dismiss Notice
Welcome to our Education website, plz like our page facebook to support us. Thank You and wish you good navigation

Controle JAVA -

abdelouafiSep 27, 2016

    1. abdelouafi

      abdelouafi Administrator Staff Member

      Messages:
      180
      Likes Received:
      9
      Trophy Points:
      18
      Joined
      Sep 13, 2016
      Contrôle Java : Concepts de base et Interfaces graphiques

      Durée : 3H

      (Document autorisé)

      Exercice 1: (4 pts)

      1- Développer une classe d’exception de type contrôlé nommé DateInvalideException

      2- Définir le constructeur par défaut de la classe DateInvalideException qui permet d’associer le message « La date saisie est invalide. » à chaque objet instancié par le constructeur par défaut.

      Indication : utiliser le constructeur
      public Exception(String message)
      définit dans la classe Exception.
      3- Surcharger le constructeur par défaut en définissant un constructeur qui accepte en argument une chaîne de caractère AdditionalMessage et qui permet d’associer le message « "La date saisie est invalide. "+ AdditionalMessage »

      NB : AdditionalMessage est une variable et + est l’opérateur de concaténation.
      Exercice 2: (4 pts)

      Développer la classe Parser qui définit une seule méthode statique parseDate qui accepte une chaine de caractères et retourne un tableau d’entier.

      1- La méthode parseDate doit convertir la date saisie sous forme jj-mm-aaaa en un tableeu {jj,mm,aaa}

      Exemple d’utilisation

      Le fragment du code suivant :

      Int [] date=Parseur.parseDate("16-12-2009") ;

      System.out.println(date[0]) ;

      System.out.println(date[1]);

      System.out.println(date[2]);

      Doit afficher

      16

      12

      2009

      2- Modifier la méthode parseDate pour qu’elle puisse lever une exception de type DateInvalideException si l’utilisateur fournit une date qui ne respecte pas l’une des règles suivante

      a. chaîne conforme au format jj-mm-aaaa : dans ce cas le message associé à l’exception levée est "La date saisie est invalide. "

      indication : utiliser Exercice 1 question 2.

      b. jj est dans l’intervalle [1,31] : dans ce cas le message associé à l’exception levée est "La date saisie est invalide. Jour invalide "

      indication : utiliser Exercice 1 question 3.

      c. mm est dans l’intervalle [1,12] : dans ce cas le message associé à l’exception levée est "La date saisie est invalide. Mois invalide "

      d. aaaa est dans l’intervalle [1900,3000] : dans ce cas le message associé à l’exception levée est "La date saisie est invalide. Année invalide "

      e. si par exemple la date saisie ne vérifie pas plusieurs règles, le message associé doit indiquer tous les champs invalides

      exemple "La date saisie est invalide. Jour invalide. mois invalide."

      Indication
      Vous pouvez utiliser la classe StringTokenizer
      Problème : Prototype d’une application de Gestion d’une bibliothèque (12 pts)


      Afin d’automatiser la gestion de sa bibliothèque, un établissement d’enseignement supérieur veut développer une application portable en java qui permet de gérer le processus d’emprunter un livre à la bibliothèque.

      Les règles de gestion :

      v La bibliothèque possède plusieurs exemplaires numérotés de chaque livre.

      v Un étudiant peut emprunter jusqu’à 5 livres.

      v Un étudiant ne doit pas garder le livre emprunté plus qu’un mois. Sinon elle sera interdit d’emprunter un nouveau livre jusqu’à ce qu’il règle ça situation.

      v La date d’emprunte est déduite de la date du système.



      v La date de retour doit être saisie manuellement pour permettre le traitement différé des retours

      On vous demande de développer un prototype de l’application.

      I -Page d’accueil (4 pt)

      1- Développer une interface semblable à celle de la figure 1


      Remarque : Durant tout le problème on va se limiter au menu Gestion Empruntes et les deux éléments de menu Emprunter et Retourner.

      Ignorer dans vos interfaces graphiques les autres menus et les autres éléments de menu


      2- Spécifier le gestionnaire de positionnement CardLayout pour le frame principale de l’application

      [​IMG]

      Figure 1 : page d’accueil




      3- Gérer l’événement suivant :

      Lorsque l’utilisateur clique sur l’élément de menu Emprunter la vue de la figure 2 est chargée

      [​IMG]

      Figure 2 : Vue 1 emprunter un livre

      4- Gérer l’événement suivant

      Lorsque l’utilisateur clique sur le bouton Retour, la page d’accueil est chargé (figure 1).

      II- Processus de gestion des empruntes (6 pts)

      1- Développez une méthode

      public int recherche( String cne , String isbn)

      qui retourne

      3 <-- si l’étudiant dont le cne est fournit en paramètre a dépassé la durée max pour un livre emprunté (un mois maximum).

      4 <-- si aucun exemplaire du livre dont l’isbn fournit en paramètre n’est disponible

      5 <-- si l’étudiant dont le cne est fournit en paramètre a déjà emprunté 5 livres.

      6 <-- si un exemplaire du livre est disponible et l’étudiant a le droit d’emprunter un livre.

      2 - Gérer l’événement suivant :

      Lorsque l’utilisateur clique sur le bouton valider dans la Figure 2, une vue parmi les 4 vues suivante sera chargé selon le type de retour de la méthode recherche( String cne , String isbn).

      Si la méthode retourne 3 : la figure 3 est chargée

      Si la méthode retourne 4 : la figure 4 est chargée

      Si la méthode retourne 5 : la figure 5 est chargée

      Si la méthode retourne 6 : la figure 6 est chargée


      [​IMG]

      Figure 3 : emprunter un livre (retard)

      [​IMG]

      Figure 4 : emprunter un livre (indisponible)


      [​IMG]

      Figure 5 : emprunter un livre (max atteint)


      [​IMG]

      Figure 6 : Emprunter un livre (OK)

      3- Gérer l’événement suivant :

      Si l’utilisateur clique sur le bouton Emprunter (Figure 6) :

      a) l’exemplaire du livre doit être marqué dans la base de donnés comme étant emprunté (la colonne NONDISPONIBLE de la table LIVRE est mise à 1).

      b) Un nouvel enregistrement est inséré dans la tables EMPRUNTE.


      III- Processus de gestion des retours (2pts)

      1- Gérer l’événement suivant :

      Lorsque l’utilisateur clique sur l’élément de menu Retourner la vue de la figure 7 est chargée

      [​IMG]

      Figure 7 : retourner un livre

      2- Gérer l’événement suivant :

      Si l’utilisateur clique sur le bouton Valider (Figure 7) :

      a) l’exemplaire du livre doit être marqué dans la base de donnés comme étant non emprunté (la colonne NONDISPONIBLE de la table livre est mise à 0).

      b) la colonne RETOURNEE et DATERETOUR de la table EMPRUNTE concernant l’isbn et le numéro d’exemplaire sont mis à jour.

      Annexe : Requêtes SQL utiles

      CREATE TABLE `biblio`.`EMPRUNTE` (

      `isbn` VARCHAR(15) NOT NULL,

      `cne` VARCHAR(15) NOT NULL,

      `dateemprunte` VARCHAR(12) NOT NULL,

      `dateretour` VARCHAR(12),

      `retournee` TINYINT UNSIGNED NOT NULL DEFAULT 0,

      `numexemplaire` INTEGER(4) UNSIGNED NOT NULL

      )


      CREATE TABLE `biblio`.`LIVRE` (

      `isbn` VARCHAR(15) NOT NULL,

      `nondisponible` TINYINT UNSIGNED NOT NULL DEFAULT 0,

      PRIMARY KEY (`isbn`)

      )


      · SELECT DATEEMPRUNTE FROM emprunte where CNE='E56789098' and RETOURNEE=0;

      · insert into emprunte values('X4567893','E56789098','16-12-2009','',0,3);

      · update livre set nondisponible=1 where isbn= 'X4567893';

      · update emprunte set retournee=1, dateretour='16-12-2009' where isbn='X4567893' and numexemplaire=3;
       

      Attached Files:

      Loading...

Share This Page

Share