Le traiteur [gs03] - Exercice



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

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

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

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

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

L exclusion mutuelle distribuée

Programmation Objet - Cours II

TD/TP PAC - Programmation n 3

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

TP, première séquence d exercices.

Feuille TD n 1 Exercices d algorithmique éléments de correction

Premiers Pas en Programmation Objet : les Classes et les Objets

Plan du cours Cours théoriques. 29 septembre 2014

Introduction à MATLAB R

TD3: tableaux avancées, première classe et chaînes

Algorithme. Table des matières

Programmation linéaire

HELPDESK IMAGINLAB GUIDE UTILISATION POUR IMAGINEURS. : Guide HelpDesk pour les Imagineurs-v1.2.docx. Date :

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)

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

SMS sur le réseau fixe

DE MODIFICATION PROCEDURE ELYXBADGE APPLICATION. PI Électronique Restobadge

GUIDE ISAN: 7 Création d un ISAN In-Dev 1

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Traduction des Langages : Le Compilateur Micro Java

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

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

ENVOI SIMPLE (SMS)...

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

COURS WINDEV NUMERO 3

Recherche dans un tableau

TD/TP PAC - Programmation n 3

Les arbres binaires de recherche

NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur "TIJARA" 1

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Application web de gestion de comptes en banques

Création d objet imbriqué sous PowerShell.

GUIDE D UTILISATION. Gestion de compte. à destination des intermédiaires

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Chapitre 4 : Exclusion mutuelle

MANUEL UTILISATEUR BALADEUR SANTÉ AUXILIAIRES MÉDICAUX ET SAGES-FEMMES C.D.C 1.40

2. Comprendre les définitions de classes

Groupe Eyrolles, 2006, pour la présente édition, ISBN :

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

GESTION DE STOCKS AVEC CIEL GESTION COMMERCIALE

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

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Initiation à LabView : Les exemples d applications :

Manuel du gestionnaire

Système de Gestion Informatisée des. Exploitations Agricoles Irriguées avec Contrôle de l Eau

Entraînement au concours ACM-ICPC

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

en 16 différences

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

Corrigé des TD 1 à 5

ACCUEIL / Introduction. Introduction. Présentation de StarBoard Software Éléments de l écran Guide de démarrage rapide

4. Groupement d objets

GUIDE D'UTILISATION DU LOGICIEL DU TRIDENT GRAPHIQUE : TRG_REPORT

MESSAGERIE VOCALE VTX GUIDE D UTILISATION

Si vous décidez d utiliser un autre chemin, c est ce nouveau chemin qu il faudra prendre en compte pour la sauvegarde. Cf. : Chapitre 9 Sauvegarde

FACTURATION. Menu. Fonctionnement. Allez dans le menu «Gestion» puis «Facturation» 1 Descriptif du dossier (onglet Facturation)

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

Initiation à la programmation en Python

Algorithmes récursifs

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole :

TD 1 - Structures de Traits et Unification

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

1 Recherche en table par balayage

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

PROJET 1 : BASE DE DONNÉES REPARTIES

Programmation par composants (1/3) Programmation par composants (2/3)

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

Compte-rendu de projet de Système de gestion de base de données

Manuel d utilisation de la plate-forme de gestion de parc UCOPIA. La mobilité à la hauteur des exigences professionnelles

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

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

SPECIFICATIONS TECHNIQUES : Gestion des Médicaments et des commandes de médicaments

Mémo d'utilisation de BD Dico1.6

Dans l école : exportation des données élèves

Cours d algorithmique pour la classe de 2nde

2 Grad Info Soir Langage C++ Juin Projet BANQUE

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Cours de Systèmes d Exploitation

TPE Artema IP. Manuel de l'utilisateur

KWISATZ LA GESTION DES REMISE EN BANQUE

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

0DWKpPDWLTXHVGHO DUJHQW. édité par Mr. G.Moumoulidis (OTE)

TDB-SSI LES EXTENSIONS

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Polytech Montpellier IG PROJET C Réseaux sociaux : recherche de composantes fortement connexes

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Plus courts chemins, programmation dynamique

Application 1- VBA : Test de comportements d'investissements

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

Manuel PRO G DIS / AHI

Cours de Probabilités et de Statistique

Initiation à Excel. Frédéric Gava (MCF)

Transcription:

Le traiteur [gs03] - Exercice Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 10 avril 2015 Table des matières 1 Le traiteur / pg-traiteurc1 (alg, TD) 1 1.1 Classe Menu.................................. 1 1.2 Classe Ligne.................................. 1 1.3 Classe Commande............................... 2 1.4 Classe Client................................. 3 1.5 Classe Traiteur................................ 4 1.6 Test des classes................................ 6 1.7 Programme de gestion............................ 7 1.8 Chargement par fichier............................ 9 1 Le traiteur / pg-traiteurc1 (alg, TD) Cet exercice réalise la gestion informatique des commandes de menus et des clients d un traiteur. 1.1 Classe Menu Un menu est caractérisé par un nom et un prix par personne. Écrivez une classe Menu ayant pour attributs le nom du menu (chaîne de caractères) et son prix (réel). Écrivez un constructeur à deux paramètres initialisant les attributs. Écrivez des accesseurs getnom du nom et getprix du prix par personne du menu. 1

Unisciel algoprog Le traiteur / gs03 2 1.2 Classe Ligne Une commande est caractérisée par une paire «nom du menu, quantités commandées». Chaque paire indique quel menu est commandé et pour combien de personnes. On appelle ces paires des lignes de commande. Écrivez une classe Ligne ayant pour attributs le nom du menu (chaîne de caractères) et sa quantité qte (entier positif). Écrivez un constructeur à deux paramètres initialisant les attributs. Écrivez des accesseurs getnom du nom et getqte de la quantité de la ligne de commande. Pour afficher ou calculer le montant d une ligne de commande, il faut retrouver le prix associé à un menu ce qui induit une recherche. Écrivez une méthode interne position(menus,nom) qui recherche et renvoie la position du menu nom dans une liste (vecteur) de Menu menus. Écrivez une méthode afficher(menus) qui, étant donnée une liste (vecteur) de Menu menus, affiche la ligne de commande. Aide simple Utilisez la méthode interne pour rechercher le prix associé à un menu. Écrivez une méthode montant(menus) qui, étant donnée une liste (vecteur) de Menu menus, calcule et renvoie le montant de la ligne de commande.

Unisciel algoprog Le traiteur / gs03 3 1.3 Classe Commande Une commande est caractérisée par un numéro de commande, une liste de lignes de commande, le nom du client ayant effectué la commande et une information indiquant si la commande est ou non payée. Écrivez une classe Commande ayant pour attributs : Le numéro num de la commande (entier positif). Le vecteur cdes des lignes de commande. Le nom du client (chaîne de caractères). L information payee (booléen) qui vaut Vrai si la commande a été payée, Faux sinon. Écrivez un constructeur à deux paramètres (numéro, nom) initialisant les attributs. Écrivez des accesseurs getnom du nom du client et getnum du numéro de la commande. Écrivez une méthode ajouterligne(lm) qui ajoute une Ligne de menu lm à la commande. Écrivez une méthode afficher(menus) qui, étant donnée une liste (vecteur) de Menu menus, affiche la commande. Écrivez une méthode montant(menus) qui, étant donnée une liste (vecteur) de Menu menus, calcule et renvoie le montant total de la commande. 1.4 Classe Client Un client est caractérisé par un nom, une adresse, un numéro de carte de crédit et l ensemble des commandes qu il a effectué.

Unisciel algoprog Le traiteur / gs03 4 Écrivez une classe Client ayant pour attributs : Le nom du client (chaîne de caractères). L adresse adr du client (chaîne de caractères). Le numéro de carte de crédit nc (entier positif). Le vecteur cdes spécifiant les numéros de commandes effectuées. Écrivez un constructeur à trois paramètres (nom, adresse, nc) initialisant les attributs. Écrivez un accesseur getnom du nom client. Écrivez une méthode ajoutercommande(num) qui ajoute la commande numéro num (entier) à la liste des commandes du client. Écrivez une méthode supprimercommande(num) qui supprime la commande numéro num (entier) de la liste des commandes du client. 1.5 Classe Traiteur Le traiteur souhaite gérer une liste de clients connus, une liste de menus connus et une liste de commandes. Les fonctionnalités souhaitées par le traiteur sont : Créer un client et l ajouter à la liste des clients. Créer un menu et l ajouter à la liste des menus. Créer une commande et l ajouter à la liste de commandes. Calculer le montant dû par un client. Calculer le montant total de toutes les commandes. Supprimer une commande de la liste des commandes. Écrivez une classe Traiteur ayant pour attributs : La liste (vecteur) des Client clients. La liste (vecteur) des Menu menus. La liste (vecteur) des Commande commandes. Au vu des fonctionnalités souhaitées, écrivez les en-têtes des constructeurs et méthodes. Écrivez un constructeur par défaut. Écrivez des accesseurs nclients du nombre de clients, nmenus du nombre de menus et ncommandes du nombre de commandes.

Unisciel algoprog Le traiteur / gs03 5 Écrivez une méthode affichercommandes qui affiche l état des commandes à l écran. Écrivez une méthode interne rechclient(nom) qui recherche un nom (chaine de caractères) de client et renvoie l indice du client dans le vecteur des Clients, -1 s il n existe pas. Écrivez une méthode ajouterclient(x) qui ajoute un Client x à la liste des clients s il n existe pas, et ne fait rien sinon. La méthode renvoie le statut de l opération, c.-à-d. Vrai si l opération d ajout a été réalisée, Faux sinon. De même, écrivez une méthode interne rechmenu(nom) qui recherche un nom (chaine de caractères) de menu et renvoie l indice du menu dans le vecteur des Menus, -1 s il n existe pas. Écrivez une méthode ajoutermenu(x) qui ajoute un Menu x à la liste des menus, s il n existe pas et ne fait sinon. La méthode renvoie le statut de l opération, c.-à-d. Vrai si l opération d ajout a été réalisée, Faux sinon.

Unisciel algoprog Le traiteur / gs03 6 Écrivez une méthode ajoutercommande(x) qui ajoute une Commande x à la liste des commandes. La méthode renvoie le statut de l opération, c.-à-d. Vrai si l opération d ajout a été réalisée, Faux sinon. Écrivez une méthode montantdu(nom) qui calcule et renvoie le montant dû par le client de nom spécifié. Écrivez une méthode montanttotal qui calcule et renvoie le montant total des commandes. Écrivez une méthode supprimercommande(num) qui supprime la commande de numéro num (entier) et qui renvoie le statut de l opération, c.-à-d. Vrai si l opération de suppression a été réalisée, Faux sinon. 1.6 Test des classes Voici le graphe des appels de la procédure de test.

Unisciel algoprog Le traiteur / gs03 7 Écrivez une procédure test_classes qui instancie un Traiteur t. Ajoutez les clients suivants : Client("Dupont", "rue", 100) Client("Rateau", "bld", 200) Ajoutez les menus suivants : Menu("Prado", 56.0) Menu("India", 62.0) Menu("Cheap", 25.0) Menu("Light", 42.0) Ajoutez les commandes suivantes : c1(1, "Dupont"): Ligne("Prado", 15), Ligne("Light", 3) c2(2, "Rateau"): Ligne("Cheap", 2) c3(3, "Dupont"): Ligne("India", 8) Affichez l état des commandes. Calculez et affichez le montant total. 1.7 Programme de gestion Écrivez une fonction menu qui affiche le menu suivant et renvoie le choix de l utilisateur.

Unisciel algoprog Le traiteur / gs03 8 0: Quitter 1: Création d un client 2: Création d un menu 3: Création d une commande 4: Calcul du montant du par un client 5: Suppression d une commande 6: Etat des commandes Écrivez une procédure creerclient(t) qui demande les caractéristiques d un client, instancie un client, puis l ajoute comme nouveau client à un Traiteur t. Écrivez une procédure creermenu(t) qui demande les caractéristiques d un menu, instancie un menu, puis l ajoute comme nouveau menu à un Traiteur t. Écrivez une procédure creercommande(t) qui demande les caractéristiques d une commande, instancie une commande, ajoute les lignes à la commande puis l ajoute comme nouvelle commande à un Traiteur t. Écrivez une procédure calculermontant(t) qui demande le nom du client puis calcule et affiche le montant dû du client chez un Traiteur t. Écrivez une procédure supprimercommande(t) qui demande le numéro de la commande à supprimer puis lance la suppression de la commande chez un Traiteur t.

Unisciel algoprog Le traiteur / gs03 9 Écrivez une procédure afficheretat(t) qui affiche l état des commandes d un Traiteur t. Écrivez une procédure test_gestion qui instancie un Traiteur t puis lance la boucle de gestion en affichant le menu et en effectuant le choix de l utilisateur. 1.8 Chargement par fichier Étendez l exercice afin de charger les données par fichier.