Witam.

Mam problem z konwersją tego programu na program który by obliczał dzień cyklu biorytmu. Mógłby ktoś mi powiedzieć jak się z tym uporać, jestem totalnie zielony jeśli chodzi o projektowanie w c++.

#include <stdio.h>
#include <stdlib.h>

typedef struct
{
    int d, m, r;
}
data;

void pobierz_date( data * str )
{
    printf( "Dzien: " );
    scanf( "%d", & str->d );
    
    printf( "Miesiac: " );
    scanf( "%d", & str->m );
    
    printf( "Rok: " );
    scanf( "%d", & str->r );
}

int rok_przestepny( int r )
{
    if(( r % 4 == 0 ) &&(( r % 400 == 0 ) ||( r % 100 != 0 ) ) )
         return( 1 );
    else
         return( 0 );
    
}

int ile_dni_w_roku( int r )
{
    int x = 0;
    if( rok_przestepny( r ) )
         x = 366;
    else
         x = 365;
    
    return( x );
}

int ile_dni_w_miesiacu( int m, int r )
{
    int x = 0;
    switch( m )
    {
    case 1: x = 31; break;
    case 2:
        if( rok_przestepny( r ) )
        {
            x = 29; break;
        }
        else
        {
            x = 28; break;
        }
    case 3: x = 31; break;
    case 4: x = 30; break;
    case 5: x = 31; break;
    case 6: x = 30; break;
    case 7: x = 31; break;
    case 8: x = 31; break;
    case 9: x = 30; break;
    case 10: x = 31; break;
    case 11: x = 30; break;
    case 12: x = 31; break;
    default: x = 0; break;
    }
    return( x );
}

int ile_dni_od_poczatku_roku( data * str )
{
    int tmp_d;
    int tmp_m;
    int tmp_r;
    int tmp_x;
    int i;
    
    tmp_d = str->d;
    tmp_m = str->m;
    tmp_r = str->r;
    tmp_x = 0;
    
    for( i = 0; i < tmp_m; i++ )
    {
        tmp_x = tmp_x +( ile_dni_w_miesiacu( i, tmp_r ) );
    }
    tmp_x = tmp_x + tmp_d;
    return( tmp_x );
}

int ile_dni_do_konca_roku( data * str )
{
    int tmp_r;
    int tmp_x;
    
    tmp_r = str->r;
    tmp_x = 0;
    
    tmp_x = ile_dni_w_roku( tmp_r );
    tmp_x = tmp_x - ile_dni_od_poczatku_roku( str );
    
    return( tmp_x );
}

int dni_odstepu( data * str1, data * str2 )
{
    int tmp_r1;
    int tmp_r2;
    int tmp_x;
    int i;
    
    tmp_r1 = str1->r;
    tmp_r2 = str2->r;
    tmp_x = 0;
    
    for( i = tmp_r1; i <= tmp_r2; i++ )
    {
        tmp_x = tmp_x + ile_dni_w_roku( i );
    }
    
    tmp_x = tmp_x - ile_dni_od_poczatku_roku( str1 );
    tmp_x = tmp_x - ile_dni_do_konca_roku( str2 );
    
    return( tmp_x );
}


int main( int argc, char * argv[] )
{
    data D1, D2;
    data * dp, * dk;
    dp = & D1;
    dk = & D2;
    
    printf( "DATA POCZATKOWA\n" );
    pobierz_date( dp );
    printf( "DATA KONCOWA:\n" );
    pobierz_date( dk );
    
    printf( "Odstep: %d dni", dni_odstepu( dp, dk ) );
    
    
    printf( "\n" );
    
    system( "PAUSE" );
    return 0;
}