PREAMBULE
Un des trois Modules pour appréhender l'immotique
Préambule & Approche pédagogique
Outils de travaux pratiques
Cours et Tutoriaux sur la Programmation Objet en C#
Quelques références sur la Programmation orientée objet et C#
Pour aller plus loin
Auteur(s) : Luc Gervais
Editeur(s) : Eni, Collection : Ressources Informatiques
Date de parution : 11/09/2013 , EAN13 : 9782746082977
LES COURS PROGRAMMATION et ENVIRONNEMENT LOGICIEL
Séance 1 Introduction du langage C# hors objet : Introduction des outils de développement logiciel et mise en place de l'environnement du module
Durée : 2h
Résumé de la Séance :
Présentation des différents Projets Visual Studio
Démonstration d'un premier projet en mode terminal dit “Application Console” en C# sous Visual Studio
Démonstration d'un premier projet en mode graphique dit “Application Windows Forms” en C# sous Visual Studio
QCM sur vos connaissances en programmation pour nous aider à mieux adapter l'enseignement.
Tutorial : Développement sous Visual Studio
A FAIRE
Aidez-vous du tutorial pour créer votre premier programme en mode console, ce programme affiche Hello.
Compétences acquises :
Séance 2 : Introduction du langage C# hors objet : Mise en œuvre de l'environnement de développement
Durée : 2h
Résumé de la Séance :
A FAIRE
Importer le programme de test de debugging et exécutez-le.
Placer un point d'arrêt au bon endroit pour comprendre quel est le bug.
Corriger le bug en complétant le programme pour qu'il affiche 0, 1 ou 2 solutions selon que le déterminant est négatif, nul ou positif.
Programme de test de debugging
CORRIGE
Calcul des racines d'une équation du 2d degré
Compétences acquises :
Utiliser le debugger de Visual Studio pour placer des points d'arrêts et visualiser des variables en cours d'exécution
Utilisation de l'instruction conditionnelle “If”
Conversion de types de données
Séance 3 : éléments du langage C# hors Objets et mise en oeuvre
Durée : 2h
Résumé de la Séance :
Comparaison entre C# et VBA
Code C# support de cours
A FAIRE
Écrire un programme de test de parité d'un nombre
Il faudra demander de saisir un nombre au clavier
Récupérer la valeur entière saisie
Écrire une fonction booléenne qui teste la parité d'un entier
Tester avec l'appel de cette fonction la parité de l'entier saisi et
Afficher selon le message “est pair” ou “est impair”
Nota : utiliser les fonctions de lecture écriture ci-dessus.
CORRIGE
Séance 4 : éléments du langage C# hors Objets et mise en oeuvre :
Durée : 2h
Résumé de la Séance :
Code C# support de cours
A FAIRE
Application directe : calcul de nombre factoriel
Programme de calcul mental. Écrire un programme qui affiche des équations du type “x + 12 = 36” et qui demande à l'utilisateur quelle est la valeur de x. Le programme propose 10 équations en tout et affiche le score final, par exemple 3/10 si on a répondu correctement à 3 équations sur 10.
Programme de calcul mental (facultatif). L'utilisateur a maintenant 3 tentatives pour chaque équations. Le score est calculé ainsi : 3pts si la valeur est trouvée en une seule tentative, 2pts en 2 tentatives, 1pt en une tentative et Opt si la valeur n'est pas trouvée.
Code C# à compléter pour le calcul mental
CORRIGE
A FAIRE (en séance)
écrire une fonction qui renvoie le produit scalaire de deux vecteurs.
écrire un programme Colle qui prend des mots passés en paramètre du main et qui les colle séparés par _, lancer le programme dans le terminal (cmd). Exemple : Colle.exe il fait beau doit afficher il_fait_beau.
compléter le projet sur les tableaux en ajoutant la multiplication vectorielle(matrice par vecteur) ainsi que la lecture d'une matrice.
Séance 5 : éléments du langage C# hors Objets : types complexes
Code C# support de cours
A FAIRE (en séance)
écrire une fonction qui renvoie le produit scalaire de deux vecteurs.
écrire un programme Colle qui prend des mots passés en paramètre du main et qui les colle séparés par _, lancer le programme dans le terminal (cmd). Exemple : Colle.exe il fait beau doit afficher il_fait_beau.
Rappel : Vous trouverez des compléments d'information sur Cours Complet POO C# de Référence
Travail personnel évalué
A FAIRE
DATES d'évaluation
Pour préparer le contrôle de la rentrée
Séance 6 : Introduction du langage C# : types complexes
Code C# support de cours
A FAIRE
Application directe : compléter le projet sur les rectangles en ajoutant le calcul de l'aire du rectangle (des 2 façons, avec ou sans struct)
DecoAndCo : On veut repeindre les murs d'un appartement en utilisant la même peinture dans toutes les pièces. On vous demande d'écrire un programme qui lit le pouvoir couvrant de la peinture (i.e. le nombre de m2 que le pot permet de couvrir) puis qui lit les caractéristiques des pièces de l'appartement (nom, hauteur, largeur, longueur), qui affiche pour chaque pièce la surface à peindre et le nombre de pots nécessaires. A la fin, le nombre de pots total est affiché.
CORRIGE
Déco And Co
Compétences acquises :
Créer et manipuler un struct
Passer d'un problème à un programme qui modélise ce problème
Décomposer un problème en parties ⇒ choix des fonctions ou procédures
Rappel : Vous trouverez des compléments d'information sur Cours Complet POO C# de Référence
Séance 7 : Premiers pas vers la programmation orientée Objet par l'exemple
Des structures aux objets …
Introduction à la POO : Classes et Objets
Portage d'une application simple en C# programmée selon une approche procédurale vers une approche orientée objet
Définition d'une classe, ses attributs et ses méthodes
Code C# support de cours
A FAIRE
Application directe 1 : reprendre votre solution Polygone pour remplacer la struct Rectangle par une classe Rectangle
Application directe 2 : reprendre votre solution DecoAndCo pour remplacer la struct Piece par une classe Piece
DecoAndCo cont'd : il s'agit maintenant de repeindre la maison. Votre programme principal contient un tableau de pièces. On demande le nombre de pièces, on lit les caractéristiques des pièces à la console puis on affiche :
la surface au sol de la maison
la surface totale à peindre (on ne peint que les murs)
le nombre de pots de peintures nécessaires pour peindre la maison.
CORRIGE
Séance 8 : Séance Programmation orientée Objet en C# (4h)
A FAIRE
- Définissez dans la classe rectangle deux propriétés pour éviter qu'une longueur ou qu'une largeur soit inférieure ou égal à 0.
- Écrire le constructeur par défaut qui initialise les côtés à 0.
CORRIGE
Séance 9 : Introduction à la programmation orientée Objet en C#
A FAIRE
Exercice de cours : Écrire une classe “carré” qui contiendra les mêmes attributs et méthodes que la classe rectangle (héritage) puisqu'il s'agit d'un rectangle particulier. Trois objets seront alors instanciés et testés.
Gestion de véhicules. On vous donne la classe Vehicule et la classe Voiture qui étend Vehicule. On vous donne aussi le programme qui gère un tableau de Voiture.
Vous devez créez la classe Moto. En plus des caractéristiques d'un véhicule, une moto a une cylindrée comprise entre 50 et 1000. Le permis nécessaire est le “AM” si la cylindrée est 50, le “A1” si la cylindrée est 125 et le “A2” sinon.
Ajoutez un tableau de motos dans le programme principal. Créez quelques motos et affichez toutes les voitures puis toutes le motos.
plutôt qu'utiliser un tableau de Voiture et un tableau de Moto, utilisez un tableau de Vehicule et pour y stocker aussi bien des Moto que des Voiture.
La solution des véhicules à compléter
Rappel : Vous trouverez des compléments d'information sur Cours Complet POO C# de Référence
CORRIGE
Classe Carre qui hérite Rectangle. Version avec new et override
Les véhicules avec héritage
Compétences acquises :
Héritage d'une classe (ex. Class Carre : Rectangle)
Écriture d'un constructeur dans la classe qui hérite (ex. public Carre©: base (c,c) dans le cas de la classe héritée Rectangle)
Champs protected plutôt que private pour les utiliser au travers de l'héritage
Surcharge d'une méthode dans la classe qui hérite avec le mots clef “new”
Utilisation d'une méthode de la classe héritée dans la classe qui hérite (ex. base.affiche())
Séance 10 : Programmation orientée Objet et Interface Graphique
Programmation d'une interface graphique dans un projet Winforms (Windows Forms) en trois temps :
instanciation des objets graphiques (appelés aussi widgets)
modification des propriétés des objets graphiques
programmation du comportement de l'application dans les méthodes événementielles des objets graphiques
Tutoriel sur les projets de type WinForms avec VisualStudio.
A FAIRE
Exercice de cours : construire pas à pas votre première interface graphique en suivant le tutoriel ci-dessus.
Application : un compteur graphique.
créer une classe qui gère un compteur initialisé à 0, incrémentable avec incr(), réinitialisable avec reset(), lu avec val().
en suivant les étapes décrites ci-dessus, créer une interface graphique contenant un bouton qui changera de couleur et de nom quand la souris passera dessus (Rouge/“OUT” et Vert/“IN”)
Afficher dans la fenêtre principale le compteur qui s'incrémentera à chaque click sur ce bouton ci-dessus,
Ajouter un bouton de Reset pour réinitialiser le compteur à 0.
Compétences acquises :
Après ces manipulations, vous devez être capables de créer des programmes C# similaires aux programmes que vous avez développés en mode console et leur rajouter des interfaces graphiques.
Autre référence : C# Programming Tutorial - Programming Winforms in C#
Séance 11 : Test en séance sur la programmation objet
Correction en mode console
Séance 12 : Interface graphique pour une application métier
A FAIRE
Il s'agit de créer une interface graphique pour le compteur écrit lors de la séance de test.
Finir le code du compteur (code métier), avec les deux versions : compteur qui peut prendre n'importe quelle valeur (Compteur_set), compteur qui ne peut être initialisé qu'à 0 (Compteur_non_set).
Créez une interface (projet WinForm) contenant :
un TextBox (champ de texte modifiable) qui affiche la valeur du Compteur_set et un Label qui affiche la valeur du Compteur_non_set
5 boutons : quit positionné en bas au centre de la fenêtre, reset et incr positionnés sous le Compteur_set, reset et incr positionnés sous le Compteur_non_set
comportement : appuyer sur reset remet le compteur correspondant à 0, appuyer sur incr l'incrémente et appuyer sur quit ferme la fenêtre.
On aurait pu choisir d'afficher le Compteur_non_set dans un TextBox, comment faire pour que le comportement soit cohérent ?
Correction en mode console et graphique
Séance 13 : Utilisation d'Excel depuis un programme C#
Il s'agit d'utiliser une API pour lire/écrire des informations depuis/dans un fichier excel.
A FAIRE
TP final
Ce TP est à faire en séance. A la fin de la séance, vous devrez impérativement envoyer une archive TPfinal.zip à votre responsable de TD dans un mail dont le sujet est : [BAT4] TP final. Ceux qui souhaitent aller plus loin pourront améliorer leur travail en envoyant un mail identique avec une version plus avancée au plus tard le vendredi 22 décembre.
Il s'agit d'afficher dans une interface WINFORM les informations calculées dans un fichier excel qui donnent la classe d'énergie d'un bâtiment en fonction de son SHON et du volume consommé dans les différentes énergies (gaz, fuel …). Ce fichier provient en partie de l'ADEME.
Les entrées de ce fichier excel sont le SHON et la consommation des différentes énergies. La sortie est une X en face de la classe énergétique (A, B, C,… G).
Vous n'avez pas le droit de modifier ce fichier.
a minima, il faudra fournir dans votre interface graphique en C# un moyen de modifier le SHON et d'afficher la classe énergétique
il pourra être intéressant de permettre de modifier aussi les consommations énergétiques
l'affichage de la classe énergétique pourra être simplement un label
il pourra être intéressant d'afficher une flèche en face du logo des classes énergétiques de l'ADEME.
L'archive TPFinal.zip contient :
les fichier excel à traiter
la dll permettant de lire et écrire dans un fichier excel à partir de C#
un exemple d'utilisation de cette dll
l'image du logo de l'ADEME ainsi que l'image d'une flèche
Introduction aux bases de données. Exemple de MySQL (1h30 19/01/15)
Site de Téléchargement et d'Installation de MySQL pour Windows
Introduction Base e données:MySQL
TD Utilisation de MySQL dans un Programme C#
Utilisation de Scilab depuis un programme C#
exemple de projet C# utilisant les librairies scilab
Autres éléments de cours
Import de DLL
Cours et illustrations des Notions de Programmation Orientée Objet en C#
Zone Enseignant
Années précédentes