How to Write a C++ Program to Simulate a Digital Clock

The standard C++ library includes a number of functions and structures to assist programmers in dealing with time in their applications. In this tutorial you will create a C++ class called Clock that will serve as a simple wrapper around the time_t and tm structures used by C’s time library, and include a simple sample program that will use this Clock class to output the system time to the console.

Things You'll Need

  • C++ Compiler
  • C++ Standard Library
  • Text editor or C++ IDE

Instructions

    • 1

      Create your files. This program will call for three files: a clock.h header file to define the Clock class, a clock.cpp C++ source file to define the implementation of the Clock class, and finally a simple example program using this class in main.cpp.

    • 2

      Define the Clock class. Open the clock.h header file and define the structure of the Clock class by entering the following code into it.

      ifndef _CLOCK_H
      define _CLOCK_H

      class Clock {
      public:

      int getHours()

      GO

      int getMinutes()

      GO

      int getSeconds()

      GO

      std::string getTime()

      GO

      Clock()
      GO
      private:
      }
      GO

      endif / _CLOCK_H /

      The class has been defined as having four major functions (besides the constructor Clock()). The getHours, getMinutes, and getSeconds functions will each retrieve a different part of the time from the C++ standard time library, using the current system time as its guide. The getTime() function will format these into a standard HH:MM:SS string, as you are used to seeing on digital clocks.

      The ifndef, define, and endif tags are optional; however, it is a good practice to get into using these. When building larger projects, including these tags will ensure that a given header file is loaded into memory only once. This reduces the risk of circular dependency errors, and making a habit of always including them in new header files now will save you many headaches later on down the road.

    • 3

      Implement the Clock class. Open your clock.cpp file, and implement all the functions you’ve defined in your header file by entering the following:

      include <time.h>
      include <sstream>
      include \"clock.h\"

      Clock::Clock() {
      }

      int Clock::getHours() {

      time_t seconds = time(NULL)

      GO

      struct tm *timeinfo = localtime(&amp;seconds)

      GO

      return timeinfo->tm_hour

      GO
      }

      int Clock::getMinutes() {

      time_t seconds = time(NULL)

      GO

      struct tm *timeinfo = localtime(&amp;seconds)

      GO

      return timeinfo->tm_min

      GO

      }

      int Clock::getSeconds() {

      time_t seconds = time(NULL)

      GO

      struct tm *timeinfo = localtime(&amp;seconds)

      GO

      return timeinfo->tm_sec

      GO

      }

      std::string Clock::getTime() {
      std::string time
      GO
      std::stringstream out
      GO
      out << getHours()
      GO
      time = out.str()
      GO
      out.str(\"\")
      GO
      time += \":\"
      GO
      out << getMinutes()
      GO
      time += out.str()
      GO
      out.str(\"\")
      GO
      time += \":\"
      GO
      out << getSeconds()
      GO
      time += out.str()
      GO
      return time
      GO

      }

      Starting at the top is the constructor, Clock(). This is a very simple class, so there is no need to do anything special here, so the constructor is left empty.

      Next are the getHours, minutes, and seconds functions. These functions retrieve the local time, measured in seconds, GMT, since January of 1970 on most computers, converts it into the tm structure provided by the C++ libraries, and finally retrieves the hours, minutes, and seconds out of this value in a human-readable form.

      Finally, getTime puts these values together in a string with the common format which separates hours, minutes and seconds by colons.

    • 4

      Create a simple program to use it. Open your main.cpp file and write the following program into it.

      include <iostream>
      include \"clock.h\"

      int main (int argc, char const argv[]) {
      Clock
      clock = new Clock()
      GO

      std::cout &lt;&lt; clock->getTime()

      GO

      return 0

      GO
      }

      This very simple program creates a new clock object, gets the current system time from it, and outputs it to the standard out. Finally it returns 0 to the operating system, to inform the operating system that the program ran successfully with no errors.

Related Searches

References

Resources

You May Also Like

Related Ads

Check It Out

Geek Vs Geek: The Best Tech of 2014