Capítulo 13: Desarrollo de las diferentes partes del programa del curso
agenda.c |
/* Programa agendapor Jose Vicente Carratala */#define NOMBREPROGRAMA “Programa agenda”#define VERSION “1.0”#define AUTOR “Jose Vicente Carratala”#include <stdio.h>#include <string.h>#include “libAgenda/datos.c”#include “libAgenda/listadoRegistros.c”#include “libAgenda/introducirRegistro.c”#include “libAgenda/eliminarRegistro.c”#include “libAgenda/buscarRegistro.c”#include “libAgenda/actualizarRegistro.c”#include “libAgenda/menuPrincipal.c” int main(int argc, char *argv[]) { // Primer registro printf(“\033[2J”); strcpy(agenda[1].nombre,”Jose Vicente”); strcpy(agenda[1].telefono,”12345678″); strcpy(agenda[1].email,”info@josevicentecarratala.com”); // Segundo registro strcpy(agenda[2].nombre,”Juan”); strcpy(agenda[2].telefono,”53254″); strcpy(agenda[2].email,”juan@josevicentecarratala.com”); // Tercer registro strcpy(agenda[3].nombre,”Jaime”); strcpy(agenda[3].telefono,”64566″); strcpy(agenda[3].email,”jaime@josevicentecarratala.com”); printf(“\033[2J”); menuPrincipal(); return 0;} |
datos.c |
struct RegistroAgenda{ char nombre[50]; char telefono[50]; char email[50]; }; struct RegistroAgenda agenda[100]; int longitudDatos = 3; |
listadoRegistros.c |
void listadoRegistros(){ printf(“\033[2J”); // Recorremos los registros uno a uno, los mostramos por pantalla for(int i = 1; i<=longitudDatos;i++){ printf(“Registro: %s %s %s \n”,agenda[i].nombre,agenda[i].telefono,agenda[i].email); } // Volvemos al menu principal printf(“Pulsa Enter para volver al menú principal \n”); getchar(); getchar(); printf(“\033[2J”); menuPrincipal();} |
introducirRegistro.c |
void introducirRegistro(){ printf(“\033[2J”); // Información al usuario printf(“Vamos a introducir un registro \n”); // Solicitamos el nombre printf(“Indica el nombre del contacto: \n”); char nombre[100]; scanf(“%s”,nombre); // Solicitamos el telefono printf(“Indica el telefono del contacto: \n”); char telefono[100]; scanf(“%s”,telefono); // Solicitamos el email printf(“Indica el email del contacto: \n”); char email[100]; scanf(“%s”,email); // Aumentamos el indice de la matriz longitudDatos++; // Creamos una nueva estructura strcpy(agenda[longitudDatos].nombre,nombre); strcpy(agenda[longitudDatos].telefono,telefono); strcpy(agenda[longitudDatos].email,email); // Feedback al usuario printf(“Registro añadido, pulsa una tecla para volver al menu inicial \n”); getchar(); getchar(); // Volvemos al menu principal printf(“\033[2J”); menuPrincipal(); } |
eliminarRegistro.c |
void eliminarRegistro(){ printf(“\033[2J”); // Mensaje informativo para el usuario printf(“Vamos a eliminar un registro”); // Solicitamos el id a eliminar printf(“Introduce el id del registro a eliminar: \n”); getchar(); int id = getchar(); // Recorremos la matriz copiando el siguiente registro, en el anterior, a partir del registro indicado for(int i = id;i<longitudDatos;i++){ agenda[i] = agenda[i+1]; } // Recortamos la longitud de los datos longitudDatos–; // Volvemos al menu inicial printf(“Pulsa Enter para volver al menu principal”); getchar(); getchar(); printf(“\033[2J”); menuPrincipal();} |
buscarRegistro.c |
void buscarRegistro(){ printf(“\033[2J”); // Mensaje informativo para el usuario printf(“Vamos a buscar un registro \n”); // Introducimos el nombre a buscar printf(“Introduce el nombre del contacto: \n”); char nombre[100]; scanf(“%i”,nombre); // Recorremos la matriz registro a registro, comparando la cadena for(int i = 1;i<=longitudDatos;i++){ if(strcmp(nombre,agenda[i].nombre) != 0){ printf(“Registro: %s %s %s \n”,agenda[i].nombre,agenda[i].telefono,agenda[i].email); } } // Volvemos al menu principal printf(“Pulsa Enter para volver al menu principal”); getchar(); getchar(); printf(“\033[2J”); menuPrincipal();} |
actualizarRegistro.c |
void actualizarRegistro(){ printf(“\033[2J”); // Informamos al usuario printf(“Vamos a actualizar un registro \n”); // Introducimos el identificador del contacto printf(“Introduce el id del contacto: \n”); getchar(); int idmodificar = getchar(); idmodificar -= 48; // Convertimos de ASCII a numero // Informamos al usuario del id que se va a modificar printf(“Has introducido el id para modificar: %d \n”,idmodificar); // Solicitamos el nuevo nombre printf(“Introduce el nuevo nombre del contacto: (anterior: %s) \n”,agenda[idmodificar].nombre); char nombre[100]; scanf(“%s”,nombre); // Solicitamos el nuevo telefono printf(“Introduce el nuevo telefono del contacto: (anterior: %s) \n”,agenda[idmodificar].telefono); char telefono[100]; scanf(“%s”,telefono); // Solicitamos el nuevo email printf(“Introduce el nuevo email del contacto: (anterior: %s) \n”,agenda[idmodificar].email); char email[100]; scanf(“%s”,email); // Creamos una nueva estructura strcpy(agenda[idmodificar].nombre,nombre); strcpy(agenda[idmodificar].telefono,telefono); strcpy(agenda[idmodificar].email,email); // Feedback al usuario printf(“Registro añadido, pulsa una tecla para volver al menu inicial \n”); getchar(); getchar(); // Volvemos al menu principal printf(“\033[2J”); menuPrincipal(); } |
menuPrincipal.c |
void menuPrincipal(){ printf(“\033[2J”); // Mensaje de bienvenida printf(“%s v%s \n”,NOMBREPROGRAMA,VERSION); printf(“%s \n”,AUTOR); printf(“\t 1 – Listado de registros \n”); printf(“\t 2 – Introducir un registro \n”); printf(“\t 3 – Eliminar un registro \n”); printf(“\t 4 – Buscar un registro \n”); printf(“\t 5 – Actualizar un registro \n”); printf(“Tu opcion: “); char opcion = getchar(); printf(“La opción que has seleccionado es: %c \n”,opcion); switch(opcion){ case ‘1’: listadoRegistros(); break; case ‘2’: introducirRegistro(); break; case ‘3’: eliminarRegistro(); break; case ‘4’: buscarRegistro(); break; case ‘5’: actualizarRegistro(); break; default: printf(“La opción que has introducido no es válida”); printf(“Pulsa Enter para volver al menú principal \n”); getchar(); getchar(); printf(“\033[2J”); menuPrincipal(); break; }} |
agenda.c |
agenda.c |