La pharmacie [gs02] - Exercice



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

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

TD/TP PAC - Programmation n 3

TD/TP PAC - Programmation n 3

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

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

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

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

Programmation Objet - Cours II

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

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

Programmation linéaire

L exclusion mutuelle distribuée

1 Recherche en table par balayage

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

TP, première séquence d exercices.

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

SYSTEMES ELECTRONIQUES NUMERIQUES

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

Introduction à MATLAB R

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

Direction des technologies de l information GUIDE D UTILISATION PAPERCUT À L INTENTION DES ÉTUDIANTS

Application web de gestion de comptes en banques

Premiers Pas en Programmation Objet : les Classes et les Objets

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

TD séance n 2c Mise à jour des Systèmes

Avec l application mobile KIX, payez sans contact! Édition juin 2013 GUIDE KIX

2 Grad Info Soir Langage C++ Juin Projet BANQUE

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

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

EXERCICES UML. Modéliser cette situation par un diagramme de cas d utilisation. Consulter planning

2. Comprendre les définitions de classes

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

Guichet automatique de banque

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

TRANSFOLIO version Introduction

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Utiliser un tableau de données

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

ODH. Mon Espace. Manuel d utilisation. MON ESPACE ODH Manuel d utilisation. Une question? Contactez le service client au

TP : Gestion d une image au format PGM

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Plan du cours Cours théoriques. 29 septembre 2014

CCI Génie Logiciel UFR - IMA. Objectifs du cours d'aujourd'hui. Génie Logiciel Validation par le test. Qu est-ce que tester un programme?

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

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

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Ville et Eurométropole de Strasbourg - Service communication numérique. Mode d emploi

Tél. : (241) / Fax : (241) eqc@bgfi.com.

Algorithme. Table des matières

HTML. Notions générales

COURS WINDEV NUMERO 3

Chapitre 2. Eléments pour comprendre un énoncé

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


Simulation d une économie monétaire (programmation impérative, sujet 3)

Site Web de paris sportifs

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Comment créer des rapports de test professionnels sous LabVIEW? NIDays 2002

Notice d utilisation

Solutions du chapitre 4

HEITZ X Pro GESTION CLIENTÈLE

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

VÉRIFICATION COMPTE À FINS DÉTERMINÉES DES RÉCLAMATIONS CONTRE L IRAQ

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Probabilités conditionnelles Loi binomiale

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)

Application 1- VBA : Test de comportements d'investissements

Estimation et tests statistiques, TD 5. Solutions

Manuel d utilisation pour la plateforme BeExcellent MANUEL D UTILISATION POUR LA PLATEFORME BEEXCELLENT

Guide utilisation Omnivox, Léa et MIO

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

Guide Utilisateur Banque en Ligne Banque de Nouvelle Calédonie

FICHE 17 : CREER UN SITE WEB

0.1 Mail & News : Thunderbird

ResellerPro. Logiciel de gestion du réseau de distribution. Logiciel conçu et développé par Hermegie Technologies

LES RAPPELS CLIENTS. Version 3.0 Janvier Les rappels clients 1

Conditions d utilisation

Service de Messagerie évoluée. Guide Utilisateur. Novembre 2006 Messagerie évoluée Completel Guide Utilisateur 1

Traduction des Langages : Le Compilateur Micro Java

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Introduction à Eclipse

PROJET 1 : BASE DE DONNÉES REPARTIES

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

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

Série TD 3. Exercice 4.1. Exercice 4.2 Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible! Exercice 4.3. Exercice 4.

Votre spécialiste du Point de Vente au Québec

Manipuler fichiers et dossiers

SMS sur le réseau fixe

Animer son cours depuis la tablette

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

ENVOI SIMPLE (SMS)...

Introduction au langage C

Cours d Analyse. Fonctions de plusieurs variables

d authentification SSO et Shibboleth

MÉDICLICK! STUDIO 3 DOCUMENT CENTER : MAILCLICK! SOMMAIRE

Logiciels de gestion FAC. Analyste AgExpert. Guide de démarrage rapide 2014

UML et les Bases de Données

Initiation à LabView : Les exemples d applications :

Transcription:

La pharmacie [gs02] - Exercice Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 10 avril 2015 Table des matières 1 La pharmacie / pg-pharmaciec1 (alg, TD) 1 1.1 Modélisation des clients........................... 1 1.2 Modélisation des médicaments........................ 2 1.3 Modélisation de la pharmacie........................ 3 1.4 Programme de gestion............................ 6 1 La pharmacie / pg-pharmaciec1 (alg, TD) Cet exercice réalise la gestion informatique des clients et médicaments d une pharmacie. 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 1

Unisciel algoprog La pharmacie / gs02 2 Écrivez une méthode augmentercredit(m) qui augmente le crédit d un montant m (réel). De même, é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 o 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. 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.

Unisciel algoprog La pharmacie / gs02 3 É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). 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 médicament o 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. 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.

Unisciel algoprog La pharmacie / gs02 4 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. Au vu des fonctionnalités souhaitées, écrivez les en-têtes des constructeurs et méthodes. Écrivez le constructeur par défaut. Écrivez des accesseurs nclients du nombre de clients et 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) de client et renvoie son indice 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 si ce dernier n existe pas. Elle ne fait rien si son nom existe.

Unisciel algoprog La pharmacie / gs02 5 De même, écrivez une méthode interne rechmedicament(nom) qui recherche un nom (chaîne de caractères) de médicaments et renvoie son indice dans le vecteur des Medicaments, -1 s il n existe pas. De même, écrivez sa duale ajoutermedicament(x) qui ajoute un Medicament x à la liste des médicaments 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 d un médicament dans nom (chaine de caractères) et vérifie si ce médicament 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) similaire à l opération liremedicament pour les clients, c.-à-d. dupliquez la méthode liremedicament puis modifiez-la en conséquence. Elle est utilisée par la méthode traiterachat.

Unisciel algoprog La pharmacie / gs02 6 É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 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 7 Écrivez une fonction menu qui affiche le menu suivant et renvoie le choix de l utilisateur. 0: Quitter 1: Achat de medicament 2: Approvisionnement en medicaments 3: Etats des stocks et des credits Écrivez une procédure creerpharma(p) qui crée une petite Pharmacie dans p en y ajoutant : Client("malfichu",0.0) Client("palichon",0.0) Medicament("aspiron",20.4,5) Medicament("rhinoplexil",19.15,5)

Unisciel algoprog La pharmacie / gs02 8 Écrivez une procédure test_gestion qui instancie une Pharmacie p puis appelle la procédure creerpharma(p) pour créer une petite pharmacie. Lancez la boucle de gestion en affichant le menu et en effectuant le choix de l utilisateur.