Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • 0
Davide Silva

Modelar uma instante de tempo definida pela hora, minuto e segundo.

Pergunta

Oi galera, o código em baixo funciona direitinho, com pre-inicialização. O problema que eu estou tendo é como faço para implementar 

● método que imprime a instancia em formato de 12 horas (AM/ PM)

● previousSecond()

● nextMinute()

● previousMinute()

● nextHour()

● previousHour()

 

 

/* Test Driver for the Time class */
#include <iostream>
#include "Time.h"    // include header of Time class
using namespace std;
int main() {
    Time t_2;
    int minut;
    int seg;
    int hor;
    cout<< "\n Informe a hora: ";
    cin>>hor;
    t_2.setHour(hor);
    cout<< "\n Informe o minuto: ";
    cin>>minut;
    t_2.setMinute(minut);
    cout<< "\n Informe o segundo: ";
    cin>>seg;
    t_2.setSecond(seg);
   cout<<"Object t1 state: \n";
   cout << "Hour is "   << t_2.getHour()   << endl;
   cout << "Minute is " << t_2.getMinute() << endl;
   cout << "Second is " << t_2.getSecond() << endl;
   return 0;
}

//=======================================================================================

/* Header for the Time class (Time.h) */
#ifndef TIME_H   // Include this "block" only if TIME_H is NOT defined
#define TIME_H   // Upon the first inclusion, define TIME_H so that
                 //  this header will not get included more than once
class Time {
private:  // private section
   // private data members
   int hour;     // 0 - 23
   int minute;   // 0 - 59
   int second;   // 0 - 59
public:   // public section
   // public member function prototypes
   //Time(int h = 0, int m = 0, int s = 0);        // Constructor with default values
   int getHour() const;                                   // public getter for private data member hour
   void setHour(int h);                                  // public setter for private data member hour
   int getMinute() const;                             // public getter for private data member minute
   void setMinute(int m);                           // public setter for private data member minute
   int getSecond() const;                          // public getter for private data member second
   void setSecond(int s);                          // public setter for private data member second
   void setTime(int h, int m, int s);        // set hour, minute and second
   void print() const;                               // Print a description of this instance in "hh:mm:ss"
   void nextSecond();                            // Increase this instance by one second
};                                                             // need to terminate the class declaration with a semicolon
#endif  // end of "#ifndef" block
//======================================================================================


/* Implementation for the Time Class (Time.cpp) */
#include <iostream>
#include <iomanip>
#include "Time.h"    // include header of Time class
using namespace std;
// Constructor with default values. No input validation
/*Time::Time(int h, int m, int s) {
   hour = h;
   minute = m;
   second = s;
}
*/
// public getter for private data member hour
int Time::getHour() const {
   return hour;
}
// public setter for private data member hour. No input validation
void Time::setHour(int h) {
   hour = h;
}
// public getter for private data member minute
int Time::getMinute() const {
   return minute;
}
// public setter for private data member minute. No input validation
void Time::setMinute(int m) {
   minute = m;
}
// public getter for private data member second
int Time::getSecond() const {
   return second;
}
// public setter for private data member second. No input validation
void Time::setSecond(int s) {
   second = s;
}
// Set hour, minute and second. No input validation
void Time::setTime(int h, int m, int s) {
   hour = h;
   minute = m;
   second = s;
}
// Print this Time instance in the format of "hh:mm:ss", zero filled
void Time::print() const {
   cout << setfill('0');    // zero-filled, need <iomanip>, sticky
   cout << setw(2) << hour  // set width to 2 spaces, need <iomanip>, non-sticky
        << ":" << setw(2) << minute
        << ":" << setw(2) << second << endl;
}
// Increase this instance by one second
void Time::nextSecond() {
   ++second;
   if (second >= 60) {
      second = 0;
      ++minute;
   }
   if (minute >= 60) {
      minute = 0;
      ++hour;
   }
   if (hour >= 24) {
      hour = 0;
   }
}

 

 

 

 

 

Desde já obrigado
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

0 respostas a esta questão

Recommended Posts

Até agora não há respostas para essa pergunta


  • Conteúdo Similar

    • Por Davide Silva
      Oi galera, o código em baixo funciona direitinho, com pre-inicialização. O problema que eu estou tendo é como faço para implementar 
      ● método que imprime a instancia em formato de 12 horas (AM/ PM)
      ● previousSecond()
      ● nextMinute()
      ● previousMinute()
      ● nextHour()
      ● previousHour()
       
       
       
      /* Test Driver for the Time class */
      #include <iostream>
      #include "Time.h"    // include header of Time class
      using namespace std;
      int main() {
          Time t_2;
          int minut;
          int seg;
          int hor;
          cout<< "\n Informe a hora: ";
          cin>>hor;
          t_2.setHour(hor);
          cout<< "\n Informe o minuto: ";
          cin>>minut;
          t_2.setMinute(minut);
          cout<< "\n Informe o segundo: ";
          cin>>seg;
          t_2.setSecond(seg);
         cout<<"Object t1 state: \n";
         cout << "Hour is "   << t_2.getHour()   << endl;
         cout << "Minute is " << t_2.getMinute() << endl;
         cout << "Second is " << t_2.getSecond() << endl;
         return 0;
      }
       
      //=======================================================================================
       
      /* Header for the Time class (Time.h) */
      #ifndef TIME_H   // Include this "block" only if TIME_H is NOT defined
      #define TIME_H   // Upon the first inclusion, define TIME_H so that
                       //  this header will not get included more than once
      class Time {
      private:  // private section
         // private data members
         int hour;     // 0 - 23
         int minute;   // 0 - 59
         int second;   // 0 - 59
      public:   // public section
         // public member function prototypes
         //Time(int h = 0, int m = 0, int s = 0);        // Constructor with default values
         int getHour() const;                                   // public getter for private data member hour
         void setHour(int h);                                  // public setter for private data member hour
         int getMinute() const;                             // public getter for private data member minute
         void setMinute(int m);                           // public setter for private data member minute
         int getSecond() const;                          // public getter for private data member second
         void setSecond(int s);                          // public setter for private data member second
         void setTime(int h, int m, int s);        // set hour, minute and second
         void print() const;                               // Print a description of this instance in "hh:mm:ss"
         void nextSecond();                            // Increase this instance by one second
      };                                                             // need to terminate the class declaration with a semicolon
      #endif  // end of "#ifndef" block
      //======================================================================================
       
       
      /* Implementation for the Time Class (Time.cpp) */
      #include <iostream>
      #include <iomanip>
      #include "Time.h"    // include header of Time class
      using namespace std;
      // Constructor with default values. No input validation
      /*Time::Time(int h, int m, int s) {
         hour = h;
         minute = m;
         second = s;
      }
      */
      // public getter for private data member hour
      int Time::getHour() const {
         return hour;
      }
      // public setter for private data member hour. No input validation
      void Time::setHour(int h) {
         hour = h;
      }
      // public getter for private data member minute
      int Time::getMinute() const {
         return minute;
      }
      // public setter for private data member minute. No input validation
      void Time::setMinute(int m) {
         minute = m;
      }
      // public getter for private data member second
      int Time::getSecond() const {
         return second;
      }
      // public setter for private data member second. No input validation
      void Time::setSecond(int s) {
         second = s;
      }
      // Set hour, minute and second. No input validation
      void Time::setTime(int h, int m, int s) {
         hour = h;
         minute = m;
         second = s;
      }
      // Print this Time instance in the format of "hh:mm:ss", zero filled
      void Time::print() const {
         cout << setfill('0');    // zero-filled, need <iomanip>, sticky
         cout << setw(2) << hour  // set width to 2 spaces, need <iomanip>, non-sticky
              << ":" << setw(2) << minute
              << ":" << setw(2) << second << endl;
      }
      // Increase this instance by one second
      void Time::nextSecond() {
         ++second;
         if (second >= 60) {
            second = 0;
            ++minute;
         }
         if (minute >= 60) {
            minute = 0;
            ++hour;
         }
         if (hour >= 24) {
            hour = 0;
         }
      }
       
       
       
       
       
      Desde já obrigado
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.