systemesdeproduction.blogspot.com
MINI-PROJET :
Gestion de la mémoire en file
Réalisé par :
systemesdeproduction.blogspot.com
SOMMAIRE
ENIM 1
Gestion de la mémoire en file
systemesdeproduction.blogspot.com
But de TP……………………………………………………………………..3
Introduction………………………………………………………………..…3
Description du
programme ………………………………………………...3
Elaboration du
menu ………………………………………………………..4
Création de la file :
……………………………………………………………4
Affichage de la file:
……………………………………………………………6
Affichage
écran………………………………………………………………..9
ENIM 2
Gestion de la mémoire en file
systemesdeproduction.blogspot.com
BUT de TP :
Écriture d’un programme (en C) qui gère une file du type FIFO (First In First
Out) de 8 entiers. Pour la compilation, nous avons utilisés le Visual C++.
Introduction :
Une file d’attente est une structure linéaire d’élément telle que les suppressions ne peuvent
être effectuées qu’à une extrémité appelée tête et les insertions ne peuvent être faites qu’à
l’autre extrémité appelée queue.
Les files d’attentes sont appelées également FIFO (premier entré premier sorti) puisque le
premier élément de la file d’attente sera le premier à la quitter. Exemple : Une file d’attente
devant des guichets (lorsque tout le monde se respecte) est de type FIFO ou bien un train qui
passe sous un pont, le premier wagon entré premier sorti.
Description du programme :
Dans toutes les fonctions de manipulation de la file, on ne commence le traitement qu’après
avoir vérifié que la file a bien été créée. Les étapes qui ont été suivies dans ce travail, sont les
suivantes :
➢ La création de la file ;
➢ L’affichage de la file.
Pour ce faire, un menu a été établi. Il comporte toutes les fonctionnalités citées et aussi des
fonctions dont le rôle est la minimisation ainsi que la gestion d’erreurs.
ENIM 3
Gestion de la mémoire en file
systemesdeproduction.blogspot.com
Elaboration du menu :
Le menu général de notre programme se présente comme suit:
➢ Créer de la file.
➢ Sortir du programme.
Création de la file :
File vide/pleine :
1. FILEVIDE:
Fonction du type booléen qui ne prend rien comme paramètre elle teste sur une variable
K, si elle est égale à 0, la fonction retourne True, sinon elle retourne False.
2. FILEPLEINE :
Fonction du même type que Filevide, elle ne prend rien comme paramètre elle teste sur
une variable K, si elle est égale à 0, la fonction retourne True, sinon elle retourne False.
ENIM 4
Gestion de la mémoire en file
systemesdeproduction.blogspot.com
ENIM 5
Gestion de la mémoire en file
systemesdeproduction.blogspot.com
2. Une fois le premier test est vrai, on vérifie si la file est vide. Si oui, pas
de suppression, sinon on supprime le premier élément inséré dans la file
et on se positionne (AE) dans le prochaine case.
Affichage de la file:
La file doit être créée et contient au moins un élément. Dans ce cas on affiche
tous les éléments qu’elle contient depuis AE à AR.
ENIM 6
Gestion de la mémoire en file
systemesdeproduction.blogspot.com
Code source :
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define DMAX 8
//definition des fonction
int *T, *AE, *AR, k, file_cree=0;
void CREFILE()
{
T=(int *)malloc(DMAX*sizeof(int));
AE=AR=T;
k=0;
file_cree=1;
}
bool FILEVIDE()
{
if(k==0) return true;
else return false;
}
bool FILEPLEINE()
{
if(k<DMAX) return true;
else return false;
}
void SUPPRIMER(){
if(!FILEVIDE()){
printf("l'element supprime=%d\n", *AE);
if(AE<(T+7)){
AE++;
k--;
}
else AE=T;
}
}
void AFFICHE(){
int *pointeur, i=0;
printf("\n---------------------------------\n");
if(!FILEVIDE()){
pointeur=AE;
do{
printf("l'element %d est %d\n",i+1,*pointeur);
if(pointeur<(T+7)) pointeur++;
else pointeur=T;
ENIM 7
Gestion de la mémoire en file
systemesdeproduction.blogspot.com
i++;
}while(pointeur!=AR);
}else printf("La file est vide\n");
printf("---------------------------------\n");
}
ENIM 8
Gestion de la mémoire en file
systemesdeproduction.blogspot.com
printf("Appuyer sur une touche pour revenir au
menu\n");
getch();
}
break;
case 4:
if(file_cree==0){
printf("Vous devez d'abord creer une file et la
remplir\n");
printf("Appuyer sur une touche pour revenir au menu\n");
getch();
}
else{
AFFICHE();
printf("Appuyer sur une touche pour revenir au
menu\n");
getch();
}
break;
case 5:
free(T);
free(AE);
free(AR);
exit(1);
break;
default :
printf("Choisissez parmi les chiffres 1,2,3,4,5 \n");
printf("Appuyer sur une touche pour revenir au menu\n");
getch();
}
}
getch ();
return 0;
}
ENIM 9
Gestion de la mémoire en file
systemesdeproduction.blogspot.com
Pour accéder au menu, l’utilisateur doit taper un nombre compris entre 1 et 5 sinon un
message s’affichera.
ENIM 10
Gestion de la mémoire en file
systemesdeproduction.blogspot.com
ENIM 11
Gestion de la mémoire en file
systemesdeproduction.blogspot.com
ENIM 12