Для моего задания мы должны создать цифровые часы. Я застрял в третьей части вопроса на некоторое время. Вот вопрос:
- записать класс Clock для представления отдельных часов. У вас могут быть часы, минуты и секунды в качестве переменных экземпляра. Вы можете добавить метод для печати времени, предполагая, что это цифровые часы.
- написать тестовый класс ClockTester и попытаться создать часы для представления разных стран, напечатать их время.
- Добавьте приведенные ниже методы, чтобы часы работали лучше.
- tick () - будет представлять один тик часов.
- incrementSeconds () - увеличит время на 1 секунду.
- incrementMinutes () - увеличит время на 1 минуту.
- incrementHours () - будет увеличьте время на 1 час.
Вот код, который я пробовал. Он печатает время стран, но тиковый метод не увеличивает время. -
Класс часов:
public class Clock
{
//instance variables
private int hours, minutes, seconds;
public Clock()
{
SetTime(0, 0, 0);
}
public Clock(int hours, int minutes, int seconds)
{
SetTime(hours, minutes, seconds);
}
public void SetTime(int hours, int minutes, int seconds)
{
if ((seconds >= 0) && (seconds < 60) && (minutes >= 0) && (minutes < 60)
&& (hours >= 0) && (hours < 24)) {
this.hours = hours;
this.minutes = minutes;
this.seconds = seconds;
}
else
{
this.hours = 0;
this.minutes = 0;
this.seconds = 0;
}
}
public int GetHours()
{
return hours;
}
public int GetMinutes()
{
return minutes;
}
public int GetSeconds()
{
return seconds;
}
//Tick()
public void Tick()
{
IncrementSeconds();
IncrementMinutes();
IncrementHours();
}
//incrementSeconds()
public void IncrementSeconds()
{
seconds++;
if (seconds > 59)
{
seconds = 0;
IncrementMinutes();
}
}
//incrementMinutes()
public void IncrementMinutes()
{
minutes++;
if (minutes > 59)
{
minutes = 0;
IncrementHours();
}
}
//incrementHours()
public void IncrementHours()
{
hours++;
if (hours > 23)
{
hours = 0;
}
}
}
ЧасыКласс класса:
public class ClockTester
{
public static void Main(string[] args)
{
//print time in UK - London
Clock clockUK = new Clock();
clockUK.SetTime(18, 29, 48);
Console.WriteLine("London, UK : {0}:{1}:{2}", clockUK.GetHours(), clockUK.GetMinutes(), clockSL.GetSeconds());
//print time in US - New York
Clock clockUS = new Clock();
clockUS.SetTime(13, 29, 48);
Console.WriteLine("New York, US : {0}:{1}:{2}", clockUS.GetHours(), clockUS.GetMinutes(), clockUS.GetSeconds());
//print time in Japan - Tokyo
Clock clockJP = new Clock();
clockJP.SetTime(02, 29, 48);
Console.WriteLine("Tokyo, Japan : {0}:{1}:{2}", clockJP.GetHours(), clockJP.GetMinutes(), clockJP.GetSeconds());
}
}