C/Visual C - Problema con implementacion Cola Dinamica

 
Vista:

Problema con implementacion Cola Dinamica

Publicado por Carlos (4 intervenciones) el 09/12/2006 19:37:54
Hola Estimados, les escribo porque debo presentar un trabajo en una semana (una simulacion del
funcionamiento de Internet), y estoy atasacado. Aca envio las tres clases involucradas en la
parte que no me funciona:

Un TERMINAL crea un MENSAJE nuevo, y ese mensaje debe ser puesto en la COLA de salida del TERMINAL.

Esta marcada la linea que me da error. El problema es que el Dev C no me muestra entero el
mensaje de error, y estoy totalmente desorientado cual puede ser el problema.

Uso Dev-C++ 4.9.8.0

Desde ya MUCHISIMAS GRACIAS, y espero me puedan enviar una luz al final del camino

Un abrazo

Carlos



// Clase : MENSAJE ----comienzo--------------------------

class Mensaje
{
protected:
short ROrigen;
short TOrigen;
int Tamanio;
int CantPaquetes;
int NumMensaje;
int NumPaquete;
short RDestino;
short TDestino;

public:
Mensaje();
Mensaje(short CodeR,short CodeT,int NumeroMensaje);
Mensaje(short CodeR,short CodeT,int NumeroMensaje,int CantidadPaq,int NumeroPaquete, short RDest, short TDest);
int getTamanio();
};

Mensaje::Mensaje()
{

};

Mensaje::Mensaje(short CodeR,short CodeT,int NumeroMensaje)
{
ROrigen=CodeR;
TOrigen=CodeT;

RDestino=rand()%CantRouters + 1;
TDestino=rand()%CantTerminales[CodeR] + 1;

Tamanio=rand()%1000 + 1;

};

Mensaje::Mensaje(short CodeR,short CodeT,int NumeroMensaje,int CantidadPaq,int NumeroPaq, short RDest, short TDest)
{
ROrigen=CodeR;
TOrigen=CodeT;

CantPaquetes= CantidadPaq;
NumPaquete=NumeroPaq;

RDestino=RDest;
TDestino=TDest;

};

int Mensaje::getTamanio()
{
return Tamanio;
};

// Clase : MENSAJE ----final-----------------------------

// Clase : COLA -------comienzo--------------------------

struct nodo {
Mensaje info;
struct nodo *sig;
};

typedef struct nodo *punteroaNodo;

punteroaNodo getNodo(void)
{
punteroaNodo p;
p=(punteroaNodo)malloc(sizeof(struct nodo));
return(p);
};

void liberarNodo(punteroaNodo p)
{
free(p);
}

class Cola
{
private:
punteroaNodo frente, fondo;

public:
Cola();
void poner(Mensaje dato);
Mensaje sacar();
int vacia();
};

Cola::Cola()
{
frente=NULL;
fondo=NULL;
};

void Cola::poner(Mensaje dato)
{
punteroaNodo p;
p=getNodo();
p->info=dato;
p->sig=NULL;

if(fondo==NULL)
frente=p;
else
(fondo)->sig=p;

fondo=p;
};

Mensaje Cola::sacar()
{
punteroaNodo p;
Mensaje dato;

p=frente;
dato=p->info;

frente=p->sig;
if (frente==NULL)
fondo=NULL;

liberarNodo(p);
return dato;
};

int Cola::vacia()
{
if(frente==NULL)
return 1;
else
return 0;
}

// Clase : COLA--------final-----------------------------

// Clase : TERMINAL -----comienzo----------------------------

class Terminal
{
private:
short int CodeRouter;
short int CodeTerm;
char nombreArch[100];
short ProxMensaje;
int NumMensaje;
Cola ColaLlegada();
Cola ColaSalida();
int NumerodeCiclo;

void grabar(char linea[100]);

public:
Terminal();
Terminal(string cadR,string cadT);
void Ciclo(int NumDeCiclo);
};

Terminal::Terminal()
{

};

Terminal::Terminal(string cadR,string cadT)
{

char cadena[100]="";
char ruta[100]="";
char caux1[3];
char caux2[3];

istringstream aux(cadR);
aux >> CodeRouter;
istringstream aux2(cadT);
aux2 >> CodeTerm;

itoa(CodeRouter,caux1,10);
itoa(CodeTerm,caux2,10);

strcat(ruta,"g:\\aed\\tf\\codigo\\Internet_23\\R");
strcat(ruta,caux1);
strcat(ruta,"_T");
strcat(ruta,caux2);
strcat(ruta,".txt");

strcpy(nombreArch,ruta);

ofstream fout(ruta);

fout << "Se crea el Terminal CODIGO: " << CodeRouter << "-" << CodeTerm << endl;

fout.close();

ProxMensaje=rand()%5 + 1;
NumMensaje=0;

};

void Terminal::grabar(char linea[100])
{

ofstream fout(linea);

fout << "Esto es una prueba de Terminal";

fout.close();

};

void Terminal::Ciclo(int NumDeCiclo)
{

NumerodeCiclo=NumDeCiclo;

if (ProxMensaje==NumDeCiclo)
{
NumMensaje=NumMensaje+1;

Mensaje Nuevo(CodeRouter,CodeTerm,NumMensaje);

ColaSalida.poner(Nuevo); // ESTA ES LA LINEA QUE ME DA ERROR !!

}; // if

}; // Terminal::Ciclo

// Clase : TERMINAL -----fin-----------------------------
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con implementacion Cola Dinamica

Publicado por Jesus Oliver (166 intervenciones) el 14/12/2006 11:57:51
Seria un detalle conocer el error :-D
o al menos un trocito
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con implementacion Cola Dinamica

Publicado por Carlos (4 intervenciones) el 14/12/2006 19:42:58
Lo unico que me muestra Dev C es esto:

390 G:\AED\TF\CODIGO\INTERNET_23\Internet.cpp
request for member `poner' in `

y ahi se corta... necesito una orientacion urgente, GRACIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con implementacion Cola Dinamica

Publicado por Jesus Oliver (166 intervenciones) el 19/12/2006 12:30:37
poner almacena una clase? es eso necesario?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con implementacion Cola Dinamica

Publicado por Carlos (4 intervenciones) el 19/12/2006 20:43:48
no una clase... yo lo que quise hacer es que almacene un objeto... de la clase Mensaje, pero un objeto al fin... Pero no sé qué hago mal...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar