Descarga: http://www.mediafire.com/?pujccy7douubkgo
Código:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//
// UTN FRGP TSP
// BS
// mail: david_bs@live.com
// web: Etalking.Com.Ar
// 2012
//
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <windows.h>
#include <stdio.h>
#include <fstream.h>
#include <list>
#include <string>
using namespace std;
struct ScheduledCommand
{
string comando;
int prioridad;
};
typedef list<ScheduledCommand> ScheduleList;
ScheduleList scheduleList;
Las funciones de agregar, listar y borrar
Código:
void IngresarComando(){
string cmd;
char comando[21];
memset(comando,0,sizeof(comando));
cout << "Ingrese un comando" << endl;
cin.getline(comando,20,'\n');
cmd.assign(comando);
// cout << const_cast<char*>(cmd.c_str()) << endl;
// system("pause");
if(cmd.empty()) // Si se ingresa una línea en blanco procede a mostrar los comandos en lista
{
list<ScheduledCommand>::iterator pos;
for(pos=scheduleList.begin();pos!=scheduleList.end();++pos)
{
printf("pri:%d -- cmd:\"%s\"\n", (*pos).prioridad, (*pos).comando.c_str() );
}
return;
}
ScheduledCommand tmp;
tmp.comando=cmd;
tmp.prioridad=1;
if(scheduleList.size()<32){
scheduleList.push_back(tmp);
}
}
void BorrarComandos(){
scheduleList.erase(scheduleList.begin(),scheduleList.end());
}
void VerificarComandos(){
cout << "\n";
int cantidad=0;
for( ScheduleList::iterator pos = scheduleList.begin(); pos != scheduleList.end(); ++pos)
{
// cantidad++;
if( (*pos).prioridad == 1 )
{
cantidad++;
cout << "Comando: " << const_cast<char*>((*pos).comando.c_str()) << endl;
scheduleList.erase(pos); // lo borra luego de verificarlo
break;
}
}
if(cantidad==0)
cout << "No hay comandos !" << endl;
}
La función main para realizar las pruebas..
Código:
int main(){
IngresarComando();
IngresarComando();
IngresarComando();
VerificarComandos();
VerificarComandos();
VerificarComandos();
BorrarComandos();
VerificarComandos();
cin.get();
return 0;
}