//============================================================================ // Name : ChadaTech.cpp // Author : William Dickson // Version : 1.01b // Copyright : 11/15/2020 // Description : Chada Tech Clocks in C++, Ansi-style //============================================================================ #include <iostream> using namespace std; // declaring the class _24HourTime class _24HourTime; // defining of enum to track AM and PM in 12 hour clock enum AMPM { AM, PM }ampm; // Abstract class Time class Time { public: int hour; int minute; int second; virtual void addOneHour() = 0; virtual void addOneMinute() = 0; virtual void addOneSecond() = 0; } // Class _12HourTime inherits the Time class class _12HourTime : public Time { // methods public: _12HourTime(int h, intm, int s) { hour = h; minute = m; seconds = s; ampm = AM; } void addOneHour() { if(hour == 11){ hour = 0; ampm = ampm == AM ? PM : AM; } else { hour +=1; } } void addOneMinute() { if(minute == 59){ minute = 0; addOneHour(); } else { minute += 1; } } void addOneSecond() { if(second == 59){ second = 0; addOneMinute(); } else { second += 1; } } // declaring friend friend void displayTime(const _12HourTime&, const _24HourTime&); } // _24HourTime class which inherits the Time class class _24HourTime : public Time { //methods public: _24HourTime(int h, int m, int s) { hour = h; minute = m; second = s; } void addOneHour() { if(hour == 23) { hour = 0; } else { hour += 1; } } void addOneMinute() { if (minute == 59){ minute = 0; addOneHour(); } else { minute += 1; } } void addOneSecond() { if (second == 59){ second = 0; addOneMinute(); } else { second +=1; } } // declaring friend friend void displayTime(const _12HourTime&, const _24HourTime&); } //we make this function friend so that it can access private members of the class void displayTime(const _12HourTime& time12, cost _24HourTime& time24) { cout << "*************************** ***************************" << endl; cout << "* 12-Hour Clock * * 24-Hour Clock *" << endl; cout << "*"; if (time12.hour <10) cout << "0"; cout << time12.hour << ":"; if(time12.minute < 10) cout << "0"; cout << time12.minute << ":"; if(time12.second < 10) cout << "0"; cout << time12.second; if(ampm == AM) cout << " A M"; else { cout << " P M"; cout << " * * "; } if(time24.hour < 10) cout << "0"; cout << time24.hour << ":"; if(time24.minute < 10) cout << "0"; cout << time24.minute << ":"; if(time24.second < 10) cout << "0"; cout << time24.second; cout << " *\n"; cout << "*************************** ***************************" << endl; } int main() { _12HourTime time_12_Clock(11, 59, 59); _12HourTime time_24_Clock(23, 59, 59); displayTime(time_12_Clock, time_24_Clock); while(true) { cout << "***************************\n"; cout << "* 1 - Add One Hour *\n"; cout << "* 2 - Add One Minute *\n"; cout << "* 3 - Add One Second *\n"; cout << "* 4 - Exit Program *\n"; cout << "***************************\n"; int choice; cin >> choice; switch (choice) { case 1: time_12_Clock.addOneHour(); time_24_Clock.addOneHour(); displayTime(time_12_Clock , time_24_Clock); break; case 2: time_12_Clock.addOneMinute(); time_24_Clock.addOneMinute(); displayTime(time_12_Clock , time_24_Clock); break; case 3: time_12_Clock.addOneSecond(); time_24_Clock.addOneSecond(); displayTime(time_12_Clock , time_24_Clock); break; case 4: cout << "Thank You!"; exit(1); break; default: cout << "Error! Invalid choice!\n"; break; } } }
Write, Run & Share C++ code online using OneCompiler's C++ online compiler for free. It's one of the robust, feature-rich online compilers for C++ language, running on the latest version 17. Getting started with the OneCompiler's C++ compiler is simple and pretty fast. The editor shows sample boilerplate code when you choose language as C++
and start coding!
OneCompiler's C++ online compiler supports stdin and users can give inputs to programs using the STDIN textbox under the I/O tab. Following is a sample program which takes name as input and print your name with hello.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string name;
cout << "Enter name:";
getline (cin, name);
cout << "Hello " << name;
return 0;
}
C++ is a widely used middle-level programming language.
When ever you want to perform a set of operations based on a condition If-Else is used.
if(conditional-expression) {
//code
}
else {
//code
}
You can also use if-else for nested Ifs and If-Else-If ladder when multiple conditions are to be performed on a single variable.
Switch is an alternative to If-Else-If ladder.
switch(conditional-expression){
case value1:
// code
break; // optional
case value2:
// code
break; // optional
......
default:
code to be executed when all the above cases are not matched;
}
For loop is used to iterate a set of statements based on a condition.
for(Initialization; Condition; Increment/decrement){
//code
}
While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.
while (condition) {
// code
}
Do-while is also used to iterate a set of statements based on a condition. It is mostly used when you need to execute the statements atleast once.
do {
// code
} while (condition);
Function is a sub-routine which contains set of statements. Usually functions are written when multiple calls are required to same set of statements which increases re-usuability and modularity. Function gets run only when it is called.
return_type function_name(parameters);
function_name (parameters)
return_type function_name(parameters) {
// code
}