gonzalob

Untitled

Jun 19th, 2020
1,972
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.92 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct
  5. {
  6.     int numero;
  7.     char nombre_calle[10];
  8.  
  9. }direccion;
  10.  
  11. typedef struct
  12. {
  13.     int edad;
  14.     char nombre[10];
  15.     direccion miDireccion;
  16.  
  17. }alumno;
  18.  
  19. alumno cargarUnAlumno();
  20. int cargarFacultad(alumno alumnos[10], int TAM);
  21. void mostrarArreglo(alumno alumnos[10], int validos);
  22. void guardarEnUnArchivo(alumno alumnos[10], int validos, char nombreArchivo[10]);
  23. int leerUnArchivo(alumno alumnos[10], char nombreArchivo[10]);
  24.  
  25. int main()
  26. {
  27.     alumno alumnos[10]; //la facultad
  28.     alumno alumnosMayores[10]; //la facultad
  29.     int validos =  cargarFacultad(alumnos,10);
  30.     mostrarArreglo(alumnos,validos);
  31.     guardarEnUnArchivo(alumnos,validos,"todalafacultad.dat");
  32.     int validosMayores = leerUnArchivo(alumnosMayores,"todalafacultad.dat");
  33.     printf("solo mayores\n");
  34.     mostrarArreglo(alumnosMayores,validosMayores);
  35.     return 0;
  36. }
  37.  
  38. int cargarFacultad(alumno alumnos[10], int TAM)
  39. {
  40.     alumno aux;
  41.     char mander = 's';
  42.     int validos = 0;
  43.     while ((mander == 's') && (validos < TAM))
  44.     {
  45.         //cargar un alumno
  46.         aux = cargarUnAlumno();
  47.         alumnos[validos] = aux;
  48.         validos++;
  49.  
  50.         printf("desea seguir?\n");
  51.         fflush(stdin);
  52.         scanf("%c",&mander);
  53.     }
  54.     return validos;
  55. }
  56.  
  57. alumno cargarUnAlumno()
  58. {
  59.     alumno aux;
  60.     printf("ingrese nombre\n");
  61.     fflush(stdin);
  62.     gets(aux.nombre);
  63.     printf("ingrese edad\n");
  64.     fflush(stdin);
  65.     scanf("%d",&aux.edad);
  66.     return aux;
  67. }
  68.  
  69. void mostrarArreglo(alumno alumnos[10], int validos)
  70. {
  71.     int i = 0;
  72.     alumno aux;
  73.     for (i = 0;i<validos;i++)
  74.     {
  75.         printf("nombre: %s\n",alumnos[i].nombre);
  76.         printf("edad: %d\n",alumnos[i].edad);
  77.  
  78.         aux = alumnos[i];
  79.         //mostrarUnAlumno(aux);
  80.  
  81.     }
  82. }
  83.  
  84. void mostrarUnAlumno(alumno aux)
  85. {
  86.     printf("nombre: %s\n",aux.nombre);
  87.     printf("edad: %d\n",aux.edad);
  88. }
  89.  
  90. void guardarEnUnArchivo(alumno alumnos[10], int validos, char nombreArchivo[10])
  91. {
  92.     FILE * archi = fopen(nombreArchivo,"wb"); //rb // ab //a+b //r+b //w+b
  93.     alumno alumnoLector;
  94.     if (archi != NULL)
  95.     {
  96.         int indice = 0;
  97.         for (indice = 0;indice<validos;indice++)
  98.         {
  99.             alumnoLector = alumnos[indice];
  100.             fwrite(&alumnoLector,sizeof(alumno),1,archi);
  101.         }
  102.         fclose(archi);
  103.     }
  104.     //fclose(archi);
  105. }
  106.  
  107. int leerUnArchivo(alumno alumnos[10], char nombreArchivo[10])
  108. {
  109.     FILE * archi = fopen(nombreArchivo,"rb"); //rb // ab //a+b //r+b //w+b
  110.     int indice = 0;
  111.     alumno alumnoLector;
  112.     if (archi != NULL)
  113.     {
  114.         while (fread(&alumnoLector,sizeof(alumno),1,archi)>0)
  115.         {
  116.             if (alumnoLector.edad > 18)
  117.             {
  118.                 alumnos[indice] = alumnoLector;
  119.                 indice++;
  120.             }
  121.  
  122.         }
  123.  
  124.  
  125.         fclose(archi);
  126.     }
  127.     //fclose(archi);
  128.     return indice;
  129. }
Advertisement
Add Comment
Please, Sign In to add comment