J'ai un probleme en c++ avec les liste chainé

Signaler
Messages postés
5
Date d'inscription
dimanche 19 décembre 2004
Statut
Membre
Dernière intervention
24 décembre 2004
-
Messages postés
5
Date d'inscription
dimanche 19 décembre 2004
Statut
Membre
Dernière intervention
24 décembre 2004
-
/*
l'ennoncé de mon projet :

on désire concevoir par l'approche objet, une application pour simuler
le fonctionnement du noyau du systéme le fonctionnement du noyau du systéme
d'exploitation permettant d'executer les différentes tâches qui se présentent au syéstéme .
pour chaque tâche présentée, un processus est crée.il est identifié par un code unique,
son nom, l'instant de son arrivée, son état (actif ou en attente) , sa priorité, le temps d'exécution demandé sur le processeur
et le temps consommé.

plusieurs types d'ordonnancement sont possibles (fifo, lifo, par priorité, par quantum de temps ...).Pour chacun de ces types,
on put associer un objet ordonnanceur qui simule l'execution des processus selon l'algorithme approprié.


on demande de:

1- canccevoir une classe Processus en imaginant tous les services possibles de creation,suppression , affichage , modification , ect...

2- concevoir une classe ordonnanceur intégrant les services permettant de simuler l'execution selon l'algorithme choisi .

3- proposer un programme permettant de simuler l'exécution d'une liste de processusselon un algorithme choisi d'ordonnancemant et d'afficher a chaque instant l'évolution de l'exécution.

4-imaginer et proposer une classe dérivée processus_specifique pour gérer certaines tâches spécifiques et proposer un programme
manipulant des objets polymorphes.

nb:les processus sera traité par des listes chainés.

*/
/* programme en c++ */

#include
#include<stdio.h>
#include <conio.h>
#include<string.h>
#include<dos.h>
#include<stddef.h> //POUR NULL
#define ESC '\33'

struct process{
int code,prio,intar,tpsex,tpscon;
char nom[],etat;
};

struct element{
element *suiv;
process val;
};
/*************************/

class processus
{
element *debut; //pointeur sur premier element
element *cur;
friend class ordonnanceur;
public:

static int nb;
processus();
processus(int);
~processus();
void creation(int);
void suppression(int);
void modification(int);
void affiche();
};

element processus::*cur=0;
int processus::nb=0;

processus::processus()
{
/*debut=NULL; //constructeur
cur=debut; */
}

processus::processus(int n)
{
cur=new element[n];
}
processus::~processus()
{
delete[]cur;
}

void processus::creation(int n)
{
int i;
debut=NULL;
cur=debut;
for(i=0;i<n;i++)
{
cur=new element;
cout<<endl<<"p : "<suiv=debut;
cprintf("donner le code de processus : ");cin>>cur->val.code;
cprintf("donner le nom de processus : ");cin>>cur->val.nom;
cprintf("donner l'instant d'arriver : ");cin>>cur->val.intar;
cprintf("donner le temps d'execution : ");cin>>cur->val.tpsex;
cprintf("donner son priorite : ");cin>>cur->val.prio;
debut=cur;

};

}

void processus::suppression(int f)
{element *p=debut,*q;q=p;
while(p)
{
if(p->val.code!=f)
q=p;p=p->suiv,
q->suiv=p->suiv,
delete(p);
}
;
}

void processus::modification(int m)
{
int i;
while(cur!= NULL)
if(cur->val.code=m)
{
cprintf("donner le nouveau code de processus :");cin>>cur->val.code;
cprintf("donner le nouveau nom de processus :");cin>>cur->val.nom;
cprintf("donner the new instant d'arriver :");cin>>cur->val.intar ;
cprintf("donner the new temps d'execution :");cin>>cur->val.tpsex;
cprintf("donner son new priorité :");cin>>cur->val.prio ;
}
}

/******************************/

class ordonnanceur
{
friend class processus;
public:
processus l;
void ordonner(int,int);
friend processus::creation(int);
};

void ordonnanceur::ordonner(int k,int nb)
{
int i=0;
switch(k)
{
case 1 :
cout<<nb; //lifo
while(l.cur)
{cout<val.code<<endl;i++;
l.cur=l.cur->suiv;}
break;

case 2 :
for(i=0;i<nb;i++) //fifo
cout<<l.cur->val.code<<endl;break;
default:;
}
}
/***********************************/

void main()
{
processus x;ordonnanceur o;int w,b;

cprintf("donner le nombre de processus a traite : ");cin>>w;
x.creation(w);
clrscr();
gotoxy(3,3);cprintf("vous pouvez ordonner les processus inseré suivant les algorithmes : ");
gotoxy(3,7);cprintf("1 - lifo");
gotoxy(3,9);cprintf("2 - fifo");
do{
gotoxy(3,12);
cprintf("choisir le nombre correspondant a ton algorithme : "),cprintf(" "),cin>>b,cprintf(" ");
}
while((b!=1)&&(b!=2));clrscr();
o.ordonner(b,w);
getch();
}

4 réponses

Messages postés
232
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
27 octobre 2007

Ici, on fait pas le boulot des autres.
T attends quoi? Qu'on fasse tes études pour toi?
Personnellement je ne suis pas d'accord.
Je demande d'ailleurs si un admin lis ce poste qu'il le supprime purement et simplement.
Bonne soirée.

Psycho
Messages postés
232
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
27 octobre 2007

pardon : post et non pas "poste"

Psycho
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Lol sans lire ton commentaire, c'estl a réflexion que je me faisais.
Messages postés
5
Date d'inscription
dimanche 19 décembre 2004
Statut
Membre
Dernière intervention
24 décembre 2004

comment en peut trié une liste chainée...