PROGRAMA EN C++

Hoy les traigo un programa que acabo de hacer...
...::::: Calendario (Calculo de signo zodiacal y numero de suerte) ::::.....


#include <conio.h>
#include <iostream>

void avanzar(int *d, int *m,int *a);
bool validar(int d, int m, int a);
bool bisiesto(int a);
void regresar(int *d, int *m,int *a);
void signo(int m, int d);
void largo (int d, int m, int a);
void suma(int *d, int *m, int *a);
using namespace std;
main(){
       int d, m, a,opc;
       do{
           cout << "Ingresa dia : " << endl;
           cin >> d;
           cout << "Ingresa mes : " << endl;
           cin >> m;
           cout << "Ingresa anio : " << endl;
           cin >> a;
           }while ( validar(d,m,a)== false);
         
           cout << "seleccione opcion: " << endl;
           cout << "1.avanzar" << endl;
           cout << "2.regresar" << endl;
           cout << "3.numero" << endl;
           cout << "4.formato largo" << endl;
           cout<<"5.signo zodiacal"<<endl;
           cin >> opc;
           switch(opc){
 case 1 :{
        avanzar(&d, &m, &a);
           cout << d << "/" << m << "/" << a << endl;
              }
              break;
 case 2 :{
        regresar(&d, &m, &a);
           cout << d << "/" << m << "/" << a << endl;
              }
              break;
 case 3:
      suma(&d,&m,&a);
      break;
 case 4 :{
        largo(d, m, a);
              }
              break;
 case 5 :{
        signo(d, m);
              }
              break;

}
         
           getch();
       }

void largo(int d, int m,int a)
{switch(m){
    case 1 :{
             cout << d << " de Enero de " << a << endl;  }
             break;
case 2 :{
             cout << d << " de Febrero de " << a << endl; }
              break;
case 3 :{
             cout << d << " de Marzo de " << a << endl;  }
               break;
case 4 :{
             cout << d << " de Abril de " << a << endl;  }
              break;
case 5 :{
             cout << d << " de Mayo de " << a << endl;  }
              break;
case 6 :{
             cout << d << " de Junio de " << a << endl;}
              break;
case 7 :{
             cout << d << " de Julio de " << a << endl; }
              break;
case 8 :{
             cout << d << " de Agosto de " << a << endl; }
               break;
case 9 :{
             cout << d << " de Septiembre de " << a << endl;}
              break;
case 10 :{
             cout << d << " de Octubre de " << a << endl;  }
               break;
case 11 :{
             cout << d << " de noviembre de " << a << endl; }
              break;
case 12 :{
             cout << d << " de diciembre de " << a << endl;  }
              break;

    }}
void signo(int d, int m){

        if((d>=21&&m==3)||(d<=20&&m==4))
            cout <<"Aries\n"<<endl;
        if((d>=24&&m==9)||(d<=23&&m==10))
            cout <<"Libra\n"<<endl;
        if((d>=21&&m==4)||(d<=21&&m==5))
            cout <<"Tauro\n"<<endl;
        if((d>=24&&m==10)||(d<=22&&m==11))
            cout <<"Escorpio\n"<<endl;
        if((d>=22&&m==5)||(d<=21&&m==6))
            cout <<"Geminis\n"<<endl;
        if((d>=23&&m==11)||(d<=21&&m==12))
            cout <<"Sagitario\n"<<endl;
        if((d>=21&&m==6)||(d<=23&&m==7))
            cout <<"Cancer\n"<<endl;
        if((d>=22&&m==12)||(d<=20&&m==1))
            cout <<"Capricornio\n"<<endl;
        if((d>=24&&m==7)||(d<=23&&m==8))
            cout <<"Leo\n"<<endl;
        if((d>=21&&m==1)||(d<=19&&m==2))
            cout <<"Acuario\n"<<endl;
        if((d>=24&&m==8)||(d<=23&&m==9))
            cout <<"Virgo\n"<<endl;
        if((d>=20&&m==2)||(d<=20&&m==3))
           cout <<"Piscis\n"<<endl;}
         
void regresar(int *d, int *m,int *a){
     *d = *d-1;
     switch(*m){
         case  2 :
         case  5 :
         case  7 :
         case  8 :
         case 10 :
         case  12 :{
              if(*d < 1){
                    *m = *m-1;
                    *d = 30;
                    }
              }
              break;
         case 3  :{
              if (bisiesto(*a) == true){
                               if(*d < 1){
                                     *m = *m-1;
                                     *d = 29;
                                     }
                               }
              else{
                   if(*d < 1){
                         *m = *m-1;
                         *d = 28;
                         }
                   }}
                   break;
                 
          case  4 :
         case  6 :
         case  9 :
         case 11 :{
              if(*d < 1){
                    *m = *m-1;
                    *d = 31;
                    }
              }
              break;
         case 1:{
              if(*d < 1){
                    *m = 12;
                    *d = 31;
                    *a = *a - 1;
                    }
              }
              break;
              default:
                      cout << "Fecha incorrecta" << endl;
                      break;
     }
     }
void avanzar(int *d, int *m,int *a)
{
     *d = *d+1;
     switch(*m){
         case  1 :
         case  3 :
         case  5 :
         case  7 :
         case  8 :
         case 10 :{
              if(*d > 31){
                    *m = *m+1;
                    *d = 1;
                    }
              }
              break;
         case 2  :{
              if (bisiesto(*a) == true){
                               if(*d > 29){
                                     *m = *m+1;
                                     *d = 1;
                                     }
                               }
              else{
                   if(*d > 28){
                         *m = *m+1;
                         *d = 1;
                         }
                   }
                   break;
                   }
          case  4 :
         case  6 :
         case  9 :
         case 11 :{
              if(*d > 30){
                    *m = *m+1;
                    *d = 1;
                    }
              }
              break;
         case 12:{
              if(*d > 31){
                    *m = 1;
                    *d = 1;
                    *a = *a + 1;
                    }
              }
              break;
              default:
                      cout << "Fecha incorrecta" << endl;
                      break;
     }
     }
   
bool bisiesto(int a){
      if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0 ){
            return true;
         }
      else {
           return false;
           }
     }
   
bool validar(int d, int m, int a){  
 if ( m >= 1 && m <= 12 )
   {

      switch ( m )
      {
         case  1 :
         case  3 :
         case  5 :
         case  7 :
         case  8 :
         case 10 :
         case 12 :
              if ( d >= 1 && d <= 31 ){
                   return true;
                   }
                   else
                      return false;
                   break;

         case  4 :
         case  6 :
         case  9 :
         case 11 : if ( d >= 1 && d <= 30 )
                      return true;
                   else
                      return false;
                   break;
                 
                   case 2: if (bisiesto(a) == true)
                      if ( d >= 1 && d <= 29 )
                         return true;
                      else
                         return false;
                   else
                      if ( d >= 1 && d <= 28 )
                         return true;
                      else
                         return false;
      }

   }
   else
      return false;
     }
   
void suma(int *d,int *m,int *a)
{   int anio= *a;
    int dia=*d;
    int mes=*m;
 
    int suma1 =0;
    int suma2 =0;
    int suma3 =0;
    int NoSuerte=0;
    //-->CALCULA EL  DIA Y MES DE LA SUERTE
    for(int i=1;i<=2;i++)
    {   suma1=0;
        suma2=0;
        for(int j=10; j>=1; j=j/10)
        {    suma1=suma1 + (dia/j);
             suma2=suma2 + (mes/j);
             dia= dia%j;
             mes= mes%j;
        }  
        dia=suma1;
        mes= suma2;
    }  
    for(int i=1;i<=4;i++)
    {   suma3=0;
        for(int j=1000; j>=1; j=j/10)
        {    suma3=suma3 + (anio/j);
             anio= anio%j;
        }  
        anio=suma3;
    }  
    //--> CALCULA LA SUMA FINAL DEL NUMERO DE LA SUERTE
    NoSuerte = dia + mes + anio;
    suma1=0;
    for(int i=1;i<=2;i++)
    {   suma1=0;
        for(int j=10; j>=1; j=j/10)
        {    suma1=suma1 + (NoSuerte/j);
             NoSuerte= NoSuerte%j;
        }  
        NoSuerte=suma1;
    }  
    cout<<"\n\n Numero SUERTE"<<NoSuerte;
}

Comentarios