Vous êtes sur la page 1sur 1

Problème de l’opérateur téléphonique

Un opérateur téléphonique gère l’ensemble de ses abonnées.


Un abonné est défini par un numéro de téléphone (entier), son nom (chaîne de caractères), la date
de souscription (chaîne de caractères) et le prix à la minute d’un appel (réel).
Il existe deux types d’abonnés:
- les abonnés des lignes prépayées : ils sont caractérisés par un solde (réel) payé d’avance qui
diminue au fil des appels. Une fois le solde consommé, l’abonné ne peut plus passer d’appel. Il peut
recharger son solde à tout moment.
- les abonnées des lignes post payées : ils sont caractérisés par une consommation (réel) qui
correspond au total à payer à la fin du mois. Chaque appel est donc facturé et ajouté à la
consommation. Les abonnés d’une ligne post payée ont le privilège d’avoir cinq numéros qu’ils
appellent gratuitement, enregistrés dans un tableau.
Toutes les classes doivent offrir la méthode «void enregistrer_appel (int numéro_appelé, int
durée) », qui permet d’enregistrer un appel à un numéro donné pour une durée donnée.
Les lignes prépayées offrent de plus la possibilité de recharger le solde via la fonction « void
recharger (float solde_à_recharger) ».
Les lignes post payées permettent de plus d’accéder à un numéro parmi les numéros gratuits à l’aide
de l’opérateur [ ].

1) Construire le diagramme de classes correspondant et donner la définition de chaque classe.

2) Implémenter le constructeur paramétré de chaque classe.

3) Ecrire les différentes fonctions membres de chaque classe, à l’extérieur de celle-ci.

4) L’opérateur veut mettre en place un bonus selon le type de la ligne.


- pour une ligne prépayée, le bonus vaut 10% du solde.
- pour une ligne post payée, le bonus vaut 15% de la consommation.
Ecrire les fonctions membres « float calculer_bonus ( )», dans les classes concernées,
permettant d’obtenir le bonus de chaque abonné.

5) L’opérateur veut gérer l’ensemble de ses abonnés. Créer une classe « liste_abonnés »
contenant un tableau d’abonnés (lignes prépayées et post payées), une fonction
« supprimer_abonné» et une fonction « ajouter_abonné».

6) L’opérateur désire connaître le budget total des bonus. Ecrire la fonction membre
« budget_bonus » permettant de réaliser le total des bonus de tous les abonnés.