Programando en C – Agenda de contactos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> #define MAX_AGEN 5 #define MAX_CAD 40 struct persona{ char nombre[MAX_CAD]; unsigned long telf; }; struct persona leer_persona(); void imprimir_persona(struct persona p); int buscar_persona(struct persona agenda[], int tam, char *nombre, struct persona &p); int insertar_persona(struct persona agenda[], int tam, struct persona p); void listar_agenda(struct persona agenda[], int tam); void inicializar_agenda(struct persona agenda[], int tam); int borrar_persona(struct persona agenda[], int tam, char *nombre); int menu(); int main() { int opcion; struct persona agenda[MAX_AGEN], p; char nombre[MAX_CAD]; inicializar_agenda(agenda,MAX_AGEN); do{ system("cls"); opcion=menu(); fflush(stdin); switch(opcion) { case 1: p=leer_persona(); if (insertar_persona(agenda,MAX_AGEN,p)==1) printf("n Contacto insertado con exito"); else printf("nError, el contacto no se ha insertado"); break; case 2: printf("nIntroduce el nombre a buscar: "); gets(nombre); if (buscar_persona(agenda,MAX_AGEN,nombre,p)==1) imprimir_persona(p); else printf("nEl contacto no existe"); break; case 3: listar_agenda(agenda,MAX_AGEN); break; case 4: printf("nIntroduce el nombre a borrar: "); gets(nombre); if (borrar_persona(agenda,MAX_AGEN,nombre)==1) printf("nContacto borrado con exito"); else printf("nError, el contacto no existe"); break; case 5: printf("n Hasta la vista"); break; default: printf("n Opcion no valida"); } getch(); }while(opcion!=5); return 0; } struct persona leer_persona() { struct persona p; printf("nIntroduce nombre: "); gets(p.nombre); printf("Introduce telefono: "); scanf("%lu",&p.telf); return p; } void imprimir_persona(struct persona p) { printf("nNombre: %s",p.nombre); printf("nTelefono: %lu",p.telf); } int buscar_persona(struct persona agenda[], int tam, char *nombre, struct persona &p) { int i=0,encontrado=-1; while(i<tam && encontrado==-1) { if(strcmp(agenda[i].nombre,nombre)==0) { encontrado=i; p=agenda[i]; } else i++; } return encontrado; } int insertar_persona(struct persona agenda[], int tam, struct persona p) { int exito=0,i=0; while(i<tam && exito==0) { if(agenda[i].nombre[0]=='�') //if (strcmp(agenda[i].nombre,"")==0) { agenda[i]=p; exito=1; } i++; } return exito; } void listar_agenda(struct persona agenda[], int tam) { int i,cont=0; for(i=0;i<tam;i++) { if(agenda[i].nombre[0]!='�') { cont++; printf("n"); imprimir_persona(agenda[i]); } } if(cont==0) printf("n Agenda Vacia"); } int menu() { int opcion; printf("n1. Insertar contacto"); printf("n2. Buscar Contacto"); printf("n3. Listar Agenda"); printf("n4. Borrar contacto"); printf("n5. Salir"); printf("nnIntroduce opcion: "); scanf("%d",&opcion); return opcion; } void inicializar_agenda(struct persona agenda[], int tam) { int i; for(i=0; i<tam; i++) agenda[i].nombre[0]='�'; // strcmp(agenda[i].nombre,""); } int borrar_persona(struct persona agenda[], int tam, char *nombre) { int exito=0,posicion; struct persona p; posicion=buscar_persona(agenda,tam,nombre,p); if(posicion!=-1) { exito=1; agenda[posicion].nombre[0]='�'; } return exito; } |
Recent Comments