Aplikacja biorytm w wersji konsolowej na zaliczenie dla studenta informatyki napisana w c++
Poniżej udostępniam także kod źródłowy tego programu


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

using namespace std;


long mc[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
long double PI_2=3.141592654*2;

void clrscr(void)
{
  cout<<endl<<endl<<endl;
};

long ilednirok(int rok)
{ if ( rok%4==0 && rok%100==0 && rok%400==0 ) return(366);
  if ( rok%4==0 && rok%100!=0) return(366);
  return(365);
};

long policzdni(int r,int m,int d)
{ long dni=0;
  int a;
  for(a=1;a<r;a++) dni=dni+ilednirok(a);
  for(a=1;a<m;a++) dni=dni+mc[a];
  dni=dni+d;
  return(dni);
};

int main(int argc, char *argv[])
{
  int r,m,d,rb,mb,db;
  long tmp,dnipour=0;
  double tend_int,intelektualny,tend_emo,emocjonalny,tend_fiz,fizyczny;
  char znak;

ptl:
  clrscr();
  cout<<endl<<"BIORYTMY"<<endl<<endl;
  cout<<"Podaj date urodzin (np.1999.10.2):"<<endl;
  cout<<"Rok=";
  cin>>r;
  if(r<0) goto ptl;
  cout<<"Miesiac=";
  cin>>m;
  if(m<1 || m>12) goto ptl;
  cout<<"Dzien=";
  cin>>d;
  if(m==2)
    { if(ilednirok(r)==366) tmp=29;
      else tmp=28;
    }
  else tmp=mc[m];
  if(d<1 || d>tmp) goto ptl;

  cout<<"Podaj date biorytmu (np.1999.10.2):"<<endl;
  cout<<"Rok=";
  cin>>rb;
  if(rb<0) goto ptl;
  cout<<"Miesiac=";
  cin>>mb;
  if(mb<1 || mb>12) goto ptl;
  cout<<"Dzien=";
  cin>>db;
  if(mb==2)
    { if(ilednirok(rb)==366) tmp=29;
      else tmp=28;
    }
  else tmp=mc[mb];
  if(db<1 || db>tmp) goto ptl;
  clrscr();
  do
  { cout<<"-------------------------------------------------------------------------------"<<endl;
    cout<<"Data urodzin : "<<r<<"."<<m<<"."<<d<<endl;
    cout<<"-------------------------------------------------------------------------------"<<endl;
    cout<<"Biorytm na dzien : "<<rb<<"."<<mb<<"."<<db<<endl;
    dnipour=policzdni(rb,mb,db)-policzdni(r,m,d);
    cout<<"Przezytych dni : "<<dnipour<<endl;
    if(dnipour<=0) goto ptl;

    tend_int=(long double)PI_2*((long double)(dnipour%33)/(long double)33);
    intelektualny=sin((long double)tend_int)*(long double)100;
    tend_emo=(long double)PI_2*((long double)(dnipour%28)/(long double)28);
    emocjonalny=sin((long double)tend_emo)*(long double)100;
    tend_fiz=(long double)PI_2*((long double)(dnipour%23)/(long double)23);
    fizyczny=(long double)sin((long double)tend_fiz)*(long double)100;

    cout<<"Stan Intelektualny :"<<(int)intelektualny<<endl;
    cout<<"Stan Emocjonalny   :"<<(int)emocjonalny<<endl;
    cout<<"Stan Fizyczny      :"<<(int)fizyczny<<endl;

    cout<<endl<<"ESC-koniec   P-poprzedni dzien   N-nastepny dzieä   ENTER-nowy biorytm";
    do
    { znak=getch();
    }while(znak!=27 && znak!=13 && znak!='P' && znak!='p' && znak!='N' && znak!='n');
    if(znak==13) goto ptl;
    if(znak=='P' || znak=='p')
    { cout<<endl;
      if(db!=1)
 { db--;
   continue;
 };
      if(mb!=1)
 { mb--;
   db=mc[mb];
   if(mb==2)
   { if(ilednirok(rb)==366) db=29;
     else db=28;
   };
   continue;
 };
      rb--;
      mb=12;
      db=mc[12];
      continue;
    };
    if(znak=='N' || znak=='n')
    { cout<<endl;
      if(db!=mc[mb] && mb!=2)
 { db++;
   continue;
 };
      if(db!=29 && mb==2 && ilednirok(rb)==366)
 { db++;
   continue;
 };
      if(db!=28 && mb==2 && ilednirok(rb)==365)
 { db++;
   continue;
 };

      if(mb!=12)
 { mb++;
   db=1;
   continue;
 };
      rb++;
      mb=1;
      db=1;
      continue;
    };
  }while(znak!=27);

  return EXIT_SUCCESS;
}