Vous êtes sur la page 1sur 5

Introduction à la POO

TD 2

Exercice 1

On propose d’écrire les classes Adresse et Personne suivantes


1. Classe Adresse

a) Ecrire une classe Adresse sachant qu’une adresse est caractérisée par les attributs suivants :
Attributs Type
numéro Entier
rue Chaîne de caractère
code_postale Entier
ville Chaîne de caractère

b) Définir deux constructeurs pour la classe adresse :


- Adresse() : constructeur sans paramètre
- Adresse(numéro, rue, code_postale, ville)

c) Définir une méthode afficher() qui permet d’afficher les informations d’une adresse.

2. Classe Personne

a) Ecrire une classe Personne sachant qu’une personne est caractérisée par les attributs
suivants :
Attributs Type
cin Chaîne de caractère
nom Chaîne de caractère
prenom Chaîne de caractère
adr Adresse

b) Définir deux constructeurs pour la classe personne :


- Personne() : constructeur sans paramètre
- Personne(cin, nom, prenom, adr)

A.U 2018-2019 1
Introduction à la POO

c) Définir une méthode afficher() qui permet d’afficher les informations d’une personne.
3. Programme principal

Ecrire un programme principal (main) qui permet de tester les différentes fonctions des classes
Adresse et Personne.

Exercice 2

On propose d’étudier l’organisation des commandes en ligne. Pour cela, on définit quatre classes :
Client, Commande, Produit et Catégorie. L’organisation de votre projet doit suivre les hypothèses
suivante (voir figure):
- Chaque classe doit être défini dans un fichier header (.h) à part. Cette définition contient la
liste des attributs et les prototypes des méthodes membres.
- Un fichier source (.cpp) contient l’implémentation de toutes les méthodes (des différentes
classes).
- Un fichier main (.cpp) contient le programme principal.

1. Classe Categorie

a) Ecrire une classe Categorie sachant qu’une catégorie est caractérisée par les attributs
suivants :
Attributs Type
id Entier
nom Chaîne de caractère

b) Définir deux constructeurs pour la classe Categorie :


- Categorie() : constructeur sans paramètre
- Categorie(id, nom)

c) Définir une méthode afficher() qui permet d’afficher les informations d’une catégorie.

A.U 2018-2019 2
Introduction à la POO

2. Classe Produit

a) Ecrire une classe Produit sachant qu’un produit à 0 ou plusieurs Categorie (avec un
nombre maximal égale à 3). Un produit est caractérisé par les attributs suivants :
Attributs Type
id Entier
nom Chaîne de caractère
nb_cat Entier
cat Categorie
b) Définir deux constructeurs pour la classe Produit :
- Produit () : constructeur sans paramètre
- Produit (id, nom, cat) //un produit avec une seul catégorie

c) Définir les méthodes membres suivante :


- afficher() permet d’afficher les informations d’un produit.
- AjouterCat(cat) permet d’ajouter la catégorie cat au produit courant. La méthode doit
vérifier que la catégorie n’est pas déjà associée au produit (via son id) et que le nombre
maximal de catégories autorisées (trois) ne sera pas dépassé.
- SupprimerCat(idcat) permet de supprimer une catégorie de la liste des catégories du
produit courant. La catégorie à supprimer est identifiée via son identifiant (idcat).

3. Classe Commande

a) Ecrire une classe Commande sachant qu’une commande ne peux pas contenir plus que
cinq (5) Produit. Une commande est caractérisée par les attributs suivants :
Attributs Type
id Entier
nb_pdt Entier
pdt Produit

b) Définir deux constructeurs pour la classe Commande :


- Commande () : constructeur sans paramètre, sans commande sans produits
- Commande (id, Pdt) // une commande avec un seul Produit

c) Définir les méthodes membres suivante :


- afficher() permet d’afficher les informations d’une commande.
- AjouterPdt(pdt) permet d’ajouter le produit pdt à la commande courante. La méthode
doit vérifier que le produit n’est pas déjà associé à la commande (via son id) et que le
nombre maximal de produits autorisés (cinq) ne sera pas dépassé.

A.U 2018-2019 3
Introduction à la POO

- SupprimerPdt(idpdt) permet de supprimer un produit de la liste des produits de la


commande courante. Le produit à supprimer est identifiée via son identifiant (idpdt).
4. Classe Client

a) Ecrire une classe Client sachant qu’un Client ne peut pas avoir plus que deux (2)
Commandes. Un client est caractérisé par les attributs suivants :
Attributs Type
id Entier
nom Chaîne de caractère
prenom Chaîne de caractère
nb_com Entier
com Commande

b) Définir deux constructeurs pour la classe Commande :


- Client () : constructeur sans paramètre
- Client (id, nom, prenom, Com) //un client avec une seule.

d) Définir les méthodes membres suivante :


- afficher() permet d’afficher les informations d’un client.
- AjouterCmd(cmd) permet d’ajouter la commande cmd au client courant. La méthode
doit vérifier que la commande n’est pas déjà associée au client (via son id) et que le
nombre maximal de commandes autorisées (deux) ne sera pas dépassé.
- SupprimerCmd(idcmd) permet de supprimer une commande de la liste des commandes
du client courant. La commande à supprimer est identifiée via son identifiant (idcmd).

5. Programme Principal (le main)

a) Définir trois objets c1, c2 et c3 de type Categorie.


b) Définir trois objets p1, p2 et p3 de type Produit, avec :
- p1 a comme catégories c1.
- p2 a comme catégories c1.
- p3 a comme catégorie c3.
c) Définir deux objets cmd1 et cmd2 de type Commande, avec :
- cmd1 contient le produit p1
- cmd2 contient le produit p2
d) Définir un objet clt de type Client, sachant que clt possède une seule commande cmd1.
e) Ajouter la catégorie c2 au produit p2
f) Ajouter la catégorie c1 au produit p3

A.U 2018-2019 4
Introduction à la POO

g) Supprimer la catégorie c3 du produit p3


h) Ajouter le produit p3 à la commande cmd2
i) Ajouter la commande cmd2 au client clt.
j) Afficher les informations du client clt (toutes les informations liées à ses différentes
commandes doivent être affichées)

A.U 2018-2019 5

Vous aimerez peut-être aussi