Día de la semana

Dada una fecha, el programa dice el día de la semana al que corresponde.

#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;

bool bisies (int fecha);
int bisiesant (int fecha2);

int main()
{
    /* Declaración de variables */
   
    int ano,dia;
    int mes;
    int total;
    int i;
    int sol;
   
    /* Entrada de datos */
   
    cout<<"Introduzca el año de la fecha que desee estudiar"<<endl;
    cin>>agno;
    cout<<"Introduzca el numero del mes"<<endl;
    cin>>mes;
    cout<<"Introduzca el numero del dia"<<endl;
    cin>>dia;
   
    /* Procedimiento */
   
    total=30*(mes-1);
    total=total+dia;
   
    if (mes>2)
       {if (bisies(agno))
           {total=total-1;}
       else
           {total=total-2;}}
   
    if (mes<=7)   
       {total=total+mes/2;}
    else
        {total=total+4+(mes-7)/2;}
   
    i=1900;
   
    while (i<agno)
          {
          total=total+365;
          i++;
          }
   
    total=total+bisiesant(agno);
       
    sol=total%7;
   
    /* Salida de resultados */
   
    cout<<"La fecha introducida corresponde con un ";
    switch (sol)
    {
           case 1:
           {cout<<"lunes"<<endl;}
           break;
           case 2:
           {cout<<"martes"<<endl;}
           break;
           case 3:
           {cout<<"miercoles"<<endl;}
           break;
           case 4:
           {cout<<"jueves"<<endl;}
           break;
           case 5:
           {cout<<"viernes"<<endl;}
           break;
           case 6:
           {cout<<"sabado"<<endl;}
           break;
           case 0:
           {cout<<"domingo"<<endl;}      
    }
   
    system("PAUSE");
    return 0;
}

bool bisies(int fecha)
{
     bool bisiesto;
    
     if ((fecha%100)==0)
        {if ((fecha%400)==0)
            {bisiesto=true;}
         else
            {bisiesto=false;}}
     else
         {if ((fecha%4)==0)
             {bisiesto=true;}
         else
         {bisiesto=false;}}
        
     return bisiesto;
}

int bisiesant(int fecha2)
{
    int j,k;
   
    k=0;

    j=1900;
    while (j<fecha2)
        {
                    if (bisies(j))
                    k++;
                    j++;
        }
       
    return k;

}