Problema para el promedio

jimgom
15 de Noviembre del 2009
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][i];
gotoxy(41,pos);
cout<<notas[ubicacion][i];
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][i];
promedio= promedio + notas[ubicacion][i];
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][i];
pos2=pos2 + 8;
}
}
pos=pos+1;
}
}