ayuda en c++

yampier
25 de Abril del 2004
por favor sera que alguien podria ayudarme a realizar un programa sencillo en c++ que simule o haga las opciones de mensajes de un celular... osea guarde, envie y elimine los mensajes de textos recibidos por fecha de llegada.. solo guarde 20 y si llega uno nuevo o lo creo, borre el mas viejo... gracias por favor ayudenme

noel solw
25 de Abril del 2004
Te recomiendo la siguiente estructura de datos :
una lista de char pointers, para almacenar los dados, en lo que en ingles se llama queue, con dos operanciones : insert al princio de la lista y delete, al final, en reginen de fifo (first in - first out).
Para mas sencilles la lista puede implementarse con
char *p[20] y dos pointers, al principio y final de la misma.
A medida que llegan los mensajes, se introducen en la lista hasta que esta se llena. Desde ese momento, por cada mensaje nuevo a insertar al principio de la lista, es necesario eliminar uno al final de la misma.
Espero no haberte causado un dolor de cabeza, pensandolo un poco veras que la solucion no es complicada. Suerte ! ! !

yampier
25 de Abril del 2004
amigo la verdad estoy algo corto de tiempo y no he podido dar con eso ... el profe no nos explica bien y no estoy bien documentado con c++,... se programar solo con visual basic... que podrias hacer por mi ... ayudame por favor

noel solw
25 de Abril del 2004
Tratare de ayudarte, dame tiempo.

yampier
25 de Abril del 2004
gracias amigo voy a ver si funciona ahora....dios te bendiga

noel solw
25 de Abril del 2004
Este es el programa prometido:


// programa celular.cpp
// written in Borland CPP ver 4.5

#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>

const int N = 20; // para probar el programa conviene cambiar a N = 4

void Show(char **p)
{
for(int i = 0;i < N;i++)
if(p[i])
cout << p[i] << endl;
cout << endl;
} // SHOW

int Input(char **p,int index)
{
char str[80];
cout << "entre un mensage, fin para salir --> ";
gets(str);
if(!strcmp(str,"fin"))
return 0;
p[index] = new char[strlen(str)];
strcpy(p[index],str);
return 1;
} // INPUT

int GetChoice()
{
cout << "mostrar lista <Y/N> ";
char choice = getche();
cout << endl;
if(choice == 'y' || choice == 'Y')
return 1;
return 0;
} // GET CHOICE

void Process()
{
char *p[N] = {NULL};
int index = 0;
while(Input(p,index))
{
if(++index == N)
index = 0;
if(GetChoice())
Show(p);
}
for(int i = 0;i < N;i++)
if(p[i])
delete p[i];
} // PROCESS

void main()
{
Process();
cout << "end of program - good bye ! ! ! " << endl;
} // MAIN