Vous êtes sur la page 1sur 2

Université Sidi Mohamed Ben Abdellah

Faculté des Sciences Dhar El-Mehraz Fès


Département d’Informatique

Exercices en C++ :
Par N. Chenfour

Exercice 1 :
On demande la réalisation d’une classe « Number » permettant de gérer des nombres entiers
et réels. La classe contient une seule propriété « value » de type double et fournit les constructeurs et
services suivants :
- Number()
- Number(int value)
- Number(double value)
- Number(char *value) : permettant d’extraire la valeur réelle depuis une chaîne si elle contient
bien une valeur réelle. Si la chaîne ne contient que des 0 et des 1, elle est alors considérée une
chaîne binaire ; sa valeur décimale sera ainsi calculée et stockée dans la propriété « value »
- La méthode setValue surchargée pour les 3 types de données supportés par les constructeurs.
- Trois méthodes de récupération de la valeur avec les 3 formats possibles : int, double et
binaire.
- Une méthode de récupération de la valeur sous forme d’une chaîne de caractères avec le
format précisé en paramètres : Nombre de caractères et nombre de chiffres après la virgule.
- Une méthode de génération aléatoire de la valeur.
- Surcharger les opérateurs ++, --, += et -=
Exercice 2 :
1. Réaliser une classe « FileWriter » permettant de gérer l’ouverture, la création et l’écriture
dans un fichier texte. La classe doit supporter l’écriture des différents types primitifs, les
chaînes de caractères et les tableaux. Les données écrites dans le fichier doivent être
séparées par un caractère constituant l’une des propriétés de la classe.
2. Réaliser une classe FileReader permettant de gérer l’ouverture et la lecture des données
depuis un fichier texte supposé créé et rempli à l’aide de la classe « FileWriter ».
Exercice 3 :
Réaliser une classe Vector permettant de gérer un tableau de chaînes de caractères. La classe
doit fournir les méthodes suivantes :
1. void add(char *element) : ajouter un élément au tableau.
2. Surcharger la méthode « add » pour accepter un entier, un réel ou un caractère.
3. void add(Vector elements) : fusionner avec un autre tableau.
4. char * get(int index) : récupérer l’élément N° index.
5. void set(int index, char * element) : remplacer l’élément N° index
6. char * remove(int index) : supprimer et récupérer l’élément N° index.
7. int getIndex(char * element) : chercher et retourner l’index d’un élément dans le tableau.
8. Int size() : retourner la taille du tableau.
9. void print() : afficher les éléments du tableau

Programmation Orientée Objet en C++, N. Chenfour 1


Exercice 4 :
Réaliser une classe LinkedList qui offre les mêmes services que la classe précédente avec une
implémentation sous forme d’une liste chaînée.

Exercice 5 :
Réaliser une classe String permettant de gérer les chaînes de caractères. Elle contient alors une
propriété de type « char * ». La classe doit fournir les services suivants :
1. Un constructeur avec un paramètre de type « char * » contenu de la chaîne
2. Surcharger le constructeur pour accepter un entier (même chose pour un réel et un caractère).
3. Un destructeur
4. Les méthodes suivantes :
- int length() : qui retourne la taille de la chaîne
- char get(int i) : qui retourne le caractère numéro i.
- void set(int i, int c) : qui remplace le caractère numéro i avec le caractère « c ».
- void set(char *string) : qui remplace le contenu de la chaîne avec la chaîne « string ».
- Surcharger la méthode set pour accepter un entier (même chose pour un réel et un
caractère).
- void append(char *string) : concaténation de « string ».
- Surcharger la méthode append pour accepter un entier (même chose pour un réel et un
caractère).
- void toUpper() : convertir en majuscule.
- void toLower() : convertir en minuscule.
- void insert(int i, char *string) : insertion d’une chaîne « string » à la position i.
- void insert(int i, String string) : insertion d’une chaîne « string » à la position i.
- Surcharger la méthode insert pour accepter en deuxième paramètre un entier (même
chose pour un réel et un caractère).
- String substring(int i, int j) : qui extrait la sous chaîne située entre i et j.
- int pos(char *string) : qui cherche si « string » est contenu dans la chaîne et retourne sa
première occurrence. La méthode retourne -1 si la sous chaîne est introuvable.
- Surcharger pos avec la définition : int pos(String string)
- void print() : pour l’affichage.
- int intValue() : permettant de retourner sous forme d’entier le contenu de la chaîne si c’est
un entier.
- int doubleValue() : permettant de retourner sous forme de réel le contenu de la chaîne si
c’est un réel.

5. Surcharger les opérateurs + (pour la concaténation des chaînes) et = pour les affectations entre
chaînes.

Programmation Orientée Objet en C++, N. Chenfour 2

Vous aimerez peut-être aussi