Série 1 : comptes en banque

Partie obligatoire

Une grande banque suisse quelque peu en retard sur la concurrence décide enfin d'informatiser la gestion de ses comptes. Pour ce faire, elle vous engage et vous demande de réaliser un prototype de programme de gestion de compte ayant les caractéristiques suivantes.

Un compte en banque doit contenir deux informations: le nom de son propriétaire et le solde. Il doit de plus être possible de déposer de l'argent sur le compte, d'en retirer et de consulter le solde actuel.

Pour des raisons de sécurité, on vous demande aussi d'interdire les opérations illégales, à savoir:

Pour modéliser un compte en banque, vous décidez d'adopter une approche orientée objets. C'est-à-dire que vous définissez une classe pour les comptes en banques, classe qui exporte les trois opérations mentionnées ci-dessus sous forme de méthodes. Cette classe aura le profil suivant:


class Compte {
private:
  // ... à compléter ...

public:
  enum Reponse { rep_Ok, rep_Somme_Negative, rep_Solde_Insuffisant };

  Compte (char proprietaire[]);

  Reponse depot (int somme);
  Reponse retrait (int somme);
  int solde_courant ();
};

Le type énuméré Reponse permet de savoir si une opération a été effectuée avec succès ou non. Les méthodes depot et retrait devront retourner une valeur de ce type pour indiquer si l'opération a pu s'effectuer correctement ou non. Notez que ce type Reponse est défini dans la classe CodeCompte et que pour y accéder depuis l'extérieur vous devez utiliser la notation avec le double deux-points. Par exemple, pour définir une variable r de ce type Reponse et lui donner la valeur rep_Somme_Negative depuis l'extérieur de la classe, on doit écrire :


Compte::Reponse r = Compte::rep_Somme_Negative

Pour vous faciliter la programmation, nous mettons à votre disposition un squelette de programme qui se charge d'une partie des interactions avec l'utilisateur, que vous pouvez télécharger en cliquant ici. Une fois la classe Compte et la gestion des commandes complétées, vous pouvez tester votre programme en interagissant avec lui. Voici un exemple d'interaction :


Tapez : 
s  pour connaître le solde courant,
d  pour effectuer un dépôt,
r  pour effectuer un retrait, et
q  pour quitter le programme.

Commande: s
Solde courant: 0
Commande: d
Somme à déposer: 100
ok
Commande: s
Solde courant: 100
Commande: r
Somme à retirer: 101
erreur: solde insuffisant !
Commande: r
Somme à retirer: -10
erreur: somme négative !
Commande: d
Somme à déposer: -210
erreur: somme négative !
Commande: r
Somme à retirer: 90
ok
Commande: r
Somme à retirer: 20
erreur: solde insuffisant !
Commande: s
Solde courant: 10
Commande: q

Notez que, comme lors des micro-projets, vous devez travailler en dehors de l'environnement QC++. Si vous ne vous souvenez plus comment travailler dans ces conditions, vous pouvez consulter les notes à ce sujet.

Partie facultative

Modifiez le programme pour qu'il permette de travailler sur plusieurs comptes à la fois. Pour ce faire, ajoutez une commande de création de compte à l'interface, ainsi qu'une commande pour choisir le compte sur lequel l'utilisateur travaille.

Pour gérer ces comptes multiples, utilisez des listes telles que celles que vous avez utilisées lors des exercices précédents.


Last modified: Thu Apr 12 07:59:24 CEST 2001