cuando voy al procedimiento "void evaluaciones" ingreso todos mis datos correctamente pero no los guarda en mi archivo Evaluaciones.txt


Código
#include <iostream.h> #include <conio.h> #include <string.h> #include <iomanip.h> #include <stdlib.h> #include <stdio.h> #include <ctype.h> # include <windows.h> struct alumnos { int cod_alu,edad; char apell[20],nomb[20]; }; struct cursos { int cod_curso,credit; char descrip[40],escu[20]; }; struct evaluaciones { int cod_alu,cod_curso; int p1,p2,p3; float prom; char cond[20]; }; FILE *falumnos; FILE *fcursos; FILE *fevaluaciones; struct alumnos f1; struct cursos f2; struct evaluaciones f3; int buscar_alumno(int cod_al); int buscar_curso(int cod_cu); int busca_alum(int cod_al); int busca_cur(int cod_cu); //****************************ingreso de alumnos********************************** void ingresar_alumno() { int cod_al; char resp; do { clrscr(); gotoxy(10,4);textcolor(8);cprintf("INGRESO DE DATOS DE ALUMNOS"); falumnos=fopen("Alumnos.txt","a+"); if(falumnos==NULL) { gotoxy(10,50);cout<<"ARCHIVO NO EXISTE, CREARE ARCHIVO ";getch(); falumnos=fopen("Alumnos.txt","a+"); } do{gotoxy(10,6);clreol();cout<<"Codigo = ";cin>>cod_al;}while(cod_al<100||cod_al>999); int pos=buscar_alumno(cod_al); if(pos==-1) { f1.cod_alu=cod_al; gotoxy(10,7);cout<<"Apellido: ";gets(f1.apell); gotoxy(10,8);cout<<"Nombre: ";gets(f1.nomb); do{gotoxy(10,9);clreol();cout<<"Edad: ";cin>>f1.edad;}while(f1.edad<14||f1.edad>40); fwrite(&f1,sizeof(f1),1,falumnos); fclose(falumnos); gotoxy(10,11);textcolor(10);cprintf("INGRESO DE DATOS DE ALUMNOS"); } else {gotoxy(30,6);textcolor(12);cprintf("Registro ALUMNO YA EXISTE...");} gotoxy(10,16);cout<<"DESEA INGRESAR NUEVO REGISTRO..? (S/N) ==> ";cin>>resp; }while(toupper(resp)=='S'); fclose(falumnos); return; } //***********************reporte de alumnos************************* void reporte_alumno() { clrscr(); gotoxy(10,3);textcolor(10);cprintf(" LISTA DE ALUMNOS"); cout<<"\n\r __________________________________________________________"; falumnos=fopen("Alumnos.txt","r");//envia a la ram if(falumnos==NULL)//confirmar existencia de archivo { gotoxy(10,15);cout<<"No existe el archivo !!!"; gotoxy(10,16);cout<<"<<< PRESIONE ENTER para continuar >>>";getch(); return; } gotoxy(10,5);cout<<setw(10)<<" CODIGO "<<setw(15)<<" APELLIDO "<<setw(15)<<" NOMBRE "<<setw(10)<<" EDAD "; cout<<"\n\r __________________________________________________________"; gotoxy(10,9);cout<<"\n"; int i=0; fread(&f1,sizeof(f1),1,falumnos);//para iniciar bucle de busqueda while(!feof(falumnos)) { i++; gotoxy(10,7+i);cout<<setw(7)<<f1.cod_alu<<setw(16)<<f1.apell<<setw(15)<<f1.nomb<<setw(10)<<f1.edad; fread(&f1,sizeof(f1),1,falumnos);//Para continuar con Bucle } fclose(falumnos);//cierra el archivo cout<<"\n\r __________________________________________________________"; cout<<endl<<"\n\n"; gotoxy(10,12+i);cout<<"Total de Registros = "<<i; gotoxy(10,13+i);cout<<"\n\r <<<<...PRESIONE ENTER para continuar...>>>";getch(); return; } //*********************ingreso de cursos*************************** void ingreso_cursos() { clrscr(); int cod_cu; char nombre[40]; bool b1; char resp; do { gotoxy(10,4);textcolor(8);cprintf("INGRESO DE DATOS DE CURSOS"); fcursos=fopen("Cursos.txt","a+"); if(fcursos==NULL) { gotoxy(10,50);cout<<"ARCHIVO NO EXISTE, CREARE ARCHIVO ";getch(); fcursos=fopen("Cursos.txt","a+"); } do{gotoxy(10,6);clreol();cout<<"Codigo = ";cin>>cod_cu;}while(cod_cu<100||cod_cu>999); int pos=buscar_curso(cod_cu); if(pos==-1) { b1=true; gotoxy(10,7);cout<<"Nombre: ";gets(nombre); fseek(fcursos,0,SEEK_SET); fread(&f2,sizeof(f2),1,fcursos); while(!feof(fcursos)) { if(strcmpi(f2.descrip,nombre)==0) { gotoxy(30,7);textcolor(12);cprintf("NOMBRE YA EXISTE..."); fclose(fcursos); b1=false;break; } fread(&f2,sizeof(f2),1,fcursos); } if(b1==true) { f2.cod_curso=cod_cu; strcpy(f2.descrip,nombre); gotoxy(10,8);cout<<"Escuela: ";gets(f2.escu); do{gotoxy(10,9);clreol();cout<<"Credito: ";cin>>f2.credit;}while(f2.credit<1||f2.credit>5); fwrite(&f2,sizeof(f2),1,fcursos); fclose(fcursos); gotoxy(10,11);textcolor(10);cprintf("INGRESO DE DATOS DE CURSOS"); } } else { gotoxy(30,6);textcolor(12);cprintf("CODIGO YA EXISTE..."); } gotoxy(10,16);cout<<"DESEA INGRESAR NUEVO REGISTRO..? (S/N) ==> ";cin>>resp; clrscr(); }while(toupper(resp)=='S'); fclose(fcursos); return; } //***********************reporte de cursos********************** void reporte_curso() { clrscr(); gotoxy(10,3);textcolor(10);cprintf(" LISTA DE CURSOS"); cout<<"\n\r __________________________________________________________"; fcursos=fopen("Cursos.txt","r");//envia a la ram if(fcursos==NULL)//confirmar existencia de archivo { gotoxy(10,15);cout<<"No existe el archivo !!!"; gotoxy(10,16);cout<<"<<< PRESIONE ENTER para continuar >>>";getch(); return; } gotoxy(10,5);cout<<setw(10)<<" CODIGO "<<setw(12)<<" NOMBRE "<<setw(16)<<" ESCUELA "<<setw(15)<<" CREDITOS "; cout<<"\n\r __________________________________________________________"; gotoxy(10,9);cout<<"\n"; int i=0; fread(&f2,sizeof(f2),1,fcursos);//para iniciar bucle de busqueda while(!feof(fcursos)) { i++; gotoxy(10,7+i);cout<<setw(7)<<f2.cod_curso<<setw(16)<<f2.descrip<<setw(15)<<f2.escu<<setw(10)<<f2.credit; fread(&f2,sizeof(f2),1,fcursos);//Para continuar con Bucle } fclose(fcursos);//cierra el archivo cout<<"\n\r __________________________________________________________"; cout<<endl<<"\n\n"; gotoxy(10,12+i);cout<<"Total de Registros = "<<i; gotoxy(10,13+i);cout<<"\n\r <<<<...PRESIONE ENTER para continuar...>>>";getch(); return; } //*******************ingreso de notas ************************ void evaluaciones() { clrscr(); int cod_al,cod_cu,menor; char resp; do { gotoxy(10,4);textcolor(8);cprintf("INGRESO DE NOTAS"); fevaluaciones=fopen("Evaluaciones.txt","a+"); if(fevaluaciones==NULL) { gotoxy(10,50);cout<<"ARCHIVO NO EXISTE, CREARE ARCHIVO ";getch(); fevaluaciones=fopen("Evaluaciones.txt","a+"); } do{gotoxy(10,6);clreol();cout<<"Codigo de Alumno= ";cin>>cod_al;}while(cod_al<100||cod_al>999); falumnos=fopen("Alumnos.txt","r+"); int posa=buscar_alumno(cod_al); if(posa==-1) { gotoxy(35,6);textcolor(12);cprintf("ALUMNO NO REGISTRADO..."); } else { gotoxy(35,6);textcolor(10);cprintf("ALUMNO REGISTRADO..."); do{gotoxy(10,7);clreol();cout<<"Codigo de Curso= ";cin>>cod_cu;}while(cod_cu<100||cod_cu>999); fcursos=fopen("Cursos.txt","r+"); int posc=buscar_curso(cod_cu); if(posc==-1) { gotoxy(35,7);textcolor(12);cprintf("CURSO NO REGISTRADO..."); } else { gotoxy(35,7);textcolor(10);cprintf("CURSO REGISTRADO..."); int pos1=busca_alum(cod_al); int pos2=busca_cur(cod_cu); if((pos1==-1)&&(pos2==-1)) { f3.cod_alu=cod_al; f3.cod_curso=cod_cu; do{gotoxy(10,9);clreol();cout<<"Nota 1 = ";cin>>f3.p1;}while(f3.p1<0||f3.p1>20); do{gotoxy(10,10);clreol();cout<<"Nota 2 = ";cin>>f3.p2;}while(f3.p2<0||f3.p2>20); do{gotoxy(10,11);clreol();cout<<"Nota 3 = ";cin>>f3.p3;}while(f3.p3<0||f3.p3>20); if((f3.p1<f3.p2)&&(f3.p1<f3.p3)) {menor=f3.p1;} if((f3.p2<f3.p1)&&(f3.p2<f3.p3)) {menor=f3.p2;} if((f3.p3<f3.p1)&&(f3.p3<f3.p2)) {menor=f3.p3;} f3.prom=(f3.p1+f3.p2+f3.p3-menor)/2.0; if(f3.prom>10) {strcpy(f3.cond,"APROBADO");} else {strcpy(f3.cond,"DESAPROBADO");} fwrite(&f3,sizeof(f3),1,fevaluaciones); fclose(fevaluaciones); gotoxy(15,13);textcolor(10);cprintf("INGRESO DE DATOS CORRECTO"); } else { gotoxy(35,9);textcolor(12);cprintf("ALUMNO YA MATRICULADO..."); } } } gotoxy(10,16);cout<<"DESEA INGRESAR NUEVO REGISTRO..? (S/N) ==> ";cin>>resp; clrscr(); }while(toupper(resp)=='S'); fclose(fevaluaciones); return; } //***************reporte de notas************************ void reporte_notas() { clrscr(); gotoxy(10,3);textcolor(10);cprintf(" LISTA DE NOTAS"); cout<<"\n\r __________________________________________________________"; fevaluaciones=fopen("Evaluaciones.txt","r");//envia a la ram if(fevaluaciones==NULL)//confirmar existencia de archivo { gotoxy(15,8);cout<<"No existe el archivo !!!"; gotoxy(15,10);cout<<"<<< PRESIONE ENTER para continuar >>>";getch(); return; } gotoxy(10,5);cout<<setw(5)<<"COD ALU"<<setw(9)<<"COD CUR"<<setw(7)<<"NOTA1"<<setw(6)<<"NOTA2"<<setw(6)<<"NOTA3"<<setw(6)<<"PROME"<<setw(8)<<"COND."; cout<<"\n\r __________________________________________________________"; gotoxy(10,9);cout<<"\n"; int i=0; fread(&f3,sizeof(f3),1,fevaluaciones);//para iniciar bucle de busqueda while(!feof(fevaluaciones)) { i++; gotoxy(10,7+i);cout<<setw(4)<<f3.cod_alu<<setw(10)<<f3.cod_curso<<setw(7)<<f3.p1<<setw(6)<<f3.p2<<setw(6)<<f3.p3<<setw(7)<<f3.prom<<setw(11)<<f3.cond; fread(&f3,sizeof(f3),1,fevaluaciones);//Para continuar con Bucle } fclose(fevaluaciones);//cierra el archivo cout<<"\n\r __________________________________________________________"; cout<<endl<<"\n\n"; gotoxy(10,12+i);cout<<"Total de Registros = "<<i; gotoxy(10,13+i);cout<<"\n\r <<<<...PRESIONE ENTER para continuar...>>>";getch(); return; } void main() { char opcion; do{ clrscr(); system("title Por Jorge Luis"); gotoxy(12,4);cout<<"SISTEMA DE MANTENIMIENTO: EVALUACIONES "; gotoxy(5,5);cout<<"_____________________________________________________"; gotoxy(5,14);cout<<"_____________________________________________________"; gotoxy(12,7);cout<<"[1] INGRESAR DATOS DE ALUMNO"; gotoxy(12,8);cout<<"[2] INGRESAR DATOS DE CURSO"; gotoxy(12,9);cout<<"[3] INGRESAR NOTAS"; gotoxy(12,10);cout<<"[4] LISTAR ALUMNOS"; gotoxy(12,11);cout<<"[5] LISTAR CURSOS"; gotoxy(12,12);cout<<"[6] LISTADO TOTAL"; gotoxy(12,13);cout<<"[0] SALIR"; gotoxy(12,16);cout<<"<Edite opcion>==> "; cin>>opcion; switch(opcion) { case '1' : ingresar_alumno();break; case '2' : ingreso_cursos();break; case '3' : evaluaciones();break; case '4' : reporte_alumno();break; case '5' : reporte_curso();break; case '6' : reporte_notas();break; default : break; } }while(opcion!='0'); } int buscar_alumno(int cod_al) { int cont=0; fseek(falumnos,0,SEEK_SET); fread(&f1,sizeof(f1),1,falumnos); while(!feof(falumnos)) { if(f1.cod_alu==cod_al) {return cont;} else { fread(&f1,sizeof(f1),1,falumnos); cont++; } } return -1; } int buscar_curso(int cod_cu) { int cont=0; fseek(fcursos,0,SEEK_SET); fread(&f2,sizeof(f2),1,fcursos); while(!feof(fcursos)) { if(f2.cod_curso==cod_cu) {return cont;} else { fread(&f2,sizeof(f2),1,fcursos); cont++; } } return -1; } int busca_alum(int cod_alu) { int cont=0; fseek(fevaluaciones,0,SEEK_SET); fread(&f3,sizeof(f3),1,fevaluaciones); while(!feof(fevaluaciones)) { if(f3.cod_alu==cod_alu) {return cont;} else { fread(&f3,sizeof(f3),1,fevaluaciones); cont++; } } return -1; } int busca_cur(int cod_cu) { int cont=0; fseek(fevaluaciones,0,SEEK_SET); fread(&f3,sizeof(f3),1,fevaluaciones); while(!feof(fevaluaciones)) { if(f3.cod_curso==cod_cu) {return cont;} else { fread(&f3,sizeof(f3),1,fevaluaciones); cont++; } } return -1; }
PD: aun soy novato en esto de manejo de archivos en borland c++