Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

This problem is from the C++ Programming Program Design Including Data Structure

ID: 3828451 • Letter: T

Question

This problem is from the C++ Programming Program Design Including Data Structures 7th Edition by D.S. Malik ISBN:978-1-285-85275-1

Exercise 7: This chapter defines the class clockType to implement time in a program. Add functions to this class so that a program that uses this class can set only the hours, minutes, or seconds and retrieve only the hours, minutes, or seconds. Also write a program to test your class.


Enhance Programming Exercise 7 by adding functions to the class clockType so that a program that uses this class can perform the following operations:
a. Returns the elapsed time of the day of a clock in seconds.
b. Returns the remaining time of the day of a clock in seconds.
c. Determine and output how far apart in time two clocks are? Output the time in the form hr:min:sec
Also write a program to test your class.

i got the answer of exercise and here is the answer of 7

clockType.Cpp

//Implementation File for the class clockType
  
#include
#include "clockType.h"

using namespace std;

void clockType::setTime(int hours, int minutes, int seconds)
{
   if (0 <= hours && hours < 24)
   hr = hours;
   else
   hr = 0;

   if (0 <= minutes && minutes < 60)
   min = minutes;
   else
   min = 0;

   if (0 <= seconds && seconds < 60)
   sec = seconds;
   else
   sec = 0;
}

void clockType::getTime(int& hours, int& minutes, int& seconds) const
{
   hours = hr;
   minutes = min;
   seconds = sec;
}

void clockType::incrementHours()
{
   hr++;
   if(hr > 23)
    hr = 0;
}

void clockType::incrementMinutes()
{
   min++;
   if (min > 59)
   {
   min = 0;
   incrementHours();
   }
}

void clockType::incrementSeconds()
{
   sec++;

   if (sec > 59)
   {
   sec = 0;
   incrementMinutes();
   }
}

void clockType::printTime() const
{
   if (hr < 10)
   cout << "0";
   cout << hr << ":";

   if (min < 10)
   cout << "0";
   cout << min << ":";

   if (sec < 10)
   cout << "0";
   cout << sec;
}

bool clockType::equalTime(const clockType& otherClock) const
{
   return (hr == otherClock.hr
       && min == otherClock.min
       && sec == otherClock.sec);
}

clockType::clockType(int hours, int minutes, int seconds)
{
if (0 <= hours && hours < 24)
hr = hours;
else
hr = 0;

if (0 <= minutes && minutes < 60)
min = minutes;
else
min = 0;

if (0 <= seconds && seconds < 60)
sec = seconds;
else
sec = 0;
}

clockType::clockType() //default constructor

{
hr = 0;
min = 0;
sec = 0;
}

void clockType::setHours(int inputHours)
{
   if (inputHours >= 0 && inputHours <= 12)

       hr = inputHours;
   else
       hr = 0;
}

void clockType::setMinutes(int inputMinutes)
{

   if (inputMinutes >= 0 && inputMinutes <= 60)

       min = inputMinutes;
   else
       inputMinutes = 0;
}

void clockType::setseconds(int inputSeconds)
{

   if (inputSeconds >= 0 && inputSeconds <= 60)

       sec = inputSeconds;
   else

       sec = 0;
}
void clockType::getHours()

{
   cout << hr;
}

void clockType::getMinutes()

{
   cout << min;
}

void clockType::getSeconds()
{
   cout << sec;
}

clockType.h

/clockType.h, the specification file for the class clockType
  

class clockType
{

private:
   int hr, min, sec;

public:

   clockType();

void setTime(int hours, int minutes, int seconds);
//Function to set the time.
//The time is set according to the parameters.
//Postcondition: hr = hours; min = minutes;
// sec = seconds;
// The function checks whether the
// values of hours, minutes, and seconds
// are valid. If a value is invalid, the
// default value 0 is assigned.

   void setHours(int inputHours);
  
   void setMinutes(int inputMinutes);
  

   void setseconds(int inputSeconds);
  

   void getHours();


   void getMinutes();

   void getSeconds();

void getTime(int& hours, int& minutes, int& seconds) const;
//Function to return the time.
//Postcondition: hours = hr; minutes = min;
// seconds = sec;

void printTime() const;
//Function to print the time.
//Postcondition: The time is printed in the form
// hh:mm:ss.

void incrementSeconds();
//Function to increment the time by one second.
//Postcondition: The time is incremented by one second.
// If the before-increment time is
// 23:59:59, the time is reset to 00:00:00.

void incrementMinutes();
//Function to increment the time by one minute.
//Postcondition: The time is incremented by one minute.
// If the before-increment time is
// 23:59:53, the time is reset to 00:00:53.

void incrementHours();
//Function to increment the time by one hour.
//Postcondition: The time is incremented by one hour.
// If the before-increment time is
// 23:45:53, the time is reset to 00:45:53.

bool equalTime(const clockType& otherClock) const;
//Function to compare the two times.
//Postcondition: Returns true if this time is equal to
// otherClock; otherwise, returns false.

clockType(int hours, int minutes, int seconds);
//Constructor with parameters
//The time is set according to the parameters.
//Postcondition: hr = hours; min = minutes;
// sec = seconds;
// The constructor checks whether the
// values of hours, minutes, and seconds
// are valid. If a value is invalid, the
// default value 0 is assigned.

  


};

Lab13ClockType.cpp

#include < iostream>
#include "clockType.h"

using namespace std;

int main()

{

   clockType myClock;

   myClock.setHours(2);
   myClock.setMinutes(15);
   myClock.setseconds(58);
  
   cout << "The hours set are: ";
   myClock.getHours();
   cout << endl;
   cout << "The minutes set are: ";
   myClock.getMinutes();
   cout << endl;
   cout << "The seconds set are: ";
   myClock.getSeconds();
   cout << endl;

  
   system(" pause ");

   return 0;
}

Explanation / Answer


//After adding methods for given requirements all files are as follows:
//clockType.h
///clockType.h, the specification file for the class clockType
  
class clockType
{
private:
int hr, min, sec;
public:
clockType();
void setTime(int hours, int minutes, int seconds);
//Function to set the time.
//The time is set according to the parameters.
//Postcondition: hr = hours; min = minutes;
// sec = seconds;
// The function checks whether the
// values of hours, minutes, and seconds
// are valid. If a value is invalid, the
// default value 0 is assigned.
void setHours(int inputHours);
  
void setMinutes(int inputMinutes);
  
void setseconds(int inputSeconds);
  
void getHours();
//Returns the elaped time of the day in seconds
int elapsedTime();
//Returns the remaining time of the day in seconds
int remainTime();
void getMinutes();
void getSeconds();
void getTime(int& hours, int& minutes, int& seconds) const;
//Function to return the time.
//Postcondition: hours = hr; minutes = min;
// seconds = sec;
void printTime() const;
//Function to print the time.
//Postcondition: The time is printed in the form
// hh:mm:ss.
void incrementSeconds();
//Function to increment the time by one second.
//Postcondition: The time is incremented by one second.
// If the before-increment time is
// 23:59:59, the time is reset to 00:00:00.
void incrementMinutes();
//Function to increment the time by one minute.
//Postcondition: The time is incremented by one minute.
// If the before-increment time is
// 23:59:53, the time is reset to 00:00:53.
void incrementHours();
//Function to increment the time by one hour.
//Postcondition: The time is incremented by one hour.
// If the before-increment time is
// 23:45:53, the time is reset to 00:45:53.
bool equalTime(const clockType& otherClock) const;
//Function to compare the two times.
//Postcondition: Returns true if this time is equal to
// otherClock; otherwise, returns false.
clockType(int hours, int minutes, int seconds);
//Constructor with parameters
//The time is set according to the parameters.
//Postcondition: hr = hours; min = minutes;
// sec = seconds;
// The constructor checks whether the
// values of hours, minutes, and seconds
// are valid. If a value is invalid, the
// default value 0 is assigned.
  

};

#include
#include "clockType.h"
using namespace std;
void clockType::setTime(int hours, int minutes, int seconds)
{
if (0 <= hours && hours < 24)
hr = hours;
else
hr = 0;
if (0 <= minutes && minutes < 60)
min = minutes;
else
min = 0;
if (0 <= seconds && seconds < 60)
sec = seconds;
else
sec = 0;
}
void clockType::getTime(int& hours, int& minutes, int& seconds) const
{
hours = hr;
minutes = min;
seconds = sec;
}
void clockType::incrementHours()
{
hr++;
if(hr > 23)
hr = 0;
}
void clockType::incrementMinutes()
{
min++;
if (min > 59)
{
min = 0;
incrementHours();
}
}
void clockType::incrementSeconds()
{
sec++;
if (sec > 59)
{
sec = 0;
incrementMinutes();
}
}
void clockType::printTime() const
{
if (hr < 10)
cout << "0";
cout << hr << ":";
if (min < 10)
cout << "0";
cout << min << ":";
if (sec < 10)
cout << "0";
cout << sec;
}
bool clockType::equalTime(const clockType& otherClock) const
{
return (hr == otherClock.hr
&& min == otherClock.min
&& sec == otherClock.sec);
}
clockType::clockType(int hours, int minutes, int seconds)
{
if (0 <= hours && hours < 24)
hr = hours;
else
hr = 0;
if (0 <= minutes && minutes < 60)
min = minutes;
else
min = 0;
if (0 <= seconds && seconds < 60)
sec = seconds;
else
sec = 0;
}
clockType::clockType() //default constructor
{
hr = 0;
min = 0;
sec = 0;
}
void clockType::setHours(int inputHours)
{
if (inputHours >= 0 && inputHours <= 12)
hr = inputHours;
else
hr = 0;
}
void clockType::setMinutes(int inputMinutes)
{
if (inputMinutes >= 0 && inputMinutes <= 60)
min = inputMinutes;
else
inputMinutes = 0;
}
void clockType::setseconds(int inputSeconds)
{
if (inputSeconds >= 0 && inputSeconds <= 60)
sec = inputSeconds;
else
sec = 0;
}
void clockType::getHours()
{
cout << hr;
}
void clockType::getMinutes()
{
cout << min;
}
void clockType::getSeconds()
{
cout << sec;
}
//Following method returns the elapsed time in a day in a seconds
int clockType::elapsedTime()
{
int sec=getSeconds();
sec+=(getMinutes()*60);
sec+=(getHours()*60*60);
return sec;
}
//Following method returns the remaining time in a day in a seconds
int clockType::remainTime()
{
int sec=24*60*60;
return (sec-elapsedTime());
}

//Driver program for clockType with added calls to new methods too.

#include < iostream>
#include "clockType.h"

using namespace std;

int main()

{

   clockType myClock;

   myClock.setHours(2);
   myClock.setMinutes(15);
   myClock.setseconds(58);
  
   cout << "The hours set are: ";
   myClock.getHours();
   cout << endl;
   cout << "The minutes set are: ";
   myClock.getMinutes();
   cout << endl;
   cout << "The seconds set are: ";
   myClock.getSeconds();
   cout << endl;

cout<<"Elapsed time of day in seconds is : ";

cout<<myClock.elapsedTime();

cout<<endl;

cout<<"Remaining time of day in seconds is :";

cout<<myClock.remainTime();

cout<<endl;
   system(" pause ");

   return 0;
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote