Estructuras en C

Después de programar vectores y matrices para almacenar varios tipos de datos, ahora nos toca el turno de las estructuras, que es un paso más avanzado para almacenar los datos de manera estructurado, limpio y claro. En el ejercicio que pondre adelante, vamos a realizar un programa que almacene en una estructura los datos de un alumno y las notas de 4 asignaturas.

Para definir una estructura en C podemos realizar la siguiente secuencia de código antes del programa principal:

struct asignaturas {
        float programacion;
        float sistemas;
        float fol;
        float redes;
} sAsignaturas;

Con la estructura anterior, si desde el programa principal queremos almacenar el dato float de la variable programacion, tendriamos que referenciarlo de la siguiente manera:

// Definimos primero la estructura en la parte principal del programa
sAsignaturas asig;

asig.programacion = 5.6;

De esta manera almacenamos en la variable «programacion» de la estructura asignaturas, el valor 5.6 que es un float. Imaginaros la potencia que tiene las estructuras, ahora pasando de la teoría a la practica, imaginaros que ahora queremos una estructura que almacene el nombre y apellido de un alumno y esas 4 notas, la forma más coherente de realizarlo con estructuras en C sería:

typedef struct asignaturas {
        float programacion;
        float sistemas;
        float fol;
        float redes;
} sAsignaturas;

typedef struct alumnos {
        char Nombre[60];
        char Apellidos[150];
        sAsignaturas asign;
} sAlumnos;

Si ahora nos vamos al programa principal y hacemos lo mismo que anteriormente para meter un dato en la variable «fol» del alumno Eduardo Urrea, seria de la siguiente manera:

sAlumnos alum;

alum.Nombre = "Eduardo";
alum.Apellidos = "Urrea";
alum.asign.fol = 5.5;

Y si ahora ya le metemos la posibilidad de que sea un vector de varios alumnos, imaginaros la potencia que nos da esto… por ejemplo:

sAlumnos alum[10];

alum[0].Nombre = "Eduardo";
alum[0].Apellidos = "Urrea";
alum[0].asign.fol = 5.6;

alum[1].Nombre = "Francisco";
alum[1].Apellidos = "Perales";
alum[1].asign.fol = 5.6;

Supongo que después de lo ultimo expuesto, podeis haceros una idea de lo que se puede llegar a realizar con estructuras y ARRAYs, de momento os voy a dejar un ejemplo realizado de una aplicación que almacena 10 alumnos con sus notas, y después se pude hacer busquedas o imprimir el total de alumnos con sus notas. Espero que os sirva de ayuda.

Descargar: CÓDIGO FUENTE EJEMPLO

Esta entrada fue publicada en Código C y etiquetada , , , , , , , , , , , , , . Guarda el enlace permanente.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.