Marc Chevaldonné IUT Informatique Clermont1 2ème année orientation GI 30 septembre 2010



Documents pareils
Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Le langage C. Séance n 4

TP, première séquence d exercices.

Module d anonymisation

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

TP1 : Initiation à Java et Eclipse

Tp 1 correction. Structures de données (IF2)

STAGE IREM 0- Premiers pas en Python

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

B2i. LE B2i Brevet Informatique et Internet. Niveau : tous. 1 S'approprier un environnement informatique de travail. b2ico1.odt.

Programmation en Java IUT GEII (MC-II1) 1

Janvier Entretien de l ordinateur

Bases Java - Eclipse / Netbeans

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

FORD C-MAX + FORD GRAND C-MAX CMAX_Main_Cover_2013_V3.indd /08/ :12

Endpoint Protection. Guide d installation simplifié

SRAL Saint Raphaël. Maison des associations 213, rue de la Soleillette Saint Raphaël. : : dromain.jean-pierre@neuf.

Menu Fédérateur. Procédure de réinstallation du logiciel EIC Menu Fédérateur d un ancien poste vers un nouveau poste

L'accès aux ressources informatiques de l'ufr des Sciences

Programmation avec des objets : Cours 7. Menu du jour

< Atelier 1 /> Démarrer une application web

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

1 Recherche en table par balayage

Utilisation du client de messagerie Thunderbird

Récupération de données perdues

Programmation Objet - Cours II

Le serveur communication unifiée IceWarp. Guide de mise à jour. Version 10. Février IceWarp France / DARNIS Informatique

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

CAPTURE DES PROFESSIONNELS

Cours: Administration d'une Base de Données

PRÉSENTÉ PAR : NOVEMBRE 2007

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Configuration Matérielle et Logicielle AGORA V2

Programmation par les Objets en Java

LA GOUVERNANCE, OU COMMENT RAPPROCHER LES ÉQUIPES DE DÉVELOPPEMENT ET D INFRASTRUCTURE

Démarrer et quitter... 13

La mémoire. Un ordinateur. L'octet. Le bit

Table des matières...2 Introduction...4 Terminologie...4

Notions fondamentales du langage C# Version 1.0

TP 1. Prise en main du langage Python

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

Configuration de WebDev déploiement Version 7

Guide informatique AUDIT EVALUATION DE LA PRATIQUE DE L ANTIBIOPROPHYLAXIE EN MATERNITE

Programmation Web. Madalina Croitoru IUT Montpellier

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Programmer en JAVA. par Tama

PerSal Manuel d installation

TP 1 Prise en main de l environnement Unix

Le serveur web Windows Home Server 2011

Avec Stellar Phoenix Windows Data Recovery vous pouvez récupérer quasiment tout. À partir des fichiers, des dossiers, des documents, des musiques,

Procédure d installation :

Pratique de l ingenierie patrimoniale Comment intégrer les nouveautés dans les stratégies patrimoniales? LA REUNION 29 ET 30 OCTOBRE 2013

Module Communication - Messagerie V6. Infostance. Messagerie

Tutoriel pour la gestion des bases de données du Serveur Mysql virtualisé par le Gip Récia

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Procédure serveur : gestion des environnements X3 et bases de données ORACLE

SOMMAIRE GUIDE D UTILISATION DU WEBMAIL. vous guide

Module.NET 3 Les Assemblys.NET

UserLock Quoi de neuf dans UserLock? Version 6

Recycle Bin (Corbeille Active directory)

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Manuel de déploiement sous Windows & Linux

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

Fiche Pratique. MAJ le 10/04/2013

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

La programmation orientée objet et le langage C++

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

Photoshop Séquence 4 - Créer une image de taille personnalisée taille

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Définition des Webservices Ordre de paiement par . Version 1.0

Partie publique / Partie privée. Site statique site dynamique. Base de données.

Securexam Consignes pour l EFU Les 2, 3 et 4 juin 2015

Tutorial Terminal Server sous

Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02)

Le poste de travail, les dossiers et les fichiers

Seniors/Niveau 2. Connaissances préalables requises. Pour accéder au niveau 2, il faut être capable de:

Premiers pas avec SES-Pegase (version 7.0) SES : Un Système Expert pour l analyse Statistique des données. Premiers pas avec SES-Pegase 1

ENVOI EN NOMBRE DE SMS

Poker. A rendre pour le 25 avril

Recherche dans un tableau

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

INSTALLATION DBSWin En réseau

Les structures de données. Rajae El Ouazzani

Comment installer un client Rivalis Devis factures

Les sauvegardes de l ordinateur

Chapitre 4. Gestion de l environnement. Pré-requis. énoncé

Gestion distribuée (par sockets) de banque en Java

Septembre Décembre 2015

AutoBackup 4. Sauvegarde de la totalité des données personnelles ASSOCIATION INFORMATIQUE POUR TOUS - VIEILLEVIGNE Gilbert LECOCQ

Formation. Module WEB 4.1. Support de cours

L essentiel. Coopérative, flexible, très performante : la plateforme Engineering Base. web aucotec.com

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

1/6. L icône Ordinateur

Progression secrétariat

Securexam pour le programme CPA,CGA

Transcription:

Examen C# Énoncés de TP de C#.NET Marc Chevaldonné IUT Informatique Clermont1 2ème année orientation GI 30 septembre 2010 Règles du jeu À LIRE IMPÉRATIVEMENT MATÉRIEL AUTORISÉ 1 stylo le reste n est pas autorisé, en particulier : les téléphones portables (l heure est affichée en bas à droite de l écran), les clés USB, les documents... MATÉRIEL FOURNI feuilles de brouillon LES QUESTIONS NE SONT PAS AUTORISÉES DOCUMENTS INFORMATIQUES AUTORISÉS vous êtes autorisés à vider votre disque dur ou votre clé usb sur la machine (C:\Temp ou C: \Travail avant la distribution des énoncés). DOCUMENTS INFORMATIQUES À REMETTRE avant de quitter la salle, vous devez impérativement remettre les documents demandés sur \\Kirov\TP-GI\DS-C#.NET\NOM_Prénom\ (cf. exemple KENOBI_Obiwan) À FAIRE IMPÉRATIVEMENT À LA FIN DE L EXAMEN après avoir remis vos documents sur le serveur, vous devez venir me retrouver en salle A10 pour VÉRIFIER que tous vos documents sont présents et SIGNER la feuille de sortie. Le non respect de cette règle sera sanctionné. SAUVEGARDES RÉGULIÈRES enregistrez très régulièrement vos fichiers et documents. Les plantages des machines, les pieds sur les prises multiples ou les bugs de Visual Studio ne seront pas considérés comme responsables. Marc Chevaldonné marc.chevaldonne@u-clermont1.fr IUT Informatique Clermont1 1

Déroulement de l épreuve 0h : démarrez sous Windows.Vides les dossiers C:\Travail et C:\Temp. Montrez ces deux dossiers et la corbeille vide au surveillant de votre salle. 1h45 : préparez votre dossier de fichiers de résultats comme indiqué dans les règles de la page précédente. Créez le dossier NOM_Prénom dans le dossier \\Kirov \TP-GI\DS-C#.NET\NOM_Prénom\ puis déposez vos fichiers de résultats dans ce dossier. Prévoyez au moins 1/4 d heure pour cela. Vous pouvez faire cette étape avant si vous avez terminé l épreuve plus tôt... Descendez en A10 vérifier avec moi que tous vos documents sont bien sur le serveur et signez la feuille de sortie. 2h00 : il n est plus possible de déposer les fichiers de résultats sur le serveur Kirov. Contenu de l épreuve et barême L épreuve est constituée de plusieurs questions qui ne sont pas toutes dépendantes. Lisez l énoncé en entier avant de débuter pour répondre d abord aux questions qui vous conviennent le plus! Une part très importante des points sera attribuée pour : le respect des consignes au niveau de l organisation des solutions, projets et dossiers; le respect des règles de codage; l utilisation de commentaires (en particulier avant les définitions des s, méthodes et membres); la compilation de la solution, l exécution. Marc Chevaldonné marc.chevaldonne@u-clermont1.fr IUT Informatique Clermont1 2

Sujet - Guide de randonnées OBJECTIFS L objectif de cet examen est de réaliser une bibliothèque permettant la gestion de randonnées à pied ou en VTT, ainsi que des sommets et des pays en Auvergne. Vous devrez créer un assemblage de type Bibliothèque de s contenant : une structure Sommet représentant... des sommets (montagne ou volcans), leur nom, leur altitude et une petite description, une Randonnée dérivée en deux s : RandonnéeÀPied et RandonnéeEnVTT contenant la durée de la balade, la distance à parcourir, le dénivelée... une Pays contenant le nom du pays, et les randonnées dans ce pays, une Guide contenant l ensemble des sommets, randonnées et pays. Vous créerez ensuite une application Console de test de cette bibliothèque (une seule pour toutes les s et structure de la bibliothèque pour gagner du temps), puis une application Console représentant l application finale. Les listes des randonnées, sommets et pays à utiliser pour les tests sont les suivantes : Sommets Nom Altitude Description Puy d Olloix 1002 mètres Très joli panorama du haut de ce puy! Puy de Saint Sandoux 848 mètres Un millefeuille volcanique Puy de Jussat 661 mètres composé de roches sédimentaires Puy de Grandeyrolles 706 mètres Entre la Couze Chambon et la Ravin de Quinsat Montagne de la Noue Basse 1259 mètres Grand plateau de verdure Montagne de Riocros Haute 1289 mètres vue sur le lac de St-Alyre Marc Chevaldonné marc.chevaldonne@u-clermont1.fr IUT Informatique Clermont1 3

Pays Nom Sancy-Volcans Pays d Issoire-Val d Allier Nom Distance Dénivelée Temps Pays Sommets Type Randol 7,5 km 214 m 2h15 Sancy-Volcans Puy d Olloix à pieds Le Puy de Saint- Sandoux Le Puy de Saint- Sandoux 9 km 377 m 2h45 Sancy-Volcans Puy d Olloix Puy de Saint Sandoux 9 km 377 m 1h30 Sancy-Volcans Puy d Olloix Puy de Saint Sandoux à pieds VTT Les cirques de Longevette et des Côtes 6 km 377 m 1h45 Sancy-Volcans à pieds Les cirques de Longevette et des Côtes 6 km 377 m 0h45 Sancy-Volcans VTT Le Puy de Jussat 5 km 165 m 1h30 Sancy-Volcans Puy de Jussat à pieds Le Puy de Jussat 5 km 165 m 1h Sancy-Volcans Puy de Jussat VTT Le Ravin de Quinsat 6 km 309 m 2h30 Pays d Issoire- Val d Allier Jassy 14 km 321 m 3h45 Pays d Issoire- Val d Allier Puy de Jussat Montagne de la Noue Basse à pieds à pieds Montagne de Riocros Haute Marc Chevaldonné marc.chevaldonne@u-clermont1.fr IUT Informatique Clermont1 4

QUESTION 1 : PRÉPARATION DU PROJET Solutions et projets VisualStudio Sous Windows, créez l arborescence suivante : GuideRando > VisualStudio2010 > Applications > Tests > girandocore Créez une solution Rando.sln et un projet girandocore de type «bibliothèque de s» et générant une bibliothèque girandocore.dll. Ajoutez un projet de Tests à la solution de type ConsoleApplication qui sera «ami» de girandocore.dll, c est-à-dire qui aura accès aux s et méthodes internes de girandocore.dll. Ajoutez un projet à la solution de type ConsoleApplication qui ne sera pas «ami» et n aura donc accès qu aux s et méthodes publiques. Tous les projets seront compilés dans le dossier GuideRando > bin. QUESTION 2 : STRUCTURE SOMMET 1/3 - PROPRIÉTÉS (nécessite d avoir fait la question 1) structure propriété Ajoutez une structure publique non-mutable («write-once immutable») Sommet à ce projet, représentant un puy ou une montagne, et contenant les propriétés suivantes : le nom du sommet (chaîne de caractères), l altitude du sommet (entier), une brève description (chaîne de caractères). QUESTION 3 : STRUCTURE SOMMET 2/3 - TOSTRING (nécessite d avoir fait la question 2) ToString Réécrivez la méthode ToString. Testez-la dans l application de Tests. Exemple de résultat : Nom (Altitude mètres) - Description Marc Chevaldonné marc.chevaldonne@u-clermont1.fr IUT Informatique Clermont1 5

QUESTION 4 : STRUCTURE SOMMET 3/3 - PROTOCOLES D ÉGALITÉ (nécessite d avoir fait la question 2) Equality Permettez la comparaison de deux valeurs de Sommet en réécrivant les protocoles d égalité nécessaires. Deux valeurs de Sommet seront égales si et seulement si les propriétés Nom sont égales et les propriétés Altitude sont égales. QUESTION 5 : CLASSE PAYS 1 - PROPRIÉTÉ (nécessite d avoir fait la question 1) propriété Écrivez une interne Pays possédant une propriété Nom (de type chaîne de caractères). QUESTION 6 : CLASSE RANDONNÉE 1 - PROPRIÉTÉS (nécessite d avoir fait la question 1) propriété Écrivez une interne Randonnée possédant les propriétés suivantes (ajoutez un constructeur permettant de les initialiser) : Nom (de type chaîne de caractères), Distance (de type réel) qui décrit la distance à parcourir en kilomètres, Dénivelée (de type entier) qui décrit le dénivelée de la randonnée, Durée (d un type qui permet de stocker une durée...) qui décrit le temps moyen nécessaire pour effectuer cette randonnée. QUESTION 7 : ENUM TYPENIVEAU (nécessite d avoir fait la question 1) enum Ajoutez un projet un nouveau type publique enum : TypeNiveau qui pourra prendre les valeurs : Inconnu, Facile, Normal, Difficile, TrèsDifficile. QUESTION 8 : CLASSE RANDONNÉE 3 - PROPRIÉTÉS (nécessite d avoir fait les questions 6 et 7 [6 au moins partiellement]) propriété Ajoutez une propriété Niveau du type de cette enum à la Randonnée et modifiez le constructeur pour pouvoir l initialiser. Marc Chevaldonné marc.chevaldonne@u-clermont1.fr IUT Informatique Clermont1 6

QUESTION 9 : CLASSE RANDONNÉE 2 - COLLECTIONS (nécessite d avoir fait les questions 2 et 6 ; c est mieux si la question 4 a été faite) méthode collection Ajoutez une collection de Sommet à la Randonnée. Ajoutez une méthode permettant d ajouter une valeur de type Sommet. Cette méthode devra vérifier que le Sommet n existe pas déjà dans la collection avant de l ajouter. S il existe, le Sommet n est pas ajouté et la méthode renvoie false. Sinon, il est ajouté et la méthode renvoie true. Ajoutez une méthode qui permet d ajouter plusieurs valeurs de Sommet d un coup (un nombre indéterminé de Sommet). Cette méthode utilisera la méthode précédente. Testez la collection et les méthodes d ajout dans le projet Tests. QUESTION 10 : CLASSE RANDONNÉE 3 - PROPRIÉTÉ (nécessite d avoir fait les questions 5 et 6 [au moins partiellement]) propriété Ajoutez un membre interne de type Pays à la Randonnée QUESTION 11 : CLASSE RANDONNÉE 4 - PROTOCOLES D ÉGALITÉ (nécessite d avoir fait la question 6 [au moins partiellement]) Equality Implémentez les protocoles d égalité nécessaires à la comparaison de deux instances de Randonnée. Deux instances de Randonnée seront considérées comme égales si elles ont le même nom et la même durée. QUESTION 12 : CLASSE PAYS 2 - COLLECTION (nécessite d avoir fait les questions 5 et 6 [au moins partiellement] ; c est mieux si la question 11 a été faite) méthode collection Ajoutez à Pays un membre de type collection de Randonnée. Ajoutez une méthode permettant d ajouter une Randonnée : cette méthode rend false si la Randonnée existe déjà dans la collection, et rend true si elle n existe pas et est donc ajoutée dans ce cas. Marc Chevaldonné marc.chevaldonne@u-clermont1.fr IUT Informatique Clermont1 7

QUESTION 13 : CLASSE RANDONNÉE 5 - CONSTRUCTEUR (nécessite d avoir fait la question 12) constructeur Modifiez le constructeur de Randonnée pour que la construction d une instance de Randonnée ajoute automatiquement la Randonnée dans la collection de Randonnée du Pays auquel elle appartient. QUESTION 14 : CLASSE RANDONNÉE 6 - TOSTRING (nécessite d avoir fait la question 6 [et 8 pour pouvoir ajouter la fin du résultat]) ToString Réécrivez la méthode ToString. Testez-la dans l application de Tests. Exemple de résultat : Rando : Nom ( Dénivelée m / XhXXmin Niveau : Niveau) QUESTION 15 : CLASSE PAYS 6 - TOSTRING (nécessite d avoir fait les questions 12 et 14) ToString Réécrivez la méthode ToString. Testez-la dans l application de Tests. Exemple de résultat : Nom :! Rando : Nom ( Dénivelée m / XhXXmin Niveau : Niveau)! Rando : Nom ( Dénivelée m / XhXXmin Niveau : Niveau)! Rando : Nom ( Dénivelée m / XhXXmin Niveau : Niveau)!... QUESTION 16 : CLASSE RANDONNÉE 6 - ABSTRAITE (nécessite d avoir fait la question 6) abstraite Rendez la Randonnée abstraite et rendez son constructeur protégé. QUESTION 17 : CLASSE RANDONNÉE 6 - PROPRIÉTÉ ABSTRAITE (nécessite d avoir fait les questions 8 et 16) propriété abstraite Dans la Randonnée, rendez la propriété Niveau abstraite (si vous ne réussissez pas, faites une méthode abstraite). Marc Chevaldonné marc.chevaldonne@u-clermont1.fr IUT Informatique Clermont1 8

QUESTION 18 : CLASSE RANDONNÉEÀPIED (nécessite d avoir fait les questions 16 et 17 ) fille Ajoutez au projet la RandonnéeÀPied, héritant de Randonnée. Écrivez son constructeur et réécrivez la propriété Niveau. La formule de calcul du niveau est la suivante : (int)(dénivelée*2 / (nombre de minutes de Durée)) -2 Si cette valeur vaut :! 0 => Facile!!! 1 => Normal!!! 2 => Difficile!!! 3 ou plus => TrèsDifficile Testez cette dans l application de Tests. QUESTION 19 : CLASSE RANDONNÉEENVTT (nécessite d avoir fait les questions 16 et 17 ) fille Ajoutez au projet la RandonnéeEnVTT, héritant de Randonnée. Écrivez son constructeur et réécrivez la propriété Niveau. La formule de calcul du niveau est la suivante : (int)(dénivelée / (Distance*13)) Si cette valeur vaut :! 0 => Facile!!! 1 => Normal!!! 2 => Difficile!!! 3 ou plus => TrèsDifficile Testez cette dans l application de Tests. Marc Chevaldonné marc.chevaldonne@u-clermont1.fr IUT Informatique Clermont1 9

QUESTION 20 : ENCAPSULATION (nécessite d avoir fait les questions 2, 9, 10 et 12 ) interfaces encapsulation Ajoutez au projet deux interfaces publiques : IPays contenant : une propriété Nom et une collection de randonnées (type à choisir pour garantir l encapsulation et la protection des données des s Pays et Randonnée) IRandonnée contenant : les propriétés Nom, Distance, Dénivelée, Durée, Niveau, une propriété permettant d accéder au pays (choisissez le type permettant de garantir l encapsulation et la protection des données des s Pays et Randonnée) une collection de Sommet (choisir le type de la collection pour garantir l encapsulation et la protection des données de la collection et des sommets). Faites en sorte que Pays implémente IPays et que Randonnée implémente IRandonnée. Testez ces interfaces et s dans l application de Tests. QUESTION 21 : CLASSE GUIDE (nécessite d avoir fait les questions 2, 9, 10 et 12 / ou la question 20 ) collections encapsulation Ajoutez au projet une Guide. a) Si vous n avez pas fait la question 20, rendez cette interne et ajoutez-lui des collections de Sommet, de Randonnée et de Pays internes. b) Si vous avez fait la question 20, rendez cette publique et ajoutez-lui des collections de sommets, randonnées et pays publiques (en choisissant bien vos types pour garantir l encapsulation, la protection et l accès aux données). Dans tous les cas, dans le constructeur de Guide, construisez-les ajoutez les randonnées, les sommets et les pays donnés en introduction dans le constructeur. Marc Chevaldonné marc.chevaldonne@u-clermont1.fr IUT Informatique Clermont1 10

QUESTION 22 : LINQ (nécessite d avoir fait la question 21 [a ou b]) LINQ Réalisez les requêtes suivantes et affichez les résultats à l aide de LINQ. Dans l application («non amie» de la dll si vous avez fait 20.a, «amie» de la dll si vous avez fait 20.b), affichez tous les sommets du guide de plus de 1000 mètres d altitude. Dans l application («non amie» de la dll si vous avez fait 20.a, «amie» de la dll si vous avez fait 20.b), affichez toutes les randonnées du guide dont le dénivelée est supérieur à 300 mètres et la distance supérieure à 7 kilomètres. Vous afficherez le nom, le dénivelée et la distance de ces randonnées. Dans l application («non amie» de la dll si vous avez fait 20.a, «amie» de la dll si vous avez fait 20.b), affichez toutes les randonnées du guide par ordre de la plus courte à la plus longue. Dans l application («non amie» de la dll si vous avez fait 20.a, «amie» de la dll si vous avez fait 20.b), affichez le nom du pays qui possède le plus de randonnées (à l aide d une requête LINQ bien sûr... pas à la main...). Dans l application («non amie» de la dll si vous avez fait 20.a, «amie» de la dll si vous avez fait 20.b), à l aide d une requête LINQ et d un opérateur de projection, affichez le nom et la pente moyenne (Dénivelée / Distance) de toutes les randonnées du guide par ordre de pente moyenne croissante. Vous ne devez utiliser qu une seule instruction, au moins pour la création d une liste de pentes moyennes ordonnée (liste de flottants). Notez toutefois qu il est possible de tout faire (y compris l affichage en Console) avec une seule instruction. Essayez. Ajoutez à la Guide, une propriété (ou une méthode) rendant la liste des randonnées en VTT. Utilisez-la dans l application («non amie» de la dll si vous avez fait 20.a, «amie» de la dll si vous avez fait 20.b) et affichez le résultat. Marc Chevaldonné marc.chevaldonne@u-clermont1.fr IUT Informatique Clermont1 11