Crear un programa en C que gestione una lista de contactos. Cada contacto tiene un nombre, número de teléfono y dirección.
#include
#include
#define MAX_CONTACTS 100
// Estructura para almacenar un contacto
struct Contact {
char name[50];
char phone[15];
char address[100];
};
// Prototipos de funciones
void addContact(struct Contact contacts[], int *count);
void searchContact(struct Contact contacts[], int count);
void listContacts(struct Contact contacts[], int count);
void deleteContact(struct Contact contacts[], int *count);
int main() {
struct Contact contacts[MAX_CONTACTS];
int count = 0;
char choice;
do {
printf("\nGestión de Contactos\n");
printf("1. Agregar contacto\n");
printf("2. Buscar contacto\n");
printf("3. Listar contactos\n");
printf("4. Eliminar contacto\n");
printf("5. Salir\n");
printf("Seleccione una opción: ");
scanf(" %c", &choice);
switch (choice) {
case '1':
addContact(contacts, &count);
break;
case '2':
searchContact(contacts, count);
break;
case '3':
listContacts(contacts, count);
break;
case '4':
deleteContact(contacts, &count);
break;
case '5':
printf("Saliendo del programa.\n");
break;
default:
printf("Opción inválida. Por favor, seleccione de nuevo.\n");
break;
}
} while (choice != '5');
return 0;
}
void addContact(struct Contact contacts[], int *count) {
if (*count < MAX_CONTACTS) {
printf("\nIngrese el nombre del contacto: ");
scanf(" %[^\n]", contacts[*count].name);
printf("Ingrese el número de teléfono: ");
scanf(" %s", contacts[*count].phone);
printf("Ingrese la dirección: ");
scanf(" %[^\n]", contacts[*count].address);
(*count)++;
printf("Contacto agregado exitosamente.\n");
} else {
printf("No se pueden agregar más contactos. Limite alcanzado.\n");
}
}
void searchContact(struct Contact contacts[], int count) {
char searchName[50];
int found = 0;
printf("\nIngrese el nombre del contacto a buscar: ");
scanf(" %[^\n]", searchName);
for (int i = 0; i < count; i++) {
if (strcmp(contacts[i].name, searchName) == 0) {
printf("\nNombre: %s\n", contacts[i].name);
printf("Teléfono: %s\n", contacts[i].phone);
printf("Dirección: %s\n", contacts[i].address);
found = 1;
break;
}
}
if (!found) {
printf("Contacto no encontrado.\n");
}
}
void listContacts(struct Contact contacts[], int count) {
if (count == 0) {
printf("No hay contactos para mostrar.\n");
} else {
printf("\nLista de contactos:\n");
for (int i = 0; i < count; i++) {
printf("\nContacto %d:\n", i + 1);
printf("Nombre: %s\n", contacts[i].name);
printf("Teléfono: %s\n", contacts[i].phone);
printf("Dirección: %s\n", contacts[i].address);
}
}
}
void deleteContact(struct Contact contacts[], int *count) {
char deleteName[50];
int found = 0;
printf("\nIngrese el nombre del contacto a eliminar: ");
scanf(" %[^\n]", deleteName);
for (int i = 0; i < *count; i++) {
if (strcmp(contacts[i].name, deleteName) == 0) {
// Mover el último contacto al lugar del contacto eliminado
contacts[i] = contacts[*count - 1];
(*count)--;
found = 1;
printf("Contacto eliminado correctamente.\n");
break;
}
}
if (!found) {
printf("Contacto no encontrado.\n");
}
}
Este programa gestiona una lista de contactos utilizando estructuras y funciones en C. Proporciona un menú interactivo donde el usuario puede agregar, buscar, listar y eliminar contactos. Es un proyecto básico pero completo para practicar diferentes aspectos del lenguaje C.