Classe DiadoAno com Construtor Sobrecarregado

De IFSC
Revisão de 15h45min de 7 de março de 2018 por imported>Fargoud (Criou página com ' #include <iostream> #define ANOATUAL 2018 using namespace std; //Declaração da classe DiadoAno: class DiadoAno { public: DiadoAno(int d, int m, int a,int nasc);...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar
#include <iostream>
#define ANOATUAL 2018
using namespace std;
//Declaração da classe DiadoAno:
class DiadoAno
{ public:
   DiadoAno(int d, int m, int a,int nasc);
   DiadoAno();
  private:
    int dia;    //1-31
    int mes;    //1-12
    int ano;    //0-2017
    int idade;
    int anonasc;
    void VerificaData();
    char * mesextenso;
};
//Função "usuária" da classe - main:
int main()
{ DiadoAno hoje(07,3,2018, 2010), amanha;
    return 0;
}
//Construtor
DiadoAno::DiadoAno(int d, int m, int a,int nasc)
{    dia = d;
     mes = m;
     ano = a;
     anonasc = nasc;
    VerificaData();
}
//Construtor sobrecarregado
 DiadoAno::DiadoAno()
{    cout<<"\nEntre com um valor para dia:";
    cin>> dia ;
    cout<<"\nEntre com um valor para mes:";
    cin>> mes ;
    cout<<"\nEntre com um valor para ano atual:";
    cin>> ano ;
    cout<<"\nEntre com um valor para seu ano de nascimento:";
    cin>> anonasc ;
    VerificaData();
}
//Método PRIVADOVerificaData() da classe DiadoAno:
void DiadoAno::VerificaData()
{    int ehbissexto=0, diamax, dataok;
    if(dia <1 || dia>31)
    {
         cout<< "\nErro no dia fornecido!!!\n\n";
         dataok= 0;
    }
    if (ano <0 || ano > ANOATUAL)
    {
        cout<< "\nErro no ano fornecido!!! Entre com um valor entre 0 e " << ANOATUAL << "!\n\n";
        dataok =0;
    }
   if(   (!(ano%4)&&(ano%100)) ||  (!(ano%400)))
         ehbissexto = 1;
   idade = ANOATUAL - ano;
   switch(mes)
      { case 1:  mesextenso= " Janeiro ";
                       diamax = 31;
                       break;
        case 2: mesextenso=" Fevereiro " ;
                       diamax = ehbissexto? 29: 28;
                       break;
        case 3: mesextenso=" Março ";
                      diamax = 31;
                      break;
        case 4: mesextenso= " Abril ";
                       diamax = 30;
                       break;
        case 5: mesextenso= " Maio ";
                       diamax = 31;
                       break;
        case 6: mesextenso=" Junho ";
                       diamax = 30;
                       break;
        case 7: mesextenso= " Julho ";
                       diamax = 31;
                       break;
        case 8: mesextenso=" Agosto ";
                       diamax = 31;
                       break;
        case 9: mesextenso=" Setembro ";
                      diamax = 30;
                      break;
        case 10: mesextenso= " Outubro ";
                         diamax = 31;
                         break;
        case 11: mesextenso= " Novembro ";
                         diamax = 30;
                          break;
        case 12: mesextenso=" Dezembro ";
                         diamax = 31;
                         break;
        default: cout<< "\nErro no mes fornecido!!! Entre com um valor entre 1 e 12\n\n";
                      dataok = 0;
                      break;
      }
   if (dataok && (dia<=diamax))
   {  idade = ano - anonasc;
        cout << "\nHoje \202 dia: " << dia << " de " << mesextenso << " de " << ano << ".\n";
        cout << "Voce completa "<< idade << " anos de idade , no ano de " << ano <<  "\n";
        if(ano != ANOATUAL)
            cout << "\nE completara"<< (ANOATUAL - anonasc) << " anos de idade , no ano de " << ANOATUAL <<  "\n\n\n";
        if(ehbissexto) cout << "\n O ano de " << ano << " \202 bissexto! \n";
   }
   else
        if(dia>diamax)
           cout << "\nO mes de "<< mesextenso << "so tem " << diamax << " dias!!!\n DATA INVALIDA!\n\n\n";
        else
           cout<< "\n DATA INVALIDA!\n\n\n";
}