• Viernes 8 de Noviembre de 2024, 20:52

Autor Tema:  Problema con promedio y nota  (Leído 968 veces)

jimgom

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Problema con promedio y nota
« en: Domingo 15 de Noviembre de 2009, 02:11 »
0
Cordial Saludo Compañeros
Por favor me pueden colaborar, con el siguiente caso. Estoy con este programa, el cual al introducirle 4 notas, me saca el promedio. Solo que debo hacer que si el promedio es >3. Sale el mensaje alumno aprobó, pero si promedio es <3. Sale el otro mensaje alumno perdió.

Solo que:
1.Cuando lo corro y entro de ingresar las notas y empiezo a digitar las notas. En la Nota 1, la escibo doy enter y en la parte inferior junto al titulo de promedio, me aparece el mensaje alumno perdió. Sin ni siquiera digitar las otras notas y si las digito todas igual ese mensaje continua ahí y si digito notas por encima de 3 lo mismo.
2.Las notas deben ir de 1 a 5.El detalle esta en la validación. Tanto notas como promedio están definidas tipo float y en ocasiones me sale mensaje de error, que no puede pasar de float a entero o viceversa.

Muchas gracias, por su ayuda y colaboración.

Atte.

jimgom


//FUNCION PARA CAPTURAR NOTAS
void capturanotas(void)
{
   char ing='*';
   char ing2='*';
   int  curso=0,codigo=0,result2=0,inicio,fin,result,materia;
   while (ing2!='N')
   {
     result=haycupo3();
     if (result<30)
     {
      ing2='S';
      while(ing!='R')
      {
    clrscr();
    curso=0;
    pintamenu5(0,0);
    gotoxy(41,7);
    cin>>curso;
    if (curso > 5)
    {
       gotoxy(30,1);
       cout<<"ERROR CURSO NO VALIDO";
       getch();
    } else
    {
      result=haycupo2(curso);
      if(result==6)
      {
          gotoxy(30,1);
          cout<<"ERROR CURSO SIN ALUMNOS";
          getch();
      } else
      ing='R';
    }
      }
      ing='*';
      while(ing!='R')
      {
    clrscr();
    pintamenu5(curso,0);
    codigo=0,result2=0;
    gotoxy(41,9);
    cin>>materia;
    if (materia > 11)
    {
       gotoxy(30,1);
       cout<<"ERROR MATERIA NO VALIDA";
       getch();
    } else
    {
        pintamenu5(curso,materia);
        ing='R';
    }
      }
      ing='*';
      while(ing!='R')
      {
    clrscr();
    pintamenu5(curso,materia);
    codigo=0,result2=0;
    gotoxy(41,11);
    cin>>codigo;
    {
       result2 = hayalumno(codigo);
       if (result2 == 0)
       {
      gotoxy(30,1);
      cout<<"ALUMNO NO EXISTE";
      getch();
       }
       else
       {
          fin     = curso*6 - 1;
          inicio  = fin - 6;
          result2 = result2 -1;
          if(result2 < inicio)
          {
        gotoxy(30,1);
        cout<<"ALUMNO PERTENECE A OTRO CURSO";
        getch();
          } else
          if(result2 > fin)
          {
        gotoxy(30,1);
        cout<<"ALUMNO PERTENECE A OTRO CURSO";
        getch();
          } else
          {
        ing='R';
          }
       }
    }
      }
      gotoxy(41,13);
      pintanom(result2);
      cout<<' ';
      pintaape(result2);
      pidenotas(materia,result2);


      ing='*';
      gotoxy(25,22);
      cout<<"CAPTURA MAS NOTAS S/N [   ]";
      gotoxy(49,22);
      ing2=getch();
      if(ing2=='s')
      {
   ing2='S';
      }
      if(ing2!='S')
      {
    ing2='N';
      }
     } else
     {
       ing2='N';
          gotoxy(30,1);
          cout<<"ERROR CURSO SIN ALUMNOS";
          getch();

     }
   }
}
//FUNCION PARA CONSULTAR NOTAS
void consulta1(void)
{
   char ing='*';
   char ing2='*';
   int  curso=0,inicio,fin,result,materia;
   while (ing2!='N')
   {
     result=haycupo3();
     if (result<30)
     {
      ing2='S';
      while(ing!='R')
      {
    clrscr();
    curso=0;
    pintamenu6(0,0);
    gotoxy(41,7);
    cin>>curso;
    if (curso > 5)
    {
       gotoxy(30,1);
       cout<<"ERROR CURSO NO VALIDO";
       getch();
    } else
    {
      result=haycupo2(curso);
      if(result==6)
      {
          gotoxy(30,1);
          cout<<"ERROR CURSO SIN ALUMNOS";
          getch();
      } else
      ing='R';
    }
      }
      ing='*';
      while(ing!='R')
      {
    clrscr();
    pintamenu6(curso,0);
    gotoxy(41,9);
    cin>>materia;
    if (materia > 11)
    {
       gotoxy(30,1);
       cout<<"ERROR MATERIA NO VALIDA";
       getch();
    } else
    {
        pintamenu6(curso,materia);
        ing='R';
    }
       }
       muestranotas(materia,curso);
       gotoxy(25,22);
       cout<<"PRESIONE CUALQUIER TECLA PARA CONTINUAR";

       getch();
       ing2='N';
     } else
     {
       ing2='N';
          gotoxy(30,1);
          cout<<"ERROR CURSO SIN ALUMNOS";
          getch();

     }
   }
}

int haycupo(int i)
{
  int inicio,fin,j,resul=0;
  fin     = i*6;
  inicio  = fin - 6;
  for(j=inicio;j<fin;j++)
  {
    if(codigos[j]==0)
    {
      resul=j + 1;
      j=fin + 1;
    }
  }
  return resul;
}
int haycupo2(int i)
{
  int inicio,fin,j,resul=0;
  fin     = i*6;
  inicio  = fin - 6;
  for(j=inicio;j<fin;j++)
  {
    if(codigos[j]==0)
    {
      resul=resul + 1;
    }
  }
  return resul;
}
int haycupo3(void)
{
  int j,resul=0;
  for(j=0;j<30;j++)
  {
    if(codigos[j]==0)
    {
      resul=resul + 1;
    }
  }
  return resul;
}



int hayalumno(int i)
{
  int j,resul=0;
  for(j=0;j<cantidad2;j++)
  {
    if(codigos[j]==i)
    {
      resul=j + 1;
      j=cantidad2 + 1;
    }
  }
  return resul;
}


//FUNCION PARA MOSTRAR EL MENU PRINCIPAL
void pintamenu1(void)
{
   clrscr();
   gotoxy(30,4);
   cout<<"COLEGIO SAN LUIS GONZAGA";
   gotoxy(25,7);
   cout<<"1.- CREAR MATERIAS";
   gotoxy(25,9);
   cout<<"2.- MATRICULAR ALUMNOS";
   gotoxy(25,11);
   cout<<"3.- INGRESAR NOTAS";
   gotoxy(25,13);
   cout<<"4.- CONSULTA POR MATERIA";
   gotoxy(25,15);
   cout<<"5.- PARA TERMINAR EL PROGRAMA";
   gotoxy(25,21);
   cout<<"SELECCIONE UNA OPCION  [   ]";
   gotoxy(50,21);
}
//FUNCION PARA MOSTRAR EL MENU MATRICULA
void pintamenu3(char seleccion,int curso)
{
   clrscr();
   gotoxy(23,4);
   if (seleccion == 'C')
   {
      cout<<"COLEGIO SAN LUIS CREAR MATRICULA";
   }
   if (seleccion == 'M')
   {
      cout<<"COLEGIO SAN LUIS MODIFICAR MATRICULA";
   }
   if (seleccion == 'B')
   {
     cout<<"COLEGIO SAN LUIS BORRAR MATRICULA";
   }
   gotoxy(25,7);
   cout<<"CURSO ";
   if (curso > 0)
   {
      gotoxy(41,7);
      cout<<curso;
   }
   gotoxy(25,9);
   cout<<"CODIGO";
   gotoxy(25,11);
   cout<<"NOMBRES";
   gotoxy(25,13);
   cout<<"APELLIDOS";
   gotoxy(25,15);

}
void pintamenu4(void)
{
   clrscr();
   gotoxy(30,4);
   cout<<"COLEGIO SAN LUIS";
   gotoxy(25,7);
   cout<<"1.- CREA ";
   gotoxy(25,9);
   cout<<"2.- MODIFICA";
   gotoxy(25,11);
   cout<<"3.- BORRA";
   gotoxy(25,13);
   cout<<"4.- SALIR";
   gotoxy(25,15);
   gotoxy(25,22);
   cout<<"SELECCIONE UNA OPCION  [   ]";
   gotoxy(50,22);
}
//FUNCION PARA MOSTRAR EL MENU MATRICULA
void pintamenu5(int curso,int materia)
{
   clrscr();
   gotoxy(23,4);
      cout<<"COLEGIO SAN LUIS CAPTURAR NOTAS";
   gotoxy(25,7);
   cout<<"CURSO ";
   if (curso > 0)
   {
      gotoxy(41,7);
      cout<<curso;
   }
   gotoxy(25,9);
   cout<<"MATERIA";
   if (materia > 0)
   {
      gotoxy(41,9);
      cout<<materia;
      materia=materia - 1;
      gotoxy(45,9);
      pintamat(materia);
   }
   gotoxy(25,11);
   cout<<"ALUMNO";
   gotoxy(25,13);
   cout<<"NOMBRE";
   gotoxy(25,15);
   cout<<"NOTA 1";
   gotoxy(25,16);
   cout<<"NOTA 2";
   gotoxy(25,17);
   cout<<"NOTA 3";
   gotoxy(25,18);
   cout<<"NOTA 4";
   gotoxy(25,19);
   cout<<"PROMEDIO";

}
//FUNCION PARA MOSTRAR CONSULTA
void pintamenu6(int curso,int materia)
{
   clrscr();
   gotoxy(23,4);
      cout<<"COLEGIO SAN LUIS GONZAGA CONSULTA NOTAS";
   gotoxy(25,7);
   cout<<"CURSO ";
   if (curso > 0)
   {
      gotoxy(41,7);
      cout<<curso;
   }
   gotoxy(25,9);
   cout<<"MATERIA";
   if (materia > 0)
   {
      gotoxy(41,9);
      cout<<materia;
      materia=materia - 1;
      gotoxy(45,9);
      pintamat(materia);
   }
   gotoxy(1,11);
   cout<<"ALUMNO";
   gotoxy(8,11);
   cout<<"NOMBRES";
   gotoxy(25,11);
   cout<<"APELLIDOS";
   gotoxy(40,11);
   cout<<"NOTA 1";
   gotoxy(48,11);
   cout<<"NOTA 2";
   gotoxy(56,11);
   cout<<"NOTA 3";
   gotoxy(64,11);
   cout<<"NOTA 4";
   gotoxy(72,11);
   cout<<"PROMEDIO";

}
//FUNCION PARA CAPTURAR NOTAS
void pidenotas (int materia,int ubicacion)
{
      int inicio,fin,i,pos=15;
      float promedio=0;
      fin = materia*5;
      inicio = fin - 5;
      fin    = fin - 1;
      for (i=inicio;i<fin;i++)
      {
    promedio= promedio + notas[ubicacion];
    gotoxy(41,pos);
    cout<<notas[ubicacion];
    pos=pos+1;
      }
      notas[ubicacion][fin]=promedio/4;
      gotoxy(41,pos);
      if (promedio > 3)
      {
      cout<<"ALUMNO PASO";
      }else
      cout<<"ALUMNO PERDIO";
      gotoxy(55,pos);
      cout<<notas[ubicacion][fin];
      promedio=0; pos=15;
      for (i=inicio;i<fin;i++)
      {
    gotoxy(41,pos);
    cin>>notas[ubicacion];
    promedio= promedio + notas[ubicacion];
    pos=pos+1;
      }
      notas[ubicacion][fin]=promedio/4;
      gotoxy(41,pos);
      cout<<notas[ubicacion][fin];
}
//FUNCION PARA MOSTRAR NOTAS
void muestranotas (int materia,int curso)
{
      int inicio,fin,i,pos=13,pos2,inicio2,fin2,j;
      fin = materia*5;
      inicio = fin - 5;
      fin2    = curso*6;
      inicio2 = fin2 - 6;
      for(j=inicio;j<fin;j++)
      {
    if (codigos[j] >0)
    {
       gotoxy(1,pos);
       cout<<codigos[j];
       gotoxy(8,pos);
       pintanom(j);
       gotoxy(25,pos);
       pintaape(j);
       pos2 = 40;
       for (i=inicio2;i<fin2;i++)
       {  gotoxy(2,2);
          gotoxy(pos2,pos);
          cout<<notas[j];
          pos2=pos2 + 8;
       }
    }
    pos=pos+1;
     }
 }