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)

lundi 20 décembre 2004 à 16:22:38 | j'ai un probleme en c++ avec les liste chainé

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();
}

lundi 20 décembre 2004 à 20:27:12 | Re : j'ai un probleme en c++ avec les liste chainé

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

lundi 20 décembre 2004 à 20:28:03 | Re : j'ai un probleme en c++ avec les liste chainé

psycho

pardon : post et non pas "poste"

Psycho

lundi 20 décembre 2004 à 22:15:51 | Re : j'ai un probleme en c++ avec les liste chainé

luhtor

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

vendredi 24 décembre 2004 à 01:09:13 | Re : j'ai un probleme en c++ avec les liste chainé

walidos09

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



Cette discussion est classé dans : int, processus, val, cur, cprintf


Répondre à ce message

Sujets en rapport avec ce message

conversion decimal en binaire sans connaitre la taille du nombre [ par kobee12 ] Est ce que quelqu'un pourrait m'aider. Voici un algo qui convertit un nombre biaire en decimal : bin_digits est defini avec une taille de 10. Or j'aim réception données d'un serveur [ par surfeurnet ] Voila j'ai crée un fonction qui se connecte à un serveur dont l'ip et le port sont précisés en argument, mais je ne reçoit pas ou je n'arrive pas à li Pointeurs [ par ph0ton ] salut,j'ai beaucoup de mal a ecrire des pointeurs correctement, et j'aurai besoin de l'avis d'un connaisseur pour savoir si ce que j'ai ecrit est corr [C] Pointeur int comme paramètre dans une function qui ne marche pas [ par nitrique ] Bonjour à tous,J'ai retourné les pointeurs dans tous les sens mais rien n'y fait.J'aimerais modifier la valeur d'une variable int à l'interieur d'une Programmation Orientée Composant (pile) [ par dragarth1 ] Bonjour tout le monde!J'ai un devoir à faire pour l'école, nous devons développer un composant pile qui est ensuite utilisé par tpile, tpile étant le interface de jeu [ par cafou ] sltest ce que qu'elqu'un peut me propose une interphase graphique et des animations au jeu en language c si dessousmerci d'avance#include#include#incl Problème : Liste en Memoire partagée [ par 6miK ] Bonjour à tous et joyeux noel Voici mon probleme: j'ai une liste chainée qui servira à contenir des entiers qui seront le nom des fichiers à imprimer Problem avec des pointeur mais je c'est pourquoi ! [ par WaFFel ] bha et bien jai fait un petit code qui sert a rien c'etais juste pour utiliser des pointeur mais jai un problem et ne ne sais pas pourquoi sa bogueCOD C++ switch [ par blastmanu ] Bonjour tt le monde!Et oui j'ai encore une question je voudrais savoir si il est possible de declarer une variable a l'interieur d'une boucle switchpa aider moi plz avant le 5 avril [ par riadusse ] voici mon programme de simulation de processus selon la méthode SJFj ai pas compris pourquoi l affichage est très très bizarre voici mon programme en


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,484 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.