// 1. Класове и абстрактни данни: клас Time; достъп до членовете на //класа; различни файлове за дефиницията на класа и дефинициите на //членовете-функции. // // FIG6_3.CPP // Time class. #include // Time abstract data type (ADT) definition class Time { public: Time(); // constructor void setTime(int, int, int); // set hour, minute and second void printMilitary(); // print military time format void printStandard(); // print standard time format private: int hour; // 0 - 23 int minute; // 0 - 59 int second; // 0 - 59 }; // Time constructor initializes each data member to zero. // Ensures all Time objects start in a consistent state. Time::Time() { hour = minute = second = 0; } // Set a new Time value using military time. Perform validity // checks on the data values. Set invalid values to zero. void Time::setTime(int h, int m, int s) { hour = (h >= 0 && h < 24) ? h : 0; minute = (m >= 0 && m < 60) ? m : 0; second = (s >= 0 && s < 60) ? s : 0; } // Print Time in military format void Time::printMilitary() { cout << (hour < 10 ? "0" : "") << hour << ":" << (minute < 10 ? "0" : "") << minute << ":" << (second < 10 ? "0" : "") << second; } // Print time in standard format void Time::printStandard() { cout << ((hour == 0 || hour == 12) ? 12 : hour % 12) << ":" << (minute < 10 ? "0" : "") << minute << ":" << (second < 10 ? "0" : "") << second << (hour < 12 ? " AM" : " PM"); } // Driver to test simple class Time main() { Time t; // instantiate object t of class Time cout << "The initial military time is "; t.printMilitary(); cout << endl << "The initial standard time is "; t.printStandard(); t.setTime(13, 27, 6); cout << endl << endl << "Military time after setTime is "; t.printMilitary(); cout << endl << "Standard time after setTime is "; t.printStandard(); t.setTime(99, 99, 99); // attempt invalid settings cout << endl << endl << "After attempting invalid settings:" << endl << "Military time: "; t.printMilitary(); cout << endl << "Standard time: "; t.printStandard(); cout << endl; return 0; } ---------------------------------------------------------------- // TIME1.H // Declaration of the Time class. // Member functions are defined in TIME.CPP // prevent multiple inclusions of header file #ifndef TIME1_H #define TIME1_H // Time abstract data type definition class Time { public: Time(); // constructor void setTime(int, int, int); // set hour, minute and second void printMilitary(); // print military time format void printStandard(); // print standard time format private: int hour; // 0 - 23 int minute; // 0 - 59 int second; // 0 - 59 }; #endif ------ // TIME1.CPP // Member function definitions for Time class. #include #include "time1.h" // Time constructor initializes each data member to zero. // Ensures all Time objects start in a consistent state. Time::Time() { hour = minute = second = 0; } // Set a new Time value using military time. // Perform validity checks on the data values. // Set invalid values to zero (consistent state). void Time::setTime(int h, int m, int s) { hour = (h >= 0 && h < 24) ? h : 0; minute = (m >= 0 && m < 60) ? m : 0; second = (s >= 0 && s < 60) ? s : 0; } // Print Time in military format void Time::printMilitary() { cout << (hour < 10 ? "0" : "") << hour << ":" << (minute < 10 ? "0" : "") << minute << ":" << (second < 10 ? "0" : "") << second; } // Print time in standard format void Time::printStandard() { cout << ((hour == 0 || hour == 12) ? 12 : hour % 12) << ":" << (minute < 10 ? "0" : "") << minute << ":" << (second < 10 ? "0" : "") << second << (hour < 12 ? " AM" : " PM"); } ------- // FIG6_5.CPP // Driver for Time1 class // NOTE: Compile with TIME1.CPP #include #include "time1.h" // Driver to test simple class Time main() { Time t; // instantiate object t of class time cout << "The initial military time is "; t.printMilitary(); cout << endl << "The initial standard time is "; t.printStandard(); t.setTime(13, 27, 6); cout << endl << endl << "Military time after setTime is "; t.printMilitary(); cout << endl << "Standard time after setTime is "; t.printStandard(); t.setTime(99, 99, 99); // attempt invalid settings cout << endl << endl << "After attempting invalid settings:" << endl << "Military time: "; t.printMilitary(); cout << endl << "Standard time: "; t.printStandard(); cout << endl; return 0; } ----------------------------------------------------------------