no guarda mis datos en el archivo.txt borland c++

Iniciado por —»Boy«—, 6 Marzo 2012, 06:34 AM

0 Miembros y 1 Visitante están viendo este tema.

—»Boy«—

hola a todos y gracias por darse el tiempo de leer mi problema el programa que uso es borland c++ 5.02:
cuando voy al procedimiento "void evaluaciones" ingreso todos mis datos correctamente pero no los guarda en mi archivo Evaluaciones.txt :huh: alguien me podria ayudar xfavor  :( se los agradeceria mucho.... aqui les dejo mi avance
Código (cpp) [Seleccionar]
#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++