PIENSA Y TRABAJA

BIENVENIDO A REGISTROS EN C
Curioso por naturaleza
Para crear una estructura primero comenzamos por definir el tipo de estructura, para ello se procede de manera parecida a la definición de una variable, con algunas modificaciones; en lenguaje C para definir una estructura, se utiliza la palabra reservada struct, normalmente seguida por un nombre y llave izquierda; después se define el tipo y nombre para uno o más campos. Se permite cualquier definición de tipo habitual, incluso punteros y estructuras. Cada definición de campo acabará con un punto y coma. Por último se coloca una llave derecha. Si hay campos del mismo tipo, se pueden declarar en la misma lÃnea, separándolos por comas.
EJEMPLOS Y DESCRIPCION DE LOS REGISTROS
![]() | ![]() | ![]() |
---|---|---|
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
ESÂ de manera obligatoria presentarles este tema tan importante para su progreso como programadores , ya que las estructuas nos ayudan de gran manera en realizar todos los programas mas organizados y mas faciles de expander con el fin tambien de llevar un registro de los datos que son solicitados por el usuario final
EJEMPLO
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <string.h>
//variable struct
struct expediente{
char nombre[20];
char autor[20];
char editorial[20];
int edicion;
int paginas;
}EXP[5];
int c;
int capturar=0;
//funcion capturar
void cap(void){
system("color 8E");
printf("Captura los datos de los cinco libros \n");
for (c=0;c<5;c++)
{
fflush(stdin);
printf("Nombre del libro %i: ",c+1);
gets(EXP[c].nombre);
fflush(stdin);
printf("Autor del libro:\n");
gets(EXP[c].autor);
fflush(stdin);
printf("editorial: \n");
gets(EXP[c].editorial);
fflush(stdin);
printf("edicion: ");
scanf("%i",&EXP[c].edicion);
printf("paginas: ");
scanf("%i",&EXP[c].paginas);
printf("\n");
capturar=1;}
printf("PRESIONA ENTER PARA REGRESAR AL MENU");
getch();
menu();}
//funcion imprimir
void imprimir(void){
system("color 07");
if (capturar==0){
printf("No se campturo nada en el registro\n");}
else{
printf("Reporte de los datos capturados \n");
for (c=0;c<5;c++){
if (EXP[c].paginas>100){
printf("EL libro %i es %s \n ",c+1,EXP[c].nombre);
printf("El autor del libro %i es %s \n",c+1,EXP[c].autor);
printf("La editorial del libro %i es %s \n",c+1,EXP[c].editorial);
printf("La edicion del libro %i es %i \n",c+1,EXP[c].edicion);
printf("Las paginas del libro %i son%i \n",c+1,EXP[c].paginas);}}
if (EXP[c].paginas<100){
printf("No se encontraron libros mayores a 100 paginas \n");}}
printf("PRESIONA ENTER PARA REGRESAR AL MENU");
getch();
menu();}
//funcion para limpiar
void limpiar(void){
system ("cls");
fflush(stdin);}
//funcion de opcion no valida
void def(void){
limpiar();
system("color C0");
printf("SELECCIONA UNA OPCION CORRECTA\n");
printf("PRESIONA ENTER PARA REGRESAR AL MENU");
getch();
menu();}
//funcion para terminar el programa
void salir(void){
limpiar();
system("color 87");
printf("GRACIAS POR USARME\n");
printf("TEN UN EXCELENTE DIA :]");
exit(-1);}
//funcion del menu
int menu(void){
limpiar();
system("color 80");
int a=1;
while(a==1){
int opc;
printf("\t\tMENU PRINCIPAL\n");
printf("1.Capturar los datos\n");
printf("2.Imprimir todos los datos de los libros que tengan mas de 100 paginas\n");
printf("3.Salir\n");
printf("\n");
printf("ESCOGE UNA OPCION:");
scanf("%i",&opc);
switch(opc){
case 1:cap();break;
case 2:a=0;imprimir();break;
case 3:a=0;salir();break;
default:a=0;def();break;}}}
//funcion principal
int main(void){
menu();
return 0;}
