Programmation orientée objet CP 2 TD/TP n 3 année 2016

Documents pareils
Structurer ses données : les tableaux. Introduction à la programmation

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

Chapitre 2. Classes et objets

Programme Compte bancaire (code)

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

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

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

Premiers Pas en Programmation Objet : les Classes et les Objets

2 Grad Info Soir Langage C++ Juin Projet BANQUE

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Réglementation de l'activité bancaire

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)

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Evolutions du Relevé de Compte 120 caractères pour les opérations de virements et de prélèvements SEPA

OCL - Object Constraint Language

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

PIECES COMPTABLES ET DOCUMENTS DE PAIEMENT

TP, première séquence d exercices.

Cahier des charges. Technique pour la mise en œuvre. de la procédure Portail Achat - EDI

TD/TP PAC - Programmation n 3

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

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

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

Programmation par les Objets en Java

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

Application web de gestion de comptes en banques

TP1 : Initiation à Java et Eclipse

Adoptés le 8 avril 2014 Date d entrée en vigueur : 8 avril 2014 TABLE DES MATIÈRES

Cours de Systèmes d Exploitation

GOL502 Industries de services

LES REGLEMENTS AVEC SOCIEL.NET DERNIERE MISE A JOUR : le 14 juin 2010

UML et les Bases de Données

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

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

PROJET 1 : BASE DE DONNÉES REPARTIES

Corrigé des exercices sur les références

TP 1. Prise en main du langage Python

Gestion d'une billeterie défilé des talents

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

CAISSE ENREGISTREUSE ELECTRONIQUE SE-G1

Bases de programmation. Cours 5. Structurer les données

Utilisation d objets : String et ArrayList

Adoptés le 27 mars 2015 Date d'entrée en vigueur : 13 avril 2015 TABLE DES MATIÈRES

Conversion d un entier. Méthode par soustraction

EQUISIS E-BANKING A. "E-BANKING" VIREMENTS NATIONAUX PARAMETRAGE. Comptes centralisateurs financiers

TD/TP PAC - Programmation n 3

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

Écriture de journal. (Virement de dépense)

Cahier des Clauses Administratives Particulières

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

COMPTES COURANTS D'ASSOCIES

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

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

Corrigés des premiers exercices sur les classes

1. Contexte général page Le compte auprès de la BCGE...page La procuration 2.2 Les accès e-banking 2.3 Le bon de retrait 2.

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

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

NOM DE L ELEVE :.. Dossier à rendre complété avant le 16 Mars 2015 (afin de vous éviter le temps des formalités lors de la pré-rentrée).

AVIS DE CHANGE N 5 DU MINISTRE DU PLAN ET DES FINANCES RELATIF AUX COMPTES DE NON-RESIDENTS. ( Publié au J.O.R.T. du 5 octobre 1982 )

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

Esterel The french touch star touch esterel advance

Chapitre IV : La Tenue Des Livres Le journal Le grand Livre

SOLUTION D ENVOI DE SMS POUR PROFESSIONNELS

JEU BOURSIER Séance d introduction à la plateforme de trading SaxoWebTrader. - Pour débutants -

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

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

Télécharger le fichier de la Télécharger le fichier de la Télécharger le fichier de la Télécharger le fichier de la...

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

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

Cours 1: Java et les objets

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Cahier spécial des charges pour un marché de services : conclusion d'emprunts pour le financement du service d'investissements de l'exercice 2006

Projet Active Object

Documentation pour l envoi de SMS

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Solutions du chapitre 4

COMPTES ETRANGERS EN DINARS ET COMPTES ETRANGERS EN DEVISES CONVERTIBLES. sont subordonnés à l'autorisation de la Banque Centrale de Tunisie (1).

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

AGRÉGATION «ÉCONOMIE ET GESTION»

Génie logiciel pour le commerce électronique Hiver 2003 Prof.: Julie Vachon

Exercices sur les interfaces

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

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

INTRODUCTION 3 1. TAUX D INTÉRÊT POUR LES COMPTES DE PASSIF DES CLIENTS 4 2. PRÊTS, CRÉDITS, DÉPASSEMENTS ET DÉCOUVERTS 4

Cours d Informatique

CORRECTION BANQUE DUPONT-DURAND

COMPTES ET CLASSES IUT GRENOBLE FEVRIER OLIVIER PARENT

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Chapitre 10. Les interfaces Comparable et Comparator 1

Algorithmique et programmation : les bases (VBA) Corrigé

Gérer. Simplifiez-vous la vie avec des moyens de paiement adaptés à vos besoins. je connais mon banquier je connais mon banquier

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

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

UE Programmation Impérative Licence 2ème Année

Règlement. Gestion des comptes de collaborateur et des dépôts d actions

Transcription:

Programmation orientée objet CP 2 TD/TP n 3 année 2016 Objectif L'objectif de cette partie du TD est de s'exercer à la spécification et à la programmation de classes élémentaires. En particulier, il s'agit à partir d'un énoncé d'identifier et de définir les caractéristiques d'une classe modélisant un concept donné. 1. "Cahier des charges" Il s'agit de définir une classe JAVA permettant de modéliser des comptes bancaires. Cette classe appelée Compte doit permettre à une application de créer et utiliser autant de comptes bancaires que nécessaires, chaque compte étant un objet, instance (ou exemplaire) de la classe Compte. Un compte bancaire est identifié par un numéro de compte. Ce numéro de compte est un entier positif permettant de désigner et distinguer sans ambiguïté possible chaque compte géré par l'établissement bancaire. Chaque compte possède donc un numéro unique. Ce numéro est attribué par la banque à l'ouverture du compte et ne peut être modifié par la suite. Dans un souci de simplicité on adoptera la politique suivante pour l'attribution des numéros de compte : les comptes sont numérotés de 1 à n, n étant le nombre de comptes qui ont été créés. Lorsque un nouveau compte est créé, le numéro qui lui est attribué est n+1. Pour pouvoir garder un numéro unique pour chaque instance d'un Un compte est associé à une personne (civile ou morale) titulaire du compte, cette personne étant décrite par son nom. Une fois le compte créé, le titulaire du compte ne peut plus être modifié. La somme d'argent disponible sur un compte est exprimée en Euros. Cette somme est désignée sous le terme de solde du compte. Ce solde est un nombre décimal qui peut être positif, nul ou négatif.

Le solde d'un compte peut être éventuellement (et temporairement) être négatif. Dans ce cas, on dit que le compte est à découvert. Le decouvert d'un compte est nul si le solde du compte est positif ou nul, il est égal à la valeur absolue du solde si ce dernier est négatif. En aucun cas le solde d'un compte ne peut être inférieur à une valeur fixée pour ce compte. Cette valeur est définie comme étant - (moins) le découvert maximal autorisé pour ce compte. Par exemple pour un compte dont le découvert maximal autorisé est 2000, le solde ne pourra pas être inférieur à -2000. Le découvert maximal autorisé peut varier d'un compte à un autre, il est fixé arbitrairement par la banque à la création du compte et peut être ensuite révisé selon les modifications des revenus du titulaire du compte. Créditer un compte consiste à ajouter un montant positif au solde du compte. Débiter un compte consiste à retirer un montant positif au solde du compte. Le solde résultant ne doit en aucun cas être inférieur au découvert maximal autorisé pour ce compte. Lors d'une opération de retrait, un compte ne peut être débité d'un montant supérieur à une valeur désignée sous le terme de débit maximal autorisé. Comme le découvert maximal autorisé, le débit maximal autorisé peut varier d'un compte à un autre et est fixé arbitrairement par la banque à la création du compte. Il peut être ensuite révisé selon les modifications des revenus du titulaire du compte. Effectuer un virement consiste à débiter un compte au profit d'un autre compte qui sera crédité du montant du débit. Lors de la création d'un compte seul le nom du titulaire du compte est indispensable. En l'absence de dépôt initial le solde est fixé à 0. Les valeurs par défaut pour le découvert maximal autorisé et le débit maximal autorisé sont respectivement de 800 et 1000. Il est éventuellement possible d'attribuer d'autres valeurs à ces caractéristiques du compte lors de sa création. Toutes les informations concernant un compte peuvent être consultées : numéro du compte, nom du titulaire, montant du découvert maximal autorisé, montant du débit maximal autorisé, situation du compte (est-il à découvert?), montant du débit autorisé (fonction du solde courant et du débit maximal autorisé). 2. Travail demandé 1.A partir du "cahier des charges" précédent élaborer une spécification d'une classe Java modélisant un compte bancaire. Il s'agira en analysant le texte ci-dessus de : - définir les attributs (variables d'instance, variables de classe) de la classe Compte, - d'identifier les méthodes publiques proposées par la classe Compte. Pour chaque méthode on prendra soin, outre la définition de sa signature, de spécifier son comportement sous la forme d'un commentaire documentant. - de proposer un ou plusieurs constructeurs pour la classe Compte. Là aussi on

complétera la donnée de la signature de chaque constructeur avec un commentaire documentant détaillant son utilisation. 2.Réaliser une implémentation en langage Java de la classe précédemment spécifiée. 3.Écrire un programme de test permettant de : Créer un compte c1, au nom de J. DUPONT avec un solde initial de 1 000 Créer un compte c2, au nom de C. DURANT avec un solde initial de 50 000, un débit maximal autorisé de 6000 et un découvert maximal autorisé de 5000. D'afficher les caractéristiques des comptes c1 et c2 (c'est à dire les informations suivantes : numéro du compte, nom du titulaire, découvert maximal autorisé, débit maximal autorisé, solde du compte et si le compte est à découvert un message le signalant explicitement). Retirer 300 du compte c1. Retirer 600 du compte c2. Déposer 500 sur le compte c1. D'afficher les caractéristiques des comptes c1 et c2. Virer 1000 du compte c2 vers le compte c1. D'afficher les caractéristiques des comptes c1 et c2. 2ème partie : Expérimentation sur machine a) Écriture d'une classe simple Objectif : écrire une classe simple et un programme de test s'y afférant. Le but de ce sujet est d écrire un programme JAVA pour aider à la gestion de la billetterie des différentes salles d'un complexe cinématographique. Les places non numérotées sont vendues selon deux tarifs : un tarif "normal" qui est fixé en fonction de la salle et du film qui y est joué, un tarif réduit (familles nombreuses, militaires, chômeurs, étudiants) qui correspond à 80% du tarif normal. Après analyse du problème, il est décidé de représenter les salles de cinéma par des objets JAVA instances d'une classe SalleCinema définie comme suit : Les informations caractérisant un objet SalleCinema sont : une chaîne de caractères qui contient le titre du film joué, un entier qui contient le nombre de places de la salle, un réel qui contient le prix unitaire d'une place à tarif normal, un entier qui contient le nombre de places qui ont été vendues à tarif normal, un entier qui contient le nombre de places qui ont été vendues à tarif réduit.

Les valeurs des trois premières caractéristiques (titre du film, nombre de place, prix de la place) sont fixées lors de la création d'un nouvel objetsallecinema (c'est-à-dire, sont passées en paramètres du constructeur). Quand aux deux autres variables (nombre de places vendues à tarif normal et nombre de places vendues à tarif réduit) elles sont bien sur initialisées à 0. La classe SalleCinema possède les méthodes suivantes : public int nbplacesdisponibles() -> calcule et renvoie le nombre de places encore disponibles dans la salle. public void vendreplaces(int nbre, boolean tarifreduit) -> permet de vendre des billets pour la salle. nbre indique le nombre de places demandées et le booléen tarifreduit indique si une réduction est demandée ou non (si le paramètre tarifreduit vaut true une réduction est demandée, si il vaut false les places sont achetées au tarif normal sans réduction). Si le nombre de places demandé est supérieur au nombre de places disponibles la vente n'est pas effectuée et la méthode affiche un message indiquant que la vente n'est pas possible. Sinon la variable d'instance correspondant au nombre de places vendues à tarif normal ou à tarif réduit (selon la valeur du paramètre tarifreduit) est mise à jour et le prix à payer est affiché. public void remiseazero() -> permet lorsque la vente de billets pour une séance est terminée de remettre à 0 les compteurs de nombre de places vendues en vue de la vente de billets pour la prochaine séance. public double chiffreaffaires() -> retourne le chiffre d'affaires produit par la salle pour la séance en cours (total des ventes depuis la création de l'objet salle ou la dernière remise à zero du nombre de places vendues). public double tauxremplissage() -> retourne le taux (pourcentage) de remplissage de la salle. public String tostring() -> retourne une représentation sous forme d'une chaîne de caractères de l'objet SalleCinema. Cette chaîne indique la valeur de chacun des attributs (chacune des variables d'instances) de l'objet (le titre du film, le nombre de places de la salle, le nombre de places vendues à tarif normal, le nombre de places vendues à tarif réduit, le prix de la place). Par exemple, pour une salle de 60 places jouant le film "Sacré Graal" dont 20 places ont été vendues au tarif normal (de 7,5 ) et 14 places ont été vendues au tarif réduit l'affichage de la chaîne retournée par tostring pourrait être le suivant : Film joué : Sacré Graal, Nombre de places : 60, Prix d'une place : 7.50, 20 places vendues au tarif normal,

Travail demandé 14 places vendues au tarif réduit. 1.Écrire le code JAVA de la classe SalleCinema en respectant scrupuleusement les spécifications données ci-dessus. 2.Écrire un programme simple de test pour la classe SalleCinema. Ce programme doit créer deux salles correspondant aux informations définies dans la table ci-dessous. Deux places à tarif normal puis trois places à tarif réduit doivent être achetées pour la première salle. Pour la deuxième salle trois places à tarif normal puis six places à tarif réduit doivent être ensuite achetées. Finalement les attributs des deux salles doivent être affichées ainsi que le nombre de places encore disponibles et le chiffre d'affaire produit Titre Nombre de Places Normales Prix de la place (tarif normal) Chat Blanc, Chat Noir 120 8,5 La vie est belle 50 7.5 b) Utilisation de la classe SalleDeCinema, une première utilisation de tableaux d'objets Écrire un programme de "billetterie" respectant les spécification suivantes. Ce programme permet d'enregistrer les entrées effectuées dans les différentes salles et de calculer et d'afficher le taux d'occupation et le chiffre d'affaire produit par chaque salle lorsque la vente des billets pour la séance est terminée. Le programme de billetterie est lancé au début de la mise en vente des billets pour la prochaine séance de projection. Chaque salle est identifiée par un numéro unique (les numéros allant de 1 à n, n étant le nombre total de salles). Lorsqu'un client se présente, le guichetier tape le numéro de la salle pour lequel le client désire des billets. Le programme affiche alors les différents attributs de la salle sélectionnée (le titre du film, le nombre de places de la salle, le nombre de places vendues...). Le guichetier fournit ensuite au programme le nombre de places que le client désire acheter en indiquant également si le client bénéficie ou non d'une réduction. Si la demande du client peut être satisfaite le programme affiche le prix à payer sinon il affiche un message indiquant que le nombre de places demandé est incorrect. Lorsque la vente des billets est terminée, le programme affiche alors pour chaque salle son état (la valeur des ses attributs),son taux d'occupation et le chiffre d'affaire produit. Le programme calcule aussi le chiffre d'affaires total et l'affiche. La structure du programme pourra être la suivante : creation des objets SalleDeCinéma venteterminée un boolean initialisé à false tantque (! venteterminée) { lire un numero de salle si le numéro de la salle est correct alors afficher les informations de la salle lire nb le nombre de places à acheter demander si réduction ou non

vendre pour la salle sélectionné les nb places demandées demander à l'opérateur si il veut poursuivre ou non la vente selon la réponse mettre à jour venteterminée sinon afficher un message d'erreur "numéro de salle incorrect" fintantque calculer et afficher pour chaque salle le taux de remplissage et le chiffre d'affaire produit afficher le chiffre d'affaire total Indication : pour stocker les salles on pourra utiliser un tableau.