of 6/6
Nous sommes en mode graphique maintenant. 1. Prix HT Prix TTC On vous demande de créer une application graphique dont l’objectif est de convertir en prix TTC un prix HT saisi par l’utilisateur. Pour créer une solution en mode graphique avec C#, il faut dans SHARPDEVELOP faire « FILE / NEW / SOLUTION… et choisir WINDOW APPLICATION dans la boîte de sélection). Ce tutoriel devrait vous aider http://www.journaldunet.com/developpeur/tutoriel/csharp/061211- visual-csharp-express-interface/0.shtml (il est défini pour Visual C#, mais la démarche est la même pour nous). Attention, dans le formulaire principal MainForm, vous pouvez switcher du code à l’interface graphique en cliquant alternativement sur les onglets SOURCE et DESIGN. Idem, vous pouvez alterner entre le gestionnaire de votre projet (onglet PROJECTS) et les composants visuels (TOOLS). Construisez l’interface suivante : Faites bien la différence entre la propriété TEXT qui indique ce qui est affiché sur le composant et NAME qui désigne son nom de variable dans le programme (onglet PROPERTIES). Sélectionnez le bouton CALCULER, allez dans la liste des événements. Actionnez l’évènement CLICK. Vous programmerez la conversion HT vers TTC dans ce gestionnaire d’évènement. Attention, si l’utilisateur entre une valeur non valide (non numérique), vous devez gérer l’erreur lors du calcul en envoyant une boîte de dialogue annonçant la non-validité de la saisie. 2. Prix HT TTC avec différents types de produits Complétez votre formulaire de la manière suivante :

Seance 4 Sujet

  • View
    11

  • Download
    1

Embed Size (px)

DESCRIPTION

Seance_4_Sujet c Sharp

Text of Seance 4 Sujet

  • Nous sommes en mode graphique maintenant.

    1. Prix HT Prix TTC

    On vous demande de crer une application graphique dont lobjectif est de convertir en prix TTC un

    prix HT saisi par lutilisateur.

    Pour crer une solution en mode graphique avec C#, il faut dans SHARPDEVELOP faire FILE / NEW /

    SOLUTION et choisir WINDOW APPLICATION dans la bote de slection).

    Ce tutoriel devrait vous aider http://www.journaldunet.com/developpeur/tutoriel/csharp/061211-

    visual-csharp-express-interface/0.shtml (il est dfini pour Visual C#, mais la dmarche est la mme

    pour nous).

    Attention, dans le formulaire principal MainForm, vous pouvez switcher du code linterface

    graphique en cliquant alternativement sur les onglets SOURCE et DESIGN.

    Idem, vous pouvez alterner entre le gestionnaire de votre projet (onglet PROJECTS) et les

    composants visuels (TOOLS).

    Construisez linterface suivante :

    Faites bien la diffrence entre la proprit TEXT qui indique ce qui est affich sur le composant et

    NAME qui dsigne son nom de variable dans le programme (onglet PROPERTIES).

    Slectionnez le bouton CALCULER, allez dans la liste des vnements. Actionnez lvnement CLICK.

    Vous programmerez la conversion HT vers TTC dans ce gestionnaire dvnement.

    Attention, si lutilisateur entre une valeur non valide (non numrique), vous devez grer lerreur lors

    du calcul en envoyant une bote de dialogue annonant la non-validit de la saisie.

    2. Prix HT TTC avec diffrents types de produits

    Compltez votre formulaire de la manire suivante :

    http://www.journaldunet.com/developpeur/tutoriel/csharp/061211-visual-csharp-express-interface/0.shtmlhttp://www.journaldunet.com/developpeur/tutoriel/csharp/061211-visual-csharp-express-interface/0.shtml

  • Dans un GROUPBOX, vous mettez 3 RADIOBUTTON. La proprit CHECKED de cette dernire permet

    de savoir si elle est coche ou pas. Modifiez le gestionnaire dvnements CLICK sur le bouton

    CALCULER pour tenir compte des 3 niveaux de TVA (5.5%, 19.6% et 33%).

    Branchement dun gestionnaire dvnement sur une mthode existante. Aprs avoir modifi le

    gestionnaire BUTTON_CLICK, branchez les gestionnaires dvnements CLICK des RADIOBUTTON

    pour quils sappuient sur la mme mthode lorsque lutilisateur modifie le niveau de TVA (il nest

    donc pas ncessaire de r-crire le code, et encore moins de faire des copier/coller).

    3. Application statistique

    On souhaite raliser une application statistique qui permet de saisir des valeurs numriques, de les

    trier (de manire ascendante ou descendante), de calculer la moyenne, de les sauver/charger dans

    deux types de fichiers : fichier texte et fichier XML.

    Voici linterface de la fentre principale de lapplication.

  • Saisies et calculs

    Le composant LISTBOX est central, il liste les valeurs saisies par lutilisateur (la proprit ITEMS

    permet de grer le contenu dune bote liste, il sagit dune collection dobjets [on peut la voir comme

    une collection de String si on y met des chanes de caractres] -- http://msdn.microsoft.com/en-

    us/library/system.windows.forms.listbox.items.aspx).

    Fonctionnalits :

    Le bouton AJOUTER permet dintroduire une valeur dans la LISTBOX.

    Lorsquune valeur est slectionne dans la bote liste et que lutilisateur appuie sur la touche

    SUPPR, la valeur doit tre supprime de la liste (SELECTEDINDEX de la LISTBOX permet de

    connatre le numro de llment slectionn, il faudra programmer le gestionnaire

    dvnements KEYDOWN de la LISTBOX cf. les proprits du paramtre KEYEVENTARGS).

    Lorsque lutilisateur clique sur le bouton MOYENNE, la moyenne des valeurs doit tre

    affiche dans le label situ juste en dessous (du bouton).

    Lorsque lutilisateur clique sur le bouton TRIER, les valeurs doivent tre tries de manire

    ascendante ou descendante selon la slection effectue dans le GROUPBOX Trier les

    valeurs . Attention, le trie doit tre effectu en considrant que nous avons affaire une

    collection de valeurs numriques et non pas de chanes de caractres (ex. 12 est plus grand

    que 8 en numrique, alors quen chane de caractre 12 est plus petit que 8 -- Avec la

    classe Array, vous avez de quoi trier des tableaux de numrique -

    http://msdn.microsoft.com/fr-fr/library/system.array.aspx ).

    Menus

    Nous souhaitons ajouter un menu notre application (cf. le composant MENUSTRIP --

    http://www.journaldunet.com/developpeur/tutoriel/csharp/061211-visual-csharp-express-

    interface/3.shtml ; ou encore http://msdn.microsoft.com/fr-

    fr/library/360kwx3z%28v=vs.90%29.aspx [seule la partie menu nous intresse]). Voici notre menu :

    http://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.items.aspxhttp://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.items.aspxhttp://msdn.microsoft.com/fr-fr/library/system.array.aspxhttp://www.journaldunet.com/developpeur/tutoriel/csharp/061211-visual-csharp-express-interface/3.shtmlhttp://www.journaldunet.com/developpeur/tutoriel/csharp/061211-visual-csharp-express-interface/3.shtmlhttp://msdn.microsoft.com/fr-fr/library/360kwx3z%28v=vs.90%29.aspxhttp://msdn.microsoft.com/fr-fr/library/360kwx3z%28v=vs.90%29.aspx

  • FICHIER / NOUVEAU sert vider la LISTBOX.

    FICHIER / QUITTER sert fermer lapplication. Attention, juste avant la fermeture de lapplication

    vous devez confirmer laction par lutilisateur avec une bote de dialogue ressemblant celle-ci

    Indications : regardez du ct de lvnement FORMCLOSING du formulaire ; et voyez mthode

    SHOW dun MESSAGEBOX (notamment la gestion des boutons et de la rponse).

  • Entres / Sorties

    FICHIER / SAUVER doit faire apparatre une bote de dialogue de slection de nom de fichier. Deux

    types de fichiers sont autoriss (format *.txt ou format *.xml). Linterface graphique se prsenterait

    de la manire suivante :

    Lutilisateur doit choisir le type de fichier et indiquer son nom. Le contenu de la liste doit tre alors

    inscrit dans le fichier.

    Indications :

    Pour faire apparatre et grer une bote de dialogue de gestion de noms de fichier pour la

    sauvegarde, regardez du ct du composant SAVEFILEDIALOG (cf.

    http://msdn.microsoft.com/en-us/library/sfezx97z.aspx -- attention, la diffrence cet

    exemple, vous placez le composant sur votre formulaire, vous navez donc pas crer lobjet

    mais lutiliser directement). Vous pouvez spcifier directement les proprits du

    composant via la bote des proprits.

    La proprit FILTER permet de spcifier les extensions de noms de fichiers.

    La proprit FILTERINDEX permet de connatre le numro de lextension de fichier (*.txt == 1,

    *.xml == 2) slectionne par lutilisateur.

    FILENAME indique le nom de fichier.

    SHOWDIALOG se charge de faire apparatre la bote de dialogue. Attention, vous neffectuez

    la sauvegarde effective que si lutilisateur a cliqu sur le bouton ENREGISTRER (voyez du ct

    des valeurs renvoyes par SHOWDIALOG cf. http://msdn.microsoft.com/fr-

    fr/library/c7ykbedk%28v=vs.85%29.aspx).

    Pour sauvegarder dans un fichier texte, regardez du ct de la classe StreamWriter

    (http://msdn.microsoft.com/fr-fr/library/system.io.streamwriter.aspx).

    Pour sauvegarder dans un fichier XML, regardez du ct de la srialisation (http://www.ace-

    art.fr/wordpress/2010/04/27/tutorial-sur-la-serialisation-en-c/ ;

    http://www.devparadise.com/technoweb/code/dotnet/a50028.php montre quil est

    possible de nommer explicitement les champs dans la structure XML).

    http://msdn.microsoft.com/en-us/library/sfezx97z.aspxhttp://msdn.microsoft.com/fr-fr/library/c7ykbedk%28v=vs.85%29.aspxhttp://msdn.microsoft.com/fr-fr/library/c7ykbedk%28v=vs.85%29.aspxhttp://msdn.microsoft.com/fr-fr/library/system.io.streamwriter.aspxhttp://www.ace-art.fr/wordpress/2010/04/27/tutorial-sur-la-serialisation-en-c/http://www.ace-art.fr/wordpress/2010/04/27/tutorial-sur-la-serialisation-en-c/http://www.devparadise.com/technoweb/code/dotnet/a50028.php

  • FICHIER / OUVRIR permet de charger le contenu dun fichier dans la LISTBOX. Une bote de dialogue

    (OPENFILEDIALOG) permet lutilisateur de slectionner le fichier, au format TXT ou XML.

    Les valeurs contenues dans le fichier doivent tre affiches dans la LISTBOX.

    Indications :

    Pour grer un OPENFILEDIALOG, voir http://msdn.microsoft.com/fr-fr/library/61097ykx.aspx.

    La gestion de SHOWDIALOG, FILTER, FILTERINDEX et FILENAME est analogue celle de

    SAVEFILEDIALOG.

    Pour lire un fichier texte, utilisez la classe STREAMREADER (http://msdn.microsoft.com/fr-

    fr/library/system.io.streamreader%28v=VS.80%29.aspx).

    Pour lire un fichier XML, passez par la srialisation (http://www.ace-

    art.fr/wordpress/2010/04/27/tutorial-sur-la-serialisation-en-c/).

    4. Barre doutils

    Sil vous reste encore un peu de temps, vous pourriez ajouter une barre doutils dans votre

    application. Cf. le composant TOOLSTRIP -- http://www.xna-

    connection.com/public/articles/133/gerard-leblanc-csharp-et-framework-net-version-2-barre-de-

    menu-d-etats-et-boutons.pdf

    FIN.

    http://msdn.microsoft.com/fr-fr/library/61097ykx.aspxhttp://msdn.microsoft.com/fr-fr/library/system.io.streamreader%28v=VS.80%29.aspxhttp://msdn.microsoft.com/fr-fr/library/system.io.streamreader%28v=VS.80%29.aspxhttp://www.ace-art.fr/wordpress/2010/04/27/tutorial-sur-la-serialisation-en-c/http://www.ace-art.fr/wordpress/2010/04/27/tutorial-sur-la-serialisation-en-c/http://www.xna-connection.com/public/articles/133/gerard-leblanc-csharp-et-framework-net-version-2-barre-de-menu-d-etats-et-boutons.pdfhttp://www.xna-connection.com/public/articles/133/gerard-leblanc-csharp-et-framework-net-version-2-barre-de-menu-d-etats-et-boutons.pdfhttp://www.xna-connection.com/public/articles/133/gerard-leblanc-csharp-et-framework-net-version-2-barre-de-menu-d-etats-et-boutons.pdf