sábado, 25 de mayo de 2013
Codigo de fifo en Linux mediante el g++
#include<iostream>
#include<stdlib.h>
using namespace std;
struct nodo
{
char proceso;
int tllegada;
int tejecucion;
int tfinal;
int tretorno;
int tespera;
int tmuerto;
struct nodo *sgte;
};
struct cola
{
struct nodo *delante;
struct nodo *atras;
};
void inicializa(struct cola&);
void encola(struct cola&,struct nodo);
void vercola(struct cola);
int main()
{
system("/usr/bin/clear");
int opc,n;
struct nodo cte;
struct cola q;
inicializa(q);
do
{
cout<<"*** MENU ***\n";
cout<<"1. Encolar\n";
cout<<"2. Visualizar cola\n";
cout<<"3. Salir";
cout<<"\n INGRESE OPCION: ";cin>>opc;
switch(opc)
{
case 1:
cout<<"ingrese numero de paquetes de la cola:";cin>>n;
cte.tfinal=0;
cte.tmuerto=0;
for(int i=1;i<=n;i++)
{
cout<<"Ingrese proceso "<<i<<":"; cin>>cte.proceso;
cout<<"Tiempo de llegada:";cin>>cte.tllegada;
cout<<"Tiempo de ejecucion:";cin>>cte.tejecucion;
cte.tfinal=(cte.tejecucion)+(cte.tfinal);
cte.tretorno=cte.tfinal-cte.tllegada;
cte.tespera=cte.tretorno-cte.tejecucion;
cte.tmuerto=cte.tespera+cte.tmuerto;
encola(q,cte);
}
system("/usr/bin/clear");
break;
case 2:
system("/usr/bin/clear");
cout<<"\nLOS ELEMENTOS DE LA COLA:\n";
cout<<"proc.\tt.lleg.\tt.ejec.\tt.fin.\tt.ret.\tt.esp."<<endl;
vercola(q);
cout<<"El tiempo muerto es:"<<cte.tmuerto<<endl;
cout<<endl;
break;
}
}while(opc!=3);
}
void inicializa(struct cola&q)
{
q.delante=NULL;
q.atras=NULL;
}
void vercola(struct cola q)
{
struct nodo*p;
p=q.delante;
while(p!=NULL)
{
cout<<p->proceso<<"\t"<<p->tllegada<<"\t"<<p->tejecucion<<"\t"<<p->tfinal<<"\t"<<p->tretorno<<"\t"<<p->tespera<<endl;
p=p->sgte;
}
cout<<endl;
}
void encola(struct cola &q,struct nodo cte)
{
struct nodo*p;
p=new(struct nodo);
*p=cte;//asignacion de estructuras
p->sgte=NULL;
if(q.delante==NULL)
q.delante=p;
else
(q.atras)->sgte=p;
q.atras=p;
}
Suscribirse a:
Entradas (Atom)