Vous êtes sur la page 1sur 4

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

3
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É

Vous aimerez peut-être aussi