Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- struct talumno {
- char dni[10];
- char nombre[20];
- char apellido[20];
- };
- typedef struct talumno talumno;
- void GuardarDatosAlumno(char nombref[],talumno p);
- void MostrarAlumnos(char nombref[]);
- void buscar_datos(char *nombref,char*dni,talumno *p, int *encontrado);
- void eliminarAlumno(char*nombref,char*dni);
- void MostrarApellido(char*nombref,char*apell);
- talumno leerAlumno();
- void escribirAlumno(talumno p);
- int main()
- {
- int encontrado;
- talumno al;
- int opcion;
- char *ruta;
- char *dni;
- FILE *nombref;
- talumno p;
- talumno apell;
- printf("\n1.Anadir alumno");
- printf("\n2.Ver listado de alumnos");
- printf("\n3.Buscar por dni");
- printf("\n4.Eliminar alumno");
- printf("\n5.Ver por apellido");
- printf("\n6.Terminar");
- printf("\nElige opcion:");
- scanf ("%d", &opcion);
- //printf("\nIntroduce una ruta:");
- //scanf("%s",ruta);
- dni=( char * )malloc(sizeof(char));
- ruta =( char * )malloc(sizeof(char));
- printf("\n---------\n");
- switch(opcion)
- {
- case 1:
- {
- /* al = leerAlumno();
- GuardarDatosAlumno(nombref, al);
- escribirAlumno(p)*/
- }
- break;
- case 2:
- {
- /*nombref=fopen(ruta,"rb");
- MostrarAlumnos(nombref);*/
- }
- break;
- case 3:
- {
- /* printf("\nIntroduce un dni");
- scanf("%s",dni);
- buscar_datos(nombref,dni,p,encontrado);*/
- }
- break;
- case 4:
- {
- //eliminarAlumno(nombref , &dni);
- }
- break;
- case 5:
- {
- //MostrarApellido(nombref,apell);
- }
- break;
- }
- system("PAUSE");
- return 0;
- }
- void GuardarDatosAlumno(char nombref[] ,talumno p)
- {
- talumno al;
- FILE *fich1;
- FILE *fich2;
- fich1=fopen(nombref,"r");
- fich2=fopen("auxiliar","w");
- if((fich1!=NULL)&&(fich2!=NULL))
- {
- fread(&al,sizeof(talumno),1,fich1);
- while(((!feof(fich1))&&(strcmp(al.dni,p.dni)<0)))
- {
- fwrite(&al,sizeof(talumno),1,fich2);
- fread(&al,sizeof(talumno),1,fich1);
- }
- fwrite(&p,sizeof(talumno),1,fich2);
- while(!feof(fich1))
- {
- fwrite(&al,sizeof(talumno),1,fich2);
- fread(&al,sizeof(talumno),1,fich1);
- }
- fclose(fich1);
- fclose(fich2);
- }
- else
- {
- if((fich2!=NULL))
- {
- fwrite(&p,sizeof(talumno),1,fich2);
- fclose(fich2);
- }}
- remove(nombref);
- rename("auxiliar",nombref);
- }
- void MostrarAlumnos(char nombref[])
- {
- talumno al;
- FILE *fich;
- fich=fopen(nombref,"rb");
- if(fich!=NULL)
- {
- fread(&al,sizeof(al),1,fich);
- while(!feof(fich))
- {
- escribirAlumno(al);
- fread(&al,sizeof(al),1,fich);
- }
- fclose(fich);
- }
- else
- {
- printf("\nError al escribir el fichero");
- }
- }
- void buscar_datos(char *nombref,char*dni,talumno *p, int *encontrado)
- {
- talumno al;
- FILE *fich;
- fich=fopen(nombref,"rb");
- if(fich!=NULL)
- {
- *encontrado=0;
- fread(&al,sizeof(talumno),1,fich);
- while(!feof(fich)&&(*encontrado==0))
- {
- if(strcmp(al.dni,dni)==0)
- {
- *encontrado=1;
- *p=al;
- }
- else{
- fread(&al,sizeof(talumno),1,fich);
- }
- }
- fclose(fich);
- }
- else
- {
- printf("\nError al abrir al archivo");
- }
- }
- void eliminarAlumno(char*nombref,char*dni)
- {
- talumno al;
- FILE*fich1;
- FILE*fich2;
- fich1=fopen(nombref,"rb");
- fich2=fopen("auxiliar","wb");
- if(((fich1)!=NULL)&&(fich2!=NULL))
- {
- fread(&al,sizeof(al),1,fich1);
- while((!feof(fich1))&&(strcmp(al.dni,dni)!=0))
- {
- fwrite(&al,sizeof(al),1,fich2);
- fread(&al,sizeof(al),1,fich1);
- }
- if(strcmp(al.dni,dni)==0)
- {
- fread(&al,sizeof(al),1,fich1);
- while(!feof(fich1))
- {
- fwrite(&al,sizeof(al),1,fich2);
- fread(&al,sizeof(al),1,fich1);
- }
- }
- fclose(fich1);
- fclose(fich2);
- remove(nombref);
- rename("auxiliar",nombref);
- }
- else
- {
- printf("\n error en la apertura");
- }
- }
- void MostrarApellido(char*nombref,char*apell)
- {
- talumno al;
- FILE *fich;
- fich=fopen(nombref,"rb");
- if (fich!=NULL)
- {
- fread(&al,sizeof(al),1,fich);
- while(!feof(fich))
- {
- if(strcmp(al.apellido,apell)==0)
- {
- escribirAlumno(al);
- }
- fread(&al,sizeof(al),1,fich);
- }
- fclose(fich);
- }
- else
- {
- printf("\n error al abrir el archivo");
- }
- }
- talumno leerAlumno()
- {
- talumno p;
- printf("\n Dame el dni : ");
- scanf("%s",p.dni);
- printf("\n Dame el nombre : ");
- scanf("%s",p.nombre);
- printf("\n Dame el apellido : ");
- scanf("%s",p.apellido);
- return p;
- }
- void escribirAlumno(talumno p)
- {
- printf("el dni es %s",p.dni);
- printf("\nel nombre del alumno es:%s",p.nombre);
- printf("\nel apellido del alumno es:%s\n",p.apellido);
- }
Add Comment
Please, Sign In to add comment