Agenda en C

maijo
23 de Mayo del 2006
¡Hola! Tengo unproblema.. etngo hexa esta pequeña agenda, pero no me funciona! no se porque pero no me añade a nadie en la agenda... aki os envio el codigo! Por favor! ayudadme, la necesito para mñn y yo no encuentro el problema!!!!!!


#include<stdio.h>
#include<string.h>
#define MAX_TALLA 100
#define MAX_NOMBRE 50

struct Fecha {
int dia, mes, anyo;
};
typedef struct Fecha TipoFecha;

struct Persona {
char nombre[MAX_NOMBRE];
TipoFecha fecha_nac;
int telefono;
};
typedef struct Persona TipoPersona;

struct Agenda {
TipoPersona personas[MAX_TALLA];
int talla;
};
typedef struct Agenda TipoAgenda;

TipoPersona DatosAmigo () {
TipoPersona persona;
printf("Nombre: "); scanf("%s", persona.nombre);
printf("Dia de nacimiento: "); scanf("%d", &persona.fecha_nac.dia);
printf("Mes de nacimiento: "); scanf("%d", &persona.fecha_nac.mes);
printf("Anyo de nacimiento: "); scanf("%d", &persona.fecha_nac.anyo);
printf("Telefono: "); scanf("%d", &persona.telefono);
return persona;
}

TipoAgenda AnyadirAmigo (TipoAgenda agenda) {
TipoPersona datos;
int aux=1; //Para si se quiere añadir más de una persona en la agenda.
while(aux){
datos = DatosAmigo();
agenda.personas[agenda.talla++] = datos;
printf("Si desea añadir a más personas, pulse 1."); scanf("%d",&aux);
}
return agenda;
}

void Cumpleanyos (TipoAgenda agenda, int mes) {
int i;
printf("ttCUMPLEANYEROS DEL MES.n");
printf("%dn", agenda.talla);
for(i=0; i<agenda.talla; ++i){
printf("%sn", agenda.personas[i].nombre);
if(agenda.personas[i].fecha_nac.mes==mes)
printf("Nombre: %sn", agenda.personas[i].nombre);
}
}

void BorrarContacto (TipoAgenda agenda, char nombre[]) {
int i, j, elemento=0;
for(i=0; i<agenda.talla; ++i) {
if(strcmp(agenda.personas[i].nombre, nombre)==0) {
elemento = i;
break;
}
}
for(j=elemento; j<agenda.talla; ++j)
agenda.personas[j]=agenda.personas[j+1];
agenda.talla--;
}


int main(void) {
TipoAgenda agenda;
int opcion=-1, mes;
char nombre[MAX_NOMBRE];

agenda.talla = 0;

printf("############# AGENDA ############# n");
do{
printf("MENU.n");
printf("1) Anyadir contacto a la agenda.n");
printf("2) Cumpleanyos del mes.n");
printf("3) Borrar contacto de la agenda.n");
printf("4) Salir.n");
printf("Seleccione la opcion: "); scanf("%d", &opcion);

if(opcion==1)
AnyadirAmigo(agenda);
if(opcion==2) {
printf("Elija un mes: "); scanf("%d", &mes);
Cumpleanyos(agenda, mes);
}
if(opcion==3) {
printf("Nombre del contacto a eliminar: "); scanf("%s", nombre);
BorrarContacto(agenda, nombre);
printf("Contacto eliminado.n");
}
if(opcion==4) {
printf("Fin de la aplicacion. Gracias.n");
break;
}
}while(opcion>=1 || opcion<=4);
return 0;
}


ISAIAS DUQUE GOMEZ
23 de Mayo del 2006
//MODIFIQUE UN POCO, HICE LA SECCION DE DAR DE ALTAS Y CONSULTAR, HAZ LO DEMAS, BORRAR ES SENCILLO, Y LO DE BUSCAR POR MES AÑO, TMB, BUENO SUERTE, SALUDOS DESDE ACAPULCO,GRO

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

#define MAX_TALLA 100
#define MAX_NOMBRE 50


struct reg
{
int dia, mes, anio,aux;
long int tel;
char nombre[MAX_NOMBRE];
}

persona[MAX_TALLA];

int total=0;

void registrar(int *max)
{
char aux[50];
int band=0;
clrscr();
gotoxy(31,4);printf("REGISTRA PERSONAS");
gotoxy(1,7);printf("Nombre: ");scanf("%s",aux);
for(int x=0;x<*max;x++)
{
if(strcmp(persona[x].nombre,aux)==0 )
{
band=1;
gotoxy((80-(strlen(aux)+9))/2,24); printf("YA EXISTE %s",aux);
gotoxy(31,26);printf("Intenta Nuevamente");
break;
}
}
if(!band)
{
strcpy(persona[*max].nombre,aux);
gotoxy(1,9);printf("Dia de nacimiento: ");
scanf("%d", &persona[*max].dia);
gotoxy(1,11);printf("Mes de nacimiento: ");
scanf("%d", &persona[*max].mes);
gotoxy(1,13);printf("Anyo de nacimiento: ");
scanf("%d", &persona[*max].anio);
gotoxy(1,15);printf("Telefono: ");
scanf("%ld", &persona[*max].tel);
persona[*max].aux=1; //decimos que hay personas
(*max)++;
}
getch();
}

void contactos(int max)
{
int band=0,y=9;
clrscr();
gotoxy(34,3);printf("VER CONTACTOS");
for(int x=0;x<max;x++)
{
if(persona[x].aux==1)
{
band=1;
gotoxy(1,6);printf("NOMBRE");
gotoxy(20,6);printf("DIA");
gotoxy(35,6);printf("MES");
gotoxy(50,6);printf("ANO");
gotoxy(60,6);printf("TELEFONO");
gotoxy(1,y);printf("%s",persona[x].nombre);
gotoxy(20,y);printf("%d",persona[x].dia);
gotoxy(35,y);printf("%d",persona[x].mes);
gotoxy(50,y);printf("%d",persona[x].anio);
gotoxy(60,y);printf("%ld",persona[x].tel);
y+=2;
}
}
if(!band)
{
gotoxy(32,24);printf("NO HAY CONTACTOS");
}
getch();
}


void main(void)
{
char opc;
do
{
clrscr();
printf("############# AGENDA ############# n");
printf("nn");
printf("1) Anyadir contacto a la agenda.n");
printf("2) Cumpleanyos del mes.n");
printf("3) Borrar contacto de la agenda.n");
printf("4) Ver Mis Contactos.n");
printf("5) Salir.nn");
printf("############# AGENDA ############# n");
printf("nSeleccione la opcion: ");
opc=getch();
switch(opc)
{
case '1': registrar(&total);break;
case '2': break;
case '3': break;
case '4': contactos(total);break;
}
}
while(opc!='5');
}