I am a bit confused by what you are asking now what exacly are you trying to do?
Printable View
I am a bit confused by what you are asking now what exacly are you trying to do?
(s)he wants to make the seconds increment in real time. So the minutes and hours would come along, too, probably.
Right, this is what I want it to do. I want to modify the first part (header) to include a TICK member function that increments the time tored in a Time object by one second. As it is now the output is incrementing by minutes.(it appears). My homework says to write a program that tests the tick memeber function in a loop that prints the time in standard format during each iteration of the loop to illustrate that the tick member function works correctly. I have to test the following cases: Incrementing the next minute, hour, and next day. The output I am looking for is as follows:Quote:
Originally Posted by nbk
11:59:57 PM
11:59:58 PM
11:59:59 PM
12:00:00 AM
12:00:01 AM
12:00:02 AM
When it says to write another program, I assumed I could just change the program I already have since I have finally gotten it to work with my compiler. It looks like the problem would be solved by the modification in the header file and no modifications to the cpp files. Sorry to be such a problem, I am still learning.
Looking at the code, you have a function for incrementing minutes, now just make functions for hours and seconds
Yea, I just noticed that too......what I dont understand is why the problem is asking me to change the header file to include Tick. should I just change the word "seconds" to "tick" throughout the whole problem?Quote:
Originally Posted by nbk
I don't understand why it would, either. Is the code fully compilable(and is that an error or warning)
Also, post the code you have right now.
The code is compiling fine and here is the time3h.Quote:
Originally Posted by nbk
here are (i believe 2 cpp.source codes)Code:#ifndef TIME3_H
#define TIME3_H
class Time {
public:
Time( int = 0, int = 0, int = 0 ); // default constructor
// set functions
void setTime( int, int, int ); // set hour, minute, second
void setHour( int ); // set hour
void setMinute( int ); // set minute
void setSecond( int ); // set second
// get functions
int getHour(); // return hour
int getMinute(); // return minute
int getSecond(); // return second
void printUniversal(); // output universal-time format
void printStandard(); // output standard-time format
private:
int hour; // 0 - 23 (24-hour clock format)
int minute; // 0 - 59
int second; // 0 - 59
}; // end clas Time
#endif
Here are my results when I execute the program;Code:#include <iostream>
using std::cout;
#include <iomanip>
using std::setfill;
using std::setw;
// include definition of class Time from time3.h
#include "time3.h"
// constructor function to initialize private data;
// calls member function setTime to set variables;
// default values are 0 (see class definition)
Time::Time( int hr, int min, int sec )
{
setTime( hr, min, sec );
} // end Time constructor
// set hour, minute and second values
void Time::setTime( int h, int m, int s )
{
setHour( h );
setMinute( m );
setSecond( s );
} // end function setTime
// set hour value
void Time::setHour( int h )
{
hour = ( h >= 0 && h < 24 ) ? h : 0;
} // end function setHour
// set minute value
void Time::setMinute( int m )
{
minute = ( m >= 0 && m < 60 ) ? m : 0;
} // end function setMinute
// set second value
void Time::setSecond( int s )
{
second = ( s >= 0 && s < 60 ) ? s : 0;
} // end function setSecond
// return hour value
int Time::getHour()
{
return hour;
} // end function getHour
// return minute value
int Time::getMinute()
{
return minute;
} // end function getMinute
// return second value
int Time::getSecond()
{
return second;
} // end function getSecond
// print Time in universal format
void Time::printUniversal()
{
cout << setfill( '0' ) << setw( 2 ) << hour << ":"
<< setw( 2 ) << minute << ":"
<< setw( 2 ) << second;
} // end function printUniversal
// print Time in standard format
void Time::printStandard()
{
cout << ( ( hour == 0 || hour == 12 ) ? 12 : hour % 12 )
<< ":" << setfill( '0' ) << setw( 2 ) << minute
<< ":" << setw( 2 ) << second
<< ( hour < 12 ? " AM" : " PM" );
} // end function printStandard
// Fig. 6.20: fig06_20.cpp
// Demonstrating the Time class set and get functions
#include <iostream>
using std::cout;
using std::endl;
// include definition of class Time from time3.h
#include "time3.h"
void incrementMinutes( Time &, const int ); // prototype
int main()
{
Time t; // create Time object
// set time using individual set functions
t.setHour( 17 ); // set hour to valid value
t.setMinute( 34 ); // set minute to valid value
t.setSecond( 25 ); // set second to valid value
// use get functions to obtain hour, miunute and second
cout << "Result of setting all valid values:\n"
<< " Hour: " << t.getHour()
<< " Minute: " << t.getMinute()
<< " Second: " << t.getSecond();
// set time using individual set functions
t.setHour( 234 ); // invalid hour set to 0
t.setMinute( 43 ); // set minute to valid value
t.setSecond( 6373 ); // invalid second set to 0
// display hour, minute and second after setting
// invalid hour and second values
cout << "\n\nResult of attempting to set invalid hour and"
<< " second:\n Hour: " << t.getHour()
<< " Minute: " << t.getMinute()
<< " Second: " << t.getSecond() << "\n\n";
t.setTime( 11, 58, 0 ); // set time
incrementMinutes( t, 3 ); // increment t's minute by 3
return 0;
} // end main
// add specified number of minutes to a Time object
void incrementMinutes( Time &tt, const int count )
{
cout << "Incrementing minute " << count
<< " times:\nStart time: ";
tt.printStandard();
for ( int i = 0; i < count; i++ ) {
tt.setMinute( ( tt.getMinute() + 1 ) % 60 );
if ( tt.getMinute() == 0 )
tt.setHour( ( tt.getHour() + 1 ) % 24 );
cout << "\nminute + 1: ";
tt.printStandard();
} // end for
cout << endl;
} // end function incrementMinutes
Result of setting all valid values:
Hour: 17 Minute: 34 Second: 25
Result of attempting to set invalid hour and second:
Hour: 0 Minute: 43 Second: 0
Incrementing minute 3 times:
Start time: 11:58:00 AM
minute +1: 11:59:00 AM
minute +1 12:00:00 PM
minute +1: 12:01:00 PM
Press any key to continue
I need to for some reason change the time3h file to include Tick
and the only output I need I listed above . I cut the part of the program out (the results of setting values) and got about 10 errors....but as it is it works with no errors.