cuando voy al procedimiento "void evaluaciones" ingreso todos mis datos correctamente pero no los guarda en mi archivo Evaluaciones.txt alguien me podria ayudar xfavor se los agradeceria mucho.... aqui les dejo mi avance
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++