Seance 4 Sujet
-
Upload
faycal1633 -
Category
Documents
-
view
17 -
download
1
description
Transcript of Seance 4 Sujet
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 :
Dans un GROUPBOX, vous mettez 3 RADIOBUTTON. La propriété CHECKED de cette dernière permet
de savoir si elle est cochée ou pas. Modifiez le gestionnaire d’évènements CLICK sur le bouton
CALCULER pour tenir compte des 3 niveaux de TVA (5.5%, 19.6% et 33%).
Branchement d’un gestionnaire d’événement sur une méthode existante. Après avoir modifié le
gestionnaire BUTTON_CLICK, branchez les gestionnaires d’évènements CLICK des RADIOBUTTON
pour qu’ils s’appuient sur la même méthode lorsque l’utilisateur modifie le niveau de TVA (il n’est
donc pas nécessaire de ré-écrire le code, et encore moins de faire des copier/coller).
3. Application statistique
On souhaite réaliser une application statistique qui permet de saisir des valeurs numériques, de les
trier (de manière ascendante ou descendante), de calculer la moyenne, de les sauver/charger dans
deux types de fichiers : fichier texte et fichier XML.
Voici l’interface de la fenêtre principale de l’application.
Saisies et calculs
Le composant LISTBOX est central, il liste les valeurs saisies par l’utilisateur (la propriété ITEMS
permet de gérer le contenu d’une boîte liste, il s’agit d’une collection d’objets [on peut la voir comme
une collection de String si on y met des chaînes de caractères] -- http://msdn.microsoft.com/en-
us/library/system.windows.forms.listbox.items.aspx).
Fonctionnalités :
Le bouton AJOUTER permet d’introduire une valeur dans la LISTBOX.
Lorsqu’une valeur est sélectionnée dans la boîte liste et que l’utilisateur appuie sur la touche
SUPPR, la valeur doit être supprimée de la liste (SELECTEDINDEX de la LISTBOX permet de
connaître le numéro de l’élément sélectionné, il faudra programmer le gestionnaire
d’évènements KEYDOWN de la LISTBOX cf. les propriétés du paramètre KEYEVENTARGS).
Lorsque l’utilisateur clique sur le bouton MOYENNE, la moyenne des valeurs doit être
affichée dans le label situé juste en dessous (du bouton).
Lorsque l’utilisateur clique sur le bouton TRIER, les valeurs doivent être triées de manière
ascendante ou descendante selon la sélection effectuée dans le GROUPBOX « Trier les
valeurs ». Attention, le trie doit être effectué en considérant que nous avons affaire à une
collection de valeurs numériques et non pas de chaînes de caractères (ex. 12 est plus grand
que 8 en numérique, alors qu’en chaîne de caractère « 12 » est plus petit que « 8 » -- Avec la
classe Array, vous avez de quoi trier des tableaux de numérique -
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 intéresse]). Voici notre menu :
FICHIER / NOUVEAU sert à vider la LISTBOX.
FICHIER / QUITTER sert à fermer l’application. Attention, juste avant la fermeture de l’application
vous devez confirmer l’action par l’utilisateur avec une boîte de dialogue ressemblant à celle-ci
Indications : regardez du côté de l’évènement FORMCLOSING du formulaire ; et voyez méthode
SHOW d’un MESSAGEBOX (notamment la gestion des boutons et de la réponse).
Entrées / Sorties
FICHIER / SAUVER doit faire apparaître une boîte de dialogue de sélection de nom de fichier. Deux
types de fichiers sont autorisés (format *.txt ou format *.xml). L’interface graphique se présenterait
de la manière suivante :
L’utilisateur 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 apparaître et gérer une boîte de dialogue de gestion de noms de fichier pour la
sauvegarde, regardez du côté du composant SAVEFILEDIALOG (cf.
http://msdn.microsoft.com/en-us/library/sfezx97z.aspx -- attention, à la différence cet
exemple, vous placez le composant sur votre formulaire, vous n’avez donc pas à créer l’objet
mais à l’utiliser directement). Vous pouvez spécifier directement les propriétés du
composant via la boîte des propriétés.
La propriété FILTER permet de spécifier les extensions de noms de fichiers.
La propriété FILTERINDEX permet de connaître le numéro de l’extension de fichier (*.txt == 1,
*.xml == 2) sélectionnée par l’utilisateur.
FILENAME indique le nom de fichier.
SHOWDIALOG se charge de faire apparaître la boîte de dialogue. Attention, vous n’effectuez
la sauvegarde effective que si l’utilisateur a cliqué sur le bouton ENREGISTRER (voyez du côté
des valeurs renvoyées par SHOWDIALOG – cf. http://msdn.microsoft.com/fr-
fr/library/c7ykbedk%28v=vs.85%29.aspx).
Pour sauvegarder dans un fichier texte, regardez du côté de la classe StreamWriter
(http://msdn.microsoft.com/fr-fr/library/system.io.streamwriter.aspx).
Pour sauvegarder dans un fichier XML, regardez du côté de la sérialisation (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 qu’il est
possible de nommer explicitement les champs dans la structure XML).
FICHIER / OUVRIR permet de charger le contenu d’un fichier dans la LISTBOX. Une boîte de dialogue
(OPENFILEDIALOG) permet à l’utilisateur de sélectionner le fichier, au format TXT ou XML.
Les valeurs contenues dans le fichier doivent être affichées dans la LISTBOX.
Indications :
Pour gérer 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 sérialisation (http://www.ace-
art.fr/wordpress/2010/04/27/tutorial-sur-la-serialisation-en-c/).
4. Barre d’outils
S’il vous reste encore un peu de temps, vous pourriez ajouter une barre d’outils 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.