begin process at 2008 07 06 17:25:31
1 205 660 membres
227 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : j'ai un probleme en c++ avec les liste chainé [ Archives / Au secours ] (walidos09)

j'ai un probleme en c++ avec les liste chainé le 20/12/2004 16:22:38

walidos09
/*
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 <iostream.h>
#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 : "<<i<<endl<<endl<<endl;

cur->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<<i<<"see /t"<<l.cur->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();
}

Re : j'ai un probleme en c++ avec les liste chainé le 20/12/2004 20:27:12

psycho
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

Re : j'ai un probleme en c++ avec les liste chainé le 20/12/2004 20:28:03

psycho
pardon : post et non pas "poste"

Psycho

Re : j'ai un probleme en c++ avec les liste chainé le 20/12/2004 22:15:51

luhtor
Lol sans lire ton commentaire, c'estl a réflexion que je me faisais.

Re : j'ai un probleme en c++ avec les liste chainé le 24/12/2004 01:09:13

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


Classé sous : int, processus, val, cur, cprintf

Participer à cet échange

Pub



Appels d'offres

Plugin Dialer outlook
Budget : 2 000€
Travail graphique- ill...
Budget : 1 000€
creation de marque et ...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS