Solução Exercício 1 - Aula 2

De IFSC
Revisão de 15h14min de 3 de agosto de 2017 por imported>Fargoud (Criou página com ' #include <iostream> #define ANOATUAL 2017 using namespace std; //Declaração da classe ''DiadoAno'': class DiadoAno { public: void LeDia(); private: in...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar
#include <iostream>
#define ANOATUAL 2017
using namespace std;
//Declaração da classe DiadoAno:
class DiadoAno
{  public:
     void LeDia();
   private:
     int dia;    //1-31
     int mes;    //1-12
     int ano;    //0-2017
     int idade;
     void VerificaData();
     char * mesextenso;
};
//Função "usuária" da classe - main:
int main()
{ DiadoAno hoje;
  hoje.LeDia();
  return 0;
}
//Método PÚBLICO LeDia() da classe DiadoAno:
void DiadoAno::LeDia()
{    cout << "\nInforme o dia (1-31)" << endl;
     cin >> dia;
     cout << "\nInforme o mes (1-12)" << endl;    //*********
     cin >> mes;
     cout << "\nInforme o ano (0-2017)" << endl;
     cin >> ano;
     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 > 2017)
     {
         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))
    {
         cout << "\nHoje \202 dia: " << dia << " de " << mesextenso << " de " << ano << ".\n";
         cout << "Voce completa "<< idade << " 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";
}