Solução Exercício 1 - Aula 2: mudanças entre as edições

De IFSC
Ir para navegação Ir para pesquisar
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...')
 
imported>Fargoud
Sem resumo de edição
Linha 1: Linha 1:
  #include <iostream>
  #include <iostream>
  #define ANOATUAL 2017
  #define ANOATUAL 2018
  using namespace std;
  using namespace std;
  //Declaração da classe ''DiadoAno'':
  //Declaração da classe DiadoAno:
  class DiadoAno
  class DiadoAno
  {  public:
  {  public:
      void LeDia();
    void LeDia();
    private:
  private:
      int dia;    //1-31
    int dia;    //1-31
      int mes;    //1-12
    int mes;    //1-12
      int ano;    //0-2017
    int ano;    //0-2017
      int idade;
    int idade;
      void VerificaData();
    int anonasc;
      char * mesextenso;
    void VerificaData();
    char * mesextenso;
  };
  };
  //Função "usuária" da classe - ''main'':
  //Função "usuária" da classe - main:
  int main()
  int main()
  { DiadoAno hoje;
  { DiadoAno hoje;
  hoje.LeDia();
  hoje.LeDia();
  return 0;
  return 0;
  }
  }
  //Método PÚBLICO ''LeDia()'' da classe ''DiadoAno'':
  //Método PÚBLICO LeDia() da classe DiadoAno:
  void DiadoAno::LeDia()
  void DiadoAno::LeDia()
  {    cout << "\nInforme o dia (1-31)" << endl;
  {    cout << "\nInforme o dia (1-31)" << endl;
      cin >> dia;
    cin >> dia;
      cout << "\nInforme o mes (1-12)" << endl;    //*********
    cout << "\nInforme o mes (1-12)" << endl;    //*********
      cin >> mes;
    cin >> mes;
      cout << "\nInforme o ano (0-2017)" << endl;
    cout << "\nInforme o ano (0-" << ANOATUAL <<")" << endl;
      cin >> ano;
    cin >> ano;
      VerificaData();
    cout << "\nQual seu ano de nascimento?" << endl;
    cin >> anonasc;
    VerificaData();
  }
  }
  //Método PRIVADO''VerificaData()'' da classe ''DiadoAno'':
  //Método PRIVADOVerificaData() da classe DiadoAno:
  void DiadoAno::VerificaData()
  void DiadoAno::VerificaData()
  {    int ehbissexto=0, diamax, dataok;
  {    int ehbissexto=0, diamax, dataok;
      if(dia <1 || dia>31)
    if(dia <1 || dia>31)
      {
    {
          cout<< "\nErro no dia fornecido!!!\n\n";
          cout<< "\nErro no dia fornecido!!!\n\n";
          dataok= 0;
          dataok= 0;
      }
    }
      if (ano <0 || ano > 2017)
    if (ano <0 || ano > ANOATUAL)
      {
    {
          cout<< "\nErro no ano fornecido!!! Entre com um valor entre 0 e " << ANOATUAL << "!\n\n";
        cout<< "\nErro no ano fornecido!!! Entre com um valor entre 0 e " << ANOATUAL << "!\n\n";
          dataok =0;
        dataok =0;
      }
    }
    if(  (!(ano%4)&&(ano%100)) ||  (!(ano%400)))
    if(  (!(ano%4)&&(ano%100)) ||  (!(ano%400)))
          ehbissexto = 1;
          ehbissexto = 1;
    idade = ANOATUAL - ano;
    idade = ANOATUAL - ano;
    switch(mes)
    switch(mes)
        { case 1:  mesextenso= " Janeiro ";
      { case 1:  mesextenso= " Janeiro ";
                        diamax = 31;
                        break;
          case 2: mesextenso=" Fevereiro " ;
                        diamax = ehbissexto? 29: 28;
                        break;
          case 3: mesextenso=" Março ";
                         diamax = 31;
                         diamax = 31;
                         break;
                         break;
          case 4: mesextenso= " Abril ";
        case 2: mesextenso=" Fevereiro " ;
                        diamax = 30;
                        diamax = ehbissexto? 29: 28;
                        break;
                        break;
          case 5: mesextenso= " Maio ";
        case 3: mesextenso=" Março ";
                        diamax = 31;
                      diamax = 31;
                        break;
                      break;
          case 6: mesextenso=" Junho ";
        case 4: mesextenso= " Abril ";
                        diamax = 30;
                        break;
          case 7: mesextenso= " Julho ";
                        diamax = 31;
                        break;
          case 8: mesextenso=" Agosto ";
                        diamax = 31;
                        break;
          case 9: mesextenso=" Setembro ";
                         diamax = 30;
                         diamax = 30;
                         break;
                         break;
          case 10: mesextenso= " Outubro ";
        case 5: mesextenso= " Maio ";
                          diamax = 31;
                        diamax = 31;
                          break;
                        break;
          case 11: mesextenso= " Novembro ";
        case 6: mesextenso=" Junho ";
                          diamax = 30;
                        diamax = 30;
                            break;
                        break;
          case 12: mesextenso=" Dezembro ";
        case 7: mesextenso= " Julho ";
                          diamax = 31;
                        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;
                           break;
          default: cout<< "\nErro no mes fornecido!!! Entre com um valor entre 1 e 12\n\n";
        case 12: mesextenso=" Dezembro ";
                        dataok = 0;
                          diamax = 31;
                        break;
                          break;
        }
        default: cout<< "\nErro no mes fornecido!!! Entre com um valor entre 1 e 12\n\n";
    if (dataok && (dia<=diamax))
                      dataok = 0;
    {
                      break;
          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 (dataok && (dia<=diamax))
          if(ehbissexto) cout << "\n O ano de" << ano << " \202 bissexto! \n";
    { idade = ANOATUAL - anonasc;
    }
        cout << "\nHoje \202 dia: " << dia << " de " << mesextenso << " de " << ano << ".\n";
    else
        cout << "Voce completa "<< idade << " anos de idade , no ano de " << ANOATUAL <<  "\n\n\n";
          if(dia>diamax)
        if(ehbissexto) cout << "\n O ano de" << ano << " \202 bissexto! \n";
            cout << "\nO mes de "<< mesextenso << "so tem " << diamax << " dias!!!\n DATA INVALIDA!\n\n\n";
    }
          else
    else
            cout<< "\n DATA INVALIDA!\n\n\n";
        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";
  }
  }

Edição das 16h09min de 28 de fevereiro de 2018

#include <iostream>
#define ANOATUAL 2018
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;
    int anonasc;
    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-" << ANOATUAL <<")" << endl;
    cin >> ano;
    cout << "\nQual seu ano de nascimento?" << endl;
    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 = ANOATUAL - anonasc;
        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";
}