Unité IN3S02 - TP6
Enoncé

Durée : 3 h

1- OBJECTIFS


2- TRAVAIL A REALISER

Nota : le travail demandé doit être terminé, en séance ou en hors séance.

2.1- Créer un répertoire de travail

Créer un répertoire IN3S02-tp6 à la racine de votre compte. C'est dans ce répertoire que devront être stockés tous les programmes Java et exercices relevant de ce tp.

2.2- Créer une application indépendante

On se propose de développer un petit programme d'essai d'une classe donnée. Le programme d'essai sera développé sous forme d'une méthode main dans une classe de test indépendante.

2.2.0- Créer un projet testSet


Créer dans le répertoire IN3S02-tp6 un dossier testSet. Charger le fichier Set.java lié à cet énoncé (cliquer sur le lien), et l'enregistrer sous le nom Set.java dans le répertoire IN3S02-tp6/testSet. Lancer BlueJ et créer le projet IN3S02-tp6/testSet. La classe Set sert à définir un ensemble au sens mathématique du terme. Editer la classe Set, en étudier le code, et, sous BlueJ, la tester.


2.2.1- Créer une méthode main d'essai


Dans le projet testSet, sous BlueJ, créer une classe AppliTest contenant uniquement :
  • une procédure print
  • - paramètre : un ensemble e de type Set
    - comportement : affiche la capacité, le cardinal, et la liste des éléments de l'ensemble e en clair (pour la liste sous la forme [3, 6, 7], par exemple)

  • une procédure main
  • - finalité : tester la classe Set en créant et manipulant des ensembles

    - arguments : deux paramètres, fournis en ligne de commande, spécifieront la capacité de deux ensembles e1 et e2

    - comportement :

    crée deux ensembles e1 et e2 de capacité respective spécifiée en argument et de nombre et valeurs d'éléments aléatoires

    (nota : si besoin de convertir des entiers de String en int, voir la méthode parseInt() dans la classe Integer) ;

    génère un ensemble e3, intersection ensembliste de e1 et e2 ;

    affiche les ensembles e1, e2 et e3

    Compiler. Si main() ne peut pas appeler print(), pourquoi ? Corriger.

    Tester la méthode main sous BlueJ. Pour spécifier, par exemple, deux ensembles de capacités respectives 20 et 30, le paramètre effectif de la méthode main, de type String[], sera fourni sous la forme : {"20", "30"}

    2.2.2- Exécuter l'application depuis la ligne de commande

    Sous Linux, choisir comme répertoire de travail le sous-répertoire contenant les programmes AppliTest.class et Set.class

    Puis lancer l'exécution de l'application AppliTest, avec comme arguments les valeurs 20 et 30 par exemple, par la commande : java AppliTest 20 30

    L'application s'exécute dans le terminal Linux.

    2.2.3- Générer un exécutable .jar


    Sous BlueJ, exporter le projet testSet en un fichier .jar :
  • activer le bouton Project puis choisir Export...
  • sélectionner Store as Jar file
  • dans le menu déroulant main class choisir AppliSet
  • dévalider la case à cocher include source
  • valider par continue
  • enregistrer dans le répertoire IN3S02-tp6/testSet sous le nom testSet.jar

  • Sous Linux, ouvrir le répertoire IN3S02-tp6/testSet et identifier le fichier testSet.jar qui vient d'être généré.  testSet.jar est une application directement exécutable à partir du système d'exploitation.


    Consulter le fichier  testSet.jar en l'ouvrant par un double clic gauche : ceci illustre le contenu d'un fichier .jar. Consulter en particulier le fichier Manifest.mf : il mémorise la classe qui a été spécifiée comme contenant la méthode main.

    Lancer l'exécution de testSet.jar depuis la ligne de commande, en tapant dans un terminal Linux et depuis le répertoire du fichier testSet.jar la commande suivante :

    java -jar testSet.jar 20 30

     

    2.3- Créer une appliquette


    Soit à comprendre une appliquette donnée, la tester (par exécution dans le visualisateur d'appliquettes ou directement dans un navigateur), et générer une page web y faisant appel.


    2.3.0- Définir une appliquette


    Ajouter au projet testSet la classe AppletTest liée à cet énoncé (cliquer sur le lien). Cette classe, sous-classe de JApplet, définit une appliquette.


    2.3.1- Exécuter l'appliquette dans le visualisateur d'appliquettes


    Sous BlueJ, compiler la classe AppletTest et l'exécuter : clic droit sur la classe, choix Run Applet, puis dans la fenêtre de saisie :

    - sélectionner Run Applet in appletviewer
    - spécifier :  Height = 100  Width = 500   (taille de la fenêtre d'affichage en pixels)
    - valider par Ok

    Interpréter les résultats.
     

    2.3.2- Editer la classe AppletTest et en étudier le code

    2.3.3- Exécuter l'appliquette dans un navigateur


    Sous BlueJ, exécuter la classe AppletTest par : clic droit sur la classe, choix Run Applet, puis dans la fenêtre de saisie

    - sélectionner Run Applet Applet in web browser
    - spécifier :  Height = 100  Width = 500  
    - valider par Ok


    2.3.4- Générer une page web faisant appel à l'appliquette


    Sous BlueJ, exécuter la classe AppletTest par : clic droit sur la classe, choix Run Applet, puis dans la fenêtre de saisie :

    - sélectionner Generate web page only

    - spécifier :  Height = 100  Width = 500  

    - valider par Ok
    - choisir comme répertoire d'enregistrement : IN3S02-tp6
    - spécifier le nom du fichier : testSet.html
    - enregistrer le fichier

    Sous Linux, éditer le fichier testSet.html. En étudier sommairement le code HTML.

    Ouvrir maintenant le fichier testSet.html avec un navigateur internet (Mozilla Firefox, par exemple). La page s'affiche dans une fenêtre web.


    2.4- Exercice : projet "baseConverter"


    Soit à créer un programme Java permettant de convertir un nombre d'une base dans une autre, le programme pouvant être exécuté en application indépendante ou dans un navigateur web.


    2.4.1- Créer le programme de conversion de base


    Fermer tous les projets BlueJ ouverts. Créer un répertoire baseConverter dans le répertoire de travail IN3S02-tp6. Charger le fichier BaseConverter.java lié à cet énoncé (cliquer sur le lien), et l'enregistrer sous ce nom dans le répertoire IN3S02-tp6/baseConverter. Lancer BlueJ et ouvrir le projet IN3S02-tp6/baseConverter. Editer la classe BaseConverter.java et en étudier le code. Exécuter ce programme à partir de BlueJ en mode application puis en mode applet.

    Définir la méthode convert de la classe BaseConverter pour qu'elle réalise effectivement la conversion attendue (conseils : passer par la base 10 ; la classe Integer fournit des méthodes utiles, notamment parseInt et toString). Compiler et tester le bon fonctionnement.

    Exemples :

    1100110 en base 2  = 102 en base 10
    "Kona" en base 27 = 411787 en base 10

     

    2.4.2- Exécuter ce programme depuis la ligne de commande


    Essayer l'application à partir de la ligne de commande. Noter les différences avec le lancement par appletviewer

     

    2.4.3- Développer ce programme sans BlueJ


    Sous Linux, éditer BaseConverter.java
    Introduire une modification mineure.
    Compiler sous Linux par                            :    javac BaseConverter.java
    Vérifier l'exécution en mode applet par       :     appletviewer BaseConverter.html
    Vérifier l'exécution en mode application      :     java BaseConverter

    Générer la documentation par                    :     javadoc -private -author BaseConverter.java


    2.4.4- Sauvegarder le projet baseConverter et le fermer

    2.5- Terminer la séance

     

    Si pas fait antérieurement, sauvegarder les projets ouverts, puis fermer BlueJ.

    Si besoin, envoyer par mél à votre binôme, en fichiers attachés, tous les programmes *.java développés sous IN3S02-tp6.

    Se déloger.