/********************************************************************************************
 *      TITULO: Control de alumnos.                                                         *
 *       AUTOR: Luis Emigdio Tirado Martinez.                                               *
 *       FECHA: 19-oct/2008.                                                                *
 * DESCRIPCION: Se introduce por teclado el sexo y calificaion de una seria de alumnos      *
 *		(no mas de 100), donde se obtiene el numero de alumnos hombres aprobados,   *
 *		el numero de alumnos hombres reprobados y el promedio de los hombres. Lo    *
 *		mismo se hace con las mujeres. Tambien se hace el calculo de el promedio    *
 *		globlal, es decir de hombres y mujeres.                                     *
 ********************************************************************************************/
#include <iostream.h>
#include <conio.h>
#include <ctype.h>
#define MAX	100

void menu();	

struct alumno
	{
       	char sexo;
	float calif;
	}alumno[MAX];

void main(void)
	{
	int i,num;
	float hombres_aprobados,hombres_reprobados,mujeres_aprobadas,mujeres_reprobadas;
	float suma=0,suma2=0,suma3=0,suma4=0,suma_hombres,suma_mujeres,media_hombres,media_mujeres,media_global;
	char ele;
        comienzo:
	menu();
	cout<<"Escribe el numero de alumnos(maximo "<<MAX<<"): ";
	cin>>num;
        inicio:
        for(i=0;i<num;i++)
		{
		menu();
		cout<<"ALUMNO No. "<<i+1<<"\n\n";
		cout<<"Sexo del alumno(M/F): ";
	      	cin>>alumno[i].sexo;
	       //	ele=toupper(getch());
		if(alumno[i].sexo=='M' || alumno[i].sexo=='F' || alumno[i].sexo=='m' || alumno[i].sexo=='f')
			{
                        inicio2:  
			menu();
			cout<<"ALUMNO No. "<<i+1<<"\n\n";
		     	}
	      	else
			{
                        goto inicio;
			}   
                	cout<<"Calificacion del alumno: ";
			cin>>alumno[i].calif;
		      	if(alumno[i].calif>=0 && alumno[i].calif<=10)
				{
				menu();
				}
			else
				{
                                goto inicio2;
				}
		}
                cout<<"\n\n";
		cout<<"\t\tPresione una tecla para mostrar las estadisticas\n\n";
		getch();
		hombres_aprobados=0;
		hombres_reprobados=0;
		mujeres_aprobadas=0;
		mujeres_reprobadas=0;
	for (i=0;i<num;i++)
		{
		if(alumno[i].sexo=='M' || alumno[i].sexo=='m' && alumno[i].calif>=6   )
			{
			hombres_aprobados++;
                        suma+=alumno[i].calif;
			}
		else
			{
			if(alumno[i].sexo=='M' || alumno[i].sexo=='m' && alumno[i].calif<=5)
                        	{
				hombres_reprobados++;
                                suma2+=alumno[i].calif;
				}
			else
				{
				if(alumno[i].sexo=='F' || alumno[i].sexo=='f' && alumno[i].calif>=6)
					{
					mujeres_aprobadas++;
					suma3+=alumno[i].calif;
					}
				else
					{
					mujeres_reprobadas++;
					suma4+=alumno[i].calif;
					}
				}
			}
		
		suma_hombres=(suma+suma2);
                suma_mujeres=(suma3+suma4);
		}
		int total_hombres=hombres_aprobados+hombres_reprobados;
		int total_mujeres=mujeres_aprobadas+mujeres_reprobadas;
		if(total_hombres==0)
			{
			media_hombres=0;
			}
		else
                	{
			media_hombres=suma_hombres/(total_hombres);
                        }
		cout<<"\tHombres aprobados: "<<hombres_aprobados<<"\n\n";
		cout<<"\tHombres reprobados: "<<hombres_reprobados<<"\n\n";
		cout<<"\tMedia de hombres: "<<media_hombres<<"\n\n";
		if(total_mujeres==0)
			{
			media_mujeres=0;
			}
		else
			{
			media_mujeres=suma_mujeres/(total_mujeres);
			}
	       	media_global=(media_hombres+media_mujeres)/2;
		cout<<"\tMujeres aprobadas: "<<mujeres_aprobadas<<"\n\n";
		cout<<"\tMujeres reprobadas: "<<mujeres_reprobadas<<"\n\n";
		cout<<"\tMedia de Mujeres : "<<media_mujeres<<"\n\n";
		cout<<"\tLa media global es: "<<media_global<<"\n\n\n\n";
		cout<<"\t\t\tPRESINA CUALQUIER TECLA PARA CONTINUAR...";
		getch();
                inicio4:
		clrscr();
		menu();
		cout<<"Deceas:\n";
		cout<<"   [I] Ingresar nuevos datos.\n";
		cout<<"   [S] Salir de programa.\n";
		cout<<"   Elige: ";
		do
			{
			ele=toupper(getch());
			}
		while(!isalpha(ele));
		switch(ele)
			{
			case 'I':
				goto comienzo;
			case 'S':
				goto fin;
			default:
                        	goto inicio4;
			}
		fin:
                clrscr();
                gotoxy(30,10);
		cout<<"GRACIAS POR USAR EL PROGRAMA";
                gotoxy(35,12);
		cout<<"ALT + F4 PARA SALIR.";
		gotoxy(43,14);
                cout<<"ñ_ñ";

        }

void menu()
	{
	clrscr();
	cout<<"\t\t\t[:::CONTROL DE ESTUDIATES:::]\n";
	cout<<"\t\t\t-----------------------------\n\n";
        }