Environnement de développement logiciel utilisé pour ce module
Projet du module
La date limite de remise du projet est Vendredi 15/1/16 à minuit
Un seul étudiant par projet
Introduction
Le projet de ce module a pour objectif de récapituler les notions qui y ont été acquises :
programmation POO de base en C#
programmation d'Interfaces Graphiques en C#
Exemple d'utilisation de librairies ajoutées sur votre machine comme les librairies installées avec Excel
Sujet du projet
Voici une solution sous Visual 2015 winforms_excel_interrop au format zip.
Après l'avoir décompressée, éditer la solution sous Visual Studio 2015.
Vous trouverez dans ce projet :
Comment ouvrir une application Excel, un classeur à partir d'un fichier existant
Comment écrire et lire dans des cellules d'une feuille
Comment générer un graphique à partir d'une plage de valeurs sous Excel
etc.
L'interface graphique développée dans ce projet permet ainsi de remplir certaines cellules de la feuille Excel et d'obtenir les résultats au travers des cellules pré-écrites avec des formules et donc calculs délégués à Excel.
Dans le domaine du bâtiment nombreux sont les classeurs excel dans lesquels se trouvent des feuilles qui contiennent déjà l'ensemble des formules à appliquer pour tel ou tel dimensionnement.
De nombreux exemples se trouvent dans l'offre e-Cahiers du CSTB.
Par exemple pour les calculs des poutres et dalles en béton armé d'après l'Eurocode 2 un classeur Excel est disponible moyennant l'achat du guide correspondant…
Il semble donc assez intéressant de créer dans ces cas, une interface graphique permettant de saisir l'ensemble des valeurs à rentrer, et de récupérer simplement les résultats à retranscrire sans pour autant voir la feuille Excel dans son intégralité avec toutes les formules intermédiaires.
1. Interface Simple
Dans la première partie de ce projet, vous récupérerez sur le site "Le Béton" le classeur Excel de Calcul d’une dalle en béton armé.
Créer une interface graphique qui permet de saisir toutes les entrées nécessaires au remplissage des cellules pour les informations et les calculs de la feuille. Sur cette même interface vous choisirez des widgets de visualisation des données adaptés pour restituer les résultats de la feuille.
2. Interface Libre
Lors de vos précédents cours, vous avez eu l'occasion de modéliser différents phénomènes physiques pour un bâtiment et parfois d'écrire les feuilles pour faire les calculs correspondants. Par exemple en béton et structures, en thermique, en conditionnement de l'air, en acoustique, etc.
Choisissez un exemple d'application issu de vos cours. Ecrivez si besoin un fichier Excel pour l'ensemble des calculs nécessaires à l'étude. Développer une interface graphique qui permettra d'entrer les paramètres et récupérer les résultats des calculs.
Une attention toute particulière devra être portée sur la création de graphiques (charts) de visualisation d'ensembles de données.
Date de Remise du projet
Le projet devra être envoyé par email dans un courrier
Le fichier .zip contiendra l'arborescence des fichiers de votre projet Visual studio 2015.
Veillez à ce qu'il contienne tous les fichiers nécessaires au chargement de la solution de votre projet, sa compilation et son exécution.
La date limite de cet envoi est le Vendredi 15/1/16 à minuit .
Passer ces date et horaire, tout heure de retard correspondra à un point de pénalité retiré à la note du projet.
Cours et illustrations de la Programmation en C# sans Objet
Séance 1, 2 et 3 : Rappel sur la programmation et introduction à la Programmation orientée Objet
Supports de Cours, de Démos et corrections d'exercices
Exercices
Exercice 1 :
L'exercice de la séance a pour objectif de faire détecter par la machine un palindrome d'une phrase.
Pour cela nous écrirons tout d'abord un programme qui inverse les caractères d'une phrase entrée au clavier.
Les plus avancés pourront comparer la phrase d'origine et la phrase inversée pour vérifier si palindrome il y a.
Ils pourront aussi chercher les palindromes dans l'ensemble des mots de la phrase et afficher les mots concernés.
Exercice 2
Pour vérifier que vous avez bien assimilé le TD, écrivez un programme qui lit un nombre au clavier et affiche la liste des nombres premiers qui lui sont inférieurs.
L'exercice sera évaluer lors de la 3ième séance.
Autres Tutoriaux et exercices facultatifs
Votre premiers programmes C# “sans objet” :
Ces programmes ont pour but de vous familiariser avec l'environnement de développement de Visual studio 2013 PRO
Ils ont pour but de vous rappeler ou vous faire acquérir rapidement un minimum de compétence en programmation simple (variable, type, méthodes) avec une initiation à la problématique algorithmique.
Cette dernière problématique ne pourra être traitée beaucoup plus dans le cours. Il vous appartiendra de vous documenter avec l'aide de votre enseignant dès que vous serez confrontés à une difficulté dans ce domaine.
Sujet : Manipulation des chaines de caractères
Ce tutorial vous sera utile lorsque que vous devrez gérer des messages à envoyer sur le réseau.
Déclaration d'une chaine de caractère : le type string et longueur de la chaine
Doc MSDN
Lecture / Ecriture d'un Chaine de caractère sur la
console (grâce aux librairies de l'espace de nom system.console, qui fournissent cela et bien plus …)
Doc MSDN
Explications sur la notion d'
espace de noms et l'instruction
using Doc MSDN
Les conversions de types vers des chaines de caractères et inversement
Doc MSDN
Concaténation de chaine de caractères
Doc MSDN
Création et Manipulation d'un tableau de caractères
Doc MSDN
Manipulation d'une chaine comme un tableau de caractères (type string, array, char) …
Doc MSDN
Exercices :
Récupérer la suite d'une chaine de caractère après un mot clef trouvé dans la chaine (ex. le mot clef est “NOM est”, la chaine de caractère “mon NOM est Jean-Yves”. Le résultat donne : “Jean-Yves”.
Extraire les “tokens” (sous-chaines de caractères séparées par des blancs) dans une chaine de caractères (ex. “mon NOM est Jean-Yves”, donnera : chaine1 = “mon”, chaine2 = “NOM”, chaine3 = “est”, chaine4 = “Jean-Yves”)
Remplir des variables : nom_du_produit (string), quantité (uint), code (uint), prix unitaire (double) à partir d'une chaine de caractère saisie à la console au format “NOM QT CODE PRIX”, comme par exemple “poutre1 5 3254 125,3”. Rajouter une méthode dite de “calcul du prix du lot” qui renverra une chaine de caractère affichée à la console sous la forme “le prix du lot est de <prix total> €”.
Trucs et Astuces
Eléments de Correction
Evaluation de l'exercice 3 : RENDU + QCM sur l'exercice
à rendre pour le 23/10/14 au plus tard dans un mail pour tigli@unice.fr
accompagné d'un fichier .zip contenant que le fichier .cs de l'exercice noté (ce fichier sera attaché au mail).
Le sujet de ce mail est composé :
de la chaine de caractère “RENDU TP1 C# BAT4 2014” entre crochets
et de votre nom de login entre crochets
L'exercice est à rendre individuellement.
L'évaluation de l'exercice sera complétée par un QCM sur l'exercice lui-même lors de la prochaine séance, et sur les notions vues dans ce module jusqu'à cette date
Vous avez donc tout intérêt à vous investir personnellement même si vous avez travaillé à deux durant la séance.
Le nom du fichier .zip sera composé de :
de la chaine de caractère “TP1”
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 2 points en moins !
Si vous ne comprenez pas les consignes, consultez vous !
Cours et illustrations des Notions de Programmation Orientée Objet en C#
Séance 3,4 (1,5 h 22/10/14 AM + 3h 22/10/14 PM)
Les CONSTRUCTEURS
Les PROPRIETES
Les MEMBRES STATIQUES de CLASSE
Pratique de la Programmation orientée Objet de base en C#
Séance 5 et 6 (1h30 le 26/11/14 AM + 3h le 26/11/14 PM)
Classes et Objets : programmation de base
Séance 7 et 8 (1h30 15/12/14 AM + 3h 15/12/14 PM)
Les exceptions
try / catch
try / finally
Pour les plus avancés, membres static et héritage ...
Pour les plus avancés, un peu d'algorithmique en C# ...
Exercices POO et Algorithmique
Ces deux séances de travail seront suivies d'un QCM lors d'une prochaine séance, et sur les notions vues dans ce module jusqu'à cette date
Ce que nous n'aurons pas vu en Programmation Orientée Objet en C# ...
L'héritage
Classes Abstraites et Interfaces (ou abstraction)
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#
Pour aller plus loin ...
Apprendre la Programmation Orientée Objet avec le langage C#
Auteur(s) : Luc Gervais
Editeur(s) : Eni, Collection : Ressources Informatiques
Date de parution : 11/09/2013 , EAN13 : 9782746082977
Evaluation partie 1 du cours : programmation de Base POO C#
Cours de Programmation d'Interface Graphique en C#
Séance 9 : Interface Graphique sous Visual Studio (1) (07/01/15 1h30)
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 :
A ce stade, votre interface graphique à l'allure que vous souhaitez mais ne “fait rien”.
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.
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.
Autre référence : C# Programming Tutorial - Programming Winforms in C#
Séance 10,11: Interface Graphique sous Visual Studio (2) (1h30 12/01/15 AM et 3h 12/01/15)
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.
Exemple de solution Visual Studio 2012: Interface Salarié
Cours sur l'Interopérabilité des applications (ex. MySQL / Excel / Scilab / Word ...) avec une programme en C#
Séance 12 : Utilisation d'Excel depuis un programme C#
Supports
Autre référence
Tutorial Utilisation d'Excel en C#
à rendre pour la fin de la séance dans un mail pour tigli@unice.fr
accompagné d'un fichier .zip contenant que le fichier .cs de l'exercice noté (ce fichier sera attaché au mail).
Le sujet de ce mail est composé :
de la chaine de caractère “RENDU TP1 C# BAT4 EXCEL
GUI 2015” entre crochets
et de votre nom de login entre crochets
L'exercice est à rendre individuellement.
Le nom du fichier .zip sera composé de :
de la chaine de caractère “TP EXCEL
GUI”
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 2 points en moins !
Si vous ne comprenez pas les consignes, consultez vous !
Séance supplémentaire : Introduction aux bases de données. Exemple de MySQL (1h30 19/01/15)
Séance supplémentaire : Utilisation de MySQL dans un Programme C#
Séance Supplémentaire : Utilisation de Scilab depuis un programme C#
Séance Supplémentaire : Evaluation
Annexes
Ajout 2014 2015
Introduire la manipulation de Visual Studio dès la première séance de développement (projet C# console vide) … compilation / exécution / debugging …
rajouter la gestion des exceptions : Try Catch
Si possible Héritage / Classes abstraites / Interface
Illustrer les différentes notions introduite avec le formalisme UML et son diagramme de classe
Les modes d'évaluation (évaluation continue) seront :
des QCMs fréquents et pas forcément longs (à noter avec barème université américaine : case pas cochée 0, case cochée à tort -1, case cochée à raison +1)
accessoirement TD en temps limité noté
examen final pas obligatoire
Il faut 3 notes minimum sur tout le module
Années précédentes