La pharmacie [gs02] - Exercice

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

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

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

Introduction à Eclipse

Gérer ses fichiers et ses dossiers avec l'explorateur Windows. Février 2013

SYSTEMES ELECTRONIQUES NUMERIQUES

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

UNIVERSITE DE TOULON UFR FACULTE DE DROIT REGLEMENT D EXAMEN ANNEE 2012/2017 LICENCE DROIT MENTION DROIT GENERAL

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

2 S I M 1 P H O N E G U I D E U T I L I S A T E U R. Guide d utilisation E-commerce / Prestashop

BADPLUS V5 MANUEL D'UTILISATION. Imports de données joueurs à partir de la base fédérale en ligne Poona. Stéphan KIEFFER - Dominique BOSSERT

PROCEDURE ESX & DHCP LINUX

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

Cookies de session ils vous permettent de sauvegarder vos préférences d utilisation et optimiser l expérience de navigation de l Utilisateur ;

Manuel logiciel client for Android

MASTER PROFESSIONNEL (2 ème année)

INCORPORER EXCEL EN LIGNE DANS UN FICHIER CRÉÉ AVEC L ÉDITEUR DE TEXTE 15 avril 2015

Cours TD TP EC UE EC UE CC Mixte Introduction aux sciences de. 3 Environnement. 4 l'administration et de. Anglais 28 2

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

EPFL TP n 3 Essai oedomètrique. Moncef Radi Sehaqui Hamza - Nguyen Ha-Phong - Ilias Nafaï Weil Florian

Manuel Cartes ristournes

TABLE DES MATIERES. POUR ACCEDER A MES COMPTES...p.2. SYNTHESE DE VOS COMPTES... p.3. CONSOLIDATION...p.4. MESSAGES..p.5. ENCOURS CARTES...p.

Documentation utilisateur. [EIP] TransLSF

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Fournier et télécharger des fichiers par FTP

Les règles de base du poker :

ITIL V2 Processus : La Gestion des Configurations

Le compte épargne temps

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (

LES TOUT PREMIERS PAS

Guide de configuration d'une classe

ENVOI EN NOMBRE DE SMS

IPBX 02 : TP MISE EN OEUVRE RTC ET TOIP. Ce sujet comporte 4 pages de texte suivi du corrigé

Réglages du module de sauvegarde de Biblionet (Monoposte)

1 Presentation du bandeau. 2 Principe de création d un projet : C2 industrialisation Apprendre Gantt project Ver 2.6 planifier

Guide à l usage des bibliothécaires du réseau départemental

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

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

HERAKLES Page 1 sur 11 PARAMETRAGE DE GSI FICHE PARAMETRAGE DE GSI

HEITZ X Pro GESTION CLIENTÈLE

Avertissement : Nos logiciels évoluent rendant parfois les nouvelles versions incompatibles avec les anciennes.

CSI351 Systèmes d exploitation Instructions pour rouler Linux avec Virtual PC dans la salle de labo 2052

ASSUR Expat 1 er euro

Modèle de demande d'habilitation d'un Mastère LMD

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

Cegid Business Paie. Mise à jour plan de paie 01/01/2014. Service d'assistance Téléphonique

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

LA SÉCURITÉ AVANT TOUT. Précieux conseils et informations de consommation actuelles au sujet du moyen de paiement en ligne paysafecard

VidZone, qu est-ce que c est? INSTALLATION DE VidZone

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Normes et description. des ressources continues et données d autorité Analyse de l information Recherche documentaire : méthodes et outils

Tutoriel : Ecrire un article sur le site de la TEAM GSAS

Groupe intervention. Etude COME-ON. Guide d utilisation de la plateforme de formation en ligne Groupe intervention. Dernière mise à jour 6/05/15

Chap III : Les tableaux

MODE OPERATOIRE CIEL GESTION COMMERCIALE VERSION EVOLUTION BTS PME PMI

Programmation Web TP1 - HTML

Fiche d animation n 1 : Pêle-mêle

Procédure et Pré-requis

Universal Robots. Fiche Méthode : Installation du simulateur Polyscope

Direction des projets

Présenté par: Stéphanie Le Bel, MBA, CPA, CMA Annabelle Dumais, M. Sc. En collaboration avec : Émily Adam, B.A.A Mélanie Fournier

Lire, dire et écrire en utilisant les cartes heuristiques. OBJECTIFS

ZOTERO Un outil gratuit de gestion de bibliographies

MANUEL DE LA NOUVELLE PROCEDURE DES PRETS

TP 1. Prise en main du langage Python

Comment consulter les e- books à l Université de Lorraine?

COURS AUTOCAD. Création et utilisation des blocs. b leclerc. ERP Jean Moulin METZ

Le langage C. Séance n 4

Esterel The french touch star touch esterel advance

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

GUIDE D INSTALLATION DES DRIVERS

L exclusion mutuelle distribuée

Fonctions pour la Suisse

FICHE 17 : CREER UN SITE WEB

SERVICE CCP.NC GUIDE DE L UTILISATEUR

Manuel d utilisation Enregistreur autonome de poche. Version 1.1 TRO-TR-BADL100C-03-F

Distribution du crédit consommation en magasin : les établissements discrédités. UFC-Que Choisir de Redon

Logiciel de gestion de pharmacie

SOMMAIRE MONTAGE DU COMPTEUR ET CAPTEURS...3 LE MOT DU CHEF DE PRODUIT...5 L ORGANISATION DE L ECRAN...5 LES PICTOGRAMMES UTILISES...5 LES BOUTONS...

Cegid Business Paie. Mise à jour plan de paie 01/03/2014. Service d'assistance Téléphonique

Ingénérie logicielle dirigée par les modèles

1. Création d'un état Création d'un état Instantané Colonnes Création d'un état Instantané Tableau... 4

ENVOI SIMPLE (SMS)...

Client SFTP Filezilla. Version anglaise du client 1/14

Administration de Parc Informatique TP07 : Installation de Linux Debian

guide d inscription SESSION HIVER 2015

Les Enseignants de l Ere Technologique - Tunisie. Niveau 1

Comment et pourquoi créer des clés d'activation?

LE TRAITEMENT DES DONNEES COMPTABLES. Objectif(s) : Présenter une synthèse sur les différentes solutions comptables. TABLE DES MATIERES

Guide du/de la candidat/e pour l élaboration du dossier ciblé

INFO 364 : Bases de Données Projet Professeur : Esteban Zimányi Assistants : Pierre Stadnik et Mohammed Minout Année Académique :

Base de données bibliographiques Pubmed-Medline

Taux d évolution moyen.

Premiers Pas en Programmation Objet : les Classes et les Objets

Samsung Drive Manager FAQ

Manuel d utilisation XENTA. innovation. cubed

1 Recherche en table par balayage

Ce manuel a été établi spécialement pour vous. Vous retrouverez ici tout pour pouvoir travailler avec votre terminal de paiement sans problèmes.

TD/TP PAC - Programmation n 3

Transcription:

La pharmacie [gs02] - Exercice Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 24 octobre 2016 Table des matières 1 La pharmacie / pgpharmacie 2 1.1 Modélisation des clients........................... 2 1.2 Modélisation des médicaments........................ 3 1.3 Modélisation de la pharmacie........................ 4 1.4 Programme de gestion............................ 7 C++ - La pharmacie (TP) Mots-Clés Gestion Requis Axiomatique impérative, Classes, Classes (suite) Difficulté (3 h) Objectif Cet exercice réalise la gestion informatique des clients et médicaments d une pharmacie. 1

Unisciel algoprog La pharmacie [gs02] 2 1 La pharmacie / pgpharmacie 1.1 Modélisation des clients Un client est caractérisé par un nom et un crédit. Le crédit représente la somme que ce client doit à la pharmacie. Le crédit peut être négatif si le client a versé plus d argent que le montant. Écrivez une classe Client ayant pour attributs le nom du client (chaîne de caractères) et le credit actuel (réel). Écrivez un constructeur à deux paramètres initialisant les attributs. Écrivez des accesseurs getnom du nom et getcredit du crédit. Écrivez une méthode afficher qui affiche (où [x] désigne le contenu de l attribut x) : Client [nom] : [credit] euros Écrivez une méthode augmentercredit(m) qui augmente le crédit d un montant m (réel). Enfin, écrivez une méthode diminuercredit(m) qui diminue le crédit d un montant m (réel). Écrivez une procédure test_client qui : Instancie un Client de nom malfichu et de crédit 0. Augmente son crédit de 30 euros. Puis le diminue de 20 euros. Affichez le client après chaque opération.

Unisciel algoprog La pharmacie [gs02] 3 Testez. Résultat d exécution. Client malfichu : 0 euros Client malfichu : 30 euros Client malfichu : 10 euros 1.2 Modélisation des médicaments Un médicament est caractérisé par un nom, un prix et une quantité en stock. Écrivez une classe Medicament ayant pour attributs le nom du médicament (chaîne de caractères), le prix courant (réel) et le stock actuel (entier). Écrivez un constructeur à trois paramètres initialisant les attributs. Écrivez des accesseurs getnom du nom, getprix du prix et getstock du stock. Écrivez une méthode afficher qui affiche (où [x] désigne le contenu de l attribut x) : Medicament [nom] ([prix] euros) : [stock] Écrivez une méthode augmenterstock(q) qui augmente le stock d une quantité q (entier).

Unisciel algoprog La pharmacie [gs02] 4 De même, écrivez une méthode diminuerstock(q) qui diminue le stock d une quantité q (entier). Écrivez une procédure test_medicament qui : Instancie un Medicament de nom aspiron de prix courant 20.4 et de stock actuel 5. Augmente son stock de 30. Puis le diminue de 20. Affichez le médicament après chaque opération. Testez. Résultat d exécution. Medicament aspiron (20.4 euros) : 5 Medicament aspiron (20.4 euros) : 35 Medicament aspiron (20.4 euros) : 15 1.3 Modélisation de la pharmacie Une pharmacie peut être vue comme une classe d objets ayant pour attribut une liste de clients et une liste de médicaments. Les fonctionnalités souhaitées par la pharmacie sont : Afficher les clients et leurs crédits ainsi que les médicaments et leurs stocks. Ajouter des clients ou des médicaments. Approvisionner le stock d un médicament. Traiter un achat fait par un client. Écrivez une classe Pharmacie ayant pour attributs la liste (vecteur) des Clients clients et la liste (vecteur) des Medicaments meds. Outil C++ Le modèle de classes vector est définie dans la bibliothèque <vector>.

Unisciel algoprog La pharmacie [gs02] 5 Au vu des fonctionnalités souhaitées, Écrivez les profils des constructeurs et des méthodes. Écrivez le constructeur par défaut. Écrivez les accesseurs : nclients du nombre de clients. nmedicaments du nombre de médicaments. Écrivez une méthode interne afficherstocks qui affiche les médicaments et leurs stocks. De même, écrivez une méthode interne affichercredits qui affiche les clients et leurs crédits. Déduisez une méthode afficher qui affiche les stocks et les crédits. Écrivez une méthode interne rechclient(nom) qui recherche un nom (chaîne de caractères) dans le vecteur des Clients et renvoie son indice, 1 s il n existe pas. Écrivez une méthode ajouterclient(x) qui ajoute un Client x à la liste des Clients si ce dernier n existe pas. Elle ne fait rien si son nom existe. De même, écrivez une méthode interne rechmedicament(nom) qui recherche un nom (chaîne de caractères) dans le vecteur des Medicaments et renvoie son indice, 1 s il n existe pas.

Unisciel algoprog La pharmacie [gs02] 6 De même, écrivez sa duale ajoutermedicament(x) qui ajoute un Medicament x à la liste des Medicaments si ce dernier n existe pas. Idem elle ne fait rien si son nom existe. Écrivez une méthode interne liremedicament(nc) qui prend comme paramètre la référence à un entier nc. Elle demande le nom (chaîne de caractères) d un médicament et vérifie si celui existe. Dans l affirmative, La méthode renvoie Vrai et restitue dans nc l indice du médicament. Sinon elle renvoie Faux (et nc n est pas significatif). Cette méthode doit boucler jusqu à ce qu un médicament soit trouvé ou que l utilisateur tape «FIN» pour signifier qu il souhaite mettre fin à la saisie. Elle est utilisée par les opérations approvisionner et traiterachat. Écrivez une méthode approvisionner qui approvisionne le stock d un médicament. Le nom du médicament à approvisionner ainsi que la quantité à ajouter au stock doivent être saisis au clavier. Lorsque le nom du médicament est introduit, il faut vérifier qu il s agit bien d un nom connu dans la liste des médicaments de la pharmacie. Le programme doit boucler jusqu à introduction d un nom correct. Rappel : Cette procédure de vérification est prise en charge par la méthode interne liremedicament. Écrivez une méthode interne lireclient(nc) pour les clients, similaire à l opération liremedicament, c.-à-d. dupliquez la méthode liremedicament puis modifiez-la en conséquence. Elle est utilisée par la méthode traiterachat. Écrivez une méthode traiterachat qui traite l achat d un client, l achat portant sur un médicament donné dans une quantité donnée. Pour cette transaction le client paie un certain prix. Une opération d achat aura pour effet de déduire la quantité achetée du stock du médicament correspondant et d augmenter le crédit du client (d un montant équivalent au montant de l achat moins la somme payée). Les noms du client et

Unisciel algoprog La pharmacie [gs02] 7 du médicament doivent être saisis au clavier. Le programme doit boucler jusqu à introduction de noms connus aussi bien pour les clients que les médicaments. Ces procédures de vérification sont prises en charge par des méthodes lireclient et liremedicament. La quantité achetée et le montant payé seront aussi saisis depuis le terminal. Ils seront supposés corrects. 1.4 Programme de gestion Voici le graphe des appels de la procédure de gestion.

Unisciel algoprog La pharmacie [gs02] 8 Écrivez une procédure creerpharma(p) qui crée une petite Pharmacie dans p en y ajoutant les éléments suivants : Client("malfichu",0.0) Client("palichon",0.0) Medicament("aspiron",20.4,5) Medicament("rhinoplexil",19.15,5) Écrivez une fonction menu qui affiche le menu ci-après et renvoie le choix de l utilisateur : Écrivez une procédure test_gestion qui instancie une Pharmacie procédure creerpharma(p) pour créer une petite pharmacie. p puis appelle la Lancez la boucle de gestion en affichant le menu et en effectuant le choix de l utilisateur. Testez. Exemple d exécution fourni en téléchargement. @[rspharmacie3.txt] -> 2 Nom du medicament (FIN==fin)? aspiron Quantite? 2 -> 3 Affichage des stocks:

Unisciel algoprog La pharmacie [gs02] 9 Medicament aspiron : 7 Medicament rhinoplexil : 5 Affichage des credits: Client malfichu : 0 euros Client palichon : 0 euros -> 1 Nom du client (FIN==fin)? malfichu Nom du medicament (FIN==fin)? aspiron Montant du paiement? 30.0 Quantite achetee? 3 -> 3 Affichage des stocks: Medicament aspiron : 4 Medicament rhinoplexil : 5 Affichage des credits: Client malfichu : 31.2 euros Client palichon : 0 euros -> 1 Nom du client (FIN==fin)? palichon Nom du medicament (FIN==fin)? aspiron Montant du paiement? 5 Quantite achetee? 5 Achat impossible... quantite insuffisante -> 1 Nom du client (FIN==fin)? palichon Nom du medicament (FIN==fin)? rhinoplexil Montant du paiement? 200 Quantite achetee? 5

Unisciel algoprog La pharmacie [gs02] 10 -> 3 Affichage des stocks: Medicament aspiron : 4 Medicament rhinoplexil : 0 Affichage des credits: Client malfichu : 31.2 euros Client palichon : -104.25 euros -> 1 Nom du client (FIN==fin)? febril Nom du client (FIN==fin)? malfichu Nom du medicament (FIN==fin)? placebo Nom du medicament (FIN==fin)? FIN -> 0