====== Cours d'environnement informatique en BAT4 ====== ===== Cours et illustrations de la Programmation en C# sans Objet ===== === Séance 1 === {{:cours:cours_1_introduction_c_de_base.pdf|Support du cours 1 Programmation sans Objet en C#}} {{:cours:consolemonpremierprogramme.zip|Exemple de Solution Visual Studio 2012 : Ma premier programme en C#}} == toto == [[test|test]] ===== Cours et illustrations des Notions de Programmation Orientée Objet en C# ===== === Séance 2,3,4 === {{:cours:cours_2_introduction_aux_objets_c_.pdf|Support du cours 2 Programmation Orienté Objet en C#}} {{:cours:consolemapremiereclasse.zip|Exemple de Solution Visual Studio 2012 : Ma première classe en C#}} == Les CONSTRUCTEURS == {{:cours:consolelesconstructeurs.zip|Exemple de Solution Visual Studio 2012 : Les constructeurs d'une classe en C#}} == Les PROPRIETES == == Les MEMBRES STATIQUES de CLASSE == ===== Pratique de la Programmation orientée Objet de base en C# ===== === Séance 5 et 6 === Il s'agit d'exercices sur machine en temps limité : [[cours:exercicesPOOBAT4Exam|Exercices Programmation orientée Objet de base en C#]] à rendre pour le 27/11/13 au plus tard dans un mail pour tigli@unice.fr dans un fichier .zip contenant les 2 fichiers .cs des deux exercices, attachés au mail dont le sujet est composé : - de la chaine de caractère "RENDU TP POO C# BAT4 271113" entre crochets - et de votre nom de login entre crochets Le nom du fichier .zip sera composé de : - de la chaine de caractère "TP271113" - et de votre nom de login - séparés entre eux par un souligné "_" avant le suffixe ".zip" ATTENTION : Tout retard de rendu sera pénalisé d'1 point toutes les 2h. Tout créneau de retard entamé est pénalisé. ATTENTION : Si votre mail n'est pas conforme à ces consignes, vous aurez des points en moins ! Ce module utilisera la version Visual Studio 2012 Ultimate de Microsoft. Elle devra donc être installer par les étudiants depuis leur compte DreamSpark de Polytech ===== Pratique de la Programmation orientée Objet et l'Algorithmique en C# ===== === Séance 7 === [[cours:exercicesPOOBAT4Classes|Exercices POO et Références de classe]] Pour les plus avancés, un peu d'algorithmique en C# ... [[cours:exercicesPOOBAT4Avance|Exercices POO et Algorithmique]] ==== Ce que nous n'aurons pas vu en Programmation Orientée Objet en C# en 2013 ... ==== == Les Exceptions == * try / catch * try / finally == L'héritage == * Déclaration de classe avec héritage * Constructeur et instance de la classe dite de base avec le constructeur "base()" == Classes Abstraites et Interfaces (ou abstraction) == * Liste à puceLes interfaces sont des classes abstraites qui n'ont que des méthodes abstraites == Les opérateurs is et as == == Le Polymorphisme == * Classe héritée "incomplète" * donc dans méthodes sont virtuelles dans la classe de base (mot clef "virtual") * donc ces méthodes sont surchargées dans la classe dérivée (mot clef "virtual") == Les délégués et les événements == == D'autres éléments de C# == * Les tableaux * Mot clef lock * Le préprocesseur * Mode non protégé : unsafe ===== Cours de Programmation d'Interface Graphique en C# ===== ==== Séance 8 : Interface Graphique sous Visual Studio (1) ==== Durant la première partie de la séance, les étudiants seront interrogés sur la première partie de ce module au travers un QCM. Rappel : on utilisera ici la version 2012 de Visual Studio * Démonstration de l'utilisation de Visual Studio et C# pour développer des interfaces graphiques * Illustration des concepts vus en programmation orientée objet avec le code généré par Visual Studio pour les interfaces graphique Visual Studio bénéficie à la fois d'un générateur de code et d'un éditeur graphique pour faciliter la conception d'Interfaces Graphiques : * En premier lieu créez un projet C# / WinForms * Editez le contenu de program.cs * Editez le contenu de Form1.cs et allez vois le contenu de InitializeComponent() * Utilisez la boîte à outils pour composer dans la fenêtre Form1 votre interface graphique * Remarquez que les manipulations sous l'éditeur graphique correspondent à des instances des classes de la boîte à outils graphiques. Ces classes permettent de créer des objets appelés Widget * Pour chaque objet graphique, vous pouvez éditer ses propriétés. Ceux sont pour l'objet les propriétés telles que nous les avons vu dans les cours de programmation C#. Elles correspondent bien souvent à un aspect graphique. A ce stade, votre interface graphique à l'allure que vous souhaitez mais ne "fait rien". * Chaque événement (issu bien souvent d'une interaction avec un objet graphique) est associé à l'appel d'une méthode (dite événementielle) dont le code peut-être modifié pour programmer ainsi le comportement de votre application. Par exemple : * La méthode Button1_Click() est définie automatiquement pour contenir le code qui va être exécuté quand l'utilisateur cliquera (événement Click) sur le bouton Button1. * Pour trouver toutes les méthodes événementielles définies pour un objet graphique, il vous suffit d'éditer l'onglet avec un symbole "éclair" dans la fenêtre propriété. Les manipulations du cours illustré sont les suivantes : * créer un bouton qui changera de couleur et de nom quand la souris passera dessus (Rouge/"OUT" et Vert/"IN") * créer une simple classe qui gère un compteur initialisé à 0, incrémentable avec incr(), réinitialisable avec reset(), lut avec val(). * Affiché dans la fenêtre principale le compteur qui s'incrémentera à chaque click sur le bouton ci-dessus. * Ajouter un bouton de Reset pour réinitialiser le compteur à 0. {{:cours:windowsformsapplication5.zip| Projet de Correction des Manipulation du cours }} Après ces manipulations, vous devez être capables de créer des programmes C# similaire aux programmes que vous avez développés en mode console et leur rajouter des interfaces graphiques. [[http://cplus.about.com/od/learnc/ss/random.htm|Autre référence : C# Programming Tutorial - Programming Winforms in C#]] ==== Séance 9 : Interface Graphique sous Visual Studio (2) ==== * Développer une classe non graphique contenant un certains nombre de membre, propriétés et attributs. * Développer une interface graphique permettant de manipuler une ou plusieurs instances de cette classe et de représenter les valeurs de leurs propriétés. {{:cours:salaireinterface.zip|Exemple de solution Visual Studio 2012: Interface Salarié}} ==== Séance 10 : Introduction aux bases de données. Exemple de MySQL ==== Attention de télécharger avant la séance, la distribution de mySQL nécessaire à son installation en TD voir : [[http://www.mysql.fr/why-mysql/windows/|Site de Téléchargement et d'Installation de MySQL pour Windows]] * Installation et configuration de MySQL * Manipulation de MySQL {{:cours:inrtroduction_base_de_donnees.pdf|Introduction Base e données:MySQL}} ===== Cours sur l'Interopérabilité des applications (ex. MySQL / Excel / Scilab / Word ...) avec une programme en C# ===== ==== Séance 11 : Utilisation de MySQL dans un Programme C# ==== Attention ce TD doit être rendu avant le mercredi 15/01/2014 en envoyant recours un mail à hend.affes@unice.fr, avec pour sujet [BAT4][TD_MySql] {{:cours:td_mysql.pdf|TD Utilisation de MySQL dans un Programme C#}} ==== Séance 12 : Utilisation d'Excel depuis un programme C# ==== [[http://csharp.net-informations.com/excel/csharp-excel-tutorial.htm|Tutorial Utilisation d'Excel en C#]] ==== Séance 13 : Utilisation de Scilab depuis un programme C# ==== {{:cours:c_.zip| exemple de projet C# utilisant les librairies scilab }} ==== Séance 14 : Evaluation ==== ===== Annexes ===== - mercredi 25 Septembre 2013 J.-Y. Tigli, de 13h30 à 15h30 (2h00) 140 (ex E+157) Templiers 48 pl - mardi 01 Octobre 2013 J.-Y. Tigli, de 15h45 à 17h45 (2h00) O+310 Templiers VA 58pl. - mercredi 02 Octobre 2013 J.-Y. Tigli, de 13h30 à 15h30 (2h00) O+317 Templiers VA 49pl. - mercredi 16 Octobre 2013 J.-Y. Tigli, de 13h30 à 15h30 (2h00) 141( ex E+158 )Templiers 79 pl - mercredi 13 Novembre 2013 J.-Y. Tigli, de 13h30 à 15h30 (2h00) 140 (ex E+157) Templiers 48 pl - mercredi 20 Novembre 2013 J.-Y. Tigli, de 13h30 à 15h30 (2h00) O+311 Templiers V 48pl. - mercredi 27 Novembre 2013 J.-Y. Tigli, de 13h30 à 15h30 (2h00) O+311 Templiers V 48pl. - mercredi 04 Décembre 2013 J.-Y. Tigli, de 13h30 à 15h30 (2h00) O+309 Templiers V 39pl. - mercredi 11 Décembre 2013 H. Affes, de 13h30 à 15h30 (2h00) O+309 Templiers V 39pl. - mercredi 18 Décembre 2013 H. Affes, de 13h30 à 15h30 (2h00) O+307 Templiers V 48 pl. - mercredi 08 Janvier 2014 H. Affes, de 13h30 à 15h30 (2h00) O+307 Templiers V 48 pl.