C/Visual C - NO ME COMPILA LA AGENDA CON FUNCIONES

 
Vista:

NO ME COMPILA LA AGENDA CON FUNCIONES

Publicado por kuku (6 intervenciones) el 03/05/2007 09:34:56
Hola!

Ya pedi ayuda anteriormente por aqui, pero es q no consigo ver porque no me funciona.

Por cierto el void en clase no lo he usado ¿pero hay otra forma para no poner el void?
Otra cosa ¿no hay q usar como puteros con el asterisoco o algo asi?
Y ya por ultimo ¿esto esta bien puesto donde lo puse:
system("PAUSE");
return 0; ?

A ver si me podeis decir como estaria bien del todo, muchas gracias.

#include <stdio.h>
#include <stdlib.h>
#include <conio.c>
#include <time.h>

struct fechas
{
int dia_semana;
int dia;
int mes;
int ano;
};

struct fechas ordenador;

struct agenda
{
char nombre[50];
char apellido1[50];
char apellido2[50];
int edad[3];
int telefono[9];
int movil[9];
char mail[30];
int fecha[10];
struct fechas ordenador;
};
struct agenda contactos[100];

void escribir_menu ()
{
printf ("1- Agregar un contacto\n");
printf ("2- Listar todos los contactos\n");
printf ("3- Buscar un contacto por nombre\n");
printf ("4- Borrar un contacto\n");
printf ("5- Quien cumple los annos hoy\n");
printf ("6- Salir\n\n");
printf ("Selecciona una opcion: ");
fflush(stdin);
scanf("%d",&opcion);

void agregar_contacto ()
{
if(cont == MAX)
{
printf("Agenda llena.");
getch();
}
else
{
cont++;
system("cls");
printf("Introduzca un nombre: ");
fflush(stdin);
scanf("%s", contactos[cont].nombre);
printf("Introduzca el primer apellido: ");
fflush(stdin);
scanf("%s", contactos[cont].apellido1);
printf("Introduzca el segundo apellido: ");
fflush(stdin);
scanf("%s", contactos[cont].apellido2);
printf("Introduzca la edad: ");
fflush(stdin);
scanf("%s", contactos[cont].edad);
printf("Introduzca el numero de telefono: ");
fflush(stdin);
scanf("%s", contactos[cont].telefono);
printf("Introduzca el movil: ");
scanf("%s", contactos[cont].movil);
printf("Introduzca el e-mail: ");
fflush(stdin);
scanf("%s", contactos[cont].mail);
printf("Introducza la fecha de nacimiento: ");
fflush(stdin);
scanf("%s", contactos[cont].fecha);
}

printf("\n Pulse enter para volver al menu.");
getch();
system("cls");
}

void listar ()
{
system("cls");
for(i=1;i<=cont;i++)
{
printf("Nombre: %s\n", contactos[*i].nombre);
printf("Apellido primero: %s\n", contactos[*i].apellido1);
printf("Apellido segundo: %s\n", contactos[*i].apellido2);
printf("Edad: %s\n", contactos[*i].edad);
printf("Telefono: %s\n", contactos[*i].telefono);
printf("Movil: %s\n", contactos[*i].movil);
printf("E-mail: %s\n", contactos[*i].mail);
printf("Fecha de nacimiento: %s\n", contactos[*i].fecha);
}
getch();
system("cls");
}

void buscar ()
{
system("cls");
fflush(stdin);
printf("Introduzca el nombre del contacto que desea buscar: ");
gets(contactos2);
for(i=1;i<=MAX;i++)
{
if(strcmp(contactos2,contactos[*i].nombre)==0)
{
printf("Nombre: %s\n", contactos[*i].nombre);
printf("Apellido primero: %s\n", contactos[*i].apellido1);
printf("Apellido segundo: %s\n", contactos[*i].apellido2);
printf("Edad: %s\n", contactos[*i].edad);
printf("Telefono: %s\n", contactos[*i].telefono);
printf("Movil: %s\n", contactos[*i].movil);
printf("E-mail: %s\n", contactos[*i].mail);
printf("Fecha de nacimiento: %s\n", contactos[*i].fecha);
}
}
getch();
system("cls");
}

void borrar ()
{
system("cls");
fflush(stdin);
printf("Introduzca el nombre del contacto que desea borrar: ");
scanf("%s",contactos3);

for (i=0;i<MAX;i++)
{
if(strcmp(contactos3,contactos[i].nombre)==0)
{
contactos[i]=contactos[i+1];
for(x=i;x<cont;x++)
{
contactos[x]=contactos[x+1];
}
x--;
cont--;
}
}
system("cls");
}

void cumple ()
{

temp = time(NULL);

fecha = localtime(&temp);

ordenador.dia_semana=fecha->tm_wday;

ordenador.dia=fecha->tm_mday;

ordenador.mes=fecha->tm_mon;

ordenador.mes=ordenador.mes+1;

ordenador.ano=fecha->tm_year;

ordenador.ano=ordenador.ano+1900;
}

system("PAUSE");
return 0;
}
int main(int argc, char *argv[])
{
int opcion,i=0,x=0;
int MAX=100,cont=0,pos=0;
char contactos2[50],contactos3[50];

time_t temp;
struct tm *fecha;

do{

fflush(stdin);
scanf("%d",&opcion);

switch(opcion)
{
case 1:
agregar_contacto ();
break;

case 2: //Listar todo
liscar ();
break;

case 3: //Buscar por nombre
buscar ();
break;

case 4: //Borrar
borrar ();
break;

case 5: //¿Quien cumple años?
cumple ();
break;

case 6: //Salir

break;

}
}while (opcion!<6);
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:NO ME COMPILA LA AGENDA CON FUNCIONES

Publicado por Nelek (816 intervenciones) el 04/05/2007 13:14:00
Hola,

solo le he echado un vistazo rapido, pero...

Si los punteros se declaran con el asterisco y se usan con la flecha en lugar de con el punto.

Primera cosa, quita el asterisco que pones al lado de la i dentro de los corchetes

contactos[*i].nombre --->> contactos[i].nombre



Segundo, cuando haces un scanf, si donde lo guardas es puntero entonces se hace

scanf("%s", contactos[cont]->movil);

Si no... se hace

scanf("%s", &contactos[cont].movil);

Supongo que habra todavia alguna cosa mas que pulir, pero esas son las que me han llamado la atencion
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