Td corrigé Implémentation d'un mini système bancaire pdf

Download (0)

Loading.... (view fulltext now)

Texte intégral

(1)

IFT 1170 Énoncé du T.P. #1 Session été 2004 Antonio Tavares

Le travail doit être remis en version papier ET en version électronique.

Les questions des travaux devraient envoyées à : pift1170@iro.umontreal.ca avec votre nom, le cours et la section

Préparation: chez-vous, à partir de la semaine du 10 mai 2004

Réalisation: durant vos démonstrations, les périodes de Pratique Libre (P.L.) au campus UDM et/ou campus

Dépannage: par vos démonstrateurs (lors des démonstrations), les surveillants des périodes de Pratique Libre,

les surveillants des périodes de consultation théorique (horaire disponible et mise à jour au site Web de

la DESI : http://www.desi.umontreal.ca/ ).

Questions sur les travaux : envoyez un courriel à l’adresse suivante : pift1969@iro.umontreal.ca

Date de remise : Au plus tard dimanche le 30 mai.

Pénalité de retard: Chaque jour de retard entraînera une pénalité de 5 points (sur 20 points) par jour.

Note: Le travail en équipe de deux (au maximum) est permis. Vous ne remettez alors qu'un travail par équipe.

Barème: corrigé sur 20 points.

Conseil amical: N’attendez la semaine précédant la remise avant de commencer... vous n’aurez pas le temps!

Assurez-vous d’avoir écrit vos coordonnées (nom et code d’usager) ainsi que ceux de votre coéquipier (s’il y a lieu) en commentaires au début de chaque programme. Les équipes de 2 personnes ne doivent remettre qu’une seule copie du T.P.

Les équipes de 3 étudiants et plus sont interdites.

Le travail doit être remis en version papier ET en version électronique.

Pénalité si vous ne faites pas de remise électronique : - 5 points Remise sur papier:

Remplissez une feuille de remise de T.P. (disponible aux laboratoires ou sur la page Web du cours à partir du site http://www.iro.umontreal.ca/~pift1170 en cliquant sur le lien Page de garde pour la remise des TPs).

Imprimez vos programmes ainsi que les résultats affichés à l’écran (vous pouvez mettre les résultats en commentaires à la fin de votre programme).

Brochez le tout.

Remise électronique:

Remettez vos fichiers sources pour vos programmes.

1

(2)

Objectifs :

Objets, classes et héritage, String, tableaux, diagramme de classes en UML et révision des concepts acquis en ift1870.

Implémentation d’un mini système bancaire

Il s’agit d’implémenter un mini système bancaire. Ce système bancaire se compose d’une banque qui possède un certain nombre de clients. Chaque client possède un ou plusieurs comptes dans cette banque.

La banque possède un guichet auprès duquel il est possible de réaliser les actions suivantes :

 Enregistrer un nouveau client (définir ses attributs : numéro, nom, prénom (classe Personne), adresse (classe Adresse : numéro civique, rue, ville, code postal) , numéro de téléphone, date de naissance (classe Date), sexe, état civil, nip. En plus le numéro du compte et le solde.

 Radier un client existant

 Ouvrir un nouveau compte à un client (classe Compte_Client)

 Fermer le compte d’un client

 Consulter le compte d’un client

 Effectuer une opération sur le compte d’un client

Les opérations qu’il est possible de réaliser sur un compte sont les suivantes :

 Déposer de l’argent sur un compte

 Retirer de l’argent d’un compte

 Afficher le solde d’un compte

 Afficher les 3 dernières opérations sur un compte

De plus cette banque possède un distributeur bancaire dans laquelle chaque client peut grâce à une carte à puce (numéro du client) et à un code confidentiel retirer de l’argent (classe Distributeur : un distributeur classique tel qu’on peut en rencontrer partout). Les données sont conservés dans un Vector et toute la gestion se fera à partir de celui-ci.

Travail à réaliser

Analyser le projet en terme de classes. Attention, la programmation orientée objets étant un style de programmation très structuré, il est indispensable d’avoir correctement identifié les différentes classes avec leurs attributs et méthodes

Implémenter les différentes classes en respectant la modularité du projet.

Le programme principale (classe Gestion_Bancaire (avec le main) possédera lui-même une petite interface (menu) pour pouvoir lancer le guichet ou le distributeur.

2

(3)

Critères de correction du TP1

Non fonctionnel -50% (en partant)

Sinon :

Utilisation des conditions et boucles (if, switch,while etc) 10%

Valider les données 10%

Utilisation des classes, héritage, composition, Vector 60%

Formats des écrans de sortie 10%

Commentaires et présentation générale 10%

ANNEXE

Classe Vector

La classe Vector permet de créer et de manipuler des tableaux d'objets dynamiques. La dimension du tableau peut en effet varier automatiquement quand on y insère de nouveaux éléments. Pour des raisons d'efficacité, il est conseillé d'accroître sa taille avant l'ajout d'un nombre important

d'éléments afin de limiter les réallocations mémoire au minimum. Il n'y a pas de restrictions sur la nature des objets (on peut même mélanger des objets différents dans un Vector).

Les constructeurs sont Vector( ) qui crée un tableau vide de dimension nulle, Vector(int nb) qui crée un tableau vide de dimension nb et Vector(int nb, int inc) qui crée un tableau vide de dimension nb et dont la taille augmente de inc à chaque fois que la taille maximum est atteinte.

Il n'est pas possible de stocker de nombres dans un vecteur mais il est possible de stocker des instances des classes Integer, Double ... car ce sont des objets.

Les principales méthodes de cette classe sont :

addElement(Object obj) ajoute un élément à la fin de la liste.

capacity(int nb) retourne la taille actuelle.

contains(Object obj) retourne un booléen indiquant la présence ou l'absence de l'objet obj dans le Vector.

elementAt(int index) retourne l'élément situé à la place index.

indexOf(Object obj) donne l'index de l'objet obj.

insertElementAt(Object obj, int index) insert l'objet obj à la place index. Les éléments suivants l'index sont décalés vers le bas.

setElementAt(Object obj, int index) modifie l'objet à la place index.

removeElementAt(int index) supprime l'objet situé à index. Les éléments suivants l'index sont décalés vers le haut.

setSize(int nb) fixe la taille actuelle.

De la classe Vector dérive la classe Stack qui implémente une pile d'objets. La méthode push( ) place un objet sur le haut de la pile, pop( ) supprime l'objet situé sur le haut de la pile et la méthode peek( ) retourne l'objet situé sur le haut de la pile sans l'enlever.

FIN DE L'ÉNONCÉ

3

(4)

4

Figure

Updating...

Références

Sujets connexes :