Dev - C++ - necesito ayuda en c++

 
Vista:

necesito ayuda en c++

Publicado por yarnabeth (1 intervención) el 06/03/2010 22:40:49
tengo el siguiente programa en c++, no presenta errorres ni warning pero no corre agradezco la ayuda es urgente

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

struct afecha
{
char dia[3];
char mes[3];
char a_o[5];
};
struct info
{
char nombre[50];
char telefono[17];
char mensaje[80];
struct afecha fecha;
};
struct nodo
{
struct info dato;
struct nodo * prox_mens_alfa;
struct nodo * prox_mens_fecha;
};
struct nodo * nuevonodo();
int listavacia(struct nodo *);
void mostrar_alfa(struct nodo *);
void mostrar_fecha(struct nodo *);
int buscar_alfa(struct nodo * pri_alfa, char * nom);
int buscar_fecha(struct nodo * pri_alfa, char * nom);
struct nodo * insertar(struct nodo *, struct nodo *, struct info);

int main()
{
static struct nodo * pri_alfa = NULL;
static struct nodo * pri_fecha = NULL;
struct info x;
printf("\'fin\' para terminar \n");
printf("Ingrese nombre: ");
gets(x.nombre);
while(strcmpi(x.nombre, "fin"))
{
printf("ingrese telefono: ");
gets(x.telefono);
printf("ingrese mensaje: ");
gets(x.nombre);
printf("ingrese dia: ");
gets(x.fecha.dia);
x.fecha.dia[2] = '\0';
printf("Ingrese mes: ");
gets(x.fecha.mes);
x.fecha.mes[2] = '\0';
printf("Ingrese año: ");
gets(x.fecha.a_o);
x.fecha.a_o[4]='\0';

pri_alfa = insertar(pri_alfa, pri_fecha, x);
printf("\n\'fin\' para terminar \n");
printf("Ingrese nombre: ");
gets(x.nombre);
}
if(listavacia(pri_alfa) == 1)
{
printf("No se ingresaron registros");
getch();
}
else
{
printf("Lista ordenada alfabeticamente: \n");
mostrar_alfa(pri_alfa);
printf("\n\n");
printf("Lista ordenada por fecha: \n");
mostrar_alfa(pri_fecha);
}
system ("PAUSE");
return EXIT_SUCCESS;
}
struct nodo * nuevonodo()
{
struct nodo * nvo;
nvo = (struct nodo *)malloc(sizeof(struct nodo));
if(nvo == NULL)
{
printf("Memoria RAM llena");
getch();
exit(0);
}
else
return nvo;
}
int listavacia(struct nodo * pri_alfa)
{
if(pri_alfa == NULL)
return 1;
else
return 0;
}
void mostrar_alfa(struct nodo * pri_alfa)
{
char str[256];
struct nodo * aux_alfa;

strcpy(str, "");
aux_alfa = pri_alfa;
while(aux_alfa !=NULL)
{
strcat(str, "Nombre: [% s] - ");
strcat(str, "telefono: [% s] - ");
strcat(str, "mensaje: [% s] - ");
strcat(str, "fecha: [");
strcat(str, "% s-");
strcat(str, "% s-");
strcat(str, "% s]\n\0");
printf(str, aux_alfa->dato.nombre,
aux_alfa->dato.telefono,
aux_alfa->dato.mensaje,
aux_alfa->dato.fecha.dia,
aux_alfa->dato.fecha.mes,
aux_alfa->dato.fecha.a_o);
aux_alfa = (*aux_alfa).prox_mens_alfa;
}
system("PAUSE");
}
void mostrar_fecha(struct nodo * pri_fecha)
{
char str[256];
struct nodo * aux_fecha;

strcpy(str, "");
aux_fecha = pri_fecha;
while(aux_fecha !=NULL)
{
strcat(str, "Nombre: [%s] - ");
strcat(str, "Telefono: [%s] - ");
strcat(str, "Mensaje: [%s] - ");
strcat(str, "Fecha: [");
strcat(str, "%s-");
strcat(str, "%s-");
strcat(str, "%s]\n\0");
printf(str, aux_fecha->dato.nombre,
aux_fecha->dato.telefono,
aux_fecha->dato.mensaje,
aux_fecha->dato.fecha.dia,
aux_fecha->dato.fecha.mes,
aux_fecha->dato.fecha.a_o);
aux_fecha = (*aux_fecha).prox_mens_fecha;
}
system("PAUSE");
}
int buscar_alfa(struct nodo * pri_alfa, char * nom)
{
struct nodo * aux_alfa;
struct nodo * prt_alfa;
prt_alfa = pri_alfa;
while(prt_alfa !=NULL)
{
aux_alfa = prt_alfa;
if(strcmp(nom, prt_alfa->dato.nombre) == 0)
{
return 1;

}
prt_alfa = (*prt_alfa). prox_mens_alfa;
free(aux_alfa);
}
getch();
return 0;
}
int buscar_fecha(struct nodo * pri_fecha, char * nom)
{
struct nodo * aux_fecha;
struct nodo * prt_fecha;

prt_fecha = pri_fecha;
while(prt_fecha != NULL)
{
aux_fecha = prt_fecha;
if(strcmp(nom, prt_fecha->dato.nombre) == 0)
{
return 1;
}
prt_fecha = (*prt_fecha).prox_mens_fecha;
free(aux_fecha);
}
getch();
return 0;
}
struct nodo * insertar(struct nodo * pri_alfa, struct nodo * pri_fecha,
struct info x)
{
struct nodo * nvo_alfa;
struct nodo * prt_alfa;
struct nodo * ant_alfa;
struct nodo * nvo_fecha;
struct nodo * prt_fecha;
struct nodo * ant_fecha;
char str1[30];
char str2[30];

nvo_alfa = nuevonodo();
(*nvo_alfa).dato = x;
(*nvo_alfa).prox_mens_alfa = NULL;
(*nvo_fecha).prox_mens_fecha = NULL;
prt_alfa = pri_alfa;
prt_fecha = pri_fecha;
ant_alfa = NULL;
ant_fecha = NULL;
while((prt_alfa != NULL) &&strcmp(prt_alfa->dato.mensaje, x.mensaje)<0)
{
ant_alfa = prt_alfa;
prt_alfa = prt_alfa->prox_mens_alfa;
}
if (ant_alfa == NULL)
{
nvo_alfa->prox_mens_alfa = pri_alfa;
pri_alfa = nvo_alfa;
}
else
{
nvo_alfa->prox_mens_alfa = prt_alfa;
ant_alfa->prox_mens_alfa = nvo_alfa;
}
strcat(str1, prt_alfa->dato.fecha.a_o);
strcat(str1, prt_alfa->dato.fecha.mes);
strcat(str1, prt_alfa->dato.fecha.dia);
strcat(str1, "\0");
strcat(str2, x.fecha.a_o);
strcat(str2, x.fecha.mes);
strcat(str2, x.fecha.dia);
strcat(str2, "\0");
while((prt_fecha !=NULL) && strcmp(str1, str2) < 0)
{
ant_fecha = prt_fecha;
prt_fecha = prt_fecha->prox_mens_fecha;
}
if(ant_fecha == NULL)
{
nvo_fecha->prox_mens_fecha = pri_fecha;
pri_fecha = nvo_fecha;
}
else
{
nvo_fecha->prox_mens_fecha = prt_fecha;
ant_fecha->prox_mens_fecha = nvo_fecha;
}

return pri_alfa;
}
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