La compagnie aérienne [oo03] - Exercice

Documents pareils
Introduction à l héritage en C++

alg - Classes, instances, objets [oo] Exercices résolus

C++ - Classes, instances, objets [oo] Exercices résolus

1.6- Génération de nombres aléatoires

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

ETUDE DE CAS en UML : GESTION DES COMMANDES DE PIECES FABRIQUEES PAR LA SOCIETE C

Introduction au pricing d option en finance

Claude Delannoy. 3 e édition C++

Programmation C++ (débutant)/instructions for, while et do...while

Programme Compte bancaire (code)

UE C avancé cours 1: introduction et révisions

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy

Introduction à l algorithmique et à la programmation M1102 CM n 3

INFO-F-105 Language de programmation I Séance VI

Introduction à C++ et à wxwidgets

Cours d Algorithmique et de Langage C v 3.0

Programmation Orientée Objet

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

et Programmation Objet

Cours 1: Java et les objets

Département Automatisation et Informatisation Année Programmation en C++ Institut des Sciences et Techniques de l Ingénieur d Angers

IRL : Simulation distribuée pour les systèmes embarqués

Introduction au langage C

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Programmation en C/C++

Cours de C/C++ par la pratique. Hugues Talbot

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

[APPLICATON REPARTIE DE VENTE AUX ENCHERES]

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

Cours d initiation à la programmation en C++ Johann Cuenin

Programmation stochastique

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Une introduction à Java

Premiers Pas en Programmation Objet : les Classes et les Objets

I. Introduction aux fonctions : les fonctions standards

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

Programmation par les Objets en Java

IUT ANNECY Département Mesures Physiques Cours d informatique Initiation au langage C

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

C f tracée ci- contre est la représentation graphique d une

Objets et Programmation. origine des langages orientés-objet

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

PROJET ALGORITHMIQUE ET PROGRAMMATION II

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

Informatique I. Sciences et Technologies du Vivant (Semestre 1)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

as Architecture des Systèmes d Information

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

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Systeme d'exploitation

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Application 1- VBA : Test de comportements d'investissements

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Programmation en Java IUT GEII (MC-II1) 1

TD/TP PAC - Programmation n 3

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

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Langage Java. Classe de première SI

Plan Pédagogique du cours

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

TP : Gestion d une image au format PGM

Plateforme PAYZEN. Définition de Web-services

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

Chapitre 10. Les interfaces Comparable et Comparator 1

= constante et cette constante est a.

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Algorithmique et Programmation, IMA

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Convers3 Documentation version Par Eric DAVID : vtopo@free.fr

Introduction à CORBA

CHAPITRE V. Recherche et tri

TP3 : Manipulation et implantation de systèmes de fichiers 1

TD/TP PAC - Programmation n 3

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Le MSMQ. Version 1.0. Pierre-Franck Chauvet

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Latitude N Longitude E Altitude 376 m RÉSUMÉ MENSUEL DU TEMPS DE JANVIER 2014

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Programmer en JAVA. par Tama

Intergiciels pour la répartition CORBA : Common Object Request Broker. Patrice Torguet torguet@irit.fr Université Paul Sabatier

30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C mars.10 Cours 4 11.mai.10 Cours C++ 2

Projet de programmation (IK3) : TP n 1 Correction

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Environnements de développement (intégrés)

UML et les Bases de Données

Recueil de formules. Franck Nicolas

Chapitre 2. Classes et objets

PROFIS Installation. Module 4: Module 3D Design

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Comment faire plus d'argent cet été!

Les structures de données. Rajae El Ouazzani

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Guide d utilisation de la bibliothèque en ligne du FMI Création d un livre personnalisé

TP1 : Initiation à Java et Eclipse

Transcription:

La compagnie aérienne [oo03] - Exercice Karine Zampieri, Stéphane Rivière Unisciel algoprog Version 29 janvier 2017 Table des matières 1 La compagnie aérienne / pgcompagnie 2 1.1 Classe Aeroport................................ 2 1.2 Classe Vol................................... 3 1.3 Mise en place du tout............................. 5 2 Références générales 6 C++ - La compagnie aérienne (Solution) Mots-Clés Classes Requis Structures de base, Structures conditionnelles, Algorithmes paramétrés, Classes Difficulté (30 min) Objectif Cet exercice calcule le seuil de rentabilité des vols d une compagnie aérienne. 1

Unisciel algoprog La compagnie aérienne [oo03] 2 1 La compagnie aérienne / pgcompagnie 1.1 Classe Aeroport Un aéroport est déterminé par : Un nom de code (chaîne de caractères). Une longitude x (entier). Une latitude y (entier). Écrivez une classe Aeroport munie des attributs nécessaires. Écrivez un constructeur prenant en paramètres les données nécessaires à son initialisation. Écrivez un accesseur getnom du nom de code de l aéroport. Écrivez une méthode distance(aero2) qui calcule et renvoie la distance d qui sépare deux aéroports : d = (x 2 x 1 ) 2 + (y 2 y 1 ) 2 Outil C++ La fonction racine carrée sqrt(x) est définie dans la bibliothèque <cmath>. Validez votre classe et vos méthodes avec la solution. Solution C++ @[Aeroport.hpp] @[Aeroport.cpp] #ifndef COMPAGNIE_AEROPORT_CLASS #define COMPAGNIE_AEROPORT_CLASS using std::string; Represente des aeroports class Aeroport public: Aeroport(const string& n, int x, int y); string getnom() const; double distance(const Aeroport& arg) const; private: const string m_nom; // nom de code int m_x; // longitude int m_y; // latitude ; #include "Aeroport.cpp"

Unisciel algoprog La compagnie aérienne [oo03] 3 #endif #include <cmath> using namespace std; Constructeur normal @param[in] n - nom de l aeroport @param[in] x - longitude @param[in] y - latitude Aeroport::Aeroport(const string& n, int x, int y) : m_nom(n), m_x(x), m_y(y) Accesseur du nom de code de l aéroport @return nom de code de l aéroport string Aeroport::getNom() const return m_nom; Distance entre aéroports @param[in] aero2 - autre Aeroport @return Distance entre aéroports double Aeroport::distance(const Aeroport& aero2) const double dx = (m_x - aero2.m_x); double dy = (m_y - aero2.m_y); return sqrt( dx*dx + dy*dy ); 1.2 Classe Vol Pour simplifier, on suppose que le coût d un vol est indépendant du nombre de passagers transportés : il est uniquement fonction de la capacité k de l avion, du nombre de membres d équipage m et de la distance d entre les aéroports selon la formule : cout = 100 d k + m + 50 d Un vol sera donc constitué de : Un nom (chaine de caractères). Le nombre maximum de passagers k (entier positif) que l avion peut transporter. Le nombre de membres d équipage m (entier positif). La distance d (réel) entre les aéroports de départ et de destination. Écrivez une classe Vol munie des attributs nécessaires.

Unisciel algoprog La compagnie aérienne [oo03] 4 Écrivez un constructeur prenant en paramètre les données nécessaires à son initialisation. Écrivez une méthode eval qui calcule et renvoie le coût du vol : cout = 100 d k + m + 50 d Validez votre classe et vos méthodes avec la solution. Solution C++ @[Vol.hpp] @[Vol.cpp] #ifndef COMPAGNIE_VOL_CLASS #define COMPAGNIE_VOL_CLASS using std::string; Represente des vols class Vol public: Vol(const string& n, unsigned k, unsigned m, double d); double eval() const; private: const string m_nom; // nom du vol unsigned m_k; // capacite (# de passagers) unsigned m_m; // # de membres d equipage double m_d; // distance ; #include "Vol.cpp" #endif #include <cmath> using std::sqrt; Constructeur normal @param[in] n - nom du vol @param[in] k - capacite (# de passagers) @param[in] m - # de membres d équipage @param[in] d - distance Vol::Vol(const string& n, unsigned k, unsigned m, double d) : m_nom(n), m_k(k), m_m(m), m_d(d) Evalue le cout du vol @return cout du vol double Vol::eval() const return 100 * m_d * sqrt(double(m_k + m_m)) + 50 * sqrt(m_d);

Unisciel algoprog La compagnie aérienne [oo03] 5 1.3 Mise en place du tout La compagnie aérienne se pose la question suivante : «Les billets étant vendus PRIX_BILLET euros, combien de passagers faut-il au minimum pour que le vol soit rentable?». Écrivez un programme qui utilise vos classes en considérant le vol EPF 123 entre Bâle/Mulhouse (code MLH, coordonnées x = 2 et y = 46) et New-York (code JFK, coordonnées x = 40 et y = 73). L avion prévu pour ce vol a une capacité de 300 places et nécessite 8 membres d équipage. Outil C++ La fonction plafond ceil(x) est définie dans la bibliothèque <cmath>. Aide simple Votre programme doit : Instancier deux Aeroports et les initialiser avec les aéroports de Mulhouse et de New-York. Calculer et afficher la distance entre les aéroports. Instancier le Vol correspondant. Calculer et afficher le coût du vol. Demander le prix du billet. Calculer et afficher le nombre de passagers minimum pour que le vol soit rentabilisé. Testez. Exemple d exécution. Distance entre MLH et JFK = 46.6154 Cout du vol = 82151.2 Prix du billet? 400 Nombre de billets a vendre = 206 Validez votre programme avec la solution.

Unisciel algoprog La compagnie aérienne [oo03] 6 Solution C++ #include <iostream> #include <cmath> using namespace std; @[pgcompagnie.cpp] #include "Aeroport.hpp" #include "Vol.hpp" int main() Aeroport a1("mlh", 2, 46); Aeroport a2("jfk", 40, 73); double d = a1.distance(a2); cout<<"distance entre "<<a1.getnom() <<" et "<<a2.getnom() <<" = "<<d <<endl; Vol vol(string("epf 123"), 300, 8, d); double c = vol.eval(); cout<<"cout du vol = "<<c<<endl; cout<<"prix du billet? "; double prixbillet; cin>>prixbillet; int np = static_cast<int>(ceil(c / prixbillet)); cout<<"nombre de billets a vendre = "<<np<<endl; 2 Références générales Comprend