Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <conio.h>
- #include <dos.h>
- typedef struct agenda{
- char nombre[20];
- char direccion[30];
- char tel[20];
- int calculado;
- } Agenda;
- /* Arreglo que almacena en agenda */
- Agenda agenda[100];
- /* Contiene el numero de personas actual */
- int total = 0;
- void presentacion();
- void cargar(), guardar(), insertar(Agenda info);
- void ingresar(),modificar(), eliminar(), mostrar();
- char menu(void);
- void main(void)
- {
- clrscr();
- cargar();
- presentacion();
- clrscr();
- char op;
- for(;;)
- {
- switch(op=menu())
- {
- case '1':
- ingresar();
- getch();
- break;
- case '2':
- modificar();
- getch();
- break;
- case '3':
- eliminar();
- getch();
- break;
- case '4':
- mostrar();
- getch();
- break;
- case '5':
- break;
- default :
- printf("Opcion no valida");
- getch();
- break;
- }
- if(op=='5') return;
- clrscr();
- }
- }
- void insertar(Agenda info)
- {
- strcpy(agenda[total].nombre, info.nombre);
- strcpy(agenda[total].direccion, info.direccion);
- strcpy(agenda[total].tel, info.tel);
- agenda[total].calculado= info.calculado;
- total++;
- }
- void cargar()
- {
- Agenda info;
- FILE *fp;
- fp=fopen("agenda.txt","r");
- if(fp==NULL)
- {
- printf("No se puede abrir el archivo\n");
- return;
- }
- while(!feof(fp))
- {
- if(fread(&info, sizeof(Agenda), 1, fp)!=1) break;
- insertar(info);
- }
- fclose(fp);
- }
- void guardar()
- {
- Agenda info;
- FILE *fp;
- fp=fopen("agenda.txt","w");
- if(fp==NULL)
- {
- printf("No se puede abrir el archivo\n");
- return;
- }
- for(int i=0; i<total; i++)
- fwrite(&agenda[i], sizeof(Agenda), 1, fp);
- fclose(fp);
- }
- int edad (struct date fecha)
- {
- struct date hoy;
- getdate(&hoy);
- int anios = hoy.da_year - fecha.da_year;
- if(hoy.da_mon < fecha.da_mon)
- anios--;
- else if(hoy.da_mon == fecha.da_mon && hoy.da_day < fecha.da_day)
- anios--;
- return anios;
- }
- void ingresar()
- {
- int dia,mon,year;
- Agenda info;
- struct date fecha;
- gotoxy(30,29); printf(" NOMBRE: ");
- gotoxy(30,31); printf(" DIRECCION: ");
- gotoxy(30,33); printf(" TELEFONO: ");
- gotoxy(25,35); printf("FECHA NACIMIENTO");
- gotoxy(30,37); printf(" DIA: ");
- gotoxy(30,39); printf(" MES: ");
- gotoxy(30,41); printf(" AñO: ");
- gotoxy(43,29); fflush(stdin); gets(info.nombre);
- gotoxy(43,31);fflush(stdin); gets(info.direccion);
- gotoxy(43,33);fflush(stdin); gets(info.tel);
- gotoxy(43,37);//scanf("%d",&dia);
- dia=0;
- do{
- scanf("%d",&dia);
- gotoxy(43,37);
- printf(" ");
- }while(dia<1 || dia >31);
- gotoxy(43,39);scanf("%d",&mon);
- gotoxy(43,41);scanf("%d",&year);
- fecha.da_day=dia;
- fecha.da_mon=mon;
- fecha.da_year=year;
- info.calculado=edad(fecha);
- insertar(info);
- guardar();
- gotoxy(35,43);printf("Persona ingresada exitosamente");
- }
- void modificar()
- {
- char nombre[20];
- int i;
- printf("Ingrese nombre a modificar: ");
- fflush(stdin);
- gets(nombre);
- clrscr();
- for(i=0; i<total; i++)
- if(!strcmp(agenda[i].nombre, nombre))
- {
- gotoxy(30,6); printf("--- Datos actuales ---\n");
- gotoxy(11,8); printf("NOMBRE");
- gotoxy(26,8); printf("DIRECCION");
- gotoxy(44,8); printf("TELEFONO");
- gotoxy(11,10);printf("%s", agenda[i].nombre);
- gotoxy(25,10);printf("%s", agenda[i].direccion);
- gotoxy(45,10);printf("%s", agenda[i].tel);
- gotoxy(30,16); printf("--- Nuevos datos ---\n");
- gotoxy(11,18);gets(agenda[i].nombre);
- gotoxy(25,18); gets(agenda[i].direccion);
- gotoxy(45,18);gets(agenda[i].tel);
- guardar();
- printf("\n\nDatos actualizados exitosamente!");
- return;
- }
- if(i==total)
- gotoxy(35,43); printf("Persona no encontrada");
- menu();
- }
- void eliminar()
- {
- char nombre[20];
- int i;
- printf("Ingrese nombre a eliminar: ");
- gets(nombre);
- for(i=0; i<total; i++)
- if(!strcmp(agenda[i].nombre, nombre))
- {
- /* Recorre registros posteriores */
- for(int j=i+1; j<total; j++)
- {
- strcpy(agenda[j-1].nombre, agenda[j].nombre);
- strcpy(agenda[j-1].direccion, agenda[j].direccion);
- strcpy(agenda[j-1].tel, agenda[j].tel);
- }
- gotoxy(35,43); printf("Persona eliminada");
- total--;
- guardar();
- return;
- }
- if(i==total)
- gotoxy(35,43); printf("Persona no encontrada");
- }
- void mostrar()
- {
- clrscr();
- int y=10,i;
- gotoxy(11,8); printf("NOMBRE");
- gotoxy(26,8); printf("DIRECCION");
- gotoxy(44,8); printf("TELEFONO");
- gotoxy(60,8); printf("EDAD");
- for(i=0; i<total; i++)
- {
- gotoxy(11,y);printf("%s", agenda[i].nombre);
- gotoxy(25,y);printf("%s", agenda[i].direccion);
- gotoxy(45,y);printf("%s", agenda[i].tel);
- gotoxy(61,y);printf("%d", agenda[i].calculado);
- y=y+2;
- }
- }
- char menu(void)
- {
- char c;
- gotoxy(17,2);printf(" ");
- gotoxy(17,3);printf(" ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛÛ ");
- gotoxy(17,4);printf(" Û Û Û Û Û Û Û Û Û Û ");
- gotoxy(17,5);printf(" ÛÛÛÛÛÛ Û ÛÛÛ ÛÛÛÛ Û Û Û Û ÛÛÛÛÛÛ ");
- gotoxy(17,6);printf(" Û Û Û Û Û Û Û Û Û Û Û ");
- gotoxy(17,7);printf(" Û Û ÛÛÛÛÛÛ ÛÛÛÛÛ Û Û ÛÛÛÛÛ Û Û ");
- gotoxy(17,8);printf(" ");
- gotoxy(34,17);printf("[1]Ingresar");
- gotoxy(34,19);printf("[2]Modificar");
- gotoxy(34,21);printf("[3]Eliminar");
- gotoxy(34,23);printf("[4]Mostrar lista");
- gotoxy(34,25);printf("[5]Salir");
- gotoxy(55,27);printf("[ ]");
- gotoxy(56,27);
- c=getche();
- printf("\n");
- return(c);
- }
- void presentacion()
- {
- gotoxy(17,2);printf(" ");
- gotoxy(17,3);printf(" ÛÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛÛ ÛÛÛÛÛ ÛÛÛÛÛÛ ");
- gotoxy(17,4);printf(" Û Û Û Û Û Û Û Û Û Û ");
- gotoxy(17,5);printf(" ÛÛÛÛÛÛ Û ÛÛÛ ÛÛÛÛ Û Û Û Û ÛÛÛÛÛÛ ");
- gotoxy(17,6);printf(" Û Û Û Û Û Û Û Û Û Û Û ");
- gotoxy(17,7);printf(" Û Û ÛÛÛÛÛÛ ÛÛÛÛÛ Û Û ÛÛÛÛÛ Û Û ");
- gotoxy(17,8);printf(" ");
- gotoxy(22,13);printf("INGENIERIA EN SISTEMAS COMPUTACIONALES ");
- gotoxy(22,15);printf(" ESTRUCTURA DE DATOS ");
- gotoxy(22,17);printf(" AGENDA PERSONAL ");
- gotoxy(20,22);printf("LA SIGUIENTE AGENDA ESTA HECHA EN LENGUAJE");
- gotoxy(22,24);printf(" EN LENGUAJE C++ ");
- gotoxy(5,29);printf("EN EL SIGUIENTE PROGRAMA SE UTILIZAN FUNCIONES , ESTRUCTURAS Y ARCHIVOS ");
- gotoxy(11,31);printf(" EL PROGRAMA CAPTURA NOMBRE , DIRECCCION , TELEFONO Y EDAD");
- gotoxy(11,33);printf(" CAPTURA LOS DATOS DE LA EDAD Y LISTA LA EDAD YA CALCULADA");
- getch();
- }
Add Comment
Please, Sign In to add comment