diff options
| author | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
|---|---|---|
| committer | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
| commit | 33613a85afc4b1481367fbe92a17ee59c240250b (patch) | |
| tree | 670b842326116b376b505ec2263878912fca97e2 /Bachelor/Prog1/examples/ch06/Fig06_18_20 | |
| download | Studium-master.tar.gz Studium-master.tar.bz2 | |
Diffstat (limited to 'Bachelor/Prog1/examples/ch06/Fig06_18_20')
| -rw-r--r-- | Bachelor/Prog1/examples/ch06/Fig06_18_20/Fig06_20.cpp | 82 | ||||
| -rw-r--r-- | Bachelor/Prog1/examples/ch06/Fig06_18_20/Time3.cpp | 107 | ||||
| -rw-r--r-- | Bachelor/Prog1/examples/ch06/Fig06_18_20/Time3.h | 50 |
3 files changed, 239 insertions, 0 deletions
diff --git a/Bachelor/Prog1/examples/ch06/Fig06_18_20/Fig06_20.cpp b/Bachelor/Prog1/examples/ch06/Fig06_18_20/Fig06_20.cpp new file mode 100644 index 0000000..58f5bb9 --- /dev/null +++ b/Bachelor/Prog1/examples/ch06/Fig06_18_20/Fig06_20.cpp @@ -0,0 +1,82 @@ +// 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
+
+/**************************************************************************
+ * (C) Copyright 1992-2002 by Deitel & Associates, Inc. and Prentice *
+ * Hall. All Rights Reserved. *
+ * *
+ * DISCLAIMER: The authors and publisher of this book have used their *
+ * best efforts in preparing the book. These efforts include the *
+ * development, research, and testing of the theories and programs *
+ * to determine their effectiveness. The authors and publisher make *
+ * no warranty of any kind, expressed or implied, with regard to these *
+ * programs or to the documentation contained in these books. The authors *
+ * and publisher shall not be liable in any event for incidental or *
+ * consequential damages in connection with, or arising out of, the *
+ * furnishing, performance, or use of these programs. *
+ *************************************************************************/
diff --git a/Bachelor/Prog1/examples/ch06/Fig06_18_20/Time3.cpp b/Bachelor/Prog1/examples/ch06/Fig06_18_20/Time3.cpp new file mode 100644 index 0000000..7cf0176 --- /dev/null +++ b/Bachelor/Prog1/examples/ch06/Fig06_18_20/Time3.cpp @@ -0,0 +1,107 @@ +// Fig. 6.19: time3.cpp
+// Member-function definitions for Time class.
+#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
+
+/**************************************************************************
+ * (C) Copyright 1992-2002 by Deitel & Associates, Inc. and Prentice *
+ * Hall. All Rights Reserved. *
+ * *
+ * DISCLAIMER: The authors and publisher of this book have used their *
+ * best efforts in preparing the book. These efforts include the *
+ * development, research, and testing of the theories and programs *
+ * to determine their effectiveness. The authors and publisher make *
+ * no warranty of any kind, expressed or implied, with regard to these *
+ * programs or to the documentation contained in these books. The authors *
+ * and publisher shall not be liable in any event for incidental or *
+ * consequential damages in connection with, or arising out of, the *
+ * furnishing, performance, or use of these programs. *
+ *************************************************************************/
diff --git a/Bachelor/Prog1/examples/ch06/Fig06_18_20/Time3.h b/Bachelor/Prog1/examples/ch06/Fig06_18_20/Time3.h new file mode 100644 index 0000000..2f68d31 --- /dev/null +++ b/Bachelor/Prog1/examples/ch06/Fig06_18_20/Time3.h @@ -0,0 +1,50 @@ +// Fig. 6.18: time3.h
+// Declaration of class Time.
+// Member functions defined in time3.cpp
+
+// prevent multiple inclusions of header file
+#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
+
+/**************************************************************************
+ * (C) Copyright 1992-2002 by Deitel & Associates, Inc. and Prentice *
+ * Hall. All Rights Reserved. *
+ * *
+ * DISCLAIMER: The authors and publisher of this book have used their *
+ * best efforts in preparing the book. These efforts include the *
+ * development, research, and testing of the theories and programs *
+ * to determine their effectiveness. The authors and publisher make *
+ * no warranty of any kind, expressed or implied, with regard to these *
+ * programs or to the documentation contained in these books. The authors *
+ * and publisher shall not be liable in any event for incidental or *
+ * consequential damages in connection with, or arising out of, the *
+ * furnishing, performance, or use of these programs. *
+ *************************************************************************/
|
