Vous êtes sur la page 1sur 43

RAPPORT DE MINI-PROJET

Système de gestion de la relation client (CRM)

Première année
préparatoire :

Du :19 /06 /2023 Au :22/06/2023

Réalisé par : Encadrée par :


WIAM HAJBI FATIME-EZZAHRA AIT BENNACER
ZINEB YAQINE IMANE ELKODSSI

1
Dédicaces et remerciements :

À nos professeurs,

Nous tenons à vous adresser nos plus sincères remerciements pour votre précieuse
contribution à l'élaboration de ce rapport. Votre expertise, votre disponibilité et votre
dévouement ont grandement enrichi notre expérience d'apprentissage et ont été
indispensables à la réalisation de ce travail.

Tout au long de notre parcours, vous nous avez guidés avec passion, nous transmettant
votre savoir et votre passion pour votre domaine d'expertise. Vos enseignements ont élargi
nos horizons, stimulé notre curiosité et nous ont encouragés à aller au-delà de nos limites.
Votre approche pédagogique dynamique et interactive a suscité notre intérêt et nous a
poussés à nous investir pleinement dans nos études.

Nous tenons également à souligner votre disponibilité et votre patience sans faille. Vous
avez toujours été là pour répondre à nos questions, nous aider à surmonter les obstacles et
fournir des éclaircissements supplémentaires lorsque nous en avions besoin. Votre soutien
constant et votre encouragement ont été des moteurs essentiels dans notre démarche de
recherche et de rédaction de ce rapport.

Enfin, nous aimerions vous remercier pour votre dévouement envers notre réussite. Vos
conseils avisés, vos commentaires constructifs et vos encouragements sincères ont joué un
rôle déterminant dans notre progression académique. Nous sommes reconnaissants d'avoir
eu la chance de bénéficier de votre expertise et de votre encadrement, qui ont contribué à
notre développement personnel et professionnel.

Cordialement,

WIAM HAJBI

ZINEB YAQINE

2
Table de matières :
Introduction générale : ……………………………4
-La méthodologie générale de ce code……5-6

Chapitre 1 : Analyse de besoins ………………5


1-Introduction…………………7
2-Gestion des contacts………………7
2-1-Ajout des commandes………8
2-2-Modification des contacts ………9-10
2-3-Suppression des contacts………11
2-4-Recherche des contacts…………12-13
3-Gestion des commandes…………14
3-1-Ajouter une nouvelle commande……15
3-2-Rechercher une commande……16-17
3-3-Modifier une commande ………18-19
3-4-Supprimer une commande…………20
3-5-Voir l’état d’une commande………21-22
3-6-Générer rapport…………………23
3-7-Envoyer notification……………. 23
3-8-Gestion de client ……………24
3-9-Menu client ……………………25
4-Résultat …………………………………26
A-Menu principale……………………26
B-Menu gestion de contact…………26-28
C-Gestion de commande……………28-30
Chapitre 2 : Bibliographie………………………………31
Chapitre 3 : Conclusion ………………………………32
3
Introduction générale
L'apprentissage est une expérience. Tout le reste n'est qu'information c’est
pour ça l’école marocaine des sciences de l’ingénieure recommande à ses
étudiants à partir de la première année des mini-projet afin qu’ils puissent
mettre en application les informations acquise durant leurs études et
toucher de près l’utilité des méthodes et outils requis dans les différents
modules enseignés et aussi pour s’adapter avec le monde supérieure .Le
choix de ce sujet comme thème de notre mini-projet n’avait que pour but
que de découvrir l’impact de langage programmation c dans la vie réelle .
L’objectif de ce mini-projet est de gérer efficacement un ensemble de
placements financiers pour maximiser les rendements tout en minimisant
les risques.
Pour vous mettre dans le contexte de la réalisation de mini-projet,
Nous avons suivi ces étapes suivantes :
D’abord, on va vous présenter la méthodologie que nous avons utilisée pour
mener le projet, on va expliquer les différentes étapes que nous avons suivie
et les outils que nous avons utilisés pour collecter et analyser les données.
Ensuite, on présentera les résultats de ce projet. Après, on va analyser les
résultats nous avons obtenues en relation avec les objectifs du projet, on
évaluera les avantages et les limites de notre méthodologie, et discutez les
conclusions que nous pouvons conclure.
On terminera ce rapport par donner une conclusion générale. Et à la fin, se
trouve une bibliographie complète avec toutes les références utiliser pour
rédiger ce rapport.

4
La méthodologie générale de ce code est la suivante :

1. Le code commence par l'inclusion des bibliothèques nécessaires, y compris


<stdio.h>, <stdlib.h> et <string.h>. Il définit également deux constantes,
max_contact et max_projet, et déclare deux structures : "contact" pour
représenter les contacts et "commande" pour représenter les commandes.

2. Les variables globales sont déclarées, notamment nb_contact et


nb_commande pour suivre le nombre de contacts et de commandes
respectivement, ainsi que la variable choix.

3. La fonction "ajout" permet d'ajouter un nouveau contact en saisissant les


informations nécessaires.

4. La fonction "modifier" permet de modifier les informations d'un contact


existant. Elle demande d'abord le nom et le prénom du contact à modifier, puis
propose un menu permettant de choisir quelles informations modifier. En
fonction du choix de l'utilisateur, les informations sont modifiées.

5. La fonction "supprimer1" permet de supprimer un contact existant. Elle


demande d'abord le nom et le prénom du contact à supprimer, puis recherche le
contact correspondant. Si le contact est trouvé, il est supprimé en décalant les
éléments suivants dans le tableau.

6. La fonction "recherche1" permet de rechercher un contact en fonction de son


nom, prénom ou catégorie d'investissement. Elle propose un menu pour choisir
le critère de recherche, puis affiche les contacts correspondants.

7. Les fonctions suivantes, "ajoute", "recherche", "modification" et "supprimer",


sont similaires aux fonctions précédentes, mais elles sont spécifiques à la gestion
des commandes. Elles permettent d'ajouter une nouvelle commande, de

5
rechercher des commandes, de modifier une commande existante ou de
supprimer une commande.

8. Le programme principal consiste en une boucle while qui affiche un menu


pour choisir entre les différentes fonctionnalités (ajouter un contact, modifier un
contact, supprimer un contact, rechercher un contact, ajouter une commande,
etc.). L'utilisateur peut entrer son choix et les fonctions correspondantes sont
appelées en conséquence.

Cela résume la méthodologie générale de ce code. Il gère à la fois les contacts et


les commandes, en fournissant des fonctionnalités d'ajout, de modification, de
recherche et de suppression pour chaque type de données.

6
Chapitre1 : Analyse de besoins
1-Introduction :
Ce chapitre s’entamera par une présentation de la
méthodologie, voici une évaluation des avantages, des limites
de la méthodologie utilisée, ainsi que des conclusions qui
peuvent être tirées

2-Avantages de la méthodologie :
2-1 gestion des contacts :
La méthodologie a permis de gérer les contacts de manière
chronologique et organisée en utilisant une structure de données
appropriée. Cette méthode a permis de simplifier l’ajout, modification
et suppression de contact.
-Structure commande : une structure « commande » contient
différentes variables pour stocker les informations relatives à une
commandes.

7
2-1-Ajouts des contacts : on a défini une constante « max_contact » qui
vaut 100 qui représente le nombre maximal de contact, «int nb_contact »
Variable qui représente le nombre actuel de commande présentes dans le
tableau « commande » et la fonction

8
2-2-Modification des commandes : la fonction « modifier » permet de
modifier les informations d’un contact qui est dans le système, « char
nom_modifier[60] »et « char prenom_modifier[60] » variables utilisées
pour stocker le nom et prénom du contact qu’on veut travailler avec, on
utilise une boucle « for »qui parcourent tous les contacts existants
jusqu’à « nb_contact » ,on utilise une fonction « strcmp »pour vérifier si le
nom et le prénom existe, on utilise la boucle « do-while »pour s’assurer que
l’utilisateur entre une valeur entre 1 et 9 pour afficher un menu pour
choisir ce qu’il veut modifier ,il y a différent options comme modifier le
nom, le prénom, le numéro ,l’émail, la catégorie d’investissement et la date
du contact, on entre le choix à l’aide de « scanf »,on utilise après
« switch »le choix est évalué à l’aide de la structure « commande »et on
entre la nouvelles valeurs à l’aide de scanf et si le choix égale8 alors on
retourne au menu précédent et la boucle se termine

9
10
2-3-Suppression de contacts :la fonction « Supprimer1 » permet de
supprimer un contact du système de gestion de
commandes,« int_position »variable utilisée pour stocker la position du
contact a supprimer, « char nom_supp[60] » et « char prenom_[60] »
variables utilisée pour stocker le nom et le prénom qu’on veut
supprimer ,on utilise une boucle « for »qui parcourent tous les contacts
existants ,à chaque itération ,la fonction « strcmp »est utilisé pour
comparer le nom et le prénom du contact actuel avec ceux saisis par
l’utilisateur ,si le nom et le prénom existe alors la position est mise à jour
avec l’indice du contact ,la boucle est terminé est terminé lorsque le contact
est trouvé ,si la « position »n’est pas -1 alors les informations des contacts
suivantes sont décalés vers la gauche pour remplacer le contact supprimé,
les informations du contact suivant sont copiées dans la position actuelle (i)
du tableau écrasant ainsi les informations du contact a supprimer ,le
nombre maximal est réduit à 1 en décrémentant « nb_contact- -»et
finalement le message de confirmation est affiché si la supprimassions est
fait avec succès si non aucun contact n’est pas trouvé alors un message
d’erreur est affiché.

11
2-4-La recherche :la fonction « recherche1» permet de rechercher des
contacts dans le système de gestion de contacts en fonction de leur nom,
prénom et catégorie d’investissement, « char n[60] », « char p[60] »et «
char[60] » variables utilisées pour stocker les valeurs pour la recherche par
nom, prénom et catégorie d’investissement, « choix» variable utilisée pour
stocker le choix de l’utilisateur ,on utilise une boucle « do-while »est entre
inferieure strictement a 1 et supérieure strictement a 3 pour afficher un
menu de recherche, si on fait une recherche par nom et prénom on choisit
l’option 1,la fonction demande d’entrer les valeurs des correspondants
ensuite la fonction utilise une boucle « for » pour les parcourir les contacts
existant jusqu’à « nb_contact »si une correspondance est trouvée les
informations sont affichés. Et si on fait une recherche par catégorie
d’investissement on choisit l’option 2, on utilise une boucle « for » pour
parcourir tous les éléments existants jusqu’à « nb_contact »si une
correspondance est trouvée les informations sont affichés et finalement on
choisit l’option 3 la boucle recherche et la fonction se terminent.

12
13
3-2 Gestions des commandes :

-Structure commande : Enter une structure « commande » contient


différentes variables pour stocker les informations relatives à une
commande.

14
3-1-Ajouter une nouvelle commande :la fonction « ajoute » permet
d’ajouter une nouvelle commande à une liste de commandes existante, on
saisit le nom du client, le produit commandée, le numéro de commande, la
quantité commandée, la prix unitaire et la date de commande, les valeurs
saisis sont stockées dans les membres correspondants de la structure de la
commande « nb-commande », « strcpy »fonction utilisée pour copier la
chaine de caractère « en cours de traitement »dans le membre « etat »de la
structure de la commande nouvellement ajoutée et finalement le nombre
totale de commande « nb_commande »est incrémenté de 1 pour refléter
l’ajout de la nouvelle commande.

15
3-2-Rechercher une commande :entrer une fonction « recherche »
permet de rechercher des commandes en fonction du nom du client ou nom
du produit commandée, on entre deux options de recherche :le nom du
client(choix1) ou produit commandé (choix2),selon le choix qu’on choisit
,on doit saisir le nom du client ou le produit commandé pour la recherche ,
on utilise une boucle « for » qui parcourent de 0 a « nb_commande- -
1 »,dans chaque itération de la boucle ,la fonction « strcmp » est utilisée
pour comparer la valeur saisie avec le nom du client ou le produit
commandée de la commande ,si une correspondance est trouvée les détails
de cette dernière sont affichées à l’écran si non aucun résultat n’est
affichée et finalement la fonction se termine si on choisit option 3(retour).

16
17
3-3-Modifier une commande :on a une fonction « modifier »permet de
modifier les informations d’une commande existante en fonction du nom du
client, on doit entrer le nom de la commande qu’il souhaite modifier ,on
utilise une boucle « for » qui parcourent de 0 a « nb_command-1 »pour
chaque itération de la boucle la fonction « strcmp »est utilisée pour
supprimer le nom de la commande ainsi le nom du client de la commande
,si une correspondance est trouvée on doit l’élément qu’on veut modifier
,une fois le choix est fait une autre boucle est utilisée pour afficher les
options de modification disponibles, on choisit l’option qu’on veut, en
fonction de cette dernière on entre la nouvelle valeur pour l’élément de la
commande correspondante ,la valeur est ensuite mise à jour dans la
structure « commande »et finalement l’exécution de la fonction se termine
lorsque tous les modifications souhaiter sont terminer lorsqu’on choisit
l’option retour .

18
19
3-4-Supprimer une commande :la fonction « supprimer » permet de
supprimer une commande existante ,on entre le nom de la commande qu’on
veut supprimer ,on utilise une boucle « for »qui parcourent de 0 a
« nb_commande- -1 »dans chaque itération de la boucle , la fonction
« strcmp »est utilisée pour comparer le nom de la commande saisi avec le
nom de la commande ,si une correspondance est trouvée la position de la
commande dans le tableau est enregistrée dans la variable « pos »,après la
boucle ,on vérifie si la variable « pos » est différent de 0 ce qui indique
qu’une correspondance est trouvée lors une autre boucle est trouvée pour
déplacée les éléments du tableau « p » vers la gauche à partir de la position
« pos » éliminer ainsi la valeur supprimer ,les éléments sont déplacés en
copiant les valeurs de l’élément suivant vers l’élément
actuel, « nb_commande »variable décrémenté pour refléter la suppression
de la commande ,finalement un message de confirmation de la suppression
est affichée et si aucune commande correspondante n’est trouvée alors un
message d’erreur est affichée .

20
3-5-Voir l’état d’une commande :la fonction « état » permet d’afficher
et de modifier l’état de la commande ,on choisit trois options :afficher la
commande ,modifier l’état de la commande ou revenir, une boucle « do-
while » utilisée pour qu’on choisit entre un choix valide(1,2 et
3),relativement au choix ,l’option 1 on entre le numéro de commande, une
autre boucle « do-while »utilisée pour parcourir tous les commandes
existantes et rechercher celle correspond au numéro saisi, si la
correspondance est trouvée les détails de la commande sont affichés, si
aucune correspondance n’est trouvée alors aucun résultat n’est affichée .Si
on choisit l’option 2 il est invité a entrer le numéro de la commande une
autre boucle est utilisée pour parcourir tous les commandes existantes et
rechercher celle correspond au numéro saisi, si la correspondance est
trouvée alors on la nouvel état de la commande , une boucle « do-while »est
utilisée pour saisir un choix valide (1 et 2),en fonction du choix l’état de la
commande est modifié en résultat (« En cours de traitement » ou
« Livrée »),si aucune correspondance est trouvée alors aucune modification
n’est fait et finalement si on choisit option3 la fonction « menu_principale »
est appelé pour revenir au menu principale, après avoir effectué les actions
correspondant au choix qu’on a choisi ,la fonction est terminée .

21
22
3-6-Générer rapport : voir le code.

3-7-Envoyer notification : voir le code.

23
3-8-Gestion client :la fonction « gestion_client »utilisée pour gérer les
contacts, un menu est affichée présentant différentes options pour gérer les
contacts :ajouter, modifier, supprimer, rechercher et revenir au menu
principal ,on saisit un choix en entrant un numéro correspondant à une
option, en fonction du choix ,on exécute si on choisit option 1la fonction
« ajout »est appelé pour ajouter une nouvelle commande ,si on choisit
l’option 2 la fonction « modifier » est appelé pour modifier un contact
existant, si non si on choisit 3 la fonction « supprime1 » est appelé pour
supprimer un contact, si non si on choisit l’option 4 la
fonction « recherche1 »est appelé pour revenir au menu principal
,finalement si on choisit l’option 5 la fonction « menu_principale »est appelé
pour revenir au menu principale si non on saisit un choix invalide ,un
message d’erreur est affichée après avoir exécutée les actions
correspondant au choix qu’on a fait, la fonction se termine .

24
3-9-Menu Gestion :la fonction « menu_gestion »est utilisée pour gérer
les commandes ,le menu est affichée présentant différant options :ajouter
une nouvelle commande, rechercher une nouvelle commande ,afficher l’état
d’une commande et revenir au menu principale, on saisit un choix en
entrant un numéro correspondant à une option, en fonction du choix, on
exécute si on choisit option 1la fonction « ajoute »est appelé pour ajouter
une nouvelle commande ,si on choisit l’option 2 la fonction « recherche» est
appelé pour rechercher une commande ,si non si on choisit 3 la fonction
« modification » est appelé pour modifier une commande, si non si on
choisit l’option 4 la fonction « supprimer »est appelé pour supprimer une
commande ,si non si on choisit l’option 6 la fonction « menu_principale »est
appelé pour revenir au menu principale et finalement si non on saisit un
choix invalide ,un message d’erreur est affichée après avoir exécutée les
actions correspondant au choix qu’on a fait, la fonction se termine .

25
4-Résultat :
A -Menu principal :

B-Menu de gestion contact :

26
27
C-Menu de gestion commande :

28
29
30
Bibliographie :

https://www.rocq.inria.fr/secret/Anne.Canteaut/COURS_C/cours.pdfiographie :

https://static.fnac-static.com/multimedia/editorial/pdf/9782212140125.pdf

31
Conclusion et perspectives

Pour conclure, nous avons effectué le mini-projet en tant que


étudiants de première année préparatoire. Lors de ce projet, on
a pu mettre en pratique nos connaissances théorique acquises
durant notre année scolaire sur langage de programmation c.
Ce mini-projet a été très instructive pour nous, car il nous a
permis de découvrir le domaine informatique dans le monde
réel surtout dans le cadre bancaire. On a pu progresser en
développant nos connaissances en pratiquant comme on
dit « la théorie ne peut guère se confirmer sans la pratique ».
Fort de cette expérience et en réponse à ses enjeux, on aimera
beaucoup par la suite essayer de nous en orienter vers de nouveau
programme informatique qui sont appliqués à la gestion de la relation
client.

32
33
34
35
36
37
38
39
40
41
42
43

Vous aimerez peut-être aussi