Hola amigos, el ejercicio consta de multilista cargar por teclado datos y despues mostrarlos en ficheros, lo de cargar ya lo hice, pero no pude hacer estos dos puntos: 1. Ingresar un alumno y mostrar todos los libros que posee. 2. Ingresar un libro y mostrar el alumno que lo tiene
¿¿ Alguien xfa me puede ayudar??
#include <stdio.h> #include <stdlib.h> typedef struct alumnos { int nro_legajo; char nombre[15]; struct alumnoslibros *al; struct alumnos *sig; } nodo_alumnos;
typedef struct alumnoslibros { int nro_libro; char titulo[40]; char autor[40]; struct alumnoslibros *sig; } nodo_alumnoslibros;
FILE *ptr; void cargar(nodo_alumnos *p); void cargar2(nodo_alumnoslibros *p);
int main() { nodo_alumnos *lista=(nodo_alumnos*)malloc(sizeof(nodo_alumnos)); cargar(lista); }
void cargar(nodo_alumnos *p) { FILE *ptr; if((ptr=fopen("Registros_Alumnos.txt","a"))!=NULL) { printf("\n\n(fin en -1)Legajo: "); scanf("%d",&p->nro_legajo); if(p->nro_legajo == -1) { p->al = NULL; } else { printf("Nombre: "); scanf(" %[^\n]",p->nombre); fprintf(ptr,"\n\n%d %s",p->nro_legajo,p->nombre); p->al = (nodo_alumnoslibros*)malloc(sizeof(nodo_alumnoslibros)); cargar2(p->al); p->sig = (nodo_alumnos*)malloc(sizeof(nodo_alumnos)); cargar(p->sig); } } else { printf("\n\t\t\tERROR AL ABRIR ARCHIVO, VERIFIQUE EXISTENCIA"); } fclose(ptr); }
void cargar2(nodo_alumnoslibros *p) { FILE *ptr; ptr=fopen("Registros_Libros.txt","a"); printf("\n(fin en -1)Nro.Libro: "); scanf("%d",&p->nro_libro); if(p->nro_libro == -1) { p->sig = NULL; } else { printf("Titulo: "); scanf(" %[^\n]",p->titulo); printf("Autor: "); scanf(" %[^\n]",p->autor); fprintf(ptr,"\n%d %s %s",p->nro_libro,p->titulo,p->autor); p->sig = (nodo_alumnoslibros*)malloc(sizeof(nodo_alumnoslibros)); cargar2(p->sig); } fclose(ptr); }
|