Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct nodo
- {
- int valorNota;
- struct nodo * sig;
- } nodo;
- typedef struct celdaAlumno
- {
- int legajo;
- char nombre[50];
- nodo * notas;
- } celdaAlumno;
- int cargarAlumnos(celdaAlumno alumnos[10],int dim );
- celdaAlumno crearAlumno();
- void mostrarAlumnos(celdaAlumno alumnos[10],int val);
- nodo * inicLista();
- int buscarAlumnoXLegajo(celdaAlumno alumnos[10],int validos, int legajo);
- nodo * AgregarAlPrincipio(nodo * Lista, nodo * NuevoNodo);
- nodo * CrearUnNuevoNodo(int AuxA);
- void MostrarLista(nodo * Lista);
- void cargarNotas(celdaAlumno alumnos[10],int validos);
- int main()
- {
- celdaAlumno alumnos[10];
- int validos = cargarAlumnos(alumnos,10);
- cargarNotas(alumnos,validos);
- mostrarAlumnos(alumnos,validos);
- return 0;
- }
- int cargarAlumnos(celdaAlumno alumnos[10],int dim )
- {
- int validos = 0;
- char seguir = 's';
- do
- {
- alumnos[validos] = crearAlumno();
- validos++;
- printf("ingrese s para continuar\n");
- fflush(stdin);
- scanf("%c",&seguir);
- }
- while ((validos<dim) && (seguir == 's'));
- return validos;
- }
- celdaAlumno crearAlumno()
- {
- celdaAlumno unAlumno;
- printf("ingrese un nombre\n");
- fflush(stdin);
- scanf("%s",&unAlumno.nombre);
- printf("ingrese un legajo\n");
- fflush(stdin);
- scanf("%d",&unAlumno.legajo);
- unAlumno.notas = inicLista();
- return unAlumno;
- }
- nodo * inicLista()
- {
- return NULL;
- }
- void mostrarAlumnos(celdaAlumno alumnos[10],int val)
- {
- int i = 0;
- for (i=0; i<val; i++)
- {
- printf("Nombre %s \n",alumnos[i].nombre);
- printf("Notas: \n");
- MostrarLista(alumnos[i].notas);
- printf("**********************\n");
- }
- }
- //cargar notas a un alumno en particular
- void cargarNotas(celdaAlumno alumnos[10],int validos)
- {
- char seguirAlumnos = 's';
- int legajo = 0;
- char seguir = 's';
- int unaNota = 0;
- do
- {
- printf("ingrese legajo\n");
- fflush(stdin);
- scanf("%d",&legajo);
- int posAlumno = buscarAlumnoXLegajo(alumnos,validos,legajo);
- if (posAlumno > -1)
- {
- seguir = 's';
- while (seguir == 's')
- {
- printf("ingrese nota\n");
- fflush(stdin);
- scanf("%d",&unaNota);
- nodo * nodoNota = CrearUnNuevoNodo(unaNota);
- printf("cargando notas de %s \n",alumnos[posAlumno].nombre);
- printf("cargando nota de %d \n",nodoNota->valorNota);
- alumnos[posAlumno].notas = AgregarAlPrincipio(alumnos[posAlumno].notas,nodoNota);
- printf("desea otra nota?\n");
- fflush(stdin);
- scanf("%c",&seguir);
- }
- }
- else
- {
- printf("alumno no encontrado!\n");
- }
- printf("desea otra alumno?\n");
- fflush(stdin);
- scanf("%c",&seguirAlumnos);
- }while(seguirAlumnos == 's');
- }
- int buscarAlumnoXLegajo(celdaAlumno alumnos[10],int validos, int legajo)
- {
- int posAlumno = -1;
- int i = 0;
- for (i = 0; i<validos; i++)
- {
- if (alumnos[i].legajo == legajo)
- {
- posAlumno = i;
- }
- }
- return posAlumno;
- }
- nodo * CrearUnNuevoNodo(int AuxA)
- {
- nodo * NuevoNodo = (nodo*) malloc(sizeof(nodo));
- NuevoNodo->valorNota = AuxA;
- NuevoNodo->sig=NULL;
- return NuevoNodo;
- }
- nodo * AgregarAlPrincipio(nodo * Lista, nodo * NuevoNodo)
- {
- if(Lista==NULL)
- {
- Lista=NuevoNodo;
- }
- else
- {
- NuevoNodo->sig = Lista;
- Lista = NuevoNodo;
- }
- return Lista;
- }
- void MostrarLista(nodo * Lista)
- {
- nodo * Seguidora = Lista;
- while( Seguidora!= NULL )
- {
- printf("%d\n",Seguidora->valorNota);
- Seguidora = Seguidora->sig;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement