SlideShare une entreprise Scribd logo
1  sur  4
Télécharger pour lire hors ligne
––
Enrichissez vos classes avec
extends
Objectifs du TD/TP
1. Savoir implémenter les relations entre classes : composition agrégation, héritage ….
2. Comprendre le principe de typage en java et son origine
 Enrichissez vos classes avec extends Dr A. BENGUEDDACH
 Page 1
Enrichissez vos classes
avec extends
Projet 1 : Etablir des Fiches de Paie
Dès le moment où l’entreprise verse un salaire à un
salarié, un bulletin de paie doit être remis à ce
dernier.
Les informations devant figurer obligatoirement
dans un bulletin de paie sont les suivantes :
 A propos de l’employeur : Nom,
adresse, numéro d’immatriculation et
référence de l’organisme auprès;
 A propos du salarié : Nom, poste
occupé;
 Concernant le salaire : Les éléments
qui constituent la rémunération brute
(nombre d’heures de travail, taux horaire,
primes…), les éventuels congés payés pris
durant la période et le montant de
l’indemnité correspondante, les
prélèvements fiscaux, le montant et la date
de versement du net à payer ;
 Lorsque c’est le cas, les heures
supplémentaires ou complémentaires
doivent également apparaitre sur le bulletin
de paie ;
Supposant que l’entreprise veuille gérer la paie de
ses employés selon deux catégories d’employé : des
employés à temps plein et des employés à temps
partiel.
Les Employés à temps plein ont un salaire fixe par
mois. Si l’employé à temps plein travaille la nuit et
les week-ends, il reçoit une prime.
Quant aux employés à temps partiel, ils sont
payés à la base d’un salaire horaire. Les employés à
temps partiel ne bénéficient d’aucune prime.
Ecrire un programme qui établit les fiches de paie
de tous les employés d’une entreprise donnée.
Projet 2 : Les robots
La classe Robot modélise l’état et le
comportement de robots mobiles.
Chaque robot :
 A un nom,
 A une direction Nord, Est, Sud ou
Ouest,
 A une position x définit un déplacement
vers l’Est et y définit un déplacement vers
le Nord,
………………….….
 Avec la méthode avance() : le robot peut
avancer d’un pas en avant.
 Avec la méthode droite() : le robot peut
tourner de 90° pour changer de direction.
Si sa direction était Nord elle devient Est,
si c’était Est elle devient Sud. Les robots
ne peuvent pas se tourner à gauche.
 Le nom, la position et la direction d’un
robot lui sont donnés au moment de sa
création. Le nom est obligatoire mais on
peut ne pas spécifier la position et la
direction, qui sont définis par défaut à (0,0)
et Est.
On veut améliorer ces robots en créant une
nouvelle génération de robots les RobotNG
qui ne remplacent pas les anciens robots mais
peuvent cohabiter avec eux.
Les RobotNG savent faire la même chose mais
aussi :
Avancer de plusieurs pas en une seule fois grâce à
une méthode avance() qui prend en paramètre le
nombre de pas n,
Tourner à gauche de 90° grâce à la méthode
gauche() le robot tourne 3 fois à droite,
Faire demi-tour grâce à la méthode demiTour() le
robot fait un demi-tour en tournant 2 fois.
Ecrire un programme qui simule la création de
plusieurs robots de l’ancien et du nouveau modèle
et afficher leurs états.
 Enrichissez vos classes avec extends
 Page 2
Activité 1 : Héritage
1. On considère le code suivant : A a=new A() ; B
b=new B() ; B e=new C() ; Quelle est la réponse
incorrecte ?
▢ A. A d=new B()
▢ B. A d=(A)b;
▢ C. B d= new A();
▢ D. C d=(C)e ;
2. On considère les classes définies par :
class A{ protected int a1, a2; A(){a1= 1; a2=2;}}
class B extends A{ protected int b; B(){b=3;}}
class C extends B { private int c1, c2; C(){c1=a2;
c2=3*a2;}}
Quel est le résultat du morceau de code en suivant
l’ordre de création des variables :
C monC= new C() ;
▢ A. a1=1 ; a2=2 ; b= 3 ; c1=2 ; c2=3
▢ B. a1=1 ; a2=2 ; b= 3 ; c1=2 ; c2=6
▢ C. c1=2 ; c2=2
▢ D. Erreur de compilation
3. On considère les classes O1 et O2 suivantes :
class O1 {}
class O2 extends O1 {}
public class Exo1 { public static void main(String[]
args){
O1 unO1 = new O2();
O2 unO2 = unO1;}}
Trouver la bonne réponse
▢ A. Upcasting
▢ B. Downcasting
▢ C. Erreur
▢ D. Polymorphisme
Activité 2 : Typage en Java
Soit la classe D définit par:
class D extends B{
public void ma(){ System.out.println("ma de D");}
public void md(A a){ System.out.println("a de D");}
public void md(B b){ System.out.println("b de D");}
public void md(A a1, A a2){
System.out.println("a1, a2 de D");}
public void md(B b1, B b2){
System.out.println("b1, b2 de D");}
public void md(A a, B b){
System.out.println("a, b de D");
}
(*) les md()sont déclarées dans le corps
de la class D
On considère le morceau de code suivant
A a1 = new A() ;
B b = new E() ;
A a2 = b;
D d = new E();
b.ma() ;
d.md(a1,a2);
d.md(a1) ;
Trouver la bonne réponse
▢ A. ma de A ; a1, a2 de D ; a de D
▢ B. ma de D ; a1, a2 de D ; a de E
▢ C. ma de D ; a, b de D ; a de E
 Enrichissez vos classes avec extends Dr A. BENGUEDDACH
 Page 3
▢ D. erreur
Activité 3 : Typage en Java
Complétez le tableau suivant :
Compilation Exécution
A a1 = new A() ;
A a2 = new B() ;
B b1 = new B() ;
B b2 = new A() ;
a1.a() ;
a2.a() ;
b1.a() ;
b2.a() ;
a1.b() ;
a2.b() ;
b1.b() ;
b2.b() ;
a1.c() ;
a2.c() ;
b1.c() ;
b2.c() ;
((B)a1).c() ;
((B)a2).c() ;
((B)b1).c() ;
((B)b2).c() ;
((A)b1).a() ;
Projet 3 : Gestion des
stocks/Gestion des saisies
invalides
Le contrôle des stocks, connu également sous le
nom de contrôle de l'inventaire, est utilisé pour
montrer quel est le volume de vos stocks à un
certain moment et de quelle façon en faire le suivi.
Tout ce que vous utilisez pour fournir vos services
et exploiter votre entreprise fait partie de votre
stock.
Un système informatisé de contrôle des stocks est
un bon choix pour les entreprises traitant avec de
nombreux types de stocks. Parmi d'autres
caractéristiques utiles, on peut trouver :
 Le traitement des bons de
commande et le traitement des bons
d'achat peuvent être intégrés au système
pour que le stock s'équilibre et que les
statistiques soient automatiquement
mises à jour au fur et à mesure que les
commandes sont traitées.
 La surveillance automatique du stock,
déclenchant des commandes lorsque
le niveau de nouvelle commande est
atteint.
 Le contrôle automatique du lot si vous
produisez des biens en lots.
 L'identification des fournisseurs les moins
chers et les plus rapides.
 Les systèmes de codes à barres qui
accélèrent le traitement et
l'enregistrement. Le logiciel imprimera et
lira les codes à barres provenant de votre
ordinateur.
 L'identification par radiofréquence (IRF)
qui permet de suivre les composantes ou
les produits individuels tout au long de la
chaîne d'approvisionnement.
Réalisez une application qui fait le suivi des stocks
du Magasin de l’Université.
Source : http://www.infoentrepreneurs.org/fr/guides/bl--
-controle-des-stocks-et-inventaire/

Contenu connexe

Tendances

Corrigés exercices langage C
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage Ccoursuniv
 
algorithme tronc commun lycée
algorithme tronc commun lycéealgorithme tronc commun lycée
algorithme tronc commun lycéeKayl Mido
 
Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)Hichem Kemali
 
Ch8 correction exercices (1)
Ch8 correction exercices (1)Ch8 correction exercices (1)
Ch8 correction exercices (1)abdellah12
 
exercices-corriges-dalgorithmique
exercices-corriges-dalgorithmiqueexercices-corriges-dalgorithmique
exercices-corriges-dalgorithmiquefast xp
 
Sujets de preparation bac tp (sayari)
Sujets de preparation bac tp (sayari)Sujets de preparation bac tp (sayari)
Sujets de preparation bac tp (sayari)mohamed_SAYARI
 
Fiche3 ex-sous-programme
Fiche3 ex-sous-programmeFiche3 ex-sous-programme
Fiche3 ex-sous-programmeBaghdadi Wajih
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)rezgui mohamed
 
Fiche2 ex-sous-programme
Fiche2 ex-sous-programmeFiche2 ex-sous-programme
Fiche2 ex-sous-programmeBaghdadi Wajih
 
Cours langage c
Cours langage cCours langage c
Cours langage ccoursuniv
 
Initiation au C++
Initiation au C++Initiation au C++
Initiation au C++IsenDev
 
Javascript : que fait ce code?
Javascript : que fait ce code?Javascript : que fait ce code?
Javascript : que fait ce code?Ruau Mickael
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++coursuniv
 
Résumé Algorithme et Programmation
Résumé Algorithme et ProgrammationRésumé Algorithme et Programmation
Résumé Algorithme et Programmationborhen boukthir
 

Tendances (20)

Les enregistrements
Les enregistrements Les enregistrements
Les enregistrements
 
Corrigés exercices langage C
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage C
 
algorithme tronc commun lycée
algorithme tronc commun lycéealgorithme tronc commun lycée
algorithme tronc commun lycée
 
Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)
 
Ch8 correction exercices (1)
Ch8 correction exercices (1)Ch8 correction exercices (1)
Ch8 correction exercices (1)
 
exercices-corriges-dalgorithmique
exercices-corriges-dalgorithmiqueexercices-corriges-dalgorithmique
exercices-corriges-dalgorithmique
 
Sujets de preparation bac tp (sayari)
Sujets de preparation bac tp (sayari)Sujets de preparation bac tp (sayari)
Sujets de preparation bac tp (sayari)
 
La série 3 en pascal
La série 3 en pascalLa série 3 en pascal
La série 3 en pascal
 
Fiche3 ex-sous-programme
Fiche3 ex-sous-programmeFiche3 ex-sous-programme
Fiche3 ex-sous-programme
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)
 
Ch10
Ch10Ch10
Ch10
 
Fiche2 ex-sous-programme
Fiche2 ex-sous-programmeFiche2 ex-sous-programme
Fiche2 ex-sous-programme
 
Cours langage c
Cours langage cCours langage c
Cours langage c
 
Initiation au C++
Initiation au C++Initiation au C++
Initiation au C++
 
C4 fonctions
C4 fonctionsC4 fonctions
C4 fonctions
 
Javascript : que fait ce code?
Javascript : que fait ce code?Javascript : que fait ce code?
Javascript : que fait ce code?
 
Asd1
Asd1Asd1
Asd1
 
Correction
CorrectionCorrection
Correction
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
 
Résumé Algorithme et Programmation
Résumé Algorithme et ProgrammationRésumé Algorithme et Programmation
Résumé Algorithme et Programmation
 

Similaire à Enrichissez vos-classes-avec-extends-20

Examen organigrame
Examen organigrameExamen organigrame
Examen organigramenabildekess
 
Examen organigrame
Examen organigrameExamen organigrame
Examen organigramenabildekess
 
Examen organigrame
Examen organigrameExamen organigrame
Examen organigramenabildekess
 
Deuxième partie.pptx
Deuxième partie.pptxDeuxième partie.pptx
Deuxième partie.pptxSafaeLhr1
 
Java uik-chap5-poo avance vf
Java uik-chap5-poo avance vfJava uik-chap5-poo avance vf
Java uik-chap5-poo avance vfAmel Morchdi
 
Les structures de données.pptx
Les structures de données.pptxLes structures de données.pptx
Les structures de données.pptxPROFPROF11
 
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...abdelghani04
 
Les vecteurs seconde2020.pdf
Les vecteurs seconde2020.pdfLes vecteurs seconde2020.pdf
Les vecteurs seconde2020.pdfrezgui10
 
Td serie a-abstract-cast-heritage
Td serie a-abstract-cast-heritageTd serie a-abstract-cast-heritage
Td serie a-abstract-cast-heritageAmel Morchdi
 
Fiche1 ex-sous-programme
Fiche1 ex-sous-programmeFiche1 ex-sous-programme
Fiche1 ex-sous-programmeBaghdadi Wajih
 
TP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / TunisieTP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / TunisieMariem ZAOUALI
 
1 tdi synthese_principale_v2_2015.docx
1 tdi synthese_principale_v2_2015.docx1 tdi synthese_principale_v2_2015.docx
1 tdi synthese_principale_v2_2015.docxkhawla sdid
 
Correction-TD1.pdf
Correction-TD1.pdfCorrection-TD1.pdf
Correction-TD1.pdfMbarkiIsraa
 
TP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / TunisieTP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / TunisieMariem ZAOUALI
 

Similaire à Enrichissez vos-classes-avec-extends-20 (20)

Examen organigrame
Examen organigrameExamen organigrame
Examen organigrame
 
Examen organigrame
Examen organigrameExamen organigrame
Examen organigrame
 
Examen organigrame
Examen organigrameExamen organigrame
Examen organigrame
 
Deuxième partie.pptx
Deuxième partie.pptxDeuxième partie.pptx
Deuxième partie.pptx
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
 
Java uik-chap5-poo avance vf
Java uik-chap5-poo avance vfJava uik-chap5-poo avance vf
Java uik-chap5-poo avance vf
 
Les structures de données.pptx
Les structures de données.pptxLes structures de données.pptx
Les structures de données.pptx
 
Chapitre 04 : les fonctions
Chapitre 04 : les fonctionsChapitre 04 : les fonctions
Chapitre 04 : les fonctions
 
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...
Examen de-passage-developpement-informatiques-tsdi-2015-synthese-variante-2-o...
 
Les vecteurs seconde2020.pdf
Les vecteurs seconde2020.pdfLes vecteurs seconde2020.pdf
Les vecteurs seconde2020.pdf
 
jQuery mobile [Part2]
jQuery mobile [Part2]jQuery mobile [Part2]
jQuery mobile [Part2]
 
Td serie a-abstract-cast-heritage
Td serie a-abstract-cast-heritageTd serie a-abstract-cast-heritage
Td serie a-abstract-cast-heritage
 
Fiche1 ex-sous-programme
Fiche1 ex-sous-programmeFiche1 ex-sous-programme
Fiche1 ex-sous-programme
 
01 correction-td smia-s2-info2
01 correction-td smia-s2-info201 correction-td smia-s2-info2
01 correction-td smia-s2-info2
 
Ds2 informatique
Ds2 informatiqueDs2 informatique
Ds2 informatique
 
Pensez objets avec java
Pensez objets avec javaPensez objets avec java
Pensez objets avec java
 
TP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / TunisieTP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / Tunisie
 
1 tdi synthese_principale_v2_2015.docx
1 tdi synthese_principale_v2_2015.docx1 tdi synthese_principale_v2_2015.docx
1 tdi synthese_principale_v2_2015.docx
 
Correction-TD1.pdf
Correction-TD1.pdfCorrection-TD1.pdf
Correction-TD1.pdf
 
TP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / TunisieTP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / Tunisie
 

Enrichissez vos-classes-avec-extends-20

  • 1. –– Enrichissez vos classes avec extends Objectifs du TD/TP 1. Savoir implémenter les relations entre classes : composition agrégation, héritage …. 2. Comprendre le principe de typage en java et son origine
  • 2.  Enrichissez vos classes avec extends Dr A. BENGUEDDACH  Page 1 Enrichissez vos classes avec extends Projet 1 : Etablir des Fiches de Paie Dès le moment où l’entreprise verse un salaire à un salarié, un bulletin de paie doit être remis à ce dernier. Les informations devant figurer obligatoirement dans un bulletin de paie sont les suivantes :  A propos de l’employeur : Nom, adresse, numéro d’immatriculation et référence de l’organisme auprès;  A propos du salarié : Nom, poste occupé;  Concernant le salaire : Les éléments qui constituent la rémunération brute (nombre d’heures de travail, taux horaire, primes…), les éventuels congés payés pris durant la période et le montant de l’indemnité correspondante, les prélèvements fiscaux, le montant et la date de versement du net à payer ;  Lorsque c’est le cas, les heures supplémentaires ou complémentaires doivent également apparaitre sur le bulletin de paie ; Supposant que l’entreprise veuille gérer la paie de ses employés selon deux catégories d’employé : des employés à temps plein et des employés à temps partiel. Les Employés à temps plein ont un salaire fixe par mois. Si l’employé à temps plein travaille la nuit et les week-ends, il reçoit une prime. Quant aux employés à temps partiel, ils sont payés à la base d’un salaire horaire. Les employés à temps partiel ne bénéficient d’aucune prime. Ecrire un programme qui établit les fiches de paie de tous les employés d’une entreprise donnée. Projet 2 : Les robots La classe Robot modélise l’état et le comportement de robots mobiles. Chaque robot :  A un nom,  A une direction Nord, Est, Sud ou Ouest,  A une position x définit un déplacement vers l’Est et y définit un déplacement vers le Nord, ………………….….  Avec la méthode avance() : le robot peut avancer d’un pas en avant.  Avec la méthode droite() : le robot peut tourner de 90° pour changer de direction. Si sa direction était Nord elle devient Est, si c’était Est elle devient Sud. Les robots ne peuvent pas se tourner à gauche.  Le nom, la position et la direction d’un robot lui sont donnés au moment de sa création. Le nom est obligatoire mais on peut ne pas spécifier la position et la direction, qui sont définis par défaut à (0,0) et Est. On veut améliorer ces robots en créant une nouvelle génération de robots les RobotNG qui ne remplacent pas les anciens robots mais peuvent cohabiter avec eux. Les RobotNG savent faire la même chose mais aussi : Avancer de plusieurs pas en une seule fois grâce à une méthode avance() qui prend en paramètre le nombre de pas n, Tourner à gauche de 90° grâce à la méthode gauche() le robot tourne 3 fois à droite, Faire demi-tour grâce à la méthode demiTour() le robot fait un demi-tour en tournant 2 fois. Ecrire un programme qui simule la création de plusieurs robots de l’ancien et du nouveau modèle et afficher leurs états.
  • 3.  Enrichissez vos classes avec extends  Page 2 Activité 1 : Héritage 1. On considère le code suivant : A a=new A() ; B b=new B() ; B e=new C() ; Quelle est la réponse incorrecte ? ▢ A. A d=new B() ▢ B. A d=(A)b; ▢ C. B d= new A(); ▢ D. C d=(C)e ; 2. On considère les classes définies par : class A{ protected int a1, a2; A(){a1= 1; a2=2;}} class B extends A{ protected int b; B(){b=3;}} class C extends B { private int c1, c2; C(){c1=a2; c2=3*a2;}} Quel est le résultat du morceau de code en suivant l’ordre de création des variables : C monC= new C() ; ▢ A. a1=1 ; a2=2 ; b= 3 ; c1=2 ; c2=3 ▢ B. a1=1 ; a2=2 ; b= 3 ; c1=2 ; c2=6 ▢ C. c1=2 ; c2=2 ▢ D. Erreur de compilation 3. On considère les classes O1 et O2 suivantes : class O1 {} class O2 extends O1 {} public class Exo1 { public static void main(String[] args){ O1 unO1 = new O2(); O2 unO2 = unO1;}} Trouver la bonne réponse ▢ A. Upcasting ▢ B. Downcasting ▢ C. Erreur ▢ D. Polymorphisme Activité 2 : Typage en Java Soit la classe D définit par: class D extends B{ public void ma(){ System.out.println("ma de D");} public void md(A a){ System.out.println("a de D");} public void md(B b){ System.out.println("b de D");} public void md(A a1, A a2){ System.out.println("a1, a2 de D");} public void md(B b1, B b2){ System.out.println("b1, b2 de D");} public void md(A a, B b){ System.out.println("a, b de D"); } (*) les md()sont déclarées dans le corps de la class D On considère le morceau de code suivant A a1 = new A() ; B b = new E() ; A a2 = b; D d = new E(); b.ma() ; d.md(a1,a2); d.md(a1) ; Trouver la bonne réponse ▢ A. ma de A ; a1, a2 de D ; a de D ▢ B. ma de D ; a1, a2 de D ; a de E ▢ C. ma de D ; a, b de D ; a de E
  • 4.  Enrichissez vos classes avec extends Dr A. BENGUEDDACH  Page 3 ▢ D. erreur Activité 3 : Typage en Java Complétez le tableau suivant : Compilation Exécution A a1 = new A() ; A a2 = new B() ; B b1 = new B() ; B b2 = new A() ; a1.a() ; a2.a() ; b1.a() ; b2.a() ; a1.b() ; a2.b() ; b1.b() ; b2.b() ; a1.c() ; a2.c() ; b1.c() ; b2.c() ; ((B)a1).c() ; ((B)a2).c() ; ((B)b1).c() ; ((B)b2).c() ; ((A)b1).a() ; Projet 3 : Gestion des stocks/Gestion des saisies invalides Le contrôle des stocks, connu également sous le nom de contrôle de l'inventaire, est utilisé pour montrer quel est le volume de vos stocks à un certain moment et de quelle façon en faire le suivi. Tout ce que vous utilisez pour fournir vos services et exploiter votre entreprise fait partie de votre stock. Un système informatisé de contrôle des stocks est un bon choix pour les entreprises traitant avec de nombreux types de stocks. Parmi d'autres caractéristiques utiles, on peut trouver :  Le traitement des bons de commande et le traitement des bons d'achat peuvent être intégrés au système pour que le stock s'équilibre et que les statistiques soient automatiquement mises à jour au fur et à mesure que les commandes sont traitées.  La surveillance automatique du stock, déclenchant des commandes lorsque le niveau de nouvelle commande est atteint.  Le contrôle automatique du lot si vous produisez des biens en lots.  L'identification des fournisseurs les moins chers et les plus rapides.  Les systèmes de codes à barres qui accélèrent le traitement et l'enregistrement. Le logiciel imprimera et lira les codes à barres provenant de votre ordinateur.  L'identification par radiofréquence (IRF) qui permet de suivre les composantes ou les produits individuels tout au long de la chaîne d'approvisionnement. Réalisez une application qui fait le suivi des stocks du Magasin de l’Université. Source : http://www.infoentrepreneurs.org/fr/guides/bl-- -controle-des-stocks-et-inventaire/