Advertisement
gonzalob

Untitled

Nov 2nd, 2021
682
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.98 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct nodo
  5. {
  6.     int valorNota;
  7.     struct nodo * sig;
  8. } nodo;
  9.  
  10. typedef struct celdaAlumno
  11. {
  12.     int legajo;
  13.     char nombre[50];
  14.     nodo * notas;
  15.  
  16. } celdaAlumno;
  17.  
  18. int cargarAlumnos(celdaAlumno alumnos[10],int dim );
  19. celdaAlumno crearAlumno();
  20. void mostrarAlumnos(celdaAlumno alumnos[10],int val);
  21. nodo * inicLista();
  22. int buscarAlumnoXLegajo(celdaAlumno alumnos[10],int validos, int legajo);
  23. nodo * AgregarAlPrincipio(nodo * Lista, nodo * NuevoNodo);
  24. nodo * CrearUnNuevoNodo(int AuxA);
  25. void MostrarLista(nodo * Lista);
  26. void cargarNotas(celdaAlumno alumnos[10],int validos);
  27.  
  28.  
  29. int main()
  30. {
  31.     celdaAlumno alumnos[10];
  32.  
  33.     int validos = cargarAlumnos(alumnos,10);
  34.  
  35.  
  36.     cargarNotas(alumnos,validos);
  37.  
  38.     mostrarAlumnos(alumnos,validos);
  39.  
  40.     return 0;
  41. }
  42.  
  43. int cargarAlumnos(celdaAlumno alumnos[10],int dim )
  44. {
  45.     int validos = 0;
  46.     char seguir = 's';
  47.     do
  48.     {
  49.         alumnos[validos] = crearAlumno();
  50.         validos++;
  51.  
  52.         printf("ingrese s para continuar\n");
  53.         fflush(stdin);
  54.         scanf("%c",&seguir);
  55.     }
  56.     while ((validos<dim)  && (seguir == 's'));
  57.  
  58.     return validos;
  59. }
  60.  
  61. celdaAlumno crearAlumno()
  62. {
  63.     celdaAlumno unAlumno;
  64.  
  65.     printf("ingrese un nombre\n");
  66.     fflush(stdin);
  67.     scanf("%s",&unAlumno.nombre);
  68.  
  69.     printf("ingrese un legajo\n");
  70.     fflush(stdin);
  71.     scanf("%d",&unAlumno.legajo);
  72.  
  73.     unAlumno.notas = inicLista();
  74.  
  75.     return unAlumno;
  76. }
  77.  
  78. nodo * inicLista()
  79. {
  80.     return NULL;
  81. }
  82.  
  83. void mostrarAlumnos(celdaAlumno alumnos[10],int val)
  84. {
  85.     int i = 0;
  86.     for (i=0; i<val; i++)
  87.     {
  88.         printf("Nombre %s \n",alumnos[i].nombre);
  89.         printf("Notas: \n");
  90.         MostrarLista(alumnos[i].notas);
  91.         printf("**********************\n");
  92.     }
  93. }
  94.  
  95. //cargar notas a un alumno en particular
  96. void cargarNotas(celdaAlumno alumnos[10],int validos)
  97. {
  98.     char seguirAlumnos = 's';
  99.     int legajo = 0;
  100.     char seguir = 's';
  101.     int unaNota = 0;
  102.     do
  103.     {
  104.         printf("ingrese legajo\n");
  105.         fflush(stdin);
  106.         scanf("%d",&legajo);
  107.  
  108.         int posAlumno = buscarAlumnoXLegajo(alumnos,validos,legajo);
  109.         if (posAlumno > -1)
  110.         {
  111.             seguir = 's';
  112.             while (seguir == 's')
  113.             {
  114.                 printf("ingrese nota\n");
  115.                 fflush(stdin);
  116.                 scanf("%d",&unaNota);
  117.  
  118.                 nodo * nodoNota = CrearUnNuevoNodo(unaNota);
  119.  
  120.                 printf("cargando notas de %s \n",alumnos[posAlumno].nombre);
  121.  
  122.                 printf("cargando nota de %d \n",nodoNota->valorNota);
  123.  
  124.                 alumnos[posAlumno].notas = AgregarAlPrincipio(alumnos[posAlumno].notas,nodoNota);
  125.  
  126.                 printf("desea otra nota?\n");
  127.                 fflush(stdin);
  128.                 scanf("%c",&seguir);
  129.             }
  130.         }
  131.         else
  132.         {
  133.             printf("alumno no encontrado!\n");
  134.         }
  135.  
  136.         printf("desea otra alumno?\n");
  137.                 fflush(stdin);
  138.                 scanf("%c",&seguirAlumnos);
  139.  
  140.     }while(seguirAlumnos == 's');
  141.  
  142.  
  143. }
  144.  
  145. int buscarAlumnoXLegajo(celdaAlumno alumnos[10],int validos, int legajo)
  146. {
  147.     int posAlumno = -1;
  148.     int i = 0;
  149.     for (i = 0; i<validos; i++)
  150.     {
  151.         if (alumnos[i].legajo == legajo)
  152.         {
  153.             posAlumno = i;
  154.         }
  155.     }
  156.     return posAlumno;
  157. }
  158.  
  159. nodo * CrearUnNuevoNodo(int AuxA)
  160. {
  161.     nodo * NuevoNodo = (nodo*) malloc(sizeof(nodo));
  162.     NuevoNodo->valorNota = AuxA;
  163.     NuevoNodo->sig=NULL;
  164.     return NuevoNodo;
  165. }
  166.  
  167. nodo * AgregarAlPrincipio(nodo * Lista, nodo * NuevoNodo)
  168. {
  169.     if(Lista==NULL)
  170.     {
  171.         Lista=NuevoNodo;
  172.     }
  173.     else
  174.     {
  175.         NuevoNodo->sig = Lista;
  176.         Lista = NuevoNodo;
  177.     }
  178.     return Lista;
  179. }
  180.  
  181. void MostrarLista(nodo * Lista)
  182. {
  183.     nodo * Seguidora = Lista;
  184.     while( Seguidora!= NULL )
  185.     {
  186.         printf("%d\n",Seguidora->valorNota);
  187.         Seguidora = Seguidora->sig;
  188.     }
  189. }
  190.  
  191.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement