//The definition of the class Clock is:
public class Clock
{
private int hr; //store hours
private int min; //store minutes
private int sec; //store seconds
//Default constructor
//Postcondition: hr = 0; min = 0; sec = 0
public Clock()
{
setTime(0, 0, 0);
}
//Constructor with parameters, to set the time
//The time is set according to the parameters.
//Postcondition: hr = hours; min = minutes;
// sec = seconds
public Clock(int hours, int minutes, int seconds)
{
setTime(hours, minutes, seconds);
}
//Method to set the time
//The time is set according to the parameters.
//Postcondition: hr = hours; min = minutes;
// sec = seconds
public void 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;
}
//Method to return the hours
//Postcondition: the value of hr is returned
public int getHours()
{
return hr;
}
//Method to return the minutes
//Postcondition: the value of min is returned
public int getMinutes()
{
return min;
}
//Method to return the seconds
//Postcondition: the value of sec is returned
public int getSeconds()
{
return sec;
}
//Method to print the time
//Postcondition: Time is printed in the form hh:mm:ss
public void printTime()
{
if (hr < 10)
System.out.print("0");
System.out.print(hr + ":");
if (min < 10)
System.out.print("0");
System.out.print(min + ":");
if (sec < 10)
System.out.print("0");
System.out.print(sec);
}
//Method 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
public void incrementSeconds()
{
sec++;
if (sec > 59)
{
sec = 0;
incrementMinutes(); //increment minutes
}
}
//Method 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
public void incrementMinutes()
{
min++;
if (min > 59)
{
min = 0;
incrementHours(); //increment hours
}
}
//Method 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
public void incrementHours()
{
hr++;
if (hr > 23)
hr = 0;
}
//Method to compare two times
//Postcondition: Returns true if this time is equal to
// otherClock; otherwise returns false
public boolean equals(Clock otherClock)
{
return (hr == otherClock.hr
&& min == otherClock.min
&& sec == otherClock.sec);
}
//Method to copy time
//Postcondition: The instance variables of otherClock
// copied into the corresponding data
// are members of this time.
// hr = otherClock.hr;
// min = otherClock.min;
// sec = otherClock.sec;
public void makeCopy(Clock otherClock)
{
hr = otherClock.hr;
min = otherClock.min;
sec = otherClock.sec;
}
//Method to return a copy of time
//Postcondition: A copy of the object is created and
// a reference of the copy is returned
public Clock getCopy()
{
Clock temp = new Clock();
temp.hr = hr;
temp.min = min;
temp.sec = sec;
return temp;
}
}
//Program to test various operations of the class Clock
import java.util.*;
public class TestProgClock
{
static Scanner console = new Scanner(System.in);
public static void main(String[] args)
{
Clock myClock = new Clock(5, 4, 30); //Line 1
Clock yourClock = new Clock(); //Line 2
int hours; //Line 3
int minutes; //Line 4
int seconds; //Line 5
System.out.print("Line 6: myClock: "); //Line 6
myClock.printTime(); //Line 7
System.out.println(); //Line 8
System.out.print("Line 9: yourClock: "); //Line 9
yourClock.printTime(); //Line 10
System.out.println(); //Line 11
yourClock.setTime(5, 45, 16); //Line 12
System.out.print("Line 13: After setting "+ "the time - yourClock: "); //Line 13
yourClock.printTime(); //Line 14
System.out.println(); //Line 15
if (myClock.equals(yourClock)) //Line 16
System.out.println("Line 17: Both the " + "times are equal."); //Line 17
else //Line 18
System.out.println("Line 19: The two " + "times are not " + "equal."); //Line 19
System.out.print("Line 20: Enter hours, "+ "minutes, and seconds: "); //Line 20
hours = console.nextInt(); //Line 21
minutes = console.nextInt(); //Line 22
seconds = console.nextInt(); //Line 23
System.out.println(); //Line 24
myClock.setTime(hours, minutes, seconds); //Line 25
System.out.print("Line 26: New time of "+ "myClock: "); //Line 26
myClock.printTime(); //Line 27
System.out.println(); //Line 28
myClock.incrementSeconds(); //Line 29
System.out.print("Line 30: After "+ "incrementing the time by " + "one second, myClock: "); //Line 30
myClock.printTime(); //Line 31
System.out.println(); //Line 32
yourClock.makeCopy(myClock); //Line 33
System.out.print("Line 34: After copying "+ "myClock into yourClock, " + "yourClock: "); //Line 34
yourClock.printTime(); //Line 35
System.out.println(); //Line 36
}//end main
}
Sample Output:
Line 6: myClock: 05:04:30
Line 9: yourClock: 00:00:00
Line 13: After setting the time - yourClock: 05:45:16
Line 19: The two times are not equal.
Line 20: Enter hours, minutes, and seconds: 11 22 59
Line 26: New time of myClock: 11:22:59
Line 30: After incrementing the time by one second, myClock: 11:23:00
Line 34: After copying myClock into yourClock, yourClock: 11:23:00
No comments:
Post a Comment