Outils pour utilisateurs

Outils du site


Panneau latéral

Accueil

Select other language :


Apprentissage

Enseignements

Enseignements Département Informatique SI5 et Master IFI

Enseignements Département Bâtiment Polytech'Nice

Autres Formations française et étrangère

Activités administratives, Ingénierie et Innovation Pédagogiques

Apprentissage Département Informatique SI5/Master 2 ingénierie informatique EUR DS4H


Recherche

Valorisation de la Recherche

Dépôts Logiciels à l’Agence de Protection des Programme (APP)

Valorisation des résultats de recherche et transfert

Diffusion de la Culture scientifique et Technologique

Communications de presse

Séminaire ENSI Tunis

Pédagogie Innovante

Relations industrielles et socio-économique

Organisation de Manifestations

  • Conférence sur les FabLabs, Alexandre Schneider, Professeur Agrégé en Génie Mécanique, Université de Reims Champagne-Ardenne Web
  • Journées UbiMob'14 Site Web

Animation de la Recherche

U-Santé

Privé

Outils

Sources d'Informations

cours:cours_environnement_logiciel_et_programmation_2015_2016

Ceci est une ancienne révision du document !


Cours d'environnement de programmation en informatique en BAT4

Environnement de développement logiciel utilisé pour ce module

Pour de multiples raisons qui seront exposées en introduction du cours, nous allons tout au long de ce module utilisé l'IDE Visual Studio de Microsoft, dans sa version 2013 et/ou 2015.

Voici les liens pour les télécharger et les installer :

Microsoft Visual Studio Express 2013 pour Windows Desktop avec Update 4

et

voir le lien Express pour Desktop à télécharger pour Visual Studio Express 2015


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

  • dont l'objet sera : [<votre Nom>] [BAT4 Projet Env Log 2015]
  • dans lequel sera attaché un fichier dont le nom sera le suivant : <votre Nom>_BAT4_15.zip

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 :
  1. 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”.
  2. 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”)
  3. 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

  • Je cherche une documentation autour de C# et sur le MSDN de Microsoft. Je fais une requête google : <mots clefs recherchés > C# url:msdn.microsoft.com
  • C# et son environnement de librairies “.Net Framework” est une plateforme logicielle de haut-niveau. Il ne sera donc pas nécessaire de réinventer la roue mais d'utiliser la documentation avec aisance (exemple : String.Split... intéressant non ?)
Eléments de Correction
  • Conversion d'une chaîne de caractères en tableau de caractères
    • En fait une chaine de caractères est un tableau de caractères ..
  • Conversion d'un tableau de caractères en chaîne de caractères
  • Extraction dans une chaîne de “tokens” (mots séparés dans la chaîne par un caractère prédéfini)
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é :
  1. de la chaine de caractère “RENDU TP1 C# BAT4 2014” entre crochets
  2. 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 :

  1. de la chaine de caractère “TP1”
  2. et de votre nom de login
  3. 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
  • 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

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 :

  • 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.

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é :
  1. de la chaine de caractère “RENDU TP1 C# BAT4 EXCEL GUI 2015” entre crochets
  2. et de votre nom de login entre crochets

L'exercice est à rendre individuellement.

Le nom du fichier .zip sera composé de :

  1. de la chaine de caractère “TP EXCEL GUI
  2. et de votre nom de login
  3. 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)

Attention de télécharger avant la séance, la distribution de mySQL nécessaire à son installation en TD

voir : Site de Téléchargement et d'Installation de MySQL pour Windows

  • Installation et configuration de MySQL
  • Manipulation de MySQL

Introduction Base e données:MySQL

Séance supplémentaire : 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]

TD 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

cours/cours_environnement_logiciel_et_programmation_2015_2016.1473357626.txt.gz · Dernière modification: 2016/09/08 20:00 par tigli