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 |
Related posts:
Las 5 V del Big Data
Curso de bases de datos con MySQL
Programando en C: Estructuras
Hoy, webinar de WordPress en Ensenyem
Curso de WordPress
Curso de Scratch
Curso de Programación en C
Curso de modelado y render arquitectura/ingeniería/interiorismo
Reconocimiento de formas mediante redes neuronales
Programando en C: Refactorización
Programando en C: Contenedores de datos
Programando en C: Comentarios